Botan

TLS Extensions

License
Botan is released under the Simplified BSD License (see LICENSE.md)

interface  Extension;

Base class representing a TLS extension of some kind


abstract const HandshakeExtensionType  type();

Returns
code number of the extension

abstract const Vector!ubyte  serialize();

Returns
serialized binary for the extension

abstract const @property bool  empty();

Returns
if we should encode this extension or not

class  ServerNameIndicator: botan.tls.extensions.Extension;

TLS Server Name Indicator extension (RFC 3546)


class  SRPIdentifier: botan.tls.extensions.Extension;

SRP identifier extension (RFC 5054)


class  RenegotiationExtension: botan.tls.extensions.Extension;

Renegotiation Indication Extension (RFC 5746)


class  MaximumFragmentLength: botan.tls.extensions.Extension;

Maximum Fragment Length Negotiation Extension (RFC 4366 sec 3.2)


this(size_t max_fragment);

Parameters
size_t max_fragment specifies what maximum fragment size to advertise. Currently must be one of 512, 1024, 2048, or 4096.

class  NextProtocolNotification: botan.tls.extensions.Extension;

Next Protocol Negotiation

http:
//technotes.googlecode.com/git/nextprotoneg.html

This implementation requires the semantics defined in the Google spec (implemented in Chromium); the internet draft leaves the format unspecified.

this();

Empty extension, used by client


this(Vector!string protocols);

List of protocols, used by server


class  SessionTicket: botan.tls.extensions.Extension;

TLSSession Ticket Extension (RFC 5077)


const ref const(Vector!ubyte)  contents();

Returns
 contents of the session ticket

this();

Create empty extension, used by both client and server


this(Vector!ubyte session_ticket);

Extension with ticket, used by client


this(ref TLSDataReader reader, ushort extension_size);

Deserialize a session ticket


class  SupportedEllipticCurves: botan.tls.extensions.Extension;

Supported Elliptic Curves Extension (RFC 4492)


class  SignatureAlgorithms: botan.tls.extensions.Extension;

Signature Algorithms Extension for TLS 1.2 (RFC 5246)


class  HeartbeatSupportIndicator: botan.tls.extensions.Extension;

Heartbeat Extension (RFC 6520)


struct  TLSExtensions;

Represents a block of extensions in a hello message