Global

Members

(constant) AES_128_CBC_SHA :buffer

cipher suite

Type:
  • buffer
Source:

(constant) AlertDescription :number

alert description

Type:
  • number
Properties:
Name Type Description
CLOSE_NOTIFY number
UNEXPECTED_MESSAGE number
BAD_RECORD_MAC number
DECRYPTION_FAILED_RESERVED number
RECORD_OVERFLOW number
DECOMPRESSION_FAILURE number
HANDSHAKE_FAILURE number
NO_CERTIFICATE_RESERVED number
BAD_CERTIFICATE number
UNSUPPORTED_CERTIFICATE number
CERTIFICATE_REVOKED number
CERTIFICATE_EXPIRED number
CERTIFICATE_UNKNOWN number
ILLEGAL_PARAMETER number
UNKNOWN_CA number
ACCESS_DENIED number
DECODE_ERROR number
DECRYPT_ERROR number
EXPORT_RESTRICTION_RESERVED number
PROTOCOL_VERSION number
INSUFFICIENT_SECURITY number
INTERNAL_ERROR number
USER_CANCELED number
NO_RENEGOTIATION number
UNSUPPORTED_EXTENSION number
Source:

(constant) AlertLevel :number

tls alert level

Type:
  • number
Properties:
Name Type Description
WARNING number
FATAL number
Source:

(constant) ContentType :number

tls record content type

Type:
  • number
Properties:
Name Type Description
CHANGE_CIPHER_SPEC number
ALERT number
HANDSHAKE number
APPLICATION_DATA number
Source:

(constant) HandshakeType :number

  • handshake message type
Type:
  • number
Properties:
Name Type Description
HELLO_REQUEST number
CLIENT_HELLO number
SERVER_HELLO number
CERTIFICATE number
SERVER_KEY_EXCHANGE number
CERTIFICATE_REQUEST number
SERVER_HELLO_DONE number
CERTIFICATE_VERIFY number
CLIENT_KEY_EXCHANGE number
FINISHED number
Source:

(constant) RSA_PKCS1_PADDING :number

for public key encryption padding

Type:
  • number
Source:

(constant) RSA_PKCS1_SHA256 :buffer

signature algorithm

Type:
  • buffer
Source:

(constant) VER12 :buffer

TLS version 1.2

Type:
  • buffer
Source:

Methods

alertDescription(alert) → {string}

Parameters:
Name Type Description
alert number

description

Source:
Returns:

alert description name

Type
string

alertLevel(alert) → {string}

Parameters:
Name Type Description
alert number

level

Source:
Returns:

alert level name

Type
string

contentType(content) → {string}

Parameters:
Name Type Description
content number

type

Source:
Returns:

content type name

Type
string

createCipher(key, macKey, _iv) → {CipherFunction}

This is a (higher-order) factory function to generate a cipher function, which maintains sequence number internally.

Parameters:
Name Type Description
key buffer

encryption key

macKey buffer

hmac key

_iv bigint

initial iv

Source:
Returns:
Type
CipherFunction

createDecipher(key, macKey) → {DecipherFunction}

This is a higher order factory funtion to generate a decipher function, which maintains sequence number internally.

Parameters:
Name Type Description
key buffer

decryption key

macKey buffer

hmac key

Source:
Returns:
Type
DecipherFunction

createSequenceNumber() → {SequenceNumberFunction}

create a sequence number function

Source:
Returns:
Type
SequenceNumberFunction

handshakeType(handshake) → {string}

Parameters:
Name Type Description
handshake number

message type

Source:
Returns:

handshake message type name

Type
string

HMAC1(key, data) → {buffer}

calculates sha1 hmac

Parameters:
Name Type Description
key buffer

mac key

data buffer
Source:
Returns:
Type
buffer

HMAC256(key, data) → {buffer}

calculates sha256 hmac

Parameters:
Name Type Description
key buffer

mac key

data buffer
Source:
Returns:
Type
buffer

K()

K combinator is a higher-order function which accepts two expressions x and y. It evalutes x then y and returns x finally. It is helpful for compact code.

Source:

prepend16(b) → {buffer}

prepends 2-byte length to given buffer

Parameters:
Name Type Description
b buffer
Source:
Returns:
Type
buffer

prepend24(b) → {buffer}

prepends 3-byte length to given buffer

Parameters:
Name Type Description
b buffer
Source:
Returns:
Type
buffer

PRF256(secret, label, seed, length) → {buffer}

pseudo random function for key generation and expansion see rfc5246

Parameters:
Name Type Description
secret buffer
label string
seed buffer
length number
Source:
Returns:

buffer of given length

Type
buffer

readUInt24(buf) → {number}

reads a 24bit unsigned integer from the first 3-byte of a buffer

Parameters:
Name Type Description
buf buffer
Source:
Returns:
Type
number

SHA256(data) → {buffer}

calculates sha256 digest

Parameters:
Name Type Description
data buffer
Source:
Returns:
Type
buffer

Type Definitions

CipherFunction({, data) → {buffer}

A cipher function encrypts a tls record.

Parameters:
Name Type Description
{

type - tls record type

data buffer

tls record data (payload)

Source:
Returns:

encrypted tls record

Type
buffer

DecipherFunction({, data) → {buffer}

A decipher function decrypts a tls record. This function does NOT throw TLSError. The caller is resposible for translating the thrown error to TLSError.

Parameters:
Name Type Description
{

type - tls record type

data buffer

encrypted tls record data

Source:
Returns:

decrypted data (payload), mac verified and stripped

Type
buffer

Fragment

Type:
  • object
Properties:
Name Type Description
type number

content type

data Buffer

fragment data

Source:

Message

Type:
  • object
Properties:
Name Type Description
type number

content type

data Buffer

message data (no fragment)

Source:

SequenceNumberFunction() → {buffer}

A sequence number function returns sequence number starting from 0

Source:
Returns:
Type
buffer