Webserver+3d print

Dependents:   Nucleo

Embed: (wiki syntax)

« Back to documentation index

_TlsContext Struct Reference

_TlsContext Struct Reference

TLS context. More...

#include <tls.h>

Data Fields

TlsState state
 TLS handshake finite state machine.
TlsConnectionEnd entity
 Client or server operation.
TlsIoHandle handle
 Handle for I/O operations.
TlsIoSendCallback sendCallback
 Send callback function.
TlsIoReceiveCallback receiveCallback
 Receive callback function.
const PrngAlgoprngAlgo
 Pseudo-random number generator to be used.
void * prngContext
 Pseudo-random number generator context.
const uint16_t * cipherSuites
 List of supported cipher suites.
uint_t numCipherSuites
 Number of cipher suites in the list.
char_t * serverName
 Fully qualified DNS hostname of the server.
char_t * protocolList
 List of supported ALPN protocols.
char_t * psk
 Pre-shared key.
size_t pskLen
 Length of the pre-shared key, in bytes.
char_t * pskIdentity
 PSK identity.
char_t * pskIdentityHint
 PSK identity hint.
TlsPskCallback pskCallback
 PSK callback function.
DhContext dhContext
 Diffie-Hellman context.
EcdhContext ecdhContext
 ECDH context.
const char_t * trustedCaList
 List of trusted CA (PEM format)
size_t trustedCaListLen
 Number of trusted CA in the list.
TlsCertificateType peerCertType
 Peer's certificate type.
RsaPublicKey peerRsaPublicKey
 Peer's RSA public key.
DsaPublicKey peerDsaPublicKey
 Peer's DSA public key.
EcDomainParameters peerEcParams
 Peer's EC domain parameters.
EcPoint peerEcPublicKey
 Peer's EC public key.
TlsCachecache
 TLS session cache.
uint8_t sessionId [32]
 Session identifier.
size_t sessionIdLen
 Length of the session identifier.
uint16_t clientVersion
 Latest version supported by the client.
uint16_t version
 Negotiated TLS version.
uint16_t cipherSuite
 Negotiated cipher suite.
uint8_t compressionMethod
 Negotiated compression algorithm.
uint16_t namedCurve
 Named curve.
TlsHashAlgo signHashAlgo
 Hash algorithm used for signing.
TlsKeyExchMethod keyExchMethod
 Key exchange method.
const CipherAlgocipherAlgo
 Bulk cipher algorithm.
CipherMode cipherMode
 Cipher mode of operation.
const HashAlgohashAlgo
 Hash algorithm for MAC operations.
const HashAlgoprfHashAlgo
 Hash algorithm for PRF operations.
size_t macKeyLen
 Number of bytes that are used for generating MAC keys.
size_t encKeyLen
 Number of bytes that are used for generating encryption keys.
size_t fixedIvLen
 Amount of data needed to be generated for the IV.
size_t recordIvLen
 Length of the IV.
size_t authTagLen
 Length of the authentication tag.
size_t verifyDataLen
 Length of the verify data.
Md5ContexthandshakeMd5Context
 MD5 context used to compute verify data.
Sha1ContexthandshakeSha1Context
 SHA-1 context used to compute verify data.
HashContexthandshakeHashContext
 Hash context used to compute verify data (TLS 1.2)
uint8_t verifyData [64]
 Verify data.
bool_t ecPointFormatExtFound
 The EcPointFormats extension has been received.
TlsClientAuthMode clientAuthMode
 Client authentication mode.
bool_t clientCertRequested
 This flag tells whether the client certificate is requested.
bool_t resume
 The connection is established by resuming a session.
bool_t changeCipherSpecSent
 A ChangeCipherSpec message has been sent.
bool_t changeCipherSpecReceived
 A ChangeCipherSpec message has been received from the peer.
bool_t fatalAlertSent
 A fatal alert message has been sent.
bool_t fatalAlertReceived
 A fatal alert message has been received from the peer.
bool_t closeNotifySent
 A closure alert has been sent.
bool_t closeNotifyReceived
 A closure alert has been received from the peer.
HmacContext hmacContext
 HMAC context.
void * writeCipherContext
 Bulk cipher context for write operations.
void * readCipherContext
 Bulk cipher context for read operations.
GcmContextwriteGcmContext
 GCM context for write operations.
GcmContextreadGcmContext
 GCM context for read operations.
uint8_t * txBuffer
 TX buffer.
size_t txBufferSize
 TX buffer size.
TlsContentType txBufferType
 Type of data that resides in the TX buffer.
size_t txBufferLen
 Number of bytes that are pending to be sent.
size_t txBufferPos
 Current position in TX buffer.
size_t txRecordMaxLen
 Maximum plaintext fragment length.
size_t txRecordLen
 Length of the TLS record.
size_t txRecordPos
 Current position in the TLS record.
uint8_t * rxBuffer
 RX buffer.
size_t rxBufferSize
 RX buffer size.
TlsContentType rxBufferType
 Type of data that resides in the RX buffer.
size_t rxBufferLen
 Number of bytes available for reading.
size_t rxBufferPos
 Current position in RX buffer.
size_t rxRecordMaxLen
 Maximum plaintext fragment length.
size_t rxRecordLen
 Length of the TLS record.
size_t rxRecordPos
 Current position in the TLS record.
uint8_t premasterSecret [TLS_MAX_PREMASTER_SECRET_SIZE]
 Premaster secret.
size_t premasterSecretLen
 Length of the premaster secret.
uint8_t masterSecret [48]
 Master secret.
uint8_t keyBlock [192]
 Key material.
uint8_t * writeMacKey
 Write MAC key.
uint8_t * readMacKey
 Read MAC key.
uint8_t * writeEncKey
 Encryption key that serves for write operations.
uint8_t * readEncKey
 Encryption key that serves for read operations.
uint8_t * writeIv
 Write IV.
uint8_t * readIv
 Read IV.
TlsSequenceNumber writeSeqNum
 Write sequence number.
TlsSequenceNumber readSeqNum
 Read sequence number.
TlsRandom clientRandom
 Client random value.
TlsRandom serverRandom
 Server random value.

Detailed Description

TLS context.

An opaque data structure that represents a TLS connection

Definition at line 1383 of file tls.h.


Field Documentation

size_t authTagLen

Length of the authentication tag.

Definition at line 1466 of file tls.h.

TLS session cache.

Definition at line 1445 of file tls.h.

A ChangeCipherSpec message has been received from the peer.

Definition at line 1487 of file tls.h.

A ChangeCipherSpec message has been sent.

Definition at line 1486 of file tls.h.

Bulk cipher algorithm.

Definition at line 1458 of file tls.h.

Cipher mode of operation.

Definition at line 1459 of file tls.h.

uint16_t cipherSuite

Negotiated cipher suite.

Definition at line 1452 of file tls.h.

const uint16_t* cipherSuites

List of supported cipher suites.

Definition at line 1394 of file tls.h.

Client authentication mode.

Definition at line 1482 of file tls.h.

This flag tells whether the client certificate is requested.

Definition at line 1483 of file tls.h.

TlsRandom clientRandom

Client random value.

Definition at line 1523 of file tls.h.

uint16_t clientVersion

Latest version supported by the client.

Definition at line 1450 of file tls.h.

A closure alert has been received from the peer.

Definition at line 1491 of file tls.h.

A closure alert has been sent.

Definition at line 1490 of file tls.h.

Negotiated compression algorithm.

Definition at line 1453 of file tls.h.

Diffie-Hellman context.

Definition at line 1414 of file tls.h.

ECDH context.

Definition at line 1419 of file tls.h.

The EcPointFormats extension has been received.

Definition at line 1480 of file tls.h.

size_t encKeyLen

Number of bytes that are used for generating encryption keys.

Definition at line 1463 of file tls.h.

Client or server operation.

Definition at line 1386 of file tls.h.

A fatal alert message has been received from the peer.

Definition at line 1489 of file tls.h.

A fatal alert message has been sent.

Definition at line 1488 of file tls.h.

size_t fixedIvLen

Amount of data needed to be generated for the IV.

Definition at line 1464 of file tls.h.

Handle for I/O operations.

Definition at line 1388 of file tls.h.

Hash context used to compute verify data (TLS 1.2)

Definition at line 1475 of file tls.h.

MD5 context used to compute verify data.

Definition at line 1470 of file tls.h.

SHA-1 context used to compute verify data.

Definition at line 1471 of file tls.h.

Hash algorithm for MAC operations.

Definition at line 1460 of file tls.h.

HMAC context.

Definition at line 1493 of file tls.h.

uint8_t keyBlock[192]

Key material.

Definition at line 1532 of file tls.h.

Key exchange method.

Definition at line 1457 of file tls.h.

size_t macKeyLen

Number of bytes that are used for generating MAC keys.

Definition at line 1462 of file tls.h.

uint8_t masterSecret[48]

Master secret.

Definition at line 1531 of file tls.h.

uint16_t namedCurve

Named curve.

Definition at line 1454 of file tls.h.

Number of cipher suites in the list.

Definition at line 1395 of file tls.h.

Peer's certificate type.

Definition at line 1429 of file tls.h.

Peer's DSA public key.

Definition at line 1437 of file tls.h.

Peer's EC domain parameters.

Definition at line 1441 of file tls.h.

Peer's EC public key.

Definition at line 1442 of file tls.h.

Peer's RSA public key.

Definition at line 1433 of file tls.h.

uint8_t premasterSecret[TLS_MAX_PREMASTER_SECRET_SIZE]

Premaster secret.

Definition at line 1529 of file tls.h.

Length of the premaster secret.

Definition at line 1530 of file tls.h.

Hash algorithm for PRF operations.

Definition at line 1461 of file tls.h.

Pseudo-random number generator to be used.

Definition at line 1391 of file tls.h.

void* prngContext

Pseudo-random number generator context.

Definition at line 1392 of file tls.h.

char_t* protocolList

List of supported ALPN protocols.

Definition at line 1400 of file tls.h.

char_t* psk

Pre-shared key.

Definition at line 1405 of file tls.h.

PSK callback function.

Definition at line 1409 of file tls.h.

char_t* pskIdentity

PSK identity.

Definition at line 1407 of file tls.h.

char_t* pskIdentityHint

PSK identity hint.

Definition at line 1408 of file tls.h.

size_t pskLen

Length of the pre-shared key, in bytes.

Definition at line 1406 of file tls.h.

Bulk cipher context for read operations.

Definition at line 1495 of file tls.h.

uint8_t* readEncKey

Encryption key that serves for read operations.

Definition at line 1536 of file tls.h.

GCM context for read operations.

Definition at line 1498 of file tls.h.

uint8_t* readIv

Read IV.

Definition at line 1538 of file tls.h.

uint8_t* readMacKey

Read MAC key.

Definition at line 1534 of file tls.h.

Read sequence number.

Definition at line 1541 of file tls.h.

Receive callback function.

Definition at line 1390 of file tls.h.

size_t recordIvLen

Length of the IV.

Definition at line 1465 of file tls.h.

bool_t resume

The connection is established by resuming a session.

Definition at line 1485 of file tls.h.

uint8_t* rxBuffer

RX buffer.

Definition at line 1510 of file tls.h.

size_t rxBufferLen

Number of bytes available for reading.

Definition at line 1513 of file tls.h.

size_t rxBufferPos

Current position in RX buffer.

Definition at line 1514 of file tls.h.

size_t rxBufferSize

RX buffer size.

Definition at line 1511 of file tls.h.

Type of data that resides in the RX buffer.

Definition at line 1512 of file tls.h.

size_t rxRecordLen

Length of the TLS record.

Definition at line 1516 of file tls.h.

Maximum plaintext fragment length.

Definition at line 1515 of file tls.h.

size_t rxRecordPos

Current position in the TLS record.

Definition at line 1517 of file tls.h.

Send callback function.

Definition at line 1389 of file tls.h.

char_t* serverName

Fully qualified DNS hostname of the server.

Definition at line 1397 of file tls.h.

TlsRandom serverRandom

Server random value.

Definition at line 1524 of file tls.h.

uint8_t sessionId[32]

Session identifier.

Definition at line 1447 of file tls.h.

size_t sessionIdLen

Length of the session identifier.

Definition at line 1448 of file tls.h.

Hash algorithm used for signing.

Definition at line 1456 of file tls.h.

TLS handshake finite state machine.

Definition at line 1385 of file tls.h.

const char_t* trustedCaList

List of trusted CA (PEM format)

Definition at line 1426 of file tls.h.

Number of trusted CA in the list.

Definition at line 1427 of file tls.h.

uint8_t* txBuffer

TX buffer.

Definition at line 1501 of file tls.h.

size_t txBufferLen

Number of bytes that are pending to be sent.

Definition at line 1504 of file tls.h.

size_t txBufferPos

Current position in TX buffer.

Definition at line 1505 of file tls.h.

size_t txBufferSize

TX buffer size.

Definition at line 1502 of file tls.h.

Type of data that resides in the TX buffer.

Definition at line 1503 of file tls.h.

size_t txRecordLen

Length of the TLS record.

Definition at line 1507 of file tls.h.

Maximum plaintext fragment length.

Definition at line 1506 of file tls.h.

size_t txRecordPos

Current position in the TLS record.

Definition at line 1508 of file tls.h.

uint8_t verifyData[64]

Verify data.

Definition at line 1478 of file tls.h.

size_t verifyDataLen

Length of the verify data.

Definition at line 1467 of file tls.h.

uint16_t version

Negotiated TLS version.

Definition at line 1451 of file tls.h.

Bulk cipher context for write operations.

Definition at line 1494 of file tls.h.

uint8_t* writeEncKey

Encryption key that serves for write operations.

Definition at line 1535 of file tls.h.

GCM context for write operations.

Definition at line 1497 of file tls.h.

uint8_t* writeIv

Write IV.

Definition at line 1537 of file tls.h.

uint8_t* writeMacKey

Write MAC key.

Definition at line 1533 of file tls.h.

Write sequence number.

Definition at line 1540 of file tls.h.