TianoCore EDK2 master
|
#include "InternalTlsLib.h"
Go to the source code of this file.
Macros | |
#define | MAX_BUFFER_SIZE 32768 |
Functions | |
BOOLEAN EFIAPI | TlsInHandshake (IN VOID *Tls) |
EFI_STATUS EFIAPI | TlsDoHandshake (IN VOID *Tls, IN UINT8 *BufferIn OPTIONAL, IN UINTN BufferInSize OPTIONAL, OUT UINT8 *BufferOut OPTIONAL, IN OUT UINTN *BufferOutSize) |
EFI_STATUS EFIAPI | TlsHandleAlert (IN VOID *Tls, IN UINT8 *BufferIn OPTIONAL, IN UINTN BufferInSize OPTIONAL, OUT UINT8 *BufferOut OPTIONAL, IN OUT UINTN *BufferOutSize) |
EFI_STATUS EFIAPI | TlsCloseNotify (IN VOID *Tls, IN OUT UINT8 *Buffer, IN OUT UINTN *BufferSize) |
INTN EFIAPI | TlsCtrlTrafficOut (IN VOID *Tls, IN OUT VOID *Buffer, IN UINTN BufferSize) |
INTN EFIAPI | TlsCtrlTrafficIn (IN VOID *Tls, IN VOID *Buffer, IN UINTN BufferSize) |
INTN EFIAPI | TlsRead (IN VOID *Tls, IN OUT VOID *Buffer, IN UINTN BufferSize) |
INTN EFIAPI | TlsWrite (IN VOID *Tls, IN VOID *Buffer, IN UINTN BufferSize) |
EFI_STATUS EFIAPI | TlsShutdown (IN VOID *Tls) |
SSL/TLS Process Library Wrapper Implementation over OpenSSL. The process includes the TLS handshake and packet I/O.
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 TlsProcess.c.
#define MAX_BUFFER_SIZE 32768 |
Definition at line 13 of file TlsProcess.c.
EFI_STATUS EFIAPI TlsCloseNotify | ( | IN VOID * | Tls, |
IN OUT UINT8 * | Buffer, | ||
IN OUT UINTN * | BufferSize | ||
) |
Build the CloseNotify packet.
[in] | Tls | Pointer to the TLS object for state checking. |
[in,out] | Buffer | Pointer to the buffer to hold the built packet. |
[in,out] | BufferSize | Pointer to the buffer size in bytes. On input, it is the buffer size provided by the caller. On output, it is the buffer size in fact needed to contain the packet. |
EFI_SUCCESS | The required TLS packet is built successfully. |
EFI_INVALID_PARAMETER | One or more of the following conditions is TRUE: Tls is NULL. BufferSize is NULL. Buffer is NULL if *BufferSize is not zero. |
EFI_BUFFER_TOO_SMALL | BufferSize is too small to hold the response packet. |
Definition at line 284 of file TlsProcess.c.
Attempts to write data from the buffer to TLS object.
This function will attempt to write BufferSize bytes data from the Buffer to the TLS object.
[in] | Tls | Pointer to the TLS object. |
[in] | Buffer | Pointer to the data buffer. |
[in] | BufferSize | The size of Buffer in bytes. |
>0 | The amount of data successfully written to the TLS object. |
<=0 | No data was successfully written. |
Definition at line 378 of file TlsProcess.c.
Attempts to read bytes from one TLS object and places the data in Buffer.
This function will attempt to read BufferSize bytes from the TLS object and places the data in Buffer.
[in] | Tls | Pointer to the TLS object. |
[in,out] | Buffer | Pointer to the buffer to store the data. |
[in] | BufferSize | The size of Buffer in bytes. |
>0 | The amount of data successfully read from the TLS object. |
<=0 | No data was successfully read. |
Definition at line 343 of file TlsProcess.c.
EFI_STATUS EFIAPI TlsDoHandshake | ( | IN VOID * | Tls, |
IN UINT8 *BufferIn | OPTIONAL, | ||
IN UINTN BufferInSize | OPTIONAL, | ||
OUT UINT8 *BufferOut | OPTIONAL, | ||
IN OUT UINTN * | BufferOutSize | ||
) |
Perform a TLS/SSL handshake.
This function will perform a TLS/SSL handshake.
[in] | Tls | Pointer to the TLS object for handshake operation. |
[in] | BufferIn | Pointer to the most recently received TLS Handshake packet. |
[in] | BufferInSize | Packet size in bytes for the most recently received TLS Handshake packet. |
[out] | BufferOut | Pointer to the buffer to hold the built packet. |
[in,out] | BufferOutSize | Pointer to the buffer size in bytes. On input, it is the buffer size provided by the caller. On output, it is the buffer size in fact needed to contain the packet. |
EFI_SUCCESS | The required TLS packet is built successfully. |
EFI_INVALID_PARAMETER | One or more of the following conditions is TRUE: Tls is NULL. BufferIn is NULL but BufferInSize is NOT 0. BufferInSize is 0 but BufferIn is NOT NULL. BufferOutSize is NULL. BufferOut is NULL if *BufferOutSize is not zero. |
EFI_BUFFER_TOO_SMALL | BufferOutSize is too small to hold the response packet. |
EFI_ABORTED | Something wrong during handshake. |
Definition at line 73 of file TlsProcess.c.
EFI_STATUS EFIAPI TlsHandleAlert | ( | IN VOID * | Tls, |
IN UINT8 *BufferIn | OPTIONAL, | ||
IN UINTN BufferInSize | OPTIONAL, | ||
OUT UINT8 *BufferOut | OPTIONAL, | ||
IN OUT UINTN * | BufferOutSize | ||
) |
Handle Alert message recorded in BufferIn. If BufferIn is NULL and BufferInSize is zero, TLS session has errors and the response packet needs to be Alert message based on error type.
[in] | Tls | Pointer to the TLS object for state checking. |
[in] | BufferIn | Pointer to the most recently received TLS Alert packet. |
[in] | BufferInSize | Packet size in bytes for the most recently received TLS Alert packet. |
[out] | BufferOut | Pointer to the buffer to hold the built packet. |
[in,out] | BufferOutSize | Pointer to the buffer size in bytes. On input, it is the buffer size provided by the caller. On output, it is the buffer size in fact needed to contain the packet. |
EFI_SUCCESS | The required TLS packet is built successfully. |
EFI_INVALID_PARAMETER | One or more of the following conditions is TRUE: Tls is NULL. BufferIn is NULL but BufferInSize is NOT 0. BufferInSize is 0 but BufferIn is NOT NULL. BufferOutSize is NULL. BufferOut is NULL if *BufferOutSize is not zero. |
EFI_ABORTED | An error occurred. |
EFI_BUFFER_TOO_SMALL | BufferOutSize is too small to hold the response packet. |
Definition at line 202 of file TlsProcess.c.
BOOLEAN EFIAPI TlsInHandshake | ( | IN VOID * | Tls | ) |
Checks if the TLS handshake was done.
This function will check if the specified TLS handshake was done.
[in] | Tls | Pointer to the TLS object for handshake state checking. |
TRUE | The TLS handshake was done. |
FALSE | The TLS handshake was not done. |
Definition at line 28 of file TlsProcess.c.
Attempts to read bytes from the specified TLS connection into the buffer.
This function tries to read BufferSize bytes data from the specified TLS connection into the Buffer.
[in] | Tls | Pointer to the TLS connection for data reading. |
[in,out] | Buffer | Pointer to the data buffer. |
[in] | BufferSize | The size of Buffer in bytes. |
>0 | The read operation was successful, and return value is the number of bytes actually read from the TLS connection. |
<=0 | The read operation was not successful. |
Definition at line 414 of file TlsProcess.c.
EFI_STATUS EFIAPI TlsShutdown | ( | IN VOID * | Tls | ) |
Shutdown a TLS connection.
Shutdown the TLS connection without releasing the resources, meaning a new connection can be started without calling TlsNew() and without setting certificates etc.
[in] | Tls | Pointer to the TLS object to shutdown. |
EFI_SUCCESS | The TLS is shutdown successfully. |
EFI_INVALID_PARAMETER | Tls is NULL. |
EFI_PROTOCOL_ERROR | Some other error occurred. |
Definition at line 484 of file TlsProcess.c.
Attempts to write data to a TLS connection.
This function tries to write BufferSize bytes data from the Buffer into the specified TLS connection.
[in] | Tls | Pointer to the TLS connection for data writing. |
[in] | Buffer | Pointer to the data buffer. |
[in] | BufferSize | The size of Buffer in bytes. |
>0 | The write operation was successful, and return value is the number of bytes actually written to the TLS connection. |
<=0 | The write operation was not successful. |
Definition at line 450 of file TlsProcess.c.