]>
git.ipfire.org Git - thirdparty/openssl.git/blob - util/perl/TLSProxy/CertificateVerify.pm
1 # Copyright 2016-2024 The OpenSSL Project Authors. All Rights Reserved.
3 # Licensed under the Apache License 2.0 (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';
26 $message_frag_lens) = @_;
28 my $self = $class->SUPER::new
(
31 TLSProxy
::Message
::MT_CERTIFICATE_VERIFY
,
41 $self->{signature
} = "";
51 my $remdata = $self->data;
52 my $record = ${$self->records}[0];
54 if (TLSProxy
::Proxy
->is_tls13()
55 || $record->version() == TLSProxy
::Record
::VERS_TLS_1_2
56 || $record->version() == TLSProxy
::Record
::VERS_DTLS_1_2
) {
57 $sigalg = unpack('n', $remdata);
58 $remdata = substr($remdata, 2);
61 my $siglen = unpack('n', substr($remdata, 0, 2));
62 my $sig = substr($remdata, 2);
64 die "Invalid CertificateVerify signature length" if length($sig) != $siglen;
66 print " SigAlg:".$sigalg."\n";
67 print " Signature Len:".$siglen."\n";
69 $self->sigalg($sigalg);
70 $self->signature($sig);
73 #Reconstruct the on-the-wire message data following changes
74 sub set_message_contents
78 my $sig = $self->signature();
79 my $olddata = $self->data();
81 $data .= pack("n", $self->sigalg()) if ($self->sigalg() != -1);
82 $data .= pack("n", length($sig));
93 $self->{sigalg
} = shift;
95 return $self->{sigalg
};
101 $self->{signature
} = shift;
103 return $self->{signature
};