]> WPIA git - cassiopeia.git/blobdiff - lib/openssl/util/sp-diff.pl
add: execute openssl fetcher to fetch openssl 1.0.1j
[cassiopeia.git] / lib / openssl / util / sp-diff.pl
diff --git a/lib/openssl/util/sp-diff.pl b/lib/openssl/util/sp-diff.pl
new file mode 100755 (executable)
index 0000000..9d6c603
--- /dev/null
@@ -0,0 +1,80 @@
+#!/usr/local/bin/perl
+#
+# This file takes as input, the files that have been output from
+# ssleay speed.
+# It prints a table of the relative differences with %100 being 'no difference'
+#
+
+($#ARGV == 1) || die "$0 speedout1 speedout2\n";
+
+%one=&loadfile($ARGV[0]);
+%two=&loadfile($ARGV[1]);
+
+$line=0;
+foreach $a ("md2","md4","md5","sha","sha1","rc4","des cfb","des cbc","des ede3",
+       "idea cfb","idea cbc","rc2 cfb","rc2 cbc","blowfish cbc","cast cbc")
+       {
+       if (defined($one{$a,8}) && defined($two{$a,8}))
+               {
+               print "type              8 byte%    64 byte%   256 byte%  1024 byte%  8192 byte%\n"
+                       unless $line;
+               $line++;
+               printf "%-12s ",$a;
+               foreach $b (8,64,256,1024,8192)
+                       {
+                       $r=$two{$a,$b}/$one{$a,$b}*100;
+                       printf "%12.2f",$r;
+                       }
+               print "\n";
+               }
+       }
+
+foreach $a     (
+               "rsa  512","rsa 1024","rsa 2048","rsa 4096",
+               "dsa  512","dsa 1024","dsa 2048",
+               )
+       {
+       if (defined($one{$a,1}) && defined($two{$a,1}))
+               {
+               $r1=($one{$a,1}/$two{$a,1})*100;
+               $r2=($one{$a,2}/$two{$a,2})*100;
+               printf "$a bits %%    %6.2f %%    %6.2f\n",$r1,$r2;
+               }
+       }
+
+sub loadfile
+       {
+       local($file)=@_;
+       local($_,%ret);
+
+       open(IN,"<$file") || die "unable to open '$file' for input\n";
+       $header=1;
+       while (<IN>)
+               {
+               $header=0 if /^[dr]sa/;
+               if (/^type/) { $header=0; next; }
+               next if $header;
+               chop;
+               @a=split;
+               if ($a[0] =~ /^[dr]sa$/)
+                       {
+                       ($n,$t1,$t2)=($_ =~ /^([dr]sa\s+\d+)\s+bits\s+([.\d]+)s\s+([.\d]+)/);
+                       $ret{$n,1}=$t1;
+                       $ret{$n,2}=$t2;
+                       }
+               else
+                       {
+                       $n=join(' ',grep(/[^k]$/,@a));
+                       @k=grep(s/k$//,@a);
+                       
+                       $ret{$n,   8}=$k[0];
+                       $ret{$n,  64}=$k[1];
+                       $ret{$n, 256}=$k[2];
+                       $ret{$n,1024}=$k[3];
+                       $ret{$n,8192}=$k[4];
+                       }
+               }
+       close(IN);
+       return(%ret);
+       }
+