0,
0,
0,
- 0,
"",
""
);
0,
0,
0,
- 0,
"",
""
);
return;
}
- # Add a zero length fragment first
- #my $record = TLSProxy::Record->new(
- # 0,
- # TLSProxy::Record::RT_ALERT,
- # TLSProxy::Record::VERS_TLS_1_2,
- # 0,
- # 0,
- # 0,
- # "",
- # ""
- #);
- #push @{$proxy->record_list}, $record;
-
# Now add the alert level (Fatal) as a separate record
$byte = pack('C', TLSProxy::Message::AL_LEVEL_FATAL);
my $record = TLSProxy::Record->new(
TLSProxy::Record::RT_ALERT,
TLSProxy::Record::VERS_TLS_1_2,
1,
- 0,
1,
1,
$byte,
TLSProxy::Record::RT_ALERT,
TLSProxy::Record::VERS_TLS_1_2,
1,
- 0,
1,
1,
$byte,
@{$records}[-1]->epoch(),
@{$records}[-1]->seq() +1,
1,
- 0,
1,
1,
"X",
TLSProxy::Record::RT_UNKNOWN,
@{$records}[-1]->version(),
1,
- 0,
1,
1,
"X",
0,
0,
0,
- 0,
"",
""
);
0,
0,
0,
- 0,
"",
""
);
0,
0,
0,
- 0,
"",
""
);
0,
0,
0,
- 0,
"",
""
);
1,
1,
length($data),
- 0,
length($data),
0,
$data,
$epoch,
$seq,
$len,
- 0,
$len, # len_real
$len, # decrypt_len
$data, # data
$content_type,
$version,
$len,
- 0,
$len, # len_real
$len, # decrypt_len
$data, # data
$epoch,
$seq,
$len,
- $sslv2,
$len_real,
$decrypt_len,
$data,
$epoch,
$seq,
$len,
- $sslv2,
$len_real,
$decrypt_len,
$data,
$content_type,
$version,
$len,
- $sslv2,
$len_real,
$decrypt_len,
$data,
0, #epoch
0, #seq
$len,
- $sslv2,
$len_real,
$decrypt_len,
$data,
$epoch,
$seq,
$len,
- $sslv2,
$len_real,
$decrypt_len,
$data,
epoch => $epoch,
seq => $seq,
len => $len,
- sslv2 => $sslv2,
len_real => $len_real,
decrypt_len => $decrypt_len,
data => $data,
}
$self->{sent} = 1;
- if ($self->sslv2) {
- $data = pack('n', $self->len | 0x8000);
+ if($self->{isdtls}) {
+ my $seqhi = ($self->seq >> 32) & 0xffff;
+ my $seqmi = ($self->seq >> 16) & 0xffff;
+ my $seqlo = ($self->seq >> 0) & 0xffff;
+ $data = pack('Cnnnnnn', $self->content_type, $self->version,
+ $self->epoch, $seqhi, $seqmi, $seqlo, $self->len);
} else {
- if($self->{isdtls}) {
- my $seqhi = ($self->seq >> 32) & 0xffff;
- my $seqmi = ($self->seq >> 16) & 0xffff;
- my $seqlo = ($self->seq >> 0) & 0xffff;
- $data = pack('Cnnnnnn', $self->content_type, $self->version,
- $self->epoch, $seqhi, $seqmi, $seqlo, $self->len);
- } else {
- if (TLSProxy::Proxy->is_tls13() && $self->encrypted) {
- $data = pack('Cnn', $self->outer_content_type, $self->version,
- $self->len);
- }
- else {
- $data = pack('Cnn', $self->content_type, $self->version,
- $self->len);
- }
+ if (TLSProxy::Proxy->is_tls13() && $self->encrypted) {
+ $data = pack('Cnn', $self->outer_content_type, $self->version,
+ $self->len);
+ }
+ else {
+ $data = pack('Cnn', $self->content_type, $self->version,
+ $self->len);
}
-
}
+
$data .= $self->data;
return $data;
my $self = shift;
return $self->{flight};
}
-sub sslv2
-{
- my $self = shift;
- return $self->{sslv2};
-}
sub len_real
{
my $self = shift;