diff options
-rw-r--r-- | CommModule/readme.txt | 1 | ||||
-rwxr-xr-x | CommModule/server.pl | 1045 | ||||
-rw-r--r-- | locale/ru.po | 238 | ||||
-rw-r--r-- | scripts/28au-ate-melbourne-email.txt | 17 | ||||
-rw-r--r-- | scripts/28au-ate-melbourne-mail.php.txt | 156 | ||||
-rw-r--r-- | scripts/29au-ate-brisbane-email.txt | 38 | ||||
-rw-r--r-- | scripts/29au-ate-brisbane-mail.php.txt | 78 |
7 files changed, 1442 insertions, 131 deletions
diff --git a/CommModule/readme.txt b/CommModule/readme.txt index d832491..94f09fe 100644 --- a/CommModule/readme.txt +++ b/CommModule/readme.txt @@ -3,4 +3,5 @@ commdaemon Script to run client.pl or server.pl commmodule Script for startup/shutdown of CommModule from /etc/init.d logclean.sh Maintenance script for logfiles generated by CommModule serial.conf Serial Port configuration file +server.pl The real server, running on the signing server usbclient.pl Obsoleted USB version of client.pl above diff --git a/CommModule/server.pl b/CommModule/server.pl new file mode 100755 index 0000000..eb5113a --- /dev/null +++ b/CommModule/server.pl @@ -0,0 +1,1045 @@ +#!/usr/bin/perl -w + +# (c) 2006-2007 by CAcert.org + +# Server (running on the certificate machine) + +use strict; +use Device::SerialPort qw( :PARAM :STAT 0.07 ); +use POSIX; +use IO::Select; +use File::CounterFile; +use Time::HiRes q(usleep); +use IPC::Open3; +use File::Copy; +use Digest::SHA1 qw(sha1_hex); + +#Protocol version: +my $ver=1; + +my $debug=0; + +my $paranoid=1; + +my $serialport="/dev/ttyUSB0"; +#my $serialport="/dev/ttyS0"; + +my $CPSUrl="http://www.cacert.org/cps.php"; + +my $OCSPUrl="http://ocsp.cacert.org/"; + +my $gpgbin="/usr/bin/gpg"; + +my $opensslbin="/usr/bin/openssl"; + +my $work="./work"; + +#my $gpgID='gpgtest@cacert.at'; +my $gpgID='gpg@cacert.org'; + + +my %PkiSystems=( +"1"=>"X.509", +"2"=>"OpenPGP"); +my %rootkeys=( +"1"=>5, #X.509 +"2"=>1);#OpenPGP +my %hashes=( +"0"=>"", +"1"=>"-md md5", +"2"=>"-md sha1", +"3"=>"-md rmd160", +"8"=>"-md sha256", +"9"=>"-md sha384", +"10"=>"-md sha512"); +my %templates=( + "0"=>"client.cnf", + "1"=>"client-org.cnf", + "2"=>"client-codesign.cnf", + "3"=>"client-machine.cnf", + "4"=>"client-ads.cnf", + "5"=>"server.cnf", + "6"=>"server-org.cnf", + "7"=>"server-jabber.cnf", + "8"=>"ocsp.cnf", + "9"=>"timestamp.cnf", + "10"=>"proxy.cnf", + "11"=>"subca.cnf" +); + +my $starttime=5*60; # 5 minutes + +my %currenthash=(); + + +#End of configurations + +######################################################## + +mkdir "$work",0700; +mkdir "currentcrls"; + +$ENV{'PATH'}='/usr/bin/:/bin'; +$ENV{'IFS'}="\n"; +$ENV{'LD_PRELOAD'}=''; +$ENV{'LD_LIBRARY_PATH'}=''; +$ENV{'LANG'}=''; + +#Logging functions: +sub SysLog($) +{ + my $date=strftime("%Y-%m-%d",localtime); + open LOG,">>logfile$date.txt"; + return if(not defined($_[0])); + my $timestamp=strftime("%Y-%m-%d %H:%M:%S",localtime); + #$syslog->write($_[0]."\x00"); + print LOG "$timestamp $_[0]"; +# print "$timestamp $_[0]"; + flush LOG; + close LOG; +} + +sub Error($) +{ + SysLog($_[0]); + if($paranoid) + { + die $_[0]; + } +} + +sub readfile($) +{ + my $olds=$/; + open READIN,"<$_[0]"; + undef $/; + my $content=<READIN>; + close READIN; + $/=$olds; + return $content; +} + + +#Hexdump function: Returns the hexdump representation of a string +sub hexdump($) +{ + return "" if(not defined($_[0])); + my $content=""; + $content.=sprintf("%02X ",unpack("C",substr($_[0],$_,1))) foreach (0 .. length($_[0])-1); + return $content; +} + +#pack3 packs together the length of the data in 3 bytes and the data itself, size limited to 16MB. In case the data is more than 16 MB, it is ignored, and a 0 Byte block is transferred +sub pack3 +{ + return "\x00\x00\x00" if(!defined($_[0])); + my $data=(length($_[0]) >= 2**24)? "":$_[0]; + my $len=pack("N",length($data)); + #print "len: ".length($data)."\n"; + return substr($len,1,3).$data; +} + + +#unpack3 unpacks packed data. +sub unpack3($) +{ + return undef if((not defined($_[0])) or length($_[0])<3); + #print "hexdump: ".hexdump("\x00".substr($_[0],0,3))."\n"; + my $len=unpack("N","\x00".substr($_[0],0,3)); + #print "len3: $len length(): ".length($_[0])." length()-3: ".(length($_[0])-3)."\n"; + return undef if(length($_[0])-3 != $len); + return substr($_[0],3); +} + + +#unpack3array extracts a whole array of concatented packed data. +sub unpack3array($) +{ + my @retarr=(); + if((not defined($_[0])) or length($_[0])<3) + { + SysLog "Datenanfang kaputt\n"; + return (); + } + my $dataleft=$_[0]; + while(length($dataleft)>=3) + { + #print "hexdump: ".hexdump("\x00".substr($dataleft,0,3))."\n"; + my $len=unpack("N","\x00".substr($dataleft,0,3)); + #print "len3: $len length(): ".length($dataleft)." length()-3: ".(length($dataleft)-3)."\n"; + if(length($dataleft)-3 < $len) + { + SysLog "Datensatz abgeschnitten\n"; + return (); + } + push @retarr, substr($dataleft,3,$len); + $dataleft=substr($dataleft,3+$len); + } + if(length($dataleft)!=0) + { + SysLog "Ende abgeschnitten\n"; + return (); + } + return @retarr; +} + + + + +my $timestamp=strftime("%Y-%m-%d %H:%M:%S",localtime); + +SysLog("Starting Server at $timestamp\n"); + +SysLog("Opening Serial interface:\n"); +#if(1) +#{ + +sub SerialSettings +{ + my $PortObj=$_[0]; + Error "Could not open Serial Port!\n" if(!defined($PortObj)); + $PortObj->baudrate(115200); + $PortObj->parity("none"); + $PortObj->databits(8); + $PortObj->stopbits(1); +} + +#We have to open the SerialPort and close it again, so that we can bind it to a Handle +my $PortObj = new Device::SerialPort($serialport); +SerialSettings($PortObj); +$PortObj->save("serialserver.conf"); +#} +undef $PortObj; + +$PortObj = tie (*SER, 'Device::SerialPort', "serialserver.conf") || Error "Can't tie using Configuration_File_Name: $!\n"; + +Error "Could not open Serial Interface!\n" if(not defined($PortObj)); +SerialSettings($PortObj); +#open SER,">$serialport"; + +SysLog("Serial interface opened: $PortObj\n"); + + +#Creating select() selector for improved reading: +my $sel = new IO::Select( \*SER ); + +#Raw send function over the Serial Interface (+debugging) +sub SendIt($) +{ + return unless defined($_[0]); + SysLog "Sending ".length($_[0])."\n"; #hexdump($_[0])."\n"; + my $data=$_[0]; + my $runcount=0; + my $total=0; + my $mtu=30; + while(length($data)) + { + my $iwrote=scalar($PortObj->write(substr($data,0,$mtu)))||0; + usleep(270*$iwrote+9000); # On Linux, we have to wait to make sure it is being sent, and we dont loose any data. + $total+=$iwrote; + $data=substr($data,$iwrote); + print "i wrote: $iwrote total: $total left: ".length($data)."\n" if(!($runcount++ %10)); + } + +# print "Sending ".length($_[0])."\n"; #hexdump($_[0])."\n"; +# foreach(0 .. length($_[0])) +# { +# $PortObj->write(substr($_[0],$_,1)); +# } + +} + + +#Send data over the Serial Interface with handshaking: +#Warning: This function is implemented paranoid. It exits the program in case something goes wrong. +sub SendHandshakedParanoid($) +{ + #print "Shaking hands ...\n"; + SendIt("\x02"); + + Error "Handshake uncompleted. Connection lost!" if(!scalar($sel->can_read(2))); + my $data=""; + usleep(1000000); + my $length=read SER,$data,1; + if($length && $data eq "\x10") + { + print "OK ...\n"; + my $xor=0; + foreach(0 .. length($_[0])-1) + { + #print "xor mit ".unpack("C",substr($_[0],$_,1))."\n"; + $xor ^= unpack("C",substr($_[0],$_,1)); + } + #print "XOR: $xor\n"; + + my $tryagain=1; + while($tryagain) + { + SendIt($_[0].pack("C",$xor)."rie4Ech7"); + + Error "Packet receipt was not confirmed in 5 seconds. Connection lost!" if(!scalar($sel->can_read(5))); + + $data=""; + $length=read SER,$data,1; + + if($length && $data eq "\x10") + { + SysLog "Sent successfully!...\n"; + $tryagain=0; + } + elsif($length && $data eq "\x11") + { + $tryagain=1; + } + else + { + Error "I cannot send! $length ".unpack("C",$data)."\n"; + } + } + + } + else + { + print "!Cannot send! $length $data\n"; + Error "!Stopped sending.\n"; + } +} + +sub Receive +{ + my $data=""; + my @ready = $sel->can_read(20); + + my $length=read SER,$data,1,0; + + #SysLog "Data: ".hexdump($data)."\n"; + + if($data eq "\x02") + { + my $modus=1; + SysLog "Start received, sending OK\n"; + SendIt("\x10"); + + my $block=""; + my $blockfinished=0; + my $tries=10000; + + while(!$blockfinished) + { + Error("Tried reading too often\n") if(($tries--)<=0); + + $data=""; + if(!scalar($sel->can_read(2))) + { + SysLog("Timeout!\n"); + return; + } + $length=read SER,$data,100,0; + if($length) + { + $block.=$data; + } + #SysLog("Received: $length ".length($block)."\n"); + $blockfinished=defined(unpack3(substr($block,0,-9)))?1:0; + + if(!$blockfinished and substr($block,-8,8) eq "rie4Ech7") + { + SysLog "BROKEN Block detected!"; + SendIt("\x11"); + $block=""; + $blockfinished=0; + $tries=10000; + } + + } + SysLog "Block done: \n";#.hexdump($block)."\n"; + SendIt("\x10"); + SysLog "Returning block\n"; + return($block); + } + else + { + Error("Error: No Answer received, Timeout.\n") if(length($data)==0); + Error("Error: Wrong Startbyte: ".hexdump($data)." !\n"); + } + + SysLog "Waiting on next request ...\n"; + +} + + +#Checks the CRC of a received block for validity +#Returns 1 upon successful check and 0 for a failure +sub CheckCRC($) +{ + my $block=$_[0]; + return 0 if(length($_[0])<1); + return 1 if($_[0] eq "\x00"); + my $xor=0; + foreach(0 .. length($block)-2) + { + #print "xor mit ".unpack("C",substr($block,$_,1))."\n"; + $xor ^= unpack("C",substr($block,$_,1)); + } + #print "XOR: $xor BCC: ".unpack("C",substr($block,-1,1))."\n"; + if($xor eq unpack("C",substr($block,-1,1))) + { + #print "Checksum correct\n"; + return 1; + } + else + { + #print "Checksum on received packet wrong!\n"; + return 0; + } + +} + +#Formatting and sending a Response packet +sub Response($$$$$$$) +{ + SendHandshakedParanoid(pack3(pack3(pack("C*",$_[0],$_[1],$_[2],$_[3])).pack3($_[4]).pack3($_[5]).pack3($_[6]))); +} + + +#Checks the parameters, whether the certificate system (OpenPGP, X.509, ...) is available, +#whether the specified root key is available, whether the config file is available, ... +#Returns 1 upon success, and dies upon error! +sub CheckSystem($$$$) +{ + my ($system,$root,$template,$hash)=@_; + if(not defined($templates{$template})) + { + Error "Template unknown!\n"; + } + if(not defined($hashes{$hash})) + { + Error "Hash algorithm unknown!\n"; + } + if(defined($rootkeys{$system})) + { + if($root<$rootkeys{$system}) + { + return 1; + } + else + { + Error "Identity System $system has only $rootkeys{$system} root keys, key $root does not exist.\n"; + } + } + else + { + Error "Identity System $system not supported"; + } + + return 0; +} + + +#Selects the specified config file for OpenSSL and makes sure that the specified config file exists +#Returns the full path to the config file +sub X509ConfigFile($$) +{ + my ($root,$template)=@_; + my $opensslcnf=""; + if($root==0) + { + $opensslcnf="/etc/ssl/openssl-$templates{$template}"; + } + elsif($root==1) + { + $opensslcnf="/etc/ssl/class3-$templates{$template}"; + } + elsif($root==2) + { + $opensslcnf="/etc/ssl/class3s-$templates{$template}"; + } + else + { + $opensslcnf="/etc/ssl/root$root/$templates{$template}"; + } + # Check that the config file exists + Error "Config file does not exist: $opensslcnf!" unless (-f $opensslcnf); + + return $opensslcnf; +} + +sub CreateWorkspace() +{ + mkdir "$work",0700; + my $id = (new File::CounterFile "./$work/.counter", "0")->inc; + mkdir "$work/".int($id/1000),0700; + mkdir "$work/".int($id/1000)."/".($id%1000),0700; + my $wid="$work/".int($id/1000)."/".($id%1000); + SysLog "Creating Working directory: $wid\n"; + return $wid; +} + + +sub SignX509($$$$$$$$) +{ + my ($root,$template,$hash,$days,$spkac,$request,$san,$subject)=@_; + + my $wid=CreateWorkspace(); + + my $opensslcnf=X509ConfigFile($root,$template); + + print "Subject: $subject\n"; + print "SAN: $san\n"; + + + $subject=~ s/\\x([A-F0-9]{2})/pack("C", hex($1))/egi; + $san=~ s/\\x([A-F0-9]{2})/pack("C", hex($1))/egi; + + Error "Invalid characters in SubjectAltName!\n" if($san=~m/[ \n\r\t\x00"'\\]/); + Error "Invalid characters in Subject: ".hexdump($subject)." - $subject\n" if($subject=~m/[\n\r\t\x00"'\\]/); + + print "Subject: $subject\n"; + print "SAN: $san\n"; + + my $extfile=""; + if($templates{$template}=~m/server/) #??? Should we really do that for all and only for server certs? + { + open OUT,">$wid/extfile"; + print OUT "basicConstraints = critical, CA:FALSE\n"; + print OUT "extendedKeyUsage = clientAuth, serverAuth, nsSGC, msSGC\n"; + print OUT "keyUsage = digitalSignature, keyEncipherment\n"; + print OUT "authorityInfoAccess = OCSP;URI:$OCSPUrl\n"; + print OUT "subjectAltName = $san\n" if(length($san)); + close OUT; + $extfile=" -extfile $wid/extfile "; + } + + my $cmd=($request=~m/SPKAC\s*=/)?"-spkac":"-subj '$subject' -in"; + + #my $cmd=$spkac?"-spkac":"-subj '$subject' -in"; + + + if(open OUT,">$wid/request.csr") + { + print OUT $request; + close OUT; + + my $do = `$opensslbin ca $hashes{$hash} -config $opensslcnf $cmd $wid/request.csr -out $wid/output.crt -days $days -key test -batch $extfile 2>&1`; + + SysLog $do; + + + if(open IN,"<$wid/output.crt") + { + undef $/; + my $content=<IN>; + close IN; + $/="\n"; + + $content=~s/^.*-----BEGIN/-----BEGIN/s; + SysLog "Antworte...\n"; + Response($ver,1,0,0,$content,"",""); + SysLog "Done.\n"; + if(!$debug) + { + unlink "$wid/output.crt"; + unlink "$wid/request.csr"; + unlink "$wid/extfile"; + } + } + else + { + Error("Could not read the resulting certificate.\n"); + } + } + else + { + Error("Could not save request.\n"); + } + unlink "$wid"; +} + +sub SignOpenPGP +{ + my ($root,$template,$hash,$days,$spkac,$request,$san,$subject)=@_; + + my $wid=CreateWorkspace(); + + if(! -f "secring$root.gpg") + { + Error "Root Key not found: secring$root.gpg !\n"; + } + + copy("secring$root.gpg","$wid/secring.gpg"); + copy("pubring$root.gpg","$wid/pubring.gpg"); + + my $keyid=undef; + + Error "Invalid characters in SubjectAltName!\n" if($san=~m/[ \n\r\t\x00"'\\]/); + Error "Invalid characters in Subject!\n" if($subject=~m/[ \n\r\t\x00"'\\;]/); + + + if(open OUT,">$wid/request.key") + { + print OUT $request; + close OUT; + + +#!!!! ?!? + #my $homedir=-w "/root/.gnupg" ? "/root/.gnupg":"$wid/"; + my $homedir="$wid/"; + + { + SysLog "Running GnuPG in $homedir...\n"; + my ($stdin,$stdout,$stderr) = (IO::Handle->new(),IO::Handle->new(),IO::Handle->new()); + + + SysLog "Importiere $gpgbin --no-tty --homedir $homedir --import $wid/request.key\n"; + + my $pid = open3($stdin,$stdout,$stderr, "$gpgbin --no-tty --homedir $homedir --command-fd 0 --status-fd 1 --logger-fd 2 --with-colons --import $wid/request.key"); + + if (!$pid) { + Error "Cannot fork GnuPG."; + } + $/="\n"; + while(<$stdout>) + { + SysLog "Received from GnuPG: $_\n"; + if(m/^\[GNUPG:\] GOT_IT/) + { + } + elsif(m/^\[GNUPG:\] GET_BOOL keyedit\.setpref\.okay/) + { + print $stdin "no\n"; + } + elsif(m/^\[GNUPG:\] ALREADY_SIGNED/) + { + } + elsif(m/^\[GNUPG:\] GOOD_PASSPHRASE/) + { + } + elsif(m/^\[GNUPG:\] KEYEXPIRED/) + { + } + elsif(m/^\[GNUPG:\] SIGEXPIRED/) + { + } + elsif(m/^\[GNUPG:\] IMPORT_OK/) + { + } + elsif(m/^\[GNUPG:\] IMPORT_RES/) + { + } + elsif(m/^\[GNUPG:\] IMPORTED ([0-9A-F]{16})/) + { + Error "More than one OpenPGP sent at once!" if(defined($keyid)); + $keyid=$1; + } + elsif(m/^\[GNUPG:\] NODATA/) + { + # To crash or not to crash, thats the question. + } + else + { + Error "ERROR: UNKNOWN $_\n"; + } + + } + + while(<$stderr>) + { + + SysLog "Received from GnuPG on stderr: $_\n"; + + if(m/^key ([0-9A-F]{8}): public key/) + { + #$keyid=$1; + } + } + + waitpid($pid,0); + + } + + Error "No KeyID found!" if(!defined($keyid)); + + + SysLog "Running GnuPG to Sign...\n"; + + { + my ($stdin,$stdout,$stderr) = (IO::Handle->new(),IO::Handle->new(),IO::Handle->new()); + + + + $ENV{'LANG'}=""; + + my $line="$gpgbin --no-tty --default-key $gpgID --homedir $homedir --default-cert-expire $days"."d --ask-cert-expire --cert-policy-url $CPSUrl --command-fd 0 --status-fd 1 --logger-fd 2 --sign-key $keyid "; + SysLog($line."\n"); + + my $pid = open3($stdin,$stdout,$stderr,$line); + + if (!$pid) { + Error "Cannot fork GnuPG."; + } + SysLog "Got PID $pid\n"; + while(<$stdout>) + { + SysLog "Received from GnuPG: $_\n"; + if(m/^\[GNUPG:\] GET_BOOL keyedit\.sign_all\.okay/) + { + print $stdin "yes\n"; + } + elsif(m/^\[GNUPG:\] GOT_IT/) + { + } + elsif(m/^\[GNUPG:\] GET_BOOL sign_uid\.okay/) + { + print $stdin "yes\n"; + } + elsif(m/^\[GNUPG:\] GET_BOOL sign_uid\.expire_okay/) + { + print $stdin "yes\n"; + } + elsif(m/^\[GNUPG:\] GET_LINE siggen\.valid\s?$/) + { + print $stdin "$days\n"; + } + elsif(m/^\[GNUPG:\] GET_LINE sign_uid\.expire\s?$/) + { + print "DETECTED: Do you want your signature to expire at the same time? (Y/n) -> yes\n"; + print $stdin "no\n"; + } + elsif(m/^\[GNUPG:\] GET_BOOL sign_uid\.replace_expired_okay/) + { + print $stdin "yes\n"; + } + elsif(m/^\[GNUPG:\] GET_BOOL sign_uid\.dupe_okay/) + { + print $stdin "yes\n"; + } + elsif(m/^\[GNUPG:\] GET_BOOL keyedit\.sign_revoked\.okay/) + { + print $stdin "no\n"; + } + elsif(m/^\[GNUPG:\] GET_BOOL sign_uid\.revoke_okay/) + { + print $stdin "no\n"; + } + elsif(m/^\[GNUPG:\] GET_BOOL sign_uid\.expired_okay/) + { + print "The key has already expired!!!\n"; + print $stdin "no\n"; + } + elsif(m/^\[GNUPG:\] GET_BOOL sign_uid\.nosig_okay/) + { + print $stdin "no\n"; + } + elsif(m/^\[GNUPG:\] GET_BOOL sign_uid\.v4_on_v3_okay/) + { + print $stdin "no\n"; + } + elsif(m/^\[GNUPG:\] GET_BOOL keyedit\.setpref\.okay/) + { + print $stdin "no\n"; + } + elsif(m/^\[GNUPG:\] ALREADY_SIGNED/) + { + } + elsif(m/^\[GNUPG:\] GOOD_PASSPHRASE/) + { + } + elsif(m/^\[GNUPG:\] KEYEXPIRED/) + { + } + elsif(m/^\[GNUPG:\] SIGEXPIRED/) + { + } + elsif(m/^\[GNUPG:\] NODATA/) + { + # To crash or not to crash, thats the question. + } + else + { + Error "ERROR: UNKNOWN $_\n"; + } + } + + while(<$stderr>) + { + + SysLog "Received from GnuPG on stderr: $_\n"; + + if(m/^key ([0-9A-F]{8}): public key/) + { + #$keyid=$1; + } + } + + + + waitpid($pid,0); + + } + +#$do = `( $extras echo "365"; echo "y"; echo "2"; echo "y")|$gpgbin --no-tty --default-key gpg@cacert.org --homedir $homedir --batch --command-fd 0 --status-fd 1 --cert-policy-url http://www.cacert.org/index.php?id=10 --ask-cert-expire --sign-key $row[email] 2>&1`; + + SysLog "Running GPG to export...\n"; + + my $do = `$gpgbin --no-tty --homedir $homedir --export --armor $keyid > $wid/result.key`; + SysLog $do; + $do = `$gpgbin --no-tty --homedir $homedir --batch --yes --delete-key $keyid 2>&1`; + SysLog $do; + + if(open IN,"<$wid/result.key") + { + undef $/; + my $content=<IN>; + close IN; + $/="\n"; + + $content=~s/^.*-----BEGIN/-----BEGIN/s; + SysLog "Antworte...\n"; + Response($ver,2,0,0,$content,"",""); + SysLog "Done.\n"; + + if(!$debug) + { + unlink "$wid/request.key"; + unlink "$wid/result.key"; + } + + } + else + { + SysLog "NO Resulting Key found!"; + } + } + else + { + Error "Kann Request nicht speichern!\n"; + } + + unlink("$wid/secring.gpg"); + unlink("$wid/pubring.gpg"); + unlink("$wid"); +} + +sub RevokeX509 +{ + my ($root,$template,$hash,$days,$spkac,$request,$san,$subject)=@_; + + Error "Invalid characters in SubjectAltName!\n" if($san=~m/[ \n\r\t\x00"'\\]/); + Error "Invalid characters in Hash!\n" if(! $subject=~m/^[0-9a-fA-F]+$/); + + SysLog "Widerrufe $PkiSystems{$_[0]}\n"; + SysLog "Aktueller Hash vom Webserver: $subject\n"; + + my $iscurrent=0; + + $currenthash{$root}=sha1_hex(readfile("revoke-root$root.crl")); + + print "Aktueller Hash vom Signingserver: $currenthash{$root}\n"; + + if($subject eq $currenthash{$root}) + { + print "Hash matches current CRL.\n"; + print "Deleting old CRLs...\n"; + foreach (<currentcrls/$root/*>) + { + if($_ ne "currentcrls/$root/$subject.crl") + { + print "Deleting $_\n"; + unlink $_ ; + } + } + print "Done with deleting old CRLs.\n"; + $iscurrent=1; + } + + my $wid=CreateWorkspace(); + + my $opensslcnf=X509ConfigFile($root,$template); + + if(open OUT,">$wid/request.crt") + { + print OUT $request; + close OUT; + + my $do = `$opensslbin ca $hashes{$hash} -config $opensslcnf -key test -batch -revoke $wid/request.crt > /dev/null 2>&1`; + $do = `$opensslbin ca $hashes{$hash} -config $opensslcnf -key test -batch -gencrl -crldays 7 -crlexts crl_ext -out $wid/cacert-revoke.crl > /dev/null 2>&1`; + $do = `$opensslbin crl -inform PEM -in $wid/cacert-revoke.crl -outform DER -out $wid/revoke.crl > /dev/null 2>&1`; + unlink "$wid/cacert-revoke.crl"; + + if(open IN,"<$wid/revoke.crl") + { + undef $/; + my $content=<IN>; + close IN; + $/="\n"; + unlink "$wid/revoke.crl"; + + mkdir "currentcrls/$root"; + my $newcrlname="currentcrls/$root/".sha1_hex($content).".crl"; + open OUT,">$newcrlname"; + print OUT $content; + close OUT; + + if($iscurrent) + { + SysLog "Schicke aktuelles Delta...\n"; + system "xdelta delta revoke-root$root.crl $newcrlname delta$root.diff"; + Response($ver,2,0,0,readfile("delta$root.diff"),"",""); + #Response($ver,2,0,0,$content,"",""); + } + else + { + if(-f "currentcrls/$root/$subject.crl") + { + SysLog "Schicke altes Delta...\n"; + system "xdelta delta currentcrls/$root/$subject.crl $newcrlname delta$root.diff"; + + Response($ver,2,0,0,readfile("delta$root.diff"),"",""); + #Response($ver,2,0,0,$content,"",""); + } + else + { + SysLog "Out of Sync! Sending empty CRL...\n"; + Response($ver,2,0,0,"","",""); # CRL !!!!!!!!! + } + } + + open OUT,">revoke-root$root.crl"; + print OUT $content; + close OUT; + + + SysLog "Done.\n"; + } + } + unlink "$wid"; +} + + +sub analyze($) +{ + SysLog "Analysiere ...\n"; + #SysLog hexdump($_[0])."\n"; + + my @fields=unpack3array(substr($_[0],3,-9)); + Error "Wrong number of parameters: ".scalar(@fields)."\n" if(scalar(@fields)!=4); + + SysLog "Header: ".hexdump($fields[0])."\n"; + my @bytes=unpack("C*",$fields[0]); + + Error "Header too short!\n" if(length($fields[0])<3); + + Error "Version mismatch. Server does not support version $bytes[0], server only supports version $ver!\n" if($bytes[0]!=$ver); + + Error "Header has wrong length: ".length($fields[0])."!\n" if(length($fields[0])!=9); + + if($bytes[1] == 0) # NUL Request + { + SysLog "NUL Request detected.\n"; + if($fields[1]) + { + open OUT,">timesync.sh"; + print OUT "date -u $fields[1]\n"; + print OUT "hwclock --systohc\n"; + close OUT; + } + Response($ver,0,0,0,"","",""); + } + elsif($bytes[1]==1) # Sign Request + { + SysLog "SignRequest detected...\n"; + CheckSystem($bytes[2],$bytes[3],$bytes[4],$bytes[5]); + if($bytes[2]==1) + { + SignX509($bytes[3],$bytes[4],$bytes[5],($bytes[6]<<8)+$bytes[7], $bytes[8],$fields[1],$fields[2],$fields[3]); + } + elsif($bytes[2]==2) + { + SignOpenPGP($bytes[3],$bytes[4],$bytes[5],($bytes[6]<<8)+$bytes[7], $bytes[8],$fields[1],$fields[2],$fields[3]); + } + } + elsif($bytes[1]==2) # Revocation Request + { + SysLog "Revocation Request ...\n"; + CheckSystem($bytes[2],$bytes[3],$bytes[4],$bytes[5]); + if($bytes[2]==1) + { + RevokeX509($bytes[3],$bytes[4],$bytes[5],($bytes[6]<<8)+$bytes[7], $bytes[8],$fields[1],$fields[2],$fields[3]); + } + } + else + { + Error "Unknown command\n"; + } + +} + +SysLog "Server started. Waiting 5 minutes for contact from client ...\n"; + +#When started, we wait for 5 minutes for the client to connect: +my @ready=$sel->can_read($starttime); + + +my $count=0; + +#As soon as the client connected successfully, the client has to send a request faster than every 10 seconds +while(@ready = $sel->can_read(15) && -f "./server.pl-active") +{ + my $data=""; + #my $length=read SER,$data,1; + + #SysLog "Data: ".hexdump($data)."\n"; + + #Receive(); + + $data=Receive(); + SysLog "Analysing ...\n"; + analyze($data); + +# if($data eq "\x02") +# { +# #SysLog "Start empfangen, sende OK\n"; +# SendIt("\x10"); +# +# my $block=""; +# my $blockfinished=0; +# my $tries=10000; +# +# while(!$blockfinished) +# { +# Error "Tried reading too often\n" if(($tries--)<=0); +# +# $data=""; +# @ready = $sel->can_read(2); +# $length=read SER,$data,100; +# if($length) +# { +# $block.=$data; +# } +# $blockfinished=defined(unpack3(substr($block,0,-1)))?1:0; +# } +# #SysLog "Block done: ".hexdump($block)."\n"; +# if(CheckCRC($block)) +# { +# SendIt("\x10"); +# analyze($block); +# } +# else +# { +# Error "CRC Error\n"; +# } +# } +# else +# { +# Error "Error: Wrong Startbyte!\n"; +# } + + $count++; + + SysLog "$count requests processed. Waiting on next request ...\n"; + +} + + +Error "Timeout! No data from client anymore!\n"; + diff --git a/locale/ru.po b/locale/ru.po index 5a6f2f9..0eb9323 100644 --- a/locale/ru.po +++ b/locale/ru.po @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: de\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2005-01-09 08:25:26+0000\n" -"PO-Revision-Date: 2010-08-05 13:29:09+0000\n" +"PO-Revision-Date: 2011-01-26 10:47:42+0000\n" "Last-Translator: Someone <someone@someisp.com>\n" "Language-Team: <de@li.org>\n" "MIME-Version: 1.0\n" @@ -23,7 +23,7 @@ msgstr "Показано %s сm #: www/account/43.php:71 #, php-format msgid "%s's Account Details" -msgstr "ÃçÕâÝÐï ×Ðߨáì %s" +msgstr "Учетная запись %s" #: www/account/32.php:21 #, php-format @@ -65,7 +65,7 @@ msgstr "Заверитель C #: www/wot/4.php:17 msgid "A trusted 3rd party is simply someone in your country that is responsible for witnessing signatures and ID documents. This role is covered by many different titles such as public notary, justice of the peace and so on. Other people are allowed to be authoritative in this area as well, such as bank managers, accountants and lawyers." -msgstr "´ÞÒÕàÕÝÝÞÕ âàÕâìÕ ÛØæÞ - íâÞ âÞâ, ÚâÞ Ò ²ÐèÕÙ áâàÐÝÕ ØÜÕÕâ ßàÐÒÞ ßÞÔâÒÕàÖÔÐâì ßÞÔÛØÝÝÞáâì ßÞÔߨáÕÙ Ø ÔÞÚãÜÕÝâÞÒ. ÂÐÚãî äãÝÚæØî ÒëßÞÛÝïîâ, ÝÐßàØÜÕà, ÝÞâÐàØãáë. ¸ÝÞÓÔÐ ßÞÔÞÑÝëÕ ßÞÛÝÞÜÞçØï ØÜÕîâ ÜÕÝÕÔÖÕàë ÑÐÝÚÞÒ, ÑãåÓÐÛâÕàÐ, Ð âÐÚÖÕ îàØáâë." +msgstr "Доверенное третье лицо - это тот, кто в Вашей стране имеет право подтверждать подлинность подписей и документов. Такую функцию выполняют, например, нотариусы. Иногда подобные полномочия имеют менеджеры банков, бухгалтера, а также юристы." #: www/account/38.php:21 www/index/13.php:21 msgid "ANY amount will be appreciated - the more funding CAcert receives, the sooner it can achieve the goals of the community." @@ -114,7 +114,7 @@ msgstr "Админы" #: www/wot/3.php:28 msgid "After the meeting, visit the CAcert Web site's make an Assurance page and:" -msgstr "¿ÞáÛÕ ÒáâàÕçØ ×ÐÙÔØâÕ ÝÐ áÐÙâ CAcert, áâàÐÝØæÐ "·ÐÒÕàØâì ßÞÛì×ÞÒÐâÕÛï", Ø áÔÕÛÐÙâÕ áÛÕÔãîéØÕ èÐÓØ:" +msgstr "После встречи зайдите на сайт CAcert, страница 'Заверить пользователя', и сделайте следующие шаги:" #: www/help/3.php:44
msgid "After your certificate has been emailed to you, follow this process to install the certificate." @@ -185,15 +185,15 @@ msgstr "Вы действительно хотите удалить %s из чи #: www/help/2.php:22 msgid "As anyone who has received an email containing a virus from a strange address knows, emails can be easily spoofed. The identity of the sender is very easy to forge via email. Thus a great advantage is that digital signing provides a means of ensuring that an email is really from the person you think it is. If everyone digitally signed their emails, it would be much easier to know whether an email is legitimate and unchanged and to the great relief of many, spamming would be much easier to control, and viruses that forge the sender's address would be obvious and therefore easier to control." -msgstr "ºÐÖÔëÙ, ÚâÞ ÚÞÓÔÐ-ÛØÑÞ ßÞÛãçÐÛ ßÞ íÛÕÚâàÞÝÝÞÙ ßÞçâÕ ×ÐàÐÖÕÝÝÞÕ ÒØàãáÞÜ ßØáìÜÞ á ßÞÔÞ×àØâÕÛìÝëÜ ÞÑàÐâÝëÜ ÐÔàÕáÞÜ, ×ÝÐÕâ, ÚÐÚ ÛÕÓÚÞ ßÞÔÔÕÛëÒÐâì âÐÚØÕ áÞÞÑéÕÝØï. ÂÐÚ ÖÕ ÛÕÓÚÞ ßÞÔÔÕÛÐâì Ø ÐÔàÕá áÐÜÞÓÞ ÞâßàÐÒØâÕÛï. ÆØäàÞÒÐï ßÞÔߨáì ßàÕÔÞáâÐÒÛïÕâ ×ÐÜÕçÐâÕÛìÝãî ÒÞ×ÜÞÖÝÞáâì ãÑÕÔØâìáï, çâÞ ßØáìÜÞ ÔÕÙáâÒØâÕÛìÝÞ ÑëÛÞ ÝÐߨáÐÝÞ çÕÛÞÒÕÚÞÜ, çìÕ ØÜï ãÚÐ×ÐÝÞ Ò ÞÑàÐâÝÞÜ ÐÔàÕáÕ. µáÛØ Ñë ÚÐÖÔëÙ ßÞÔߨáëÒÐÛ áÒÞØ íÛÕÚâàÞÝÝëÕ áÞÞÑéÕÝØï æØäàÞÒÞÙ ßÞÔߨáìî, ÑëÛÞ Ñë ÓÞàÐ×ÔÞ ÛÕÓçÕ ÞßàÕÔÕÛïâì Øå ßÞÔÛØÝÞáâì, çâÞ Ò áÒÞî ÞçÕàÕÔì ÞÑÛÕÓçØÛÞ Ñë ×ÐÔÐçã ÚÞÝâàÞÛï ×Ð áßÐÜÞÜ Ø ÒØàãáÐÜØ, ßÞÔÔÕÛëÒÐîéØÜØ ÐÔàÕá ÞâßàÐÒØâÕÛï." +msgstr "Каждый, кто когда-либо получал по электронной почте зараженное вирусом письмо с подозрительным обратным адресом, знает, как легко подделывать такие сообщения. Так же легко подделать и адрес самого отправителя. Цифровая подпись предоставляет замечательную возможность убедиться, что письмо действительно было написано человеком, чье имя указано в обратном адресе. Если бы каждый подписывал свои электронные сообщения цифровой подписью, было бы гораздо легче определять их подлиность, что в свою очередь облегчило бы задачу контроля за спамом и вирусами, подделывающими адрес отправителя." #: www/wot/6.php:24 msgid "Assurance Confirmation" -msgstr "ÃÒÕÔÞÜÛÕÝØÕ Þ ·ÐÒÕàÕÝØØ" +msgstr "Уведомление о Заверении" #: www/account/43.php:146 www/wot/3.php:44 msgid "Assurance Points" -msgstr "¿ãÝÚâë ÔÞÒÕàØï" +msgstr "Пункты доверия" #: www/account/43.php:225 www/wot/10.php:52 msgid "Assurance Points You Issued" @@ -201,19 +201,19 @@ msgstr "Выданные ба& #: www/stats.php:51 msgid "Assurances Made" -msgstr "²áÕÓÞ ×ÐÒÕàÕÝØÙ" +msgstr "Всего заверений" #: includes/account_stuff.php:182 www/wot/5.php:19 msgid "Assure Someone" -msgstr "·ÐÒÕàÕÝØÕ ÛØçÝÞáâØ" +msgstr "Заверение личности" #: www/index/0.php:60 msgid "Assured client certificates" -msgstr "¿ÞÔߨáÐÝÝëÕ ÚÛØÕÝâáÚØÕ áÕàâØäØÚÐâë" +msgstr "Подписанные клиентские сертификаты" #: www/index/0.php:90 msgid "Assured server certificates" -msgstr "¿ÞÔߨáÐÝÝëÕ áÕàÒÕàÝëÕ áÕàâØäØÚÐâë" +msgstr "Подписанные серверные сертификаты" #: pages/index/0.php:25 msgid "For CAcert Community Members" @@ -229,11 +229,11 @@ msgstr "Стать членом ассоциации CAcert" #: www/index/0.php:100 msgid "Become an assurer in CAcert Web of Trust" -msgstr "ÁâÐâì ×ÐÒÕàØâÕÛÕÜ Ò ÁÕâØ ÔÞÒÕàØï CAcert" +msgstr "Стать заверителем в Сети доверия CAcert" #: includes/account_stuff.php:182 msgid "Becoming an Assurer" -msgstr "ºÐÚ áâÐâì ·ÐÒÕàØâÕÛÕÜ" +msgstr "Как стать Заверителем" #: pages/account/10.php:34 msgid "Paste your CSR(Certificate Signing Request) below..." @@ -241,7 +241,7 @@ msgstr "Вставьте ваш CSR (Certificate Signing Request, запрос #: www/account/0.php:24 msgid "Before you can start issuing certificates for your website, irc server, smtp server, pop3, imap etc you will need to add domains to your account under the domain menu. You can also remove domains from here as well. Once you've added a domain you are free then to go into the Server Certificate section and start pasting CSR into the website and have the website return you a valid certificate for up to 2 years if you have 50 trust points, or 6 months for no trust points." -msgstr "¿àÕÖÔÕ çÕÜ ²ë áÜÞÖÕâÕ áÞ×ÔÐÒÐâì áÕàâØäØÚÐâë ÔÛï áÒÞÕÓÞ áÕàÒÕàÐ (www, irc, smtp, pop3, imap Ø â.Ô.), ²ÐÜ ÝÕÞÑåÞÔØÜÞ ÔÞÑÐÒØâì Ò áÒÞî ãçÕâÝãî ×Ðߨáì, ßãÝÚâ ÜÕÝî "´ÞÜÕÝë", áÞÞâÒÕâáâÒãîéØÕ ÔÞÜÕÝë. ´ÞÜÕÝë âÐÚÖÕ ÜÞÖÝÞ ãÔÐÛïâì. ´ÞÑÐÒØÒ ÔÞÜÕÝ, ²ë áÜÞÖÕâÕ ßÕàÕÙâØ Ò áÕÚæØî "ÁÕàÒÕàÝëÕ áÕàâØäØÚÐâë". ÇâÞÑë ßÞÛãçØâì ßÞÔߨáÐÝÝëÙ áÕàâØäØÚÐâ, ²ë ÔÞÛÖÝë ÑãÔÕâÕ ÒÝÐçÐÛÕ áÚÞߨàÞÒÐâì Ò áÞÞâÒÕâáâÒãîéÕÕ ßÞÛÕ ×ÐßàÞá ßÞÔßØáØ (CSR). ¸ÜÕï 50 ßãÝÚâÞÒ ÔÞÒÕàØï, ²ë ßÞÛãçØâÕ áÕàâØäØÚÐâ á 2-ÛÕâÝØÜ áàÞÚÞÜ ÓÞÔÝÞáâØ, ÕáÛØ ÖÕ ã ²Ðá ÝÕâ ßãÝÚâÞÒ ÔÞÒÕàØï, áÕàâØäØÚÐâ ÑãÔÕ ÓÞÔÕÝ Ò âÕçÕÝØÕ 6 ÜÕáïæÕÒ." +msgstr "Прежде чем Вы сможете создавать сертификаты для своего сервера (www, irc, smtp, pop3, imap и т.д.), Вам необходимо добавить в свою учетную запись, пункт меню 'Домены', соответствующие домены. Домены также можно удалять. Добавив домен, Вы сможете перейти в секцию 'Серверные сертификаты'. Чтобы получить подписанный сертификат, Вы должны будете вначале скопировать в соответствующее поле запрос подписи (CSR). Имея 50 пунктов доверия, Вы получите сертификат с 2-летним сроком годности, если же у Вас нет пунктов доверия, сертификат буде годен в течение 6 месяцев." #: www/account/15.php:32 www/account/23.php:32 msgid "Below is your Server Certificate" @@ -341,7 +341,7 @@ msgstr "Отмена" #: includes/general_stuff.php:58 msgid "Cert Login" -msgstr "²åÞÔ ßàØ ßÞÜÞéØ áÕàâØäØÚÐâÐ" +msgstr "Вход по сертификату" #: www/account/19.php:101 www/account/6.php:99 msgid "Certificate Installation Complete!" @@ -357,7 +357,7 @@ msgstr "Процесс установки сертификата на IIS 5.0" #: includes/general_stuff.php:65 msgid "CAcert Logos" -msgstr "" +msgstr "Логотипы CAcert" #: includes/account.php:669 includes/account.php:1066 #, php-format @@ -420,15 +420,15 @@ msgstr "" #: www/index/0.php:50 msgid "Client certificates (un-assured)" -msgstr "ºÛØÕÝâáÚØÕ áÕàâØäØÚÐâë (ÝÕ×ÐÒÕàÕÝÝëÕ)" +msgstr "Клиентские сертификаты (незаверенные)" #: www/account/3.php:63 msgid "Code Signing" -msgstr "ÁÕàâØäØÚÐâë ÔÛï ßÞÔßØáØ ÚÞÔÐ" +msgstr "Сертификаты для подписи кода" #: www/index/0.php:70 msgid "Code signing certificates" -msgstr "ÁÕàâØäØÚÐâë ÔÛï ßÞÔßØáØ ÚÞÔÐ" +msgstr "Сертификаты для подписи кода" #: www/account/24.php:41 www/account/27.php:44 www/account/32.php:27 #: www/account/33.php:43 @@ -602,7 +602,7 @@ msgstr "Таким образом, цифровая подпись дает бе #: www/index/0.php:73 msgid "Digitally sign code, web applets, installers, etc. including your name and location in the certificates." -msgstr "" +msgstr "Подпишите цифровой подписью код, веб-апплеты, установщики и т. д., включив ваше имя и местоположение в сертификаты." #: www/wot/8.php:22 msgid "Directory Listing" @@ -661,7 +661,7 @@ msgstr "Электропочта" #: includes/account_stuff.php:149 www/account/2.php:18 msgid "Email Accounts" -msgstr "°ÔàÕáÐ email" +msgstr "Адреса email" #: www/account/0.php:21 msgid "Email Accounts and Client Certificates" @@ -672,7 +672,7 @@ msgstr "" #: www/index/5.php:21 www/gpg/2.php:21 www/disputes/1.php:23 www/help/4.php:29
msgid "Email Address" -msgstr "°ÔàÕá email" +msgstr "Адрес email" #: www/index.php:244 msgid "Email Address was blank" @@ -680,7 +680,7 @@ msgstr "Адрес электропочты был пуст" #: www/wot/1.php:122 msgid "Email Assurer" -msgstr "½ÐߨáÐâì ߨáìÜÞ ·ÐÒÕàØâÕÛî" +msgstr "Написать письмо Заверителю" #: includes/account.php:51 includes/account.php:391 msgid "Email Probe" @@ -712,7 +712,7 @@ msgstr "Введите название организации: это долж #: www/wot/3.php:30 msgid "Enter the applicant's email address;" -msgstr "²ÒÕÔØâÕ ÐÔàÕá email ×ÐïÒØâÕÛï;" +msgstr "Введите адрес email заявителя;" #: www/help/3.php:33
msgid "Enter the geographical details" @@ -775,7 +775,7 @@ msgstr "Найти пользователя по домену" #: includes/account_stuff.php:182 msgid "Find an Assurer" -msgstr "½ÐÙâØ ·ÐÒÕàØâÕÛï" +msgstr "Найти Заверителя" #: www/help/3.php:41
msgid "Finish up and exit IIS Certificate Wizard" @@ -796,7 +796,7 @@ msgstr "Имя и/или фамилия были пусты." #: www/help/6.php:1 msgid "Firstly you need to join CAcert to do that go:" -msgstr "Прежде всего вам нужно присоединиться к CAcert, чтобы это сделать, перейдите:" +msgstr "Прежде всего вам нужно вступить в CAcert, чтобы это сделать, перейдите:" #: www/help/4.php:1 msgid "Firstly you will need to run the following command, preferably in secured directory no one else can access, however protecting your private keys is beyond the scope of this document." @@ -820,7 +820,7 @@ msgstr "" #: www/index/0.php:19 msgid "For years we've all been charged high amounts of money to pay for security that doesn't and shouldn't cost the earth." -msgstr "´ÞÛÓØÕ ÓÞÔë ÒáÕÜ ÝÐÜ ßàØåÞÔØÛÞáì ÒëÚÛÐÔëÒÐâì ÞÓàÞÜÝëÕ áãÜÜë ×Ð ÑÕ×ÞßÐáÝÞáâì Ò ¸ÝâÕàÝÕâÕ, ÚÞâÞàÐï ÝÐ áÐÜÞÜ ÔÕÛÕ ÝÕ ÜÞÖÕâ Ø ÔÞÛÖÝÐ áâÞØâì íâØå ÔÕÝÕÓ." +msgstr "Долгие годы всем нам приходилось выкладывать огромные суммы за безопасность в Интернете, которая на самом деле не может и должна стоить этих денег." #: www/account/12.php:78 www/account/18.php:84 www/account/22.php:80 #: www/account/5.php:84 @@ -958,7 +958,7 @@ msgstr "" #: pages/index/0.php:22 #, php-format msgid "If you want to use certificates issued by CAcert, read the CAcert %s Root Distribution License %s." -msgstr "" +msgstr "Если вы хотите использовать сертификаты, выпущенные CAcert, прочтите CAcert %s Root Distribution License %s." #: www/account/10.php:18 www/account/20.php:18 www/account/3.php:18 msgid "I hereby represent that I am fully authorized by the owner of the information contained in the CSR sent to CAcert Inc. to apply for an Digital Certificate for secure and authenticated electronic transactions. I understand that a digital certificate serves to identify the Subscriber for the purposes of electronic communication and that the management of the private keys associated with such certificates is the responsibility of the subscriber's technical staff and/or contractors." @@ -1004,10 +1004,6 @@ msgstr "" msgid "If we change our Privacy Policy, we will post those changes on www.CAcert.org. If we decide to use personally identifiable information in a manner different from that stated at the time it was collected, we will notify users via email. Users will be able to opt out of any new use of their personal information." msgstr "" -#: www/wot/7.php:140 -msgid "If you are happy with this location, click 'Make my location here' to update your location details." -msgstr "" - #: www/account/40.php:41 www/index/11.php:41 msgid "If you have questions, comments or otherwise and information you're sending to us contains sensitive details, you should use the contact form below. Due to the large amounts of support emails we receive, sending general questions via this contact form will generally take longer then using the support mailing list. Also sending queries in anything but english could cause delays in supporting you as we'd need to find a translator to help." msgstr "" @@ -1055,7 +1051,7 @@ msgstr "" #: www/index/0.php:23 msgid "Inclusion into mainstream browsers!" -msgstr "¸ÝâÕÓàÐæØï á ÞáÝÞÒÝëÜØ ÑàÐã×ÕàÐÜØ!" +msgstr "Интеграция с основными браузерами!" #: www/index.php:195 msgid "Incorrect email address and/or Pass Phrase." @@ -1124,7 +1120,7 @@ msgstr "Присоединиться" #: includes/general_stuff.php:52 msgid "Join CAcert.org" -msgstr "Присоединиться к CAcert" +msgstr "Вступить в CAcert" #: www/account/17.php:21 www/account/4.php:21 msgid "Key Strength:" @@ -1175,10 +1171,6 @@ msgstr "Местоположение (напр., город) [Сидней]:" msgid "Location" msgstr "Местоположение" -#: www/wot/7.php:123 -msgid "Location Name" -msgstr "" - #: www/index/4.php:23 www/index/4.php:34 msgid "Login" msgstr "Войти" @@ -1219,10 +1211,6 @@ msgstr "Проба почты" msgid "Make Default" msgstr "Установить по умолчанию" -#: www/wot/7.php:138 -msgid "Make my location here" -msgstr "Переместить меня сюда" - #: www/index/51.php:21 msgid "Many are just the users of the system who by just making use of the project contribute to the wider community by word-of-mouth." msgstr "" @@ -1320,7 +1308,7 @@ msgstr "Мои настройки языка" #: includes/account_stuff.php:146 www/wot/8.php:19 msgid "My Listing" -msgstr "¼Þï ßÞרæØï Ò ÚÐâÐÛÞÓÕ" +msgstr "Моя позиция в каталоге" #: includes/account_stuff.php:146 msgid "My Location" @@ -1351,7 +1339,7 @@ msgstr "Новый админ %s" #: www/stats.php:71 www/stats.php:107 msgid "New Assurers" -msgstr "½ÞÒëÕ ·ÐÒÕàØâÕÛØ" +msgstr "Новые Заверители" #: www/stats.php:72 www/stats.php:108 msgid "New Certificates" @@ -1359,16 +1347,16 @@ msgstr "Новые сертификаты" #: www/account/16.php:18 www/account/3.php:27 msgid "New Client Certificate" -msgstr "½ÞÒëÙ ÚÛØÕÝâáÚØÙ áÕàâØäØÚÐâ" +msgstr "Новый клиентский сертификат" #: www/account/28.php:22 #, php-format msgid "New Domain for %s" -msgstr "½ÞÒëÙ ÔÞÜÕÝ %s" +msgstr "Новый домен %s" #: includes/account_stuff.php:177 www/account/24.php:18 msgid "New Organisation" -msgstr "½ÞÒÐï ÞàÓÐÝØ×ÐæØï" +msgstr "Новая организация" #: www/account/14.php:25 www/index/6.php:43 msgid "New Pass Phrase" @@ -1485,7 +1473,7 @@ msgstr "Количество дней" #: pages/gpg/2.php:23 msgid "Key ID" -msgstr "" +msgstr "Идентификатор ключа" #: www/help/2.php:30 msgid "Of the biggest reasons why most people haven't started doing this, apart from being slightly technical, the reason is financial. You need your own certificate to digitally sign your emails. And the Certificate Authorities charge money to provide you with your own certificate. Need I say more. Dosh = no thanks I'd rather walk home. But organisations are emerging to provide the common fool in the street with a free alternative. However, given the obvious lack of funding and the emphasis on money to get enrolled, these organisations do not yet have the money to get themselves established as trusted Certificate Authorities. Thus it is currently down to trust. The decision of the individual to trust an unknown Certificate Authority. However once you have put your trust in a Certificate Authority you can implicitly trust the digital signatures generated using their certificates. In other words, if you trust (and accept the certificate of) the Certificate Authority that I use, you can automatically trust my digital signature. Trust me!" @@ -1517,7 +1505,7 @@ msgstr "" #: www/account/43.php:39 www/account/49.php:39 msgid "Only the first 100 rows are displayed." -msgstr "" +msgstr "Отображаются только первые 100 строк." #: www/wot/6.php:61 msgid "Only tick the next box if the Assurance was face to face." @@ -1817,7 +1805,7 @@ msgstr "" #: www/index/0.php:65 msgid "Same as above, plus you must get a minimum of 50 assurance points by meeting with one or more assurers from the CAcert Web of Trust, who verify your identity using your government issued photo identity documents." -msgstr "ÂÞ ÖÕ, çâÞ Ø ÒëèÕ; ÚàÞÜÕ âÞÓÞ, ²ë ÔÞÛÖÝë ßÞÛãçØâì ÝÕ ÜÕÝÕÕ 50 ßãÝÚâÞÒ ÔÞÒÕàØï ã ÞÔÝÞÓÞ Ø× ×ÐÒÕàØâÕÛÕÙ, çÛÕÝÞÒ ÁÕâØ ÔÞÒÕàØï CAcert, ÚÞâÞàëÙ ×ÐÒÕàØâ ²Ðèã ÛØçÝÞáâì ÝÐ ÞáÝÞÒÐÝØØ ÔÞÚãÜÕÝâÞÒ ÓÞáãÔÐàáâÒÕÝÝÞÓÞ ÞÑàÐ׿Ð, ØÜÕîéØÜØ äÞâÞÓàÐäØî." +msgstr "То же, что и выше; кроме того, Вы должны получить не менее 50 пунктов доверия у одного из заверителей, членов Сети доверия CAcert, который заверит Вашу личность на основании документов государственного образца, имеющими фотографию." #: www/index/0.php:93 msgid "Same as above." @@ -1835,14 +1823,6 @@ msgstr "" msgid "Screenshot of IIS 5.0" msgstr "Снимок экрана с IIS 5.0" -#: www/wot/7.php:127 -msgid "Search" -msgstr "Искать" - -#: www/wot/7.php:120 -msgid "Search this region" -msgstr "Искать в этой области" - #: www/account/43.php:163 msgid "Secondary Emails" msgstr "Дополнительная электропочта" @@ -2008,7 +1988,7 @@ msgstr "Суффикс" #: includes/account_stuff.php:190 msgid "System Admin" -msgstr "" +msgstr "Системный администратор" #: www/help/6.php:7 msgid "System will send you an email with a link in it, you just open the link in a webbrowser." @@ -2165,7 +2145,7 @@ msgstr "" #: includes/account.php:1735
#, php-format
msgid "The password for %s has been updated successfully in the system." -msgstr "" +msgstr "Пароль для %s был успешно обновлён в системе." #: www/index/0.php:21 msgid "The primary goals are:" @@ -2275,7 +2255,7 @@ msgstr "" #: www/index/0.php:24 msgid "To provide a trust mechanism to go with the security aspects of encryption." -msgstr "¾ÑÕáßÕçÕÝØÕ ÜÕåÐÝØ×ÜÐ ÔÞÒÕàØï, ÔÞßÞÛÝïîéÕÓÞ ×ÐÛÞÖÕÝÝãî Ò èØäàÞÒÐÝØÕ ÑÕ×ÞßÐáÝÞáâì." +msgstr "Обеспечение механизма доверия, дополняющего заложенную в шифрование безопасность." #: www/account/43.php:217 www/account/43.php:252 www/wot/10.php:44 msgid "Total Points" @@ -2283,11 +2263,11 @@ msgstr "Всего баллов" #: www/wot/10.php:79 msgid "Total Points Issued" -msgstr "¾ÑéÕÕ ÚÞÛØçÕáâÒÞ ßãÝÚâÞÒ" +msgstr "Общее количество пунктов" #: www/account/24.php:29 www/account/27.php:32 msgid "Town/Suburb" -msgstr "³ÞàÞÔ/¿àØÓÞàÞÔ" +msgstr "Город/Пригород" #: includes/general_stuff.php:76 msgid "Translations" @@ -2299,7 +2279,7 @@ msgstr "" #: includes/account_stuff.php:205 includes/general.php:23 www/wot/4.php:15
msgid "Trusted Third Parties" -msgstr "´ÞÒÕàÕÝÝëÕ âàÕâìØ ÛØæÐ" +msgstr "Доверенные третьи лица" #: www/help/2.php:60 msgid "U.K. e-mail snooping bill passed" @@ -2410,7 +2390,7 @@ msgstr "электропочта, напр., john.family@gmail.com" #: www/capnew.php:1331 msgid "date of assurance" -msgstr "" +msgstr "Новая организация" #: www/capnew.php:1025 msgid "certificate" @@ -2431,11 +2411,7 @@ msgstr "Ваш домен был проверен. Теперь вы может #: www/wot.php:439 msgid "Your email has been sent to" -msgstr "" - -#: pages/wot/7-old.php:174 -msgid "Your details have been updated." -msgstr "" +msgstr "Ваше сообщение отправлено." #: www/account/39.php:42 www/index/10.php:42 msgid "We don't use cookies to store personal information, we do use sessions, and if cookies are enabled, the session will be stored in a cookie, and we do not look for cookies, apart from the session id. However if cookies are disabled then no information will be stored on or looked for on your computer." @@ -2571,7 +2547,7 @@ msgstr "" #: includes/general_stuff.php:112 includes/tverify_stuff.php:78 msgid "Further Information" -msgstr "ÃÒÕÔÞÜÛÕÝØÕ Þ ·ÐÒÕàÕÝØØ" +msgstr "Уведомление о Заверении" #: www/index/7.php:26 msgid "Has been involved in translating this website into Portuguese" @@ -2611,7 +2587,7 @@ msgstr "Ваша страна, штат и город." #: www/index/0.php:53 msgid "You can send digitally signed/encrypted emails; others can send encrypted emails to you." -msgstr "²ë áÜÞÖÕâÕ ×ÐèØäàÞÒëÒÐâì áÒÞØ íÛÕÚâàÞÝÝëÕ áÞÞÑéÕÝØï Ø/ØÛØ áâÐÒØâì ÝÐ ÝØå æØäàÞÒãî ßÞÔߨáì; ÔàãÓØÕ áÜÞÓãâ ÒëáëÛÐâì ×ÐèØäàÞÒÐÝÝëÕ áÞÞÑéÕÝØï ²ÐÜ." +msgstr "Вы сможете зашифровывать свои электронные сообщения и/или ставить на них цифровую подпись; другие смогут высылать зашифрованные сообщения Вам." #: includes/account.php:68 msgid "You currently don't have access to the email address you selected, or you haven't verified it yet." @@ -2818,7 +2794,7 @@ msgstr "" #: www/src-lic.php:20 msgid "CAcert Source License" -msgstr "³àãßßÐ ßÞÔÔÕàÖÚØ CAcert" +msgstr "Лицензия на исходный код CAcert" #: www/index/7.php:25 msgid "Did a substantial amount of work on the previous website design, and has been floating about on the mailing lists often giving invaluble insight into what we should be doing better." @@ -2897,7 +2873,7 @@ msgstr "" #: www/wot.php:49 msgid "A reminder notice has been sent." -msgstr "²ÐèÕ áÞÞÑéÕÝØÕ ÞâßàÐÒÛÕÝÞ." +msgstr "Ваше сообщение отправлено." #: includes/account_stuff.php:214 www/disputes/0.php:19 msgid "Abuses" @@ -2909,7 +2885,7 @@ msgstr "" #: www/wot/10.php:19 msgid "Assurer Ranking" -msgstr "·ÐÒÕàØâÕÛØ" +msgstr "Заверители" #: www/index/16.php:24 www/index/3.php:24 msgid "CAcert's GPG Key" @@ -2935,7 +2911,7 @@ msgstr "" #: www/account/52.php:42 msgid "Current Points" -msgstr "¿ãÝÚâë ÔÞÒÕàØï" +msgstr "Пункты доверия" #: www/disputes/6.php:16 #, php-format @@ -2961,7 +2937,7 @@ msgstr "Чтобы получить рабочий пароль, мы предл #: www/disputes/2.php:20 msgid "Dispute Domain" -msgstr "´ÞÑÐÒØâì ÔÞÜÕÝ" +msgstr "Добавить домен" #: www/disputes.php:286 www/disputes.php:420 msgid "Dispute Probe" @@ -2986,11 +2962,11 @@ msgstr "" #: www/disputes.php:377 www/disputes.php:422 www/disputes/2.php:15 #: www/disputes/6.php:15 www/disputes/6.php:20 msgid "Domain Dispute" -msgstr "´ÞÜÕÝë" +msgstr "Домены" #: www/disputes.php:399 msgid "Domain Dispute!" -msgstr "´ÞÜÕÝë" +msgstr "Домены" #: www/disputes.php:428 msgid "Domain and Email Disputes" @@ -3011,7 +2987,7 @@ msgstr "" #: www/disputes.php:268 www/disputes.php:288 www/disputes/1.php:15 #: www/disputes/4.php:15 www/disputes/4.php:20 msgid "Email Dispute" -msgstr "½ÐߨáÐâì ߨáìÜÞ ·ÐÒÕàØâÕÛî" +msgstr "Написать письмо Заверителю" #: www/disputes/1.php:27 www/disputes/2.php:28 msgid "File Dispute" @@ -3096,7 +3072,7 @@ msgstr "" #: www/disputes.php:300 msgid "Not a valid Domain. Can't continue." -msgstr "¿ÞÛÕ "CommonName" ßãáâÞ. ½Õ ÜÞÓã ßàÞÔÞÛÖÐâì." +msgstr "Поле 'CommonName' пусто. Не могу продолжать." #: www/account/52.php:40 msgid "Notary URL" @@ -3104,11 +3080,11 @@ msgstr "" #: includes/account_stuff.php:198 msgid "Organisation Assurance" -msgstr "½ÞÒÐï ÞàÓÐÝØ×ÐæØï" +msgstr "Новая организация" #: www/wot/11.php:19 msgid "Organisational Assurance" -msgstr "½ÞÒÐï ÞàÓÐÝØ×ÐæØï" +msgstr "Новая организация" #: www/wot/11.php:22
msgid "Organisation Title" @@ -3128,11 +3104,11 @@ msgstr "" #: www/account/52.php:43 msgid "Potential Points" -msgstr "¾ÑéÕÕ ÚÞÛØçÕáâÒÞ ßãÝÚâÞÒ" +msgstr "Общее количество пунктов" #: www/account/52.php:38 msgid "Primary email address" -msgstr "°ÔàÕá email" +msgstr "Адрес email" #: www/wot/1.php:133 msgid "Email Me" @@ -3152,11 +3128,11 @@ msgstr "" #: www/account/52.php:36 msgid "Request Details" -msgstr "¾ÑÞ ÜÝÕ" +msgstr "Обо мне" #: www/index/0.php:75 msgid "Same as above plus get 100 assurance points by meeting with multiple assurers from the CAcert Web of Trust, who verify your identity using your government issued photo identity documents." -msgstr "ÂÞ ÖÕ, çâÞ Ø ÒëèÕ; ÚàÞÜÕ âÞÓÞ, ²ë ÔÞÛÖÝë ßÞÛãçØâì 100 ßãÝÚâÞÒ ÔÞÒÕàØï, ÒáâàÕâØÒèØáì á ÝÕáÚÞÛìÚØÜØ ×ÐÒÕàØâÕÛïÜØ, çÛÕÝÐÜØ ÁÕâØ ÔÞÒÕàØï CAcert, ÚÞâÞàëÕ ×ÐÒÕàïâ ²Ðèã ÛØçÝÞáâì ÝÐ ÞáÝÞÒÐÝØØ ÔÞÚãÜÕÝâÞÒ ÓÞáãÔÐàáâÒÕÝÝÞÓÞ ÞÑàÐ׿Ð, ØÜÕîéØÜØ äÞâÞÓàÐäØî." +msgstr "То же, что и выше; кроме того, Вы должны получить 100 пунктов доверия, встретившись с несколькими заверителями, членами Сети доверия CAcert, которые заверят Вашу личность на основании документов государственного образца, имеющими фотографию." #: www/wot/5.php:20 msgid "Send reminder notice" @@ -3241,7 +3217,7 @@ msgstr "" #: www/account/43.php:101 msgid "Tverify Account" -msgstr "¼Þï ãçÕâÝÐï ×Ðߨáì" +msgstr "Моя учетная запись" #: www/account/11.php:48 msgid "Unable to continue as no valid commonNames or subjectAltNames were present on your certificate request." @@ -3265,11 +3241,11 @@ msgstr "" #: www/wot/2.php:26 msgid "Upon receiving your documents you will be notified, and points will be added to your account." -msgstr "¼ë áÞÞÑéØÜ ²ÐÜ Þ ßÞÛãçÕÝØØ ÔÞÚãÜÕÝâÞÒ Ø ßÞßÞÛÝØÜ ²Ðè áçÕâ áÞÞâÒÕâáâÒãîéØÜ ÚÞÛØçÕáâÒÞÜ ßãÝÚâÞÒ." +msgstr "Мы сообщим Вам о получении документов и пополним Ваш счет соответствующим количеством пунктов." #: www/account/12.php:18 www/account/5.php:18 msgid "View all certificates" -msgstr "½ÞÒëÕ áÕàâØäØÚÐâë" +msgstr "Новые сертификаты" #: www/disputes/1.php:20 msgid "Which Email?" @@ -3297,7 +3273,7 @@ msgstr "" #: includes/account.php:2010 msgid "You have already voted on this request." -msgstr "²ë ÝÕ ØÜÕÕâÕ áîÔÐ ÔÞáâãßÐ." +msgstr "Вы не имеете сюда доступа." #: www/disputes.php:416 #, php-format @@ -3682,7 +3658,7 @@ msgstr "" #: includes/general_stuff.php:81 msgid "Certificate Login" -msgstr "" +msgstr "Вход по сертификату" #: pages/account/40.php:23 pages/index/11.php:23 msgid "Before contacting us, be sure to read the information on our official and unofficial HowTo and FAQ pages." @@ -3808,7 +3784,7 @@ msgstr "" #: includes/general_stuff.php:80 msgid "Net Cafe Login" -msgstr "" +msgstr "Вход из интернет-кафе" #: www/verify.php:78 www/verify.php:136 msgid "Notify support about this" @@ -3824,7 +3800,7 @@ msgstr "" #: includes/general_stuff.php:78 msgid "Password Login" -msgstr "" +msgstr "Вход по паролю" #: includes/account.php:1080 msgid "Password Update Notification" @@ -3885,7 +3861,7 @@ msgstr "Вы новичок в CAcert?" #: includes/general_stuff.php:74 msgid "Community Agreement" -msgstr "" +msgstr "Соглашение Сообщества" #: pages/index/0.php:34 msgid "Do you want to help CAcert?" @@ -4011,7 +3987,7 @@ msgstr "" #: pages/wot/6.php:165 msgid "I confirm this Assurance" -msgstr "" +msgstr "Новая организация" #: pages/wot/6.php:150 msgid "I have read and understood the Assurance Policy and the Assurance Handbook and am making this Assurance subject to and in compliance with the policy and handbook." @@ -4039,7 +4015,7 @@ msgstr "" #: pages/wot/6.php:154 msgid "Assurance Handbook" -msgstr "" +msgstr "Всего заверений" #: pages/index/5.php:24 msgid "Email Address (primary)" @@ -4047,7 +4023,7 @@ msgstr "Основная электропочта" #: pages/account/56.php:18 msgid "List of Organisation Assurers:" -msgstr "" +msgstr "Новая организация" #: pages/index/1.php:24 msgid "Note: White spaces at the beginning and end of a password will be removed." @@ -4055,7 +4031,7 @@ msgstr "" #: pages/wot/6.php:154 msgid "Assurance Policy" -msgstr "" +msgstr "Пункты доверия" #: www/cap.php:264 msgid "I, the Assurer, hereby confirm that I have verified the Member according to CAcert Assurance Policy." @@ -4072,7 +4048,7 @@ msgstr "CAcert.org" #: www/wot.php:343 msgid "Assurer Challenge" -msgstr "" +msgstr "Заверители" #: www/cap.php:143 msgid "I hereby confirm that the information stated above is both true and correct, and request the CAcert Assurer (identified below) to verify me according to CAcert Assurance Policy." @@ -4088,19 +4064,19 @@ msgstr "" #: pages/account/18.php:51 pages/account/5.php:57 msgid "No client certificates are currently listed." -msgstr "" +msgstr "Клиентские сертификаты (незаверенные)" #: pages/index/4.php:59 msgid "If you want to use certificate login instead of username+password, please" -msgstr "" +msgstr "Если вы хотите входить по сертификату вместо логина и пароля, пожалуйста" #: pages/index/0.php:129 msgid "If you want to participate in CAcert.org, have a look" -msgstr "" +msgstr "Если вы хотите участвовать в CAcert.org, взгляните на" #: pages/account/43.php:109 msgid "Are you sure you want to modify this DOB and/or last name?" -msgstr "" +msgstr "Вы действительно хотите удалить %s и все сертификаты, созданные от имени этой организации?" #: pages/account/43.php:412 msgid "Show Assurances the user gave" @@ -4140,11 +4116,11 @@ msgstr "" #: includes/account_stuff.php:220 msgid "Trusted ThirdParties" -msgstr "" +msgstr "Доверенные третьи лица" #: www/index.php:445 msgid "You have to agree to the CAcert Community agreement." -msgstr "" +msgstr "Вам придется согласиться с Соглашением Сообщества CAcert." #: www/cap.html.php:81 msgid "yyyy-dd-mm" @@ -4196,7 +4172,7 @@ msgstr "" #: www/coap.html.php:110 msgid "country code" -msgstr "" +msgstr "Страна" #: www/cap.html.php:240 www/coap.html.php:343 msgid "generate PDF file" @@ -4208,11 +4184,11 @@ msgstr "" #: www/coap.html.php:227 msgid "and organisation stamp" -msgstr "" +msgstr "Редактировать данные Организации" #: www/coap.html.php:166 msgid "Organisation Administrator(s)" -msgstr "" +msgstr "Новая организация" #: www/cap.html.php:240 www/coap.html.php:343 msgid "Submit the form" @@ -4597,7 +4573,7 @@ msgstr "" #: pages/index/0.php:26 #, php-format msgid "Have you read the CAcert %sCommunity Agreement%s yet?" -msgstr "" +msgstr "Вы уже прочитали %sСоглашение Сообщества%s CAcert?" #: includes/account.php:221 msgid "I didn't receive a valid Certificate Request, please try a different browser." @@ -4606,7 +4582,7 @@ msgstr "" #: pages/index/0.php:17 #, php-format msgid "If you want to have free certificates issued to you, join the %s CAcert Community %s." -msgstr "" +msgstr "Если вы хотите получить бесплатные сертификаты, выпущенные для вас, присоединяйтесь к %s сообществу CAcert %s." #: pages/index/16.php:19 pages/index/3.php:19 #, php-format @@ -4772,7 +4748,7 @@ msgstr "" #: pages/account/3.php:84 msgid "Enable certificate login with this certificate" -msgstr "" +msgstr "Разрешить вход по сертификату с этим сертификатом" #: pages/account/5.php:94 msgid "Hide old certificates" @@ -4808,7 +4784,7 @@ msgstr "" #: pages/index/4.php:20 msgid "Warning! You've attempted to log into the system with a client certificate, but the login failed due to the certificate being expired, revoked, disabled for certificate login, or simply not valid for this site. You can login using your Email/Pass Phrase to get a new certificate, by clicking on 'Normal Login' to the right of your screen." -msgstr "" +msgstr "Внимание! Вы попытались войти в систему с клиентским сертификатом, но вход не удался из-за того, что срок действия сертификата истек, сертификат отозван, по нему запрещен вход или он просто неверен для этого сайта. Вы можете войти с вашими электропочтой и ключевой фразой, чтобы получить новый сертификат, щелкнув по ссылке 'обычный вход' справа." #: pages/account/6.php:124 msgid "Your certificate:" @@ -4836,7 +4812,7 @@ msgstr "" #: pages/index/1.php:18 msgid "By joining CAcert and becoming a Member, you agree to the CAcert Community Agreement. Please take a moment now to read that and agree to it; this will be required to complete the process of joining." -msgstr "" +msgstr "Вступая в CAcert и становясь его членом, вы соглашаетесь с Соглашением Сообщества CAcert. Пожалуйста, прочтите его сейчас и согласитесь с ним; это необходимо для завершения процесса вступления." #: pages/index/21.php:22 msgid "If not then select this PayPal button to establish annual payment of your US$10 membership fee." @@ -4873,7 +4849,7 @@ msgstr "" #: pages/index/1.php:132 msgid "I agree to the terms and conditions of the CAcert Community Agreement" -msgstr "" +msgstr "Я согласен с условиями и положениями Соглашения Сообщества CAcert" #: includes/account.php:34 msgid "Several CAcert Services are currently unavailable. Please try again later." @@ -4937,7 +4913,7 @@ msgstr "" #: www/coapnew.php:1186 msgid "Organisation's Statement" -msgstr "" +msgstr "Organisation's Statement" #: www/coapnew.php:1098 msgid "Other registered trade names of the organisation. (comma separated)" @@ -4957,7 +4933,7 @@ msgstr "" #: www/coapnew.php:1271 msgid "Organisation Assurer's signature" -msgstr "" +msgstr "Подпись Заверителя организации" #: www/coapnew.php:1061 msgid "Organisation Identity Information" @@ -4965,11 +4941,11 @@ msgstr "" #: www/coapnew.php:1241 msgid "Organisation Assurer's Statement" -msgstr "" +msgstr "Новая организация" #: www/coapnew.php:1253 msgid "Organisation Assurer" -msgstr "" +msgstr "Заверитель организации" #: www/capnew.php:1218 msgid "One is advised for a mutual assurance. If done so the exact full name, email address and date of birth of the Assurer is also required on a form. In this case the Assuree assures the Assurer as well. In this case two copies are needed of the CAP form." @@ -4989,7 +4965,7 @@ msgstr "По указанию руководителя" #: www/capnew.php:1223 www/coapnew.php:1248 msgid "On mutual assurance" -msgstr "" +msgstr "On mutual assurance" #: www/capnew.php:1278 msgid "On mutual assurance provide email address of Assurer." @@ -4997,7 +4973,7 @@ msgstr "" #: www/coapnew.php:1070 msgid "On organisation identity information" -msgstr "" +msgstr "По данным критериям (%s) пользователей не найдено" #: www/capnew.php:1006 msgid "On the assuree full name" @@ -5009,11 +4985,11 @@ msgstr "" #: www/coapnew.php:1075 msgid "Name of the organisation" -msgstr "" +msgstr "Наименование организации" #: www/verify.php:36 msgid "Email has been sent." -msgstr "" +msgstr "Ваше сообщение отправлено." #: includes/general.php:772 includes/general.php:779 msgid "CSRF Hash is wrong. Please try again." @@ -5034,11 +5010,11 @@ msgstr "" #: www/cap.html.php:188 msgid "Assurer's email address" -msgstr "" +msgstr "Адрес email" #: www/capnew.php:1178 www/coapnew.php:1196 msgid "Make sure you have read and agreed with the CAcert Community Agreement" -msgstr "" +msgstr "Убедитесь, что вы прочли и согласились с Соглашением Сообщества CAcert" #: www/capnew.php:1025 msgid "ID card" @@ -5074,7 +5050,7 @@ msgstr "" #: www/disputes.php:333 msgid "You aren't allowed to dispute your own domains. Can't continue." -msgstr "" +msgstr "Поле 'CommonName' пусто. Не могу продолжать." #: www/coapnew.php:1211 msgid "I am duly authorised to act on behalf of the organisation, I grant operational certificate administrative privileges to the specified Organisation Administrator and, I request the Organisation Assurer to verify the organisation information according to the Assurance Policies." @@ -5086,7 +5062,7 @@ msgstr "" #: www/capnew.php:1186 www/coapnew.php:1209 msgid "I agree to the CAcert Community Agreement." -msgstr "" +msgstr "Я согласен с Соглашением Сообщества CAcert." #: www/coapnew.php:1017 msgid "Full exact name of the individual." @@ -5168,7 +5144,7 @@ msgstr "" #: www/coapnew.php:748 msgid "CAcert Organisation Assurance Programme" -msgstr "" +msgstr "CAcert Organisation Assurance Programme" #: www/capnew.php:807 www/coapnew.php:828 msgid "CAcert's Root Certificate sha1 fingerprints" @@ -5180,11 +5156,11 @@ msgstr "" #: www/capnew.php:842 msgid "CAcert CAP form" -msgstr "" +msgstr "CAcert CAP form" #: www/coapnew.php:863 msgid "CAcert COAP form" -msgstr "" +msgstr "CAcert COAP form" #: www/coap.html.php:335 msgid "Applicable Organisation Policy documents and information can be attached to the pdf output file. Mark those documents, which need to be attached" @@ -5192,7 +5168,7 @@ msgstr "" #: www/capnew.php:1216 msgid "Assurer's Statement" -msgstr "" +msgstr "Заверение личности" #: www/capnew.php:847 msgid "Assurer may leave a copy of the details with the Applicant, and may complete and sign her final form after the meeting." diff --git a/scripts/28au-ate-melbourne-email.txt b/scripts/28au-ate-melbourne-email.txt new file mode 100644 index 0000000..5685d52 --- /dev/null +++ b/scripts/28au-ate-melbourne-email.txt @@ -0,0 +1,17 @@ +Hi there from CAcert Education Team! + +Just a reminder for the Assurer Training Event, this Thursday evening: + +- Time: 6:00pm to 10:00pm +- Date: Thursday 16th December. +- Location: Readify offices in Docklands, Melbourne + +- Info: http://wiki.cacert.org/events/20101216Melbourne + +RSVP to events@cacert.org: I will attend ATE-Melbourne so we know to let +you in the door! + +Bring your ID docs. Essential info for the Assurer, highly recommended +event. + +See you there, iang. diff --git a/scripts/28au-ate-melbourne-mail.php.txt b/scripts/28au-ate-melbourne-mail.php.txt new file mode 100644 index 0000000..9466d32 --- /dev/null +++ b/scripts/28au-ate-melbourne-mail.php.txt @@ -0,0 +1,156 @@ +#!/usr/bin/php -q +<? /* + LibreSSL - CAcert web application + Copyright (C) 2004-2009 CAcert Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +*/ + include_once("../includes/mysql.php"); + + $lines = ""; + $fp = fopen("28au-ate-melbourne-email.txt", "r"); + while(!feof($fp)) + { + $line = trim(fgets($fp, 4096)); + $lines .= wordwrap($line, 75, "\n")."\n"; + } + fclose($fp); + + +// $locid = intval($_REQUEST['location']); +// $maxdist = intval($_REQUEST['maxdist']); + $maxdist = 50; + + +// location location.ID +// verified: 29.4.09 u.schroeter +// $locid = 7902857; // Paris +// $locid = 238568; // Bielefeld +// $locid = 715191; // Hamburg +// $locid = 1102495; // London +// $locid = 520340; // Duesseldorf +// $locid = 1260319; // Muenchen +// $locid = 606058; // Frankfurt +// $locid = 1775784; // Stuttgart +// $locid = 228950; // Berlin +// $locid = 606058; // Frankfurt +// $locid = 599389; // Flensburg +// $locid = 61065; // Amsterdam, Eemnes +// $locid = 228950; // Berlin + +// Software Freedom Day 19. Sept 2009 +// $locid = 715191; // Hamburg + +// LISA2009 Baltimore, 1.11.2009 +// $locid = 2138880; // Baltimore (Baltimore (city)), Maryland, United States +// $city = "Baltimore, MD - Nov. 3rd 2009"; + +// OpenSourceTreffen-Muenchen, 20.11.2009 +// $locid = 1260319; // Muenchen +// $city = "Muenchen - 20. Nov 2009"; + +// BLIT2009, Brandenburger Linux-Infotag, 21.11.2009 +// $locid = 1486658; // Potsdam +// $eventname = "Brandenburger Linux-Infotag (BLIT2009)"; +// $city = "Potsdam - 21. Nov 2009"; + +// ATE-Goteborg, 16.12.2009 +// $locid = 664715; // Goteborg, Vastra Gotaland, Sweden +// $eventname = "ATE-Goteborg"; +// $city = "Goteborg - Dec 16th 2009"; + +// Assurance Event Mission Hills CA, 15.01.2010 +// $locid = 2094781; // Mission Hills (Los Angeles), California, United States +// $eventname = "Assurance Event"; +// $city = "Mission Hills CA - Jan 15th 2010"; + +// Assurance Event OSD Copenhagen DK, 5.03.2010 +// $locid = 423655; // Copenhagen, Kobenhavn*, Denmark +// $eventname = "Assurance Event OpenSource-Days 2010"; +// $city = "Copenhagen DK - March 5th/6th 2010"; + +// SCALE 8x Los Angeles, CA, Feb 19-21 2010 +// $locid = 2093625; // Copenhagen, Kobenhavn*, Denmark +// $eventname = "SCALE 8x 2010"; +// $city = "Los Angeles, CA - February 19-21 2010"; + +// ATE Sydney, AU, Mar 24 2010 +// $locid = 2257312; // Sydney, New South Wales, Australia +// $eventname = "ATE-Sydney"; +// $city = "March 24, 2010"; + +// ATE Essen, DE, Sept 28 2010 +// $locid = 572764; // Essen, Nordrhein-Westfalen, Germany +// $eventname = "ATE-Essen"; +// $city = "September 28, 2010"; + +// ATE Canberra, AU, Oct 12 2010 +// $locid = 2255408; // Canberra, Australian Capital Territory, Australia +// $eventname = "ATE-Canberra"; +// $city = "Tuesday 12th October"; + +// BLIT2010, 7. Brandenburger Linux-Infotag, 6.11.2010 +// $locid = 1486658; // Potsdam, Brandenburg, Germany +// $eventname = "7. Brandenburger Linux-Infotag (BLIT2010)"; +// $city = "Potsdam - 6. Nov 2010"; + +// LISA2010, Nov 7-12, 2010 +// $locid = 2096344; // San Jose (Santa Clara), California, United States +// $eventname = "LISA2010"; +// $city = "San Jose, CA - Nov 7-12, 2010"; + +// ATE Melbourne, AU, Dec 16 2010 + $locid = 2262656; // Melbourne, VIC, Australia + $eventname = "ATE-Melbourne"; + $city = "Thursday 16th December"; + + + + $query = "select * from `locations` where `id`='$locid'"; + $loc = mysql_fetch_assoc(mysql_query($query)); + + $query = "SELECT ROUND(6378.137 * ACOS(0.9999999*((SIN(PI() * $loc[lat] / 180) * SIN(PI() * `locations`.`lat` / 180)) + + (COS(PI() * $loc[lat] / 180 ) * COS(PI() * `locations`.`lat` / 180) * + COS(PI() * `locations`.`long` / 180 - PI() * $loc[long] / 180)))), -1) AS `distance`, sum(`points`) as pts, `users`.* + FROM `locations` + inner join `users` on `users`.`locid` = `locations`.`id` + inner join `alerts` on `users`.`id`=`alerts`.`memid` + inner join `notary` on `users`.`id`=`notary`.`to` + WHERE (`alerts`.`general`=1 OR `alerts`.`country`=1 OR `alerts`.`regional`=1 OR `alerts`.`radius`=1) + GROUP BY `users`.`id` + HAVING `distance` <= '$maxdist' + ORDER BY `distance` "; + echo $query; + + // comment next line when starting to send mail not only to me + // $query = "select * from `users` where `email` like 'cacerttest%'"; + + $res = mysql_query($query); + $xrows = mysql_num_rows($res); + + while($row = mysql_fetch_assoc($res)) + { + // uncomment next line to send mails ... + sendmail($row['email'], "[CAcert.org] $eventname - $city", $lines, "events@cacert.org", "", "", "CAcert Events Organisation", "returns@cacert.org", 1); + } + // 1x cc to events.cacert.org + sendmail("events@cacert.org", "[CAcert.org] $eventname - $city", $lines, "events@cacert.org", "", "", "CAcert Events Organisation", "returns@cacert.org", 1); + // 1x mailing report to events.cacert.org + sendmail("events@cacert.org", "[CAcert.org] $eventname - $city Report", "invitation sent to $xrows recipients.", "support@cacert.org", "", "", "CAcert Events Organisation", "returns@cacert.org", 1); + + // 1x mailing report to Arbitrator of case http://wiki.cacert.org/wiki/Arbitrations/a20090525.1 + sendmail("p.dunkel@cacert.org", "[CAcert.org] $eventname - $city Report", "invitation sent to $xrows recipients.", "support@cacert.org", "", "", "CAcert Events Organisation", "returns@cacert.org", 1); + + echo "invitation sent to $xrows recipients.\n"; +?> diff --git a/scripts/29au-ate-brisbane-email.txt b/scripts/29au-ate-brisbane-email.txt new file mode 100644 index 0000000..71ab3f0 --- /dev/null +++ b/scripts/29au-ate-brisbane-email.txt @@ -0,0 +1,38 @@ +CAcert Assurer Training Event -- Brisbane +:::::::::::::::::::::::::::::::::::::::::::::::::: + +Dear Member of the CAcert Community, + +Much has happened during recent years. The old way of orally-transmitted procedures has now gone, and our rules have been cast into formal policies. New procedures (e.g. the Assurer Challenge) and obligations (e.g. in the CAcert Community Agreement) have been approved. + +The Assurer Training Events bring all this to you, the Assurer, and the Community: + +- What do you have to add onto the CAP form if you assure minors ? +- What are the 2 essential CCA points you have to present an Assuree ? +- Who can access the Member's privacy information? + +Answers to these and many other questions typically faced by Assurers are given at the Assurer Training Events (ATEs). Bring your ID for assurances. Especially note that Tverify/Thawte people need to boost up their Assurance Points. + +ATE-Brisbane takes place at: +* Monday, 24th Jan, 2011 +* Z-Block in Queensland's University of Technology (QUT) Gardens Point Campus +* Registration is essential, otherwise you cannot get in! +* 14:20 - 17:30 + +Alternative time/location if you cannot make Monday Afternoon: +* Sunday 23rd Jan Evening +* The Marquis Brisbane, 103 George St. + +For Registration please reply: 'I will attend ATE-Brisbane' + +Don't forget your ID! + +We are looking forward to hearing from you. + + +- Best regards from the Event Team! + + +PS: Contact: events@cacert.org +Location, Transportation and other event details at +https://wiki.cacert.org/events/20110124Brisbane diff --git a/scripts/29au-ate-brisbane-mail.php.txt b/scripts/29au-ate-brisbane-mail.php.txt new file mode 100644 index 0000000..dcb7ccd --- /dev/null +++ b/scripts/29au-ate-brisbane-mail.php.txt @@ -0,0 +1,78 @@ +#!/usr/bin/php -q +<? /* + LibreSSL - CAcert web application + Copyright (C) 2004-2009 CAcert Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +*/ + include_once("../includes/mysql.php"); + + $lines = ""; + $fp = fopen("29au-ate-brisbane-email.txt", "r"); + while(!feof($fp)) + { + $line = trim(fgets($fp, 4096)); + $lines .= wordwrap($line, 75, "\n")."\n"; + } + fclose($fp); + + +// $locid = intval($_REQUEST['location']); +// $maxdist = intval($_REQUEST['maxdist']); + $maxdist = 100; + +// ATE Brisbane, AU, 24 Jan 2011 + $locid = 2258704; // Brisbane, QLD, Australia + $eventname = "ATE-Brisbane"; + $city = "Monday 24th January"; + + + + $query = "select * from `locations` where `id`='$locid'"; + $loc = mysql_fetch_assoc(mysql_query($query)); + + $query = "SELECT ROUND(6378.137 * ACOS(0.9999999*((SIN(PI() * $loc[lat] / 180) * SIN(PI() * `locations`.`lat` / 180)) + + (COS(PI() * $loc[lat] / 180 ) * COS(PI() * `locations`.`lat` / 180) * + COS(PI() * `locations`.`long` / 180 - PI() * $loc[long] / 180)))), -1) AS `distance`, sum(`points`) as pts, `users`.* + FROM `locations` + inner join `users` on `users`.`locid` = `locations`.`id` + inner join `alerts` on `users`.`id`=`alerts`.`memid` + inner join `notary` on `users`.`id`=`notary`.`to` + WHERE (`alerts`.`general`=1 OR `alerts`.`country`=1 OR `alerts`.`regional`=1 OR `alerts`.`radius`=1) + GROUP BY `users`.`id` + HAVING `distance` <= '$maxdist' + ORDER BY `distance` "; + echo $query; + + // comment next line when starting to send mail not only to me + // $query = "select * from `users` where `email` like 'cacerttest%'"; + + $res = mysql_query($query); + $xrows = mysql_num_rows($res); + + while($row = mysql_fetch_assoc($res)) + { + // uncomment next line to send mails ... + sendmail($row['email'], "[CAcert.org] $eventname - $city", $lines, "events@cacert.org", "", "", "CAcert Events Organisation", "returns@cacert.org", 1); + } + // 1x cc to events.cacert.org + sendmail("events@cacert.org", "[CAcert.org] $eventname - $city", $lines, "events@cacert.org", "", "", "CAcert Events Organisation", "returns@cacert.org", 1); + // 1x mailing report to events.cacert.org + sendmail("events@cacert.org", "[CAcert.org] $eventname - $city Report", "invitation sent to $xrows recipients.", "support@cacert.org", "", "", "CAcert Events Organisation", "returns@cacert.org", 1); + + // 1x mailing report to Arbitrator of case http://wiki.cacert.org/wiki/Arbitrations/a20090525.1 + sendmail("p.dunkel@cacert.org", "[CAcert.org] $eventname - $city Report", "invitation sent to $xrows recipients.", "support@cacert.org", "", "", "CAcert Events Organisation", "returns@cacert.org", 1); + echo "invitation sent to $xrows recipients.\n"; + +?> |