TianoCore EDK2 master
|
#include "InternalTlsLib.h"
Go to the source code of this file.
Functions | |
EFI_STATUS EFIAPI | TlsSetVersion (IN VOID *Tls, IN UINT8 MajorVer, IN UINT8 MinorVer) |
EFI_STATUS EFIAPI | TlsSetConnectionEnd (IN VOID *Tls, IN BOOLEAN IsServer) |
EFI_STATUS EFIAPI | TlsSetCipherList (IN VOID *Tls, IN UINT16 *CipherId, IN UINTN CipherNum) |
EFI_STATUS EFIAPI | TlsSetCompressionMethod (IN UINT8 CompMethod) |
VOID EFIAPI | TlsSetVerify (IN VOID *Tls, IN UINT32 VerifyMode) |
EFI_STATUS EFIAPI | TlsSetVerifyHost (IN VOID *Tls, IN UINT32 Flags, IN CHAR8 *HostName) |
EFI_STATUS EFIAPI | TlsSetSessionId (IN VOID *Tls, IN UINT8 *SessionId, IN UINT16 SessionIdLen) |
EFI_STATUS EFIAPI | TlsSetCaCertificate (IN VOID *Tls, IN VOID *Data, IN UINTN DataSize) |
EFI_STATUS EFIAPI | TlsSetHostPublicCert (IN VOID *Tls, IN VOID *Data, IN UINTN DataSize) |
EFI_STATUS EFIAPI | TlsSetHostPrivateKeyEx (IN VOID *Tls, IN VOID *Data, IN UINTN DataSize, IN VOID *Password OPTIONAL) |
EFI_STATUS EFIAPI | TlsSetHostPrivateKey (IN VOID *Tls, IN VOID *Data, IN UINTN DataSize) |
EFI_STATUS EFIAPI | TlsSetCertRevocationList (IN VOID *Data, IN UINTN DataSize) |
EFI_STATUS EFIAPI | TlsSetSignatureAlgoList (IN VOID *Tls, IN UINT8 *Data, IN UINTN DataSize) |
EFI_STATUS EFIAPI | TlsSetEcCurve (IN VOID *Tls, IN UINT8 *Data, IN UINTN DataSize) |
UINT16 EFIAPI | TlsGetVersion (IN VOID *Tls) |
UINT8 EFIAPI | TlsGetConnectionEnd (IN VOID *Tls) |
EFI_STATUS EFIAPI | TlsGetCurrentCipher (IN VOID *Tls, IN OUT UINT16 *CipherId) |
EFI_STATUS EFIAPI | TlsGetCurrentCompressionId (IN VOID *Tls, IN OUT UINT8 *CompressionId) |
UINT32 EFIAPI | TlsGetVerify (IN VOID *Tls) |
EFI_STATUS EFIAPI | TlsGetSessionId (IN VOID *Tls, IN OUT UINT8 *SessionId, IN OUT UINT16 *SessionIdLen) |
VOID EFIAPI | TlsGetClientRandom (IN VOID *Tls, IN OUT UINT8 *ClientRandom) |
VOID EFIAPI | TlsGetServerRandom (IN VOID *Tls, IN OUT UINT8 *ServerRandom) |
EFI_STATUS EFIAPI | TlsGetKeyMaterial (IN VOID *Tls, IN OUT UINT8 *KeyMaterial) |
EFI_STATUS EFIAPI | TlsGetCaCertificate (IN VOID *Tls, OUT VOID *Data, IN OUT UINTN *DataSize) |
EFI_STATUS EFIAPI | TlsGetHostPublicCert (IN VOID *Tls, OUT VOID *Data, IN OUT UINTN *DataSize) |
EFI_STATUS EFIAPI | TlsGetHostPrivateKey (IN VOID *Tls, OUT VOID *Data, IN OUT UINTN *DataSize) |
EFI_STATUS EFIAPI | TlsGetCertRevocationList (OUT VOID *Data, IN OUT UINTN *DataSize) |
EFI_STATUS EFIAPI | TlsGetExportKey (IN VOID *Tls, IN CONST VOID *Label, IN CONST VOID *Context, IN UINTN ContextLen, OUT VOID *KeyBuffer, IN UINTN KeyBufferLen) |
SSL/TLS Configuration Null Library Wrapper Implementation.
Copyright (c) 2016 - 2017, Intel Corporation. All rights reserved.
(C) Copyright 2016 Hewlett Packard Enterprise Development LP
SPDX-License-Identifier: BSD-2-Clause-Patent
Definition in file TlsConfigNull.c.
Gets the CA Certificate from the cert store.
This function returns the CA certificate for the chosen TLS connection.
[in] | Tls | Pointer to the TLS object. |
[out] | Data | Pointer to the data buffer to receive the CA certificate data sent to the client. |
[in,out] | DataSize | The size of data buffer in bytes. |
EFI_SUCCESS | The operation succeeded. |
EFI_UNSUPPORTED | This function is not supported. |
EFI_BUFFER_TOO_SMALL | The Data is too small to hold the data. |
Definition at line 614 of file TlsConfigNull.c.
EFI_STATUS EFIAPI TlsGetCertRevocationList | ( | OUT VOID * | Data, |
IN OUT UINTN * | DataSize | ||
) |
Gets the CA-supplied certificate revocation list data set in the specified TLS object.
This function returns the CA-supplied certificate revocation list data which was currently set in the specified TLS object.
[out] | Data | Pointer to the data buffer to receive the CRL data. |
[in,out] | DataSize | The size of data buffer in bytes. |
EFI_SUCCESS | The operation succeeded. |
EFI_UNSUPPORTED | This function is not supported. |
EFI_BUFFER_TOO_SMALL | The Data is too small to hold the data. |
Definition at line 698 of file TlsConfigNull.c.
Gets the client random data used in the specified TLS connection.
This function returns the TLS/SSL client random data currently used in the specified TLS connection.
[in] | Tls | Pointer to the TLS object. |
[in,out] | ClientRandom | Buffer to contain the returned client random data (32 bytes). |
Definition at line 542 of file TlsConfigNull.c.
UINT8 EFIAPI TlsGetConnectionEnd | ( | IN VOID * | Tls | ) |
Gets the connection end of the specified TLS connection.
This function returns the connection end (as client or as server) used by the specified TLS connection.
If Tls is NULL, then ASSERT().
[in] | Tls | Pointer to the TLS object. |
Definition at line 419 of file TlsConfigNull.c.
EFI_STATUS EFIAPI TlsGetCurrentCipher | ( | IN VOID * | Tls, |
IN OUT UINT16 * | CipherId | ||
) |
Gets the cipher suite used by the specified TLS connection.
This function returns current cipher suite used by the specified TLS connection.
[in] | Tls | Pointer to the TLS object. |
[in,out] | CipherId | The cipher suite used by the TLS object. |
EFI_SUCCESS | The cipher suite was returned successfully. |
EFI_INVALID_PARAMETER | The parameter is invalid. |
EFI_UNSUPPORTED | Unsupported cipher suite. |
Definition at line 443 of file TlsConfigNull.c.
EFI_STATUS EFIAPI TlsGetCurrentCompressionId | ( | IN VOID * | Tls, |
IN OUT UINT8 * | CompressionId | ||
) |
Gets the compression methods used by the specified TLS connection.
This function returns current integrated compression methods used by the specified TLS connection.
[in] | Tls | Pointer to the TLS object. |
[in,out] | CompressionId | The current compression method used by the TLS object. |
EFI_SUCCESS | The compression method was returned successfully. |
EFI_INVALID_PARAMETER | The parameter is invalid. |
EFI_ABORTED | Invalid Compression method. |
EFI_UNSUPPORTED | This function is not supported. |
Definition at line 470 of file TlsConfigNull.c.
EFI_STATUS EFIAPI TlsGetExportKey | ( | IN VOID * | Tls, |
IN CONST VOID * | Label, | ||
IN CONST VOID * | Context, | ||
IN UINTN | ContextLen, | ||
OUT VOID * | KeyBuffer, | ||
IN UINTN | KeyBufferLen | ||
) |
Derive keying material from a TLS connection.
This function exports keying material using the mechanism described in RFC 5705.
[in] | Tls | Pointer to the TLS object |
[in] | Label | Description of the key for the PRF function |
[in] | Context | Optional context |
[in] | ContextLen | The length of the context value in bytes |
[out] | KeyBuffer | Buffer to hold the output of the TLS-PRF |
[in] | KeyBufferLen | The length of the KeyBuffer |
EFI_SUCCESS | The operation succeeded. |
EFI_INVALID_PARAMETER | The TLS object is invalid. |
EFI_PROTOCOL_ERROR | Some other error occurred. |
Definition at line 727 of file TlsConfigNull.c.
Gets the local private key set in the specified TLS object.
This function returns the local private key data which was currently set in the specified TLS object.
[in] | Tls | Pointer to the TLS object. |
[out] | Data | Pointer to the data buffer to receive the local private key data. |
[in,out] | DataSize | The size of data buffer in bytes. |
EFI_SUCCESS | The operation succeeded. |
EFI_UNSUPPORTED | This function is not supported. |
EFI_BUFFER_TOO_SMALL | The Data is too small to hold the data. |
Definition at line 671 of file TlsConfigNull.c.
Gets the local public Certificate set in the specified TLS object.
This function returns the local public certificate which was currently set in the specified TLS object.
[in] | Tls | Pointer to the TLS object. |
[out] | Data | Pointer to the data buffer to receive the local public certificate. |
[in,out] | DataSize | The size of data buffer in bytes. |
EFI_SUCCESS | The operation succeeded. |
EFI_INVALID_PARAMETER | The parameter is invalid. |
EFI_NOT_FOUND | The certificate is not found. |
EFI_BUFFER_TOO_SMALL | The Data is too small to hold the data. |
Definition at line 643 of file TlsConfigNull.c.
EFI_STATUS EFIAPI TlsGetKeyMaterial | ( | IN VOID * | Tls, |
IN OUT UINT8 * | KeyMaterial | ||
) |
Gets the master key data used in the specified TLS connection.
This function returns the TLS/SSL master key material currently used in the specified TLS connection.
[in] | Tls | Pointer to the TLS object. |
[in,out] | KeyMaterial | Buffer to contain the returned key material. |
EFI_SUCCESS | Key material was returned successfully. |
EFI_INVALID_PARAMETER | The parameter is invalid. |
EFI_UNSUPPORTED | Invalid TLS/SSL session. |
Definition at line 587 of file TlsConfigNull.c.
Gets the server random data used in the specified TLS connection.
This function returns the TLS/SSL server random data currently used in the specified TLS connection.
[in] | Tls | Pointer to the TLS object. |
[in,out] | ServerRandom | Buffer to contain the returned server random data (32 bytes). |
Definition at line 563 of file TlsConfigNull.c.
EFI_STATUS EFIAPI TlsGetSessionId | ( | IN VOID * | Tls, |
IN OUT UINT8 * | SessionId, | ||
IN OUT UINT16 * | SessionIdLen | ||
) |
Gets the session ID used by the specified TLS connection.
This function returns the TLS/SSL session ID currently used by the specified TLS connection.
[in] | Tls | Pointer to the TLS object. |
[in,out] | SessionId | Buffer to contain the returned session ID. |
[in,out] | SessionIdLen | The length of Session ID in bytes. |
EFI_SUCCESS | The Session ID was returned successfully. |
EFI_INVALID_PARAMETER | The parameter is invalid. |
EFI_UNSUPPORTED | Invalid TLS/SSL session. |
Definition at line 519 of file TlsConfigNull.c.
UINT32 EFIAPI TlsGetVerify | ( | IN VOID * | Tls | ) |
Gets the verification mode currently set in the TLS connection.
This function returns the peer verification mode currently set in the specified TLS connection.
If Tls is NULL, then ASSERT().
[in] | Tls | Pointer to the TLS object. |
Definition at line 494 of file TlsConfigNull.c.
UINT16 EFIAPI TlsGetVersion | ( | IN VOID * | Tls | ) |
Gets the protocol version used by the specified TLS connection.
This function returns the protocol version used by the specified TLS connection.
If Tls is NULL, then ASSERT().
[in] | Tls | Pointer to the TLS object. |
Definition at line 396 of file TlsConfigNull.c.
EFI_STATUS EFIAPI TlsSetCaCertificate | ( | IN VOID * | Tls, |
IN VOID * | Data, | ||
IN UINTN | DataSize | ||
) |
Adds the CA to the cert store when requesting Server or Client authentication.
This function adds the CA certificate to the list of CAs when requesting Server or Client authentication for the chosen TLS connection.
[in] | Tls | Pointer to the TLS object. |
[in] | Data | Pointer to the data buffer of a DER-encoded binary X.509 certificate or PEM-encoded X.509 certificate. |
[in] | DataSize | The size of data buffer in bytes. |
EFI_SUCCESS | The operation succeeded. |
EFI_INVALID_PARAMETER | The parameter is invalid. |
EFI_OUT_OF_RESOURCES | Required resources could not be allocated. |
EFI_ABORTED | Invalid X.509 certificate. |
Definition at line 203 of file TlsConfigNull.c.
EFI_STATUS EFIAPI TlsSetCertRevocationList | ( | IN VOID * | Data, |
IN UINTN | DataSize | ||
) |
Adds the CA-supplied certificate revocation list for certificate validation.
This function adds the CA-supplied certificate revocation list data for certificate validity checking.
[in] | Data | Pointer to the data buffer of a DER-encoded CRL data. |
[in] | DataSize | The size of data buffer in bytes. |
EFI_SUCCESS | The operation succeeded. |
EFI_UNSUPPORTED | This function is not supported. |
EFI_ABORTED | Invalid CRL data. |
Definition at line 317 of file TlsConfigNull.c.
EFI_STATUS EFIAPI TlsSetCipherList | ( | IN VOID * | Tls, |
IN UINT16 * | CipherId, | ||
IN UINTN | CipherNum | ||
) |
Set the ciphers list to be used by the TLS object.
This function sets the ciphers for use by a specified TLS object.
[in] | Tls | Pointer to a TLS object. |
[in] | CipherId | Array of UINT16 cipher identifiers. Each UINT16 cipher identifier comes from the TLS Cipher Suite Registry of the IANA, interpreting Byte1 and Byte2 in network (big endian) byte order. |
[in] | CipherNum | The number of cipher in the list. |
EFI_SUCCESS | The ciphers list was set successfully. |
EFI_INVALID_PARAMETER | The parameter is invalid. |
EFI_UNSUPPORTED | No supported TLS cipher was found in CipherId. |
EFI_OUT_OF_RESOURCES | Memory allocation failed. |
Definition at line 82 of file TlsConfigNull.c.
EFI_STATUS EFIAPI TlsSetCompressionMethod | ( | IN UINT8 | CompMethod | ) |
Set the compression method for TLS/SSL operations.
This function handles TLS/SSL integrated compression methods.
[in] | CompMethod | The compression method ID. |
EFI_SUCCESS | The compression method for the communication was set successfully. |
EFI_UNSUPPORTED | Unsupported compression method. |
Definition at line 106 of file TlsConfigNull.c.
EFI_STATUS EFIAPI TlsSetConnectionEnd | ( | IN VOID * | Tls, |
IN BOOLEAN | IsServer | ||
) |
Set TLS object to work in client or server mode.
This function prepares a TLS object to work in client or server mode.
[in] | Tls | Pointer to a TLS object. |
[in] | IsServer | Work in server mode. |
EFI_SUCCESS | The TLS/SSL work mode was set successfully. |
EFI_INVALID_PARAMETER | The parameter is invalid. |
EFI_UNSUPPORTED | Unsupported TLS/SSL work mode. |
Definition at line 53 of file TlsConfigNull.c.
EFI_STATUS EFIAPI TlsSetEcCurve | ( | IN VOID * | Tls, |
IN UINT8 * | Data, | ||
IN UINTN | DataSize | ||
) |
Set the EC curve to be used for TLS flows
This function sets the EC curve to be used for TLS flows.
[in] | Tls | Pointer to a TLS object. |
[in] | Data | An EC named curve as defined in section 5.1.1 of RFC 4492. |
[in] | DataSize | Size of Data, it should be sizeof (UINT32) |
EFI_SUCCESS | The EC curve was set successfully. |
EFI_INVALID_PARAMETER | The parameters are invalid. |
EFI_UNSUPPORTED | The requested TLS EC curve is not supported |
Definition at line 371 of file TlsConfigNull.c.
EFI_STATUS EFIAPI TlsSetHostPrivateKey | ( | IN VOID * | Tls, |
IN VOID * | Data, | ||
IN UINTN | DataSize | ||
) |
Adds the local private key to the specified TLS object.
This function adds the local private key (DER-encoded or PEM-encoded or PKCS#8 private key) into the specified TLS object for TLS negotiation.
[in] | Tls | Pointer to the TLS object. |
[in] | Data | Pointer to the data buffer of a DER-encoded or PEM-encoded or PKCS#8 private key. |
[in] | DataSize | The size of data buffer in bytes. |
EFI_SUCCESS | The operation succeeded. |
EFI_UNSUPPORTED | This function is not supported. |
EFI_ABORTED | Invalid private key data. |
Definition at line 291 of file TlsConfigNull.c.
EFI_STATUS EFIAPI TlsSetHostPrivateKeyEx | ( | IN VOID * | Tls, |
IN VOID * | Data, | ||
IN UINTN | DataSize, | ||
IN VOID *Password | OPTIONAL | ||
) |
Adds the local private key to the specified TLS object.
This function adds the local private key (DER-encoded or PEM-encoded or PKCS#8 private key) into the specified TLS object for TLS negotiation.
[in] | Tls | Pointer to the TLS object. |
[in] | Data | Pointer to the data buffer of a DER-encoded or PEM-encoded or PKCS#8 private key. |
[in] | DataSize | The size of data buffer in bytes. |
[in] | Password | Pointer to NULL-terminated private key password, set it to NULL if private key not encrypted. |
EFI_SUCCESS | The operation succeeded. |
EFI_UNSUPPORTED | This function is not supported. |
EFI_ABORTED | Invalid private key data. |
Definition at line 262 of file TlsConfigNull.c.
EFI_STATUS EFIAPI TlsSetHostPublicCert | ( | IN VOID * | Tls, |
IN VOID * | Data, | ||
IN UINTN | DataSize | ||
) |
Loads the local public certificate into the specified TLS object.
This function loads the X.509 certificate into the specified TLS object for TLS negotiation.
[in] | Tls | Pointer to the TLS object. |
[in] | Data | Pointer to the data buffer of a DER-encoded binary X.509 certificate or PEM-encoded X.509 certificate. |
[in] | DataSize | The size of data buffer in bytes. |
EFI_SUCCESS | The operation succeeded. |
EFI_INVALID_PARAMETER | The parameter is invalid. |
EFI_OUT_OF_RESOURCES | Required resources could not be allocated. |
EFI_ABORTED | Invalid X.509 certificate. |
Definition at line 232 of file TlsConfigNull.c.
EFI_STATUS EFIAPI TlsSetSessionId | ( | IN VOID * | Tls, |
IN UINT8 * | SessionId, | ||
IN UINT16 | SessionIdLen | ||
) |
Sets a TLS/SSL session ID to be used during TLS/SSL connect.
This function sets a session ID to be used when the TLS/SSL connection is to be established.
[in] | Tls | Pointer to the TLS object. |
[in] | SessionId | Session ID data used for session resumption. |
[in] | SessionIdLen | Length of Session ID in bytes. |
EFI_SUCCESS | Session ID was set successfully. |
EFI_INVALID_PARAMETER | The parameter is invalid. |
EFI_UNSUPPORTED | No available session for ID setting. |
Definition at line 174 of file TlsConfigNull.c.
EFI_STATUS EFIAPI TlsSetSignatureAlgoList | ( | IN VOID * | Tls, |
IN UINT8 * | Data, | ||
IN UINTN | DataSize | ||
) |
Set the signature algorithm list to used by the TLS object.
This function sets the signature algorithms for use by a specified TLS object.
[in] | Tls | Pointer to a TLS object. |
[in] | Data | Array of UINT8 of signature algorithms. The array consists of pairs of the hash algorithm and the signature algorithm as defined in RFC 5246 |
[in] | DataSize | The length the SignatureAlgoList. Must be divisible by 2. |
EFI_SUCCESS | The signature algorithm list was set successfully. |
EFI_INVALID_PARAMETER | The parameters are invalid. |
EFI_UNSUPPORTED | No supported TLS signature algorithm was found in SignatureAlgoList |
EFI_OUT_OF_RESOURCES | Memory allocation failed. |
Definition at line 345 of file TlsConfigNull.c.
Set peer certificate verification mode for the TLS connection.
This function sets the verification mode flags for the TLS connection.
[in] | Tls | Pointer to the TLS object. |
[in] | VerifyMode | A set of logically or'ed verification mode flags. |
Definition at line 125 of file TlsConfigNull.c.
EFI_STATUS EFIAPI TlsSetVerifyHost | ( | IN VOID * | Tls, |
IN UINT32 | Flags, | ||
IN CHAR8 * | HostName | ||
) |
Set the specified host name to be verified.
[in] | Tls | Pointer to the TLS object. |
[in] | Flags | The setting flags during the validation. |
[in] | HostName | The specified host name to be verified. |
EFI_SUCCESS | The HostName setting was set successfully. |
EFI_INVALID_PARAMETER | The parameter is invalid. |
EFI_ABORTED | Invalid HostName setting. |
Definition at line 147 of file TlsConfigNull.c.
EFI_STATUS EFIAPI TlsSetVersion | ( | IN VOID * | Tls, |
IN UINT8 | MajorVer, | ||
IN UINT8 | MinorVer | ||
) |
Set a new TLS/SSL method for a particular TLS object.
This function sets a new TLS/SSL method for a particular TLS object.
[in] | Tls | Pointer to a TLS object. |
[in] | MajorVer | Major Version of TLS/SSL Protocol. |
[in] | MinorVer | Minor Version of TLS/SSL Protocol. |
EFI_SUCCESS | The TLS/SSL method was set successfully. |
EFI_INVALID_PARAMETER | The parameter is invalid. |
EFI_UNSUPPORTED | Unsupported TLS/SSL method. |
Definition at line 28 of file TlsConfigNull.c.