Table of Contents

Class TlsUtilities

Namespace
Enterprises.Org.BouncyCastle.Crypto.Tls
Assembly
Enterprises.BouncyCastle.Crypto.dll
public abstract class TlsUtilities
Inheritance
TlsUtilities
Inherited Members

Constructors

TlsUtilities()

protected TlsUtilities()

Fields

EmptyBytes

public static readonly byte[] EmptyBytes

Field Value

byte[]

EmptyInts

public static readonly int[] EmptyInts

Field Value

int[]

EmptyLongs

public static readonly long[] EmptyLongs

Field Value

long[]

EmptyShorts

public static readonly short[] EmptyShorts

Field Value

short[]

Methods

AddSignatureAlgorithmsExtension(IDictionary, IList)

public static void AddSignatureAlgorithmsExtension(IDictionary extensions, IList supportedSignatureAlgorithms)

Parameters

extensions IDictionary
supportedSignatureAlgorithms IList

CheckUint16(int)

public static void CheckUint16(int i)

Parameters

i int

CheckUint16(long)

public static void CheckUint16(long i)

Parameters

i long

CheckUint24(int)

public static void CheckUint24(int i)

Parameters

i int

CheckUint24(long)

public static void CheckUint24(long i)

Parameters

i long

CheckUint32(long)

public static void CheckUint32(long i)

Parameters

i long

CheckUint48(long)

public static void CheckUint48(long i)

Parameters

i long

CheckUint64(long)

public static void CheckUint64(long i)

Parameters

i long

CheckUint8(int)

public static void CheckUint8(int i)

Parameters

i int

CheckUint8(long)

public static void CheckUint8(long i)

Parameters

i long

CloneHash(byte, IDigest)

public static IDigest CloneHash(byte hashAlgorithm, IDigest hash)

Parameters

hashAlgorithm byte
hash IDigest

Returns

IDigest

ClonePrfHash(int, IDigest)

public static IDigest ClonePrfHash(int prfAlgorithm, IDigest hash)

Parameters

prfAlgorithm int
hash IDigest

Returns

IDigest

CreateHash(SignatureAndHashAlgorithm)

public static IDigest CreateHash(SignatureAndHashAlgorithm signatureAndHashAlgorithm)

Parameters

signatureAndHashAlgorithm SignatureAndHashAlgorithm

Returns

IDigest

CreateHash(byte)

public static IDigest CreateHash(byte hashAlgorithm)

Parameters

hashAlgorithm byte

Returns

IDigest

CreatePrfHash(int)

public static IDigest CreatePrfHash(int prfAlgorithm)

Parameters

prfAlgorithm int

Returns

IDigest

CreateSignatureAlgorithmsExtension(IList)

public static byte[] CreateSignatureAlgorithmsExtension(IList supportedSignatureAlgorithms)

Parameters

supportedSignatureAlgorithms IList

Returns

byte[]

CreateTlsSigner(byte)

public static TlsSigner CreateTlsSigner(byte clientCertificateType)

Parameters

clientCertificateType byte

Returns

TlsSigner

DecodeUint8(byte[])

public static byte DecodeUint8(byte[] buf)

Parameters

buf byte[]

Returns

byte

DecodeUint8ArrayWithUint8Length(byte[])

public static byte[] DecodeUint8ArrayWithUint8Length(byte[] buf)

Parameters

buf byte[]

Returns

byte[]

EncodeOpaque8(byte[])

public static byte[] EncodeOpaque8(byte[] buf)

Parameters

buf byte[]

Returns

byte[]

EncodeSupportedSignatureAlgorithms(IList, bool, Stream)

public static void EncodeSupportedSignatureAlgorithms(IList supportedSignatureAlgorithms, bool allowAnonymous, Stream output)

Parameters

supportedSignatureAlgorithms IList
allowAnonymous bool
output Stream

EncodeUint16ArrayWithUint16Length(int[])

public static byte[] EncodeUint16ArrayWithUint16Length(int[] uints)

Parameters

uints int[]

Returns

byte[]

EncodeUint8(byte)

public static byte[] EncodeUint8(byte val)

Parameters

val byte

Returns

byte[]

EncodeUint8ArrayWithUint8Length(byte[])

public static byte[] EncodeUint8ArrayWithUint8Length(byte[] uints)

Parameters

uints byte[]

Returns

byte[]

GetAllSignatureAlgorithms()

public static IList GetAllSignatureAlgorithms()

Returns

IList

GetCipherType(int)

public static int GetCipherType(int ciphersuite)

Parameters

ciphersuite int

Returns

int

GetDefaultDssSignatureAlgorithms()

public static IList GetDefaultDssSignatureAlgorithms()

Returns

IList

GetDefaultECDsaSignatureAlgorithms()

public static IList GetDefaultECDsaSignatureAlgorithms()

Returns

IList

GetDefaultRsaSignatureAlgorithms()

public static IList GetDefaultRsaSignatureAlgorithms()

Returns

IList

GetDefaultSupportedSignatureAlgorithms()

public static IList GetDefaultSupportedSignatureAlgorithms()

Returns

IList

GetEncryptionAlgorithm(int)

public static int GetEncryptionAlgorithm(int ciphersuite)

Parameters

ciphersuite int

Returns

int

GetExtensionData(IDictionary, int)

public static byte[] GetExtensionData(IDictionary extensions, int extensionType)

Parameters

extensions IDictionary
extensionType int

Returns

byte[]

GetHashAlgorithmForPrfAlgorithm(int)

public static byte GetHashAlgorithmForPrfAlgorithm(int prfAlgorithm)

Parameters

prfAlgorithm int

Returns

byte

GetKeyExchangeAlgorithm(int)

public static int GetKeyExchangeAlgorithm(int ciphersuite)

Parameters

ciphersuite int

Returns

int

GetMacAlgorithm(int)

public static int GetMacAlgorithm(int ciphersuite)

Parameters

ciphersuite int

Returns

int

GetMinimumVersion(int)

public static ProtocolVersion GetMinimumVersion(int ciphersuite)

Parameters

ciphersuite int

Returns

ProtocolVersion

GetOidForHashAlgorithm(byte)

public static DerObjectIdentifier GetOidForHashAlgorithm(byte hashAlgorithm)

Parameters

hashAlgorithm byte

Returns

DerObjectIdentifier

GetSignatureAlgorithmsExtension(IDictionary)

public static IList GetSignatureAlgorithmsExtension(IDictionary extensions)

Parameters

extensions IDictionary

Returns

IList

GetSignatureAndHashAlgorithm(TlsContext, TlsSignerCredentials)

public static SignatureAndHashAlgorithm GetSignatureAndHashAlgorithm(TlsContext context, TlsSignerCredentials signerCredentials)

Parameters

context TlsContext
signerCredentials TlsSignerCredentials

Returns

SignatureAndHashAlgorithm

GetUsableSignatureAlgorithms(IList)

public static IList GetUsableSignatureAlgorithms(IList sigHashAlgs)

Parameters

sigHashAlgs IList

Returns

IList

HasExpectedEmptyExtensionData(IDictionary, int, byte)

public static bool HasExpectedEmptyExtensionData(IDictionary extensions, int extensionType, byte alertDescription)

Parameters

extensions IDictionary
extensionType int
alertDescription byte

Returns

bool

HasSigningCapability(byte)

public static bool HasSigningCapability(byte clientCertificateType)

Parameters

clientCertificateType byte

Returns

bool

ImportSession(byte[], SessionParameters)

public static TlsSession ImportSession(byte[] sessionID, SessionParameters sessionParameters)

Parameters

sessionID byte[]
sessionParameters SessionParameters

Returns

TlsSession

IsAeadCipherSuite(int)

public static bool IsAeadCipherSuite(int ciphersuite)

Parameters

ciphersuite int

Returns

bool

IsBlockCipherSuite(int)

public static bool IsBlockCipherSuite(int ciphersuite)

Parameters

ciphersuite int

Returns

bool

IsSignatureAlgorithmsExtensionAllowed(ProtocolVersion)

public static bool IsSignatureAlgorithmsExtensionAllowed(ProtocolVersion clientVersion)

Parameters

clientVersion ProtocolVersion

Returns

bool

IsSsl(TlsContext)

public static bool IsSsl(TlsContext context)

Parameters

context TlsContext

Returns

bool

IsStreamCipherSuite(int)

public static bool IsStreamCipherSuite(int ciphersuite)

Parameters

ciphersuite int

Returns

bool

IsTlsV11(ProtocolVersion)

public static bool IsTlsV11(ProtocolVersion version)

Parameters

version ProtocolVersion

Returns

bool

IsTlsV11(TlsContext)

public static bool IsTlsV11(TlsContext context)

Parameters

context TlsContext

Returns

bool

IsTlsV12(ProtocolVersion)

public static bool IsTlsV12(ProtocolVersion version)

Parameters

version ProtocolVersion

Returns

bool

IsTlsV12(TlsContext)

public static bool IsTlsV12(TlsContext context)

Parameters

context TlsContext

Returns

bool

IsValidCipherSuiteForSignatureAlgorithms(int, IList)

public static bool IsValidCipherSuiteForSignatureAlgorithms(int cipherSuite, IList sigAlgs)

Parameters

cipherSuite int
sigAlgs IList

Returns

bool

IsValidCipherSuiteForVersion(int, ProtocolVersion)

public static bool IsValidCipherSuiteForVersion(int cipherSuite, ProtocolVersion serverVersion)

Parameters

cipherSuite int
serverVersion ProtocolVersion

Returns

bool

IsValidUint16(int)

public static bool IsValidUint16(int i)

Parameters

i int

Returns

bool

IsValidUint16(long)

public static bool IsValidUint16(long i)

Parameters

i long

Returns

bool

IsValidUint24(int)

public static bool IsValidUint24(int i)

Parameters

i int

Returns

bool

IsValidUint24(long)

public static bool IsValidUint24(long i)

Parameters

i long

Returns

bool

IsValidUint32(long)

public static bool IsValidUint32(long i)

Parameters

i long

Returns

bool

IsValidUint48(long)

public static bool IsValidUint48(long i)

Parameters

i long

Returns

bool

IsValidUint64(long)

public static bool IsValidUint64(long i)

Parameters

i long

Returns

bool

IsValidUint8(int)

public static bool IsValidUint8(int i)

Parameters

i int

Returns

bool

IsValidUint8(long)

public static bool IsValidUint8(long i)

Parameters

i long

Returns

bool

PRF(TlsContext, byte[], string, byte[], int)

public static byte[] PRF(TlsContext context, byte[] secret, string asciiLabel, byte[] seed, int size)

Parameters

context TlsContext
secret byte[]
asciiLabel string
seed byte[]
size int

Returns

byte[]

PRF_legacy(byte[], string, byte[], int)

public static byte[] PRF_legacy(byte[] secret, string asciiLabel, byte[] seed, int size)

Parameters

secret byte[]
asciiLabel string
seed byte[]
size int

Returns

byte[]

ParseSupportedSignatureAlgorithms(bool, Stream)

public static IList ParseSupportedSignatureAlgorithms(bool allowAnonymous, Stream input)

Parameters

allowAnonymous bool
input Stream

Returns

IList

ReadAllOrNothing(int, Stream)

public static byte[] ReadAllOrNothing(int length, Stream input)

Parameters

length int
input Stream

Returns

byte[]

ReadAsn1Object(byte[])

public static Asn1Object ReadAsn1Object(byte[] encoding)

Parameters

encoding byte[]

Returns

Asn1Object

ReadDerObject(byte[])

public static Asn1Object ReadDerObject(byte[] encoding)

Parameters

encoding byte[]

Returns

Asn1Object

ReadFully(byte[], Stream)

public static void ReadFully(byte[] buf, Stream input)

Parameters

buf byte[]
input Stream

ReadFully(int, Stream)

public static byte[] ReadFully(int length, Stream input)

Parameters

length int
input Stream

Returns

byte[]

ReadOpaque16(Stream)

public static byte[] ReadOpaque16(Stream input)

Parameters

input Stream

Returns

byte[]

ReadOpaque24(Stream)

public static byte[] ReadOpaque24(Stream input)

Parameters

input Stream

Returns

byte[]

ReadOpaque8(Stream)

public static byte[] ReadOpaque8(Stream input)

Parameters

input Stream

Returns

byte[]

ReadSignatureAlgorithmsExtension(byte[])

public static IList ReadSignatureAlgorithmsExtension(byte[] extensionData)

Parameters

extensionData byte[]

Returns

IList

ReadUint16(byte[], int)

public static int ReadUint16(byte[] buf, int offset)

Parameters

buf byte[]
offset int

Returns

int

ReadUint16(Stream)

public static int ReadUint16(Stream input)

Parameters

input Stream

Returns

int

ReadUint16Array(int, Stream)

public static int[] ReadUint16Array(int count, Stream input)

Parameters

count int
input Stream

Returns

int[]

ReadUint24(byte[], int)

public static int ReadUint24(byte[] buf, int offset)

Parameters

buf byte[]
offset int

Returns

int

ReadUint24(Stream)

public static int ReadUint24(Stream input)

Parameters

input Stream

Returns

int

ReadUint32(byte[], int)

public static long ReadUint32(byte[] buf, int offset)

Parameters

buf byte[]
offset int

Returns

long

ReadUint32(Stream)

public static long ReadUint32(Stream input)

Parameters

input Stream

Returns

long

ReadUint48(byte[], int)

public static long ReadUint48(byte[] buf, int offset)

Parameters

buf byte[]
offset int

Returns

long

ReadUint48(Stream)

public static long ReadUint48(Stream input)

Parameters

input Stream

Returns

long

ReadUint8(byte[], int)

public static byte ReadUint8(byte[] buf, int offset)

Parameters

buf byte[]
offset int

Returns

byte

ReadUint8(Stream)

public static byte ReadUint8(Stream input)

Parameters

input Stream

Returns

byte

ReadUint8Array(int, Stream)

public static byte[] ReadUint8Array(int count, Stream input)

Parameters

count int
input Stream

Returns

byte[]

ReadVersion(byte[], int)

public static ProtocolVersion ReadVersion(byte[] buf, int offset)

Parameters

buf byte[]
offset int

Returns

ProtocolVersion

ReadVersion(Stream)

public static ProtocolVersion ReadVersion(Stream input)

Parameters

input Stream

Returns

ProtocolVersion

ReadVersionRaw(byte[], int)

public static int ReadVersionRaw(byte[] buf, int offset)

Parameters

buf byte[]
offset int

Returns

int

ReadVersionRaw(Stream)

public static int ReadVersionRaw(Stream input)

Parameters

input Stream

Returns

int

VerifySupportedSignatureAlgorithm(IList, SignatureAndHashAlgorithm)

public static void VerifySupportedSignatureAlgorithm(IList supportedSignatureAlgorithms, SignatureAndHashAlgorithm signatureAlgorithm)

Parameters

supportedSignatureAlgorithms IList
signatureAlgorithm SignatureAndHashAlgorithm

WriteGmtUnixTime(byte[], int)

public static void WriteGmtUnixTime(byte[] buf, int offset)

Parameters

buf byte[]
offset int

WriteOpaque16(byte[], Stream)

public static void WriteOpaque16(byte[] buf, Stream output)

Parameters

buf byte[]
output Stream

WriteOpaque24(byte[], Stream)

public static void WriteOpaque24(byte[] buf, Stream output)

Parameters

buf byte[]
output Stream

WriteOpaque8(byte[], Stream)

public static void WriteOpaque8(byte[] buf, Stream output)

Parameters

buf byte[]
output Stream

WriteUint16(int, byte[], int)

public static void WriteUint16(int i, byte[] buf, int offset)

Parameters

i int
buf byte[]
offset int

WriteUint16(int, Stream)

public static void WriteUint16(int i, Stream output)

Parameters

i int
output Stream

WriteUint16Array(int[], byte[], int)

public static void WriteUint16Array(int[] uints, byte[] buf, int offset)

Parameters

uints int[]
buf byte[]
offset int

WriteUint16Array(int[], Stream)

public static void WriteUint16Array(int[] uints, Stream output)

Parameters

uints int[]
output Stream

WriteUint16ArrayWithUint16Length(int[], byte[], int)

public static void WriteUint16ArrayWithUint16Length(int[] uints, byte[] buf, int offset)

Parameters

uints int[]
buf byte[]
offset int

WriteUint16ArrayWithUint16Length(int[], Stream)

public static void WriteUint16ArrayWithUint16Length(int[] uints, Stream output)

Parameters

uints int[]
output Stream

WriteUint24(int, byte[], int)

public static void WriteUint24(int i, byte[] buf, int offset)

Parameters

i int
buf byte[]
offset int

WriteUint24(int, Stream)

public static void WriteUint24(int i, Stream output)

Parameters

i int
output Stream

WriteUint32(long, byte[], int)

public static void WriteUint32(long i, byte[] buf, int offset)

Parameters

i long
buf byte[]
offset int

WriteUint32(long, Stream)

public static void WriteUint32(long i, Stream output)

Parameters

i long
output Stream

WriteUint48(long, byte[], int)

public static void WriteUint48(long i, byte[] buf, int offset)

Parameters

i long
buf byte[]
offset int

WriteUint48(long, Stream)

public static void WriteUint48(long i, Stream output)

Parameters

i long
output Stream

WriteUint64(long, byte[], int)

public static void WriteUint64(long i, byte[] buf, int offset)

Parameters

i long
buf byte[]
offset int

WriteUint64(long, Stream)

public static void WriteUint64(long i, Stream output)

Parameters

i long
output Stream

WriteUint8(byte, byte[], int)

public static void WriteUint8(byte i, byte[] buf, int offset)

Parameters

i byte
buf byte[]
offset int

WriteUint8(byte, Stream)

public static void WriteUint8(byte i, Stream output)

Parameters

i byte
output Stream

WriteUint8Array(byte[], byte[], int)

public static void WriteUint8Array(byte[] uints, byte[] buf, int offset)

Parameters

uints byte[]
buf byte[]
offset int

WriteUint8Array(byte[], Stream)

public static void WriteUint8Array(byte[] uints, Stream output)

Parameters

uints byte[]
output Stream

WriteUint8ArrayWithUint8Length(byte[], byte[], int)

public static void WriteUint8ArrayWithUint8Length(byte[] uints, byte[] buf, int offset)

Parameters

uints byte[]
buf byte[]
offset int

WriteUint8ArrayWithUint8Length(byte[], Stream)

public static void WriteUint8ArrayWithUint8Length(byte[] uints, Stream output)

Parameters

uints byte[]
output Stream

WriteVersion(ProtocolVersion, byte[], int)

public static void WriteVersion(ProtocolVersion version, byte[] buf, int offset)

Parameters

version ProtocolVersion
buf byte[]
offset int

WriteVersion(ProtocolVersion, Stream)

public static void WriteVersion(ProtocolVersion version, Stream output)

Parameters

version ProtocolVersion
output Stream