Blame util/perl/TLSProxy/NewSessionTicket.pm
|
Packit |
c4476c |
# Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
|
|
Packit |
c4476c |
#
|
|
Packit |
c4476c |
# Licensed under the OpenSSL license (the "License"). You may not use
|
|
Packit |
c4476c |
# this file except in compliance with the License. You can obtain a copy
|
|
Packit |
c4476c |
# in the file LICENSE in the source distribution or at
|
|
Packit |
c4476c |
# https://www.openssl.org/source/license.html
|
|
Packit |
c4476c |
|
|
Packit |
c4476c |
use strict;
|
|
Packit |
c4476c |
|
|
Packit |
c4476c |
package TLSProxy::NewSessionTicket;
|
|
Packit |
c4476c |
|
|
Packit |
c4476c |
use vars '@ISA';
|
|
Packit |
c4476c |
push @ISA, 'TLSProxy::Message';
|
|
Packit |
c4476c |
|
|
Packit |
c4476c |
sub new
|
|
Packit |
c4476c |
{
|
|
Packit |
c4476c |
my $class = shift;
|
|
Packit |
c4476c |
my ($server,
|
|
Packit |
c4476c |
$data,
|
|
Packit |
c4476c |
$records,
|
|
Packit |
c4476c |
$startoffset,
|
|
Packit |
c4476c |
$message_frag_lens) = @_;
|
|
Packit |
c4476c |
|
|
Packit |
c4476c |
my $self = $class->SUPER::new(
|
|
Packit |
c4476c |
$server,
|
|
Packit |
c4476c |
TLSProxy::Message::MT_NEW_SESSION_TICKET,
|
|
Packit |
c4476c |
$data,
|
|
Packit |
c4476c |
$records,
|
|
Packit |
c4476c |
$startoffset,
|
|
Packit |
c4476c |
$message_frag_lens);
|
|
Packit |
c4476c |
|
|
Packit |
c4476c |
$self->{ticket_lifetime_hint} = 0;
|
|
Packit |
c4476c |
$self->{ticket} = "";
|
|
Packit |
c4476c |
|
|
Packit |
c4476c |
return $self;
|
|
Packit |
c4476c |
}
|
|
Packit |
c4476c |
|
|
Packit |
c4476c |
sub parse
|
|
Packit |
c4476c |
{
|
|
Packit |
c4476c |
my $self = shift;
|
|
Packit |
c4476c |
|
|
Packit |
c4476c |
my $ticket_lifetime_hint = unpack('N', $self->data);
|
|
Packit |
c4476c |
my $ticket_len = unpack('n', $self->data);
|
|
Packit |
c4476c |
my $ticket = substr($self->data, 6, $ticket_len);
|
|
Packit |
c4476c |
|
|
Packit |
c4476c |
$self->ticket_lifetime_hint($ticket_lifetime_hint);
|
|
Packit |
c4476c |
$self->ticket($ticket);
|
|
Packit |
c4476c |
}
|
|
Packit |
c4476c |
|
|
Packit |
c4476c |
|
|
Packit |
c4476c |
#Reconstruct the on-the-wire message data following changes
|
|
Packit |
c4476c |
sub set_message_contents
|
|
Packit |
c4476c |
{
|
|
Packit |
c4476c |
my $self = shift;
|
|
Packit |
c4476c |
my $data;
|
|
Packit |
c4476c |
|
|
Packit |
c4476c |
$data = pack('N', $self->ticket_lifetime_hint);
|
|
Packit |
c4476c |
$data .= pack('n', length($self->ticket));
|
|
Packit |
c4476c |
$data .= $self->ticket;
|
|
Packit |
c4476c |
|
|
Packit |
c4476c |
$self->data($data);
|
|
Packit |
c4476c |
}
|
|
Packit |
c4476c |
|
|
Packit |
c4476c |
#Read/write accessors
|
|
Packit |
c4476c |
sub ticket_lifetime_hint
|
|
Packit |
c4476c |
{
|
|
Packit |
c4476c |
my $self = shift;
|
|
Packit |
c4476c |
if (@_) {
|
|
Packit |
c4476c |
$self->{ticket_lifetime_hint} = shift;
|
|
Packit |
c4476c |
}
|
|
Packit |
c4476c |
return $self->{ticket_lifetime_hint};
|
|
Packit |
c4476c |
}
|
|
Packit |
c4476c |
sub ticket
|
|
Packit |
c4476c |
{
|
|
Packit |
c4476c |
my $self = shift;
|
|
Packit |
c4476c |
if (@_) {
|
|
Packit |
c4476c |
$self->{ticket} = shift;
|
|
Packit |
c4476c |
}
|
|
Packit |
c4476c |
return $self->{ticket};
|
|
Packit |
c4476c |
}
|
|
Packit |
c4476c |
1;
|