The following functions and variables are designated as internal to the SSL module.
Enumerations
|
Name |
Description |
|
State machine for SSLRxServerHello | |
|
Describes the two types of Alert records | |
|
Describes the types of SSL messages (handshake and alerts) | |
|
SSL Session Type Enumeration |
Functions
|
Name |
Description |
|
Calculates the handshake hash over the data. hashID can be either MD5 or SHA-1, and this function will calculate accordingly. | |
|
Generates hash rounds to find either the Master Secret or the Key Block. | |
|
Generates the session write keys and MAC secrets | |
|
Hashes the message contents into the Handshake hash structures and begins a new handshake hash. | |
|
Reads data from socket, transparently hashing it into the handshake hashes. | |
|
*
*
*
*
*
*
| |
|
Reads data from socket, transparently hashing it into the handshake hashes. | |
|
Writes data to socket, transparently hashing it into the handshake hashes. | |
|
*
*
*
*
*
*
| |
|
This is function HSPutROMArray. | |
|
Writes data to socket, transparently hashing it into the handshake hashes. | |
|
Sets up the buffer to store data for handshake hash tracking | |
|
Copies data from Ethernet RAM to local RAM | |
|
Copies data in PIC RAM to the Ethernet RAM | |
|
Allocates a buffer for use. | |
|
Specified buffer is released | |
|
Specified buffer is loaded to RAM. Only loads if necessary, and saves any current buffer before switching. | |
|
Allocates a hash for use. | |
|
Specified hash is released | |
|
Specified hash is loaded to RAM. Only loads if necessary, and saves any current hash before switching. | |
|
Specified key set is loaded to RAM. Only loads if necessary, and saves any current key set before switching. | |
|
This is function SSLMACAdd. | |
|
This is function SSLMACBegin. | |
|
This is function SSLMACCalc. | |
|
Pauses connection processing until RSA calculation is complete. | |
|
Receives an alert message and decides what to do | |
|
Receives the SSLv2 ClientHello message, initiating a new SSL session with a client | |
|
Receives a ChangeCipherSpec from the remote server | |
|
Receives the ClientHello message, initiating a new SSL session with a client | |
|
Receives the ClientKeyExchange message and begins the decryption process. | |
|
Receives the Finished message from remote node | |
|
Receives a handshake message. | |
|
Receives an SSL record. | |
|
Receives ServerCertificate from the remote server, locates the public key information, and executes RSA operation. | |
|
Receives the ServerHello from the remote server | |
|
Locates a cached SSL session for reuse. Syncs found session into RAM. | |
|
Locates a cached SSL session for reuse | |
|
Finds space for a new SSL session | |
|
Specified session is loaded to RAM. Only loads if necessary, and saves any current session before switching if it has been updated. | |
|
Begins a long SSL record. | |
|
Allocates a stub for use. | |
|
Specified stub is released | |
|
Specified stub is loaded to RAM. Only loads if necessary, and saves any current stub before switching. | |
|
Terminates an SSL connection and releases allocated resources. | |
|
Generates the session keys from the master secret, then allocates and generates the encryption context. Once processing is complete, transmits the Change Cipher Spec message and the Finished handshake message to the server. | |
|
Transmits the ClientHello message to initiate a new SSL session with the server. | |
|
Transmits the encrypted pre-master secret to the server and requests the Change Cipher Spec. Also generates the Master Secret from the pre-master secret that was used. | |
|
Transmits an SSL message. | |
|
Transmits an SSL record. | |
|
Transmits the Certificate message with the server's specified public key certificate. | |
|
Transmits the ServerHello message. | |
|
Transmits the ServerHelloDone message. |
Macros
|
Name |
Description |
|
Total space needed by all SSL storage requirements | |
|
Protocol code for Alert records | |
|
Protocol code for Application data records | |
|
Base address for SSL buffers | |
|
Base address for SSL hashes | |
|
Base address for SSL keys | |
|
Base address for SSL sessions | |
|
Base address for SSL stubs | |
|
Amount of space needed by a single SSL buffer | |
|
Amount of space needed by all SSL buffer | |
|
Protocol code for Change Cipher Spec records | |
|
Protocol code for Handshake records | |
|
Amount of space needed by a single SSL hash | |
|
Amount of space needed by all SSL hash | |
|
Amount of space needed by a single SSL key | |
|
Amount of space needed by all SSL key | |
|
This is macro SSL_RSA_EXPORT_WITH_ARCFOUR_40_MD5. | |
|
This is macro SSL_RSA_WITH_ARCFOUR_128_MD5. | |
|
Amount of space needed by a single SSL session | |
|
Amount of space needed by all SSL session | |
|
Amount of space needed by a single SSL stub | |
|
Amount of space needed by all SSL stubs | |
|
SSL version number | |
|
SSL version number (high byte) | |
|
SSL version number (low byte) | |
|
This is macro SSLFinishPartialRecord. | |
|
This is macro SSLFlushPartialRecord. | |
|
This is macro SSLSessionUpdated. |
Module
Structures
|
Name |
Description |
|
Memory definition for SSL keys. This area is split into Local and Remote areas. During the handshake, Local.random and Remote.random hold the ServerRandom and ClientRandom values. Once the session keys are calculated, the Local.app and Remote.app contain the MAC secret, record sequence number, and encryption context for the ARCFOUR module. | |
|
Storage space for SSL Session identifiers. (The SessionID and MasterSecret) | |
|
Stub value for an SSL_SESSION. The tag associates this session with a remote node, either by matching to a remote IP address when we are the client or the first 3 bytes of the session ID when we are the host. When a session is free/expired, the tag is 0x00000000. The lastUsed value is the Tick count when the session was last used so that older sessions may be overwritten first. | |
|
Memory holder for general information associated with an SSL connections. |
Unions
|
Name |
Description |
|
Generic buffer space for SSL. The hashRounds element is used when this buffer is needed for handshake hash calculations, and the full element is used as the Sbox for ARCFOUR calculations. |
Variables
|
Name |
Description |
|
Indicates which buffers are in use | |
|
Indicates which hashes are in use | |
|
Indicates which stubs are in use | |
|
Masks for each bit in the is*Used variables | |
|
Used in buffering handshake results | |
|
RSA public certificate data ? | |
|
RSA public certificate length ? | |
|
Which buffer is loaded | |
|
Hash storage | |
|
Which hash is loaded | |
|
The current SSL session | |
|
Which SSL_KEYS are loaded | |
|
Which stub is using RSA, if any | |
|
Current session data | |
|
Which session is loaded | |
|
8 byte session stubs | |
|
Whether or not it has been updated | |
|
The current SSL stub | |
|
Which SSL_STUB is loaded |