| package org.bouncycastle.crypto.tls; |
| |
| import java.io.IOException; |
| import java.io.InputStream; |
| import java.io.OutputStream; |
| |
| public class NewSessionTicket |
| { |
| protected long ticketLifetimeHint; |
| protected byte[] ticket; |
| |
| public NewSessionTicket(long ticketLifetimeHint, byte[] ticket) |
| { |
| this.ticketLifetimeHint = ticketLifetimeHint; |
| this.ticket = ticket; |
| } |
| |
| public long getTicketLifetimeHint() |
| { |
| return ticketLifetimeHint; |
| } |
| |
| public byte[] getTicket() |
| { |
| return ticket; |
| } |
| |
| /** |
| * Encode this {@link NewSessionTicket} to an {@link OutputStream}. |
| * |
| * @param output the {@link OutputStream} to encode to. |
| * @throws IOException |
| */ |
| public void encode(OutputStream output) |
| throws IOException |
| { |
| TlsUtils.writeUint32(ticketLifetimeHint, output); |
| TlsUtils.writeOpaque16(ticket, output); |
| } |
| |
| /** |
| * Parse a {@link NewSessionTicket} from an {@link InputStream}. |
| * |
| * @param input the {@link InputStream} to parse from. |
| * @return a {@link NewSessionTicket} object. |
| * @throws IOException |
| */ |
| public static NewSessionTicket parse(InputStream input) |
| throws IOException |
| { |
| long ticketLifetimeHint = TlsUtils.readUint32(input); |
| byte[] ticket = TlsUtils.readOpaque16(input); |
| return new NewSessionTicket(ticketLifetimeHint, ticket); |
| } |
| } |