1 # Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
3 # Licensed under the OpenSSL license (the "License"). You may not use
4 # this file except in compliance with the License. You can obtain a copy
5 # in the file LICENSE in the source distribution or at
6 # https://www.openssl.org/source/license.html
10 package TLSProxy::CertificateVerify;
13 push @ISA, 'TLSProxy::Message';
22 $message_frag_lens) = @_;
24 my $self = $class->SUPER::new(
26 TLSProxy::Message::MT_CERTIFICATE_VERIFY,
33 $self->{signature} = "";
43 my $remdata = $self->data;
44 my $record = ${$self->records}[0];
46 if (TLSProxy::Proxy->is_tls13()
47 || $record->version() == TLSProxy::Record::VERS_TLS_1_2) {
48 $sigalg = unpack('n', $remdata);
49 $remdata = substr($remdata, 2);
52 my $siglen = unpack('n', substr($remdata, 0, 2));
53 my $sig = substr($remdata, 2);
55 die "Invalid CertificateVerify signature length" if length($sig) != $siglen;
57 print " SigAlg:".$sigalg."\n";
58 print " Signature Len:".$siglen."\n";
60 $self->sigalg($sigalg);
61 $self->signature($sig);
64 #Reconstruct the on-the-wire message data following changes
65 sub set_message_contents
69 my $sig = $self->signature();
70 my $olddata = $self->data();
72 $data .= pack("n", $self->sigalg()) if ($self->sigalg() != -1);
73 $data .= pack("n", length($sig));
84 $self->{sigalg} = shift;
86 return $self->{sigalg};
92 $self->{signature} = shift;
94 return $self->{signature};