Class: HandshakeContext

HandshakeContext()

HandshakeContext stores data and states for handshake stage, including:

  • all sent and received messages (except HELLO_REQUEST)
  • client and server random
  • pre-master secret and master secret
  • encryption key and mac key for both client and server

Constructor

new HandshakeContext()

constructs handshake context

Source:

Members

buffer

cache all handshake messages except HELLO_REQUEST

Source:

clientRandom

client random

Source:

clientWriteKey

client key

Source:

clientWriteMacKey

client write mac key

Source:

masterSecret

master secret

Source:

preMasterSecret

pre-master secret

Source:

serverRandom

server random

Source:

serverWriteKey

server key

Source:

serverWriteMacKey

server write mac key

Source:

sessionId

session id

Source:

Methods

assertLast()

assert last handshake message from and type

Source:

clientVerifyData()

generates client verify data in client Finished message

Source:

deriveKeys()

derive keys from pre-master secret, client and server random

Source:

digest()

returns SHA256 digest for to-be-signed data

Source:

push(from, msg)

push a handshake message into buffer

Parameters:
Name Type Description
from string

either client or server

msg buffer

message data

Source:

serverVerifyData()

generates server verify data in server Finsihed message

Source:

setServerRandom(random)

set server random and derives keys

Parameters:
Name Type Description
random buffer

server random

Source:

tbs()

returns to-be-signed data

Source: