Fixups in libssl test harness
authorRichard Levitte <levitte@openssl.org>
Thu, 13 Aug 2015 17:14:34 +0000 (19:14 +0200)
committerRichard Levitte <levitte@openssl.org>
Thu, 13 Aug 2015 20:05:25 +0000 (22:05 +0200)
- select an actual file handle for devnull
- do not declare $msgdata twice
- SKE records sometimes seem to come without sig
- in SKE parsing, use and use $pub_key_len when parsing $pub_key

Reviewed-by: Matt Caswell <matt@openssl.org>
util/TLSProxy/Message.pm
util/TLSProxy/Proxy.pm
util/TLSProxy/ServerKeyExchange.pm

index 66a4a7b..028322b 100644 (file)
@@ -350,7 +350,7 @@ sub repack
 
     $lenlo = length($self->data) & 0xff;
     $lenhi = length($self->data) >> 8;
-    my $msgdata = pack('CnC', $self->mt, $lenhi, $lenlo).$self->data;
+    $msgdata = pack('CnC', $self->mt, $lenhi, $lenlo).$self->data;
 
 
     if ($numrecs == 0) {
index c033c29..571ab10 100644 (file)
@@ -142,7 +142,8 @@ sub start
     my $oldstdout;
 
     if(!$self->debug) {
-        $oldstdout = select(File::Spec->devnull());
+        open DEVNULL, ">", File::Spec->devnull();
+        $oldstdout = select(DEVNULL);
     }
 
     # Create the Proxy socket
index 3a91d17..b85b8ad 100644 (file)
@@ -104,13 +104,16 @@ sub parse
     my $pub_key_len = unpack('n', substr($self->data, $ptr));
     $ptr += 2;
     my $pub_key = substr($self->data, $ptr, $pub_key_len);
-    $ptr += $g_len;
+    $ptr += $pub_key_len;
 
     #We assume its signed
     my $sig_len = unpack('n', substr($self->data, $ptr));
-    $ptr += 2;
-    my $sig = substr($self->data, $ptr, $sig_len);
-    $ptr += $sig_len;
+    my $sig = "";
+    if (defined $sig_len) {
+       $ptr += 2;
+       $sig = substr($self->data, $ptr, $sig_len);
+       $ptr += $sig_len;
+    }
 
     $self->p($p);
     $self->g($g);