sslwrap
上传用户:lyxiangda
上传日期:2007-01-12
资源大小:3042k
文件大小:5k
源码类别:

CA认证

开发平台:

WINDOWS

  1. #!/usr/bin/perl
  2. #
  3. # The contents of this file are subject to the Mozilla Public
  4. # License Version 1.1 (the "License"); you may not use this file
  5. # except in compliance with the License. You may obtain a copy of
  6. # the License at http://www.mozilla.org/MPL/
  7. # Software distributed under the License is distributed on an "AS
  8. # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
  9. # implied. See the License for the specific language governing
  10. # rights and limitations under the License.
  11. # The Original Code is the Netscape security libraries.
  12. # The Initial Developer of the Original Code is Netscape
  13. # Communications Corporation.  Portions created by Netscape are 
  14. # Copyright (C) 1994-2000 Netscape Communications Corporation.  All
  15. # Rights Reserved.
  16. # Contributor(s):
  17. # Alternatively, the contents of this file may be used under the
  18. # terms of the GNU General Public License Version 2 or later (the
  19. # "GPL"), in which case the provisions of the GPL are applicable 
  20. # instead of those above.  If you wish to allow use of your 
  21. # version of this file only under the terms of the GPL and not to
  22. # allow others to use your version of this file under the MPL,
  23. # indicate your decision by deleting the provisions above and
  24. # replace them with the notice and other provisions required by
  25. # the GPL.  If you do not delete the provisions above, a recipient
  26. # may use your version of this file under either the MPL or the
  27. # GPL.
  28. #
  29. @profiles = (
  30. #            "host:port" "policy" "ciphers"   "exp-cipher" "expkeysize"
  31.      [ "cfu:443", "export", "efijlmo", "RC4-40", "40" ],
  32.      [ "hbombsgi:448", "export", "efijlmo", "RC4-40", "40" ],
  33.      [ "hbombsgi:448", "domestic", "abcdefijklmo", "RC4",         "128" ],
  34.      [ "gandalf:5666", "domestic", "abcdefijklmo", "RC4",         "128" ],
  35.      [ "gandalf:5666", "export", "efijlmo", "RC4",         "128" ],
  36.      [ "gandalf:5666", "domestic", "j",         "3DES-EDE-CBC", "168" ],
  37.      [ "gandalf:5666", "domestic", "k",         "DES-CBC",      "56" ],
  38.      [ "gandalf:5666", "export", "l",         "RC4-40",       "40" ],
  39.      [ "gandalf:5666", "export", "efijlmo", "RC4",         "128" ],
  40.      [ "hbombcfu:443", "export", "efijlmo", "RC4",         "128" ],
  41.      
  42.      );
  43. $file = &filename;
  44. open(HTML, ">$file.htm") || die"Cannot open html output filen";
  45. $mutversion = "";
  46. $platform = $ARGV[0];
  47. print HTML 
  48. "<HTML><HEAD>
  49. <TITLE>ssl/sslstrength: Version: $mutversion Platform: $platform Run date mm/dd/yy</TITLE></HEAD><BODY>n";
  50. print HTML 
  51. "<TABLE BORDER=1><TR>
  52. <TD><B>Test Case Number</B></TD>
  53. <TD><B>Program</B></TD>
  54. <TD><B>Description of Test Case</B></TD>
  55. <TD><B>Start date/time<B></TD>
  56. <TD><B>End date/time<B></TD>  
  57. <TD><B>PASS/FAIL</B></TD> 
  58. </TR>n";
  59. $countpass =0;
  60. $countfail =0;
  61. $testnum =0;
  62. for $profile (@profiles) {
  63.     $testnum ++;
  64.     ($host, $policy, $ciphers, $expcipher, $expkeysize) = @$profile;
  65.     
  66.     $cmd = "./sslstrength $host policy=$policy ciphers=$ciphers";
  67.     $starttime = &datestring." ".&timestring;
  68.     print STDERR "$cmdn";
  69.     open(PIPE, "$cmd|") || die "Cannot start sslstrengthn";
  70.     $cipher = "";
  71.     $keysize = "";
  72.     while (<PIPE>) {
  73. chop;
  74. if (/^   Cipher: *(.*)/) {
  75.     $cipher = $1;
  76. }
  77. if (/^   Secret Key Size: (.*)/) {
  78.     $keysize = $1;
  79. }
  80.     }
  81.     close(PIPE);
  82.     $endtime = &datestring." ".&timestring;
  83.     if (( $? != 0) || ($cipher ne $expcipher) || ($keysize ne $expkeysize)) {
  84. $countfail ++;
  85. $passed =0;
  86.     }
  87.     else {
  88. $countpass ++;
  89. $passed =1;
  90.     }
  91. print HTML
  92. "<TR>
  93. <TD><B>$testnum</B></TD>
  94. <TD></TD>
  95. <TD>$cmd</TD>
  96. <TD>$starttime</TD>
  97. <TD>$endtime</TD>
  98. <TD><B>".($passed ? "PASS" : "<FONT COLOR=red>FAIL: return code = 
  99. c=$cipher, ec=$expcipher, s=$keysize, es=$expkeysize.</FONT>")."
  100. </B></TD>
  101. </TR>n";
  102.    
  103. }
  104. print HTML "</table>n";
  105. close(HTML);
  106. open (SUM, ">$file.sum") ||die "couldn't open summary file for writingn";
  107. print SUM <<EOM;
  108. [Status]
  109. mut=SSL
  110. mutversion=1.0
  111. platform=$platform
  112. pass=$countpass
  113. fail=$countfail
  114. knownFail=0
  115. malformed=0
  116. EOM
  117.     close(SUM);
  118. sub timestring
  119. {
  120.     my ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime(time);
  121.     my $string;
  122.     $string = sprintf "%2d:%02d:%02d",$hour, $min, $sec;
  123.     return $string;
  124. }
  125. sub datestring
  126. {
  127.     my ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime(time);
  128.     my $string;
  129.     $string = sprintf "%d/%d/%2d",$mon+1, $mday+1, $year;
  130.     return $string;
  131. }
  132. sub filename
  133. {
  134.     my ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime(time);
  135.     my $string;
  136.     $string = sprintf "%04d%02d%02d",$year+1900, $mon+1, $mday;
  137.     return $string;
  138. }