sslwrap
上传用户:lyxiangda
上传日期:2007-01-12
资源大小:3042k
文件大小:5k
- #!/usr/bin/perl
- #
- # The contents of this file are subject to the Mozilla Public
- # License Version 1.1 (the "License"); you may not use this file
- # except in compliance with the License. You may obtain a copy of
- # the License at http://www.mozilla.org/MPL/
- #
- # Software distributed under the License is distributed on an "AS
- # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
- # implied. See the License for the specific language governing
- # rights and limitations under the License.
- #
- # The Original Code is the Netscape security libraries.
- #
- # The Initial Developer of the Original Code is Netscape
- # Communications Corporation. Portions created by Netscape are
- # Copyright (C) 1994-2000 Netscape Communications Corporation. All
- # Rights Reserved.
- #
- # Contributor(s):
- #
- # Alternatively, the contents of this file may be used under the
- # terms of the GNU General Public License Version 2 or later (the
- # "GPL"), in which case the provisions of the GPL are applicable
- # instead of those above. If you wish to allow use of your
- # version of this file only under the terms of the GPL and not to
- # allow others to use your version of this file under the MPL,
- # indicate your decision by deleting the provisions above and
- # replace them with the notice and other provisions required by
- # the GPL. If you do not delete the provisions above, a recipient
- # may use your version of this file under either the MPL or the
- # GPL.
- #
- @profiles = (
- # "host:port" "policy" "ciphers" "exp-cipher" "expkeysize"
- [ "cfu:443", "export", "efijlmo", "RC4-40", "40" ],
- [ "hbombsgi:448", "export", "efijlmo", "RC4-40", "40" ],
- [ "hbombsgi:448", "domestic", "abcdefijklmo", "RC4", "128" ],
- [ "gandalf:5666", "domestic", "abcdefijklmo", "RC4", "128" ],
- [ "gandalf:5666", "export", "efijlmo", "RC4", "128" ],
- [ "gandalf:5666", "domestic", "j", "3DES-EDE-CBC", "168" ],
- [ "gandalf:5666", "domestic", "k", "DES-CBC", "56" ],
- [ "gandalf:5666", "export", "l", "RC4-40", "40" ],
- [ "gandalf:5666", "export", "efijlmo", "RC4", "128" ],
- [ "hbombcfu:443", "export", "efijlmo", "RC4", "128" ],
-
- );
- $file = &filename;
- open(HTML, ">$file.htm") || die"Cannot open html output filen";
- $mutversion = "";
- $platform = $ARGV[0];
- print HTML
- "<HTML><HEAD>
- <TITLE>ssl/sslstrength: Version: $mutversion Platform: $platform Run date mm/dd/yy</TITLE></HEAD><BODY>n";
- print HTML
- "<TABLE BORDER=1><TR>
- <TD><B>Test Case Number</B></TD>
- <TD><B>Program</B></TD>
- <TD><B>Description of Test Case</B></TD>
- <TD><B>Start date/time<B></TD>
- <TD><B>End date/time<B></TD>
- <TD><B>PASS/FAIL</B></TD>
- </TR>n";
- $countpass =0;
- $countfail =0;
- $testnum =0;
- for $profile (@profiles) {
- $testnum ++;
- ($host, $policy, $ciphers, $expcipher, $expkeysize) = @$profile;
-
- $cmd = "./sslstrength $host policy=$policy ciphers=$ciphers";
- $starttime = &datestring." ".×tring;
- print STDERR "$cmdn";
- open(PIPE, "$cmd|") || die "Cannot start sslstrengthn";
- $cipher = "";
- $keysize = "";
- while (<PIPE>) {
- chop;
- if (/^ Cipher: *(.*)/) {
- $cipher = $1;
- }
- if (/^ Secret Key Size: (.*)/) {
- $keysize = $1;
- }
- }
- close(PIPE);
- $endtime = &datestring." ".×tring;
- if (( $? != 0) || ($cipher ne $expcipher) || ($keysize ne $expkeysize)) {
- $countfail ++;
- $passed =0;
- }
- else {
- $countpass ++;
- $passed =1;
- }
- print HTML
- "<TR>
- <TD><B>$testnum</B></TD>
- <TD></TD>
- <TD>$cmd</TD>
- <TD>$starttime</TD>
- <TD>$endtime</TD>
- <TD><B>".($passed ? "PASS" : "<FONT COLOR=red>FAIL: return code =
- c=$cipher, ec=$expcipher, s=$keysize, es=$expkeysize.</FONT>")."
- </B></TD>
- </TR>n";
-
- }
- print HTML "</table>n";
- close(HTML);
- open (SUM, ">$file.sum") ||die "couldn't open summary file for writingn";
- print SUM <<EOM;
- [Status]
- mut=SSL
- mutversion=1.0
- platform=$platform
- pass=$countpass
- fail=$countfail
- knownFail=0
- malformed=0
- EOM
- close(SUM);
- sub timestring
- {
- my ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime(time);
- my $string;
- $string = sprintf "%2d:%02d:%02d",$hour, $min, $sec;
- return $string;
- }
- sub datestring
- {
- my ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime(time);
- my $string;
- $string = sprintf "%d/%d/%2d",$mon+1, $mday+1, $year;
- return $string;
- }
- sub filename
- {
- my ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime(time);
- my $string;
- $string = sprintf "%04d%02d%02d",$year+1900, $mon+1, $mday;
- return $string;
- }