CryptoPkg: Add Null instance of the TlsLib class
https://bugzilla.tianocore.org/show_bug.cgi?id=2258 Add a Null instance of the TlsLib class. This lib instance can be used as a template for new implementations of the TlsLib class and can also be used to reduce CI build times for build checks that depend on the TlsLib class. Cc: Jian J Wang <jian.j.wang@intel.com> Cc: Xiaoyu Lu <xiaoyux.lu@intel.com> Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com> Reviewed-by: Jian J Wang <jian.j.wang@intel.com>
This commit is contained in:
committed by
Michael D Kinney
parent
412c963842
commit
79cd636f3e
247
CryptoPkg/Library/TlsLibNull/TlsProcessNull.c
Normal file
247
CryptoPkg/Library/TlsLibNull/TlsProcessNull.c
Normal file
@@ -0,0 +1,247 @@
|
||||
/** @file
|
||||
SSL/TLS Process Null Library Wrapper Implementation.
|
||||
The process includes the TLS handshake and packet I/O.
|
||||
|
||||
Copyright (c) 2016 - 2017, Intel Corporation. All rights reserved.<BR>
|
||||
(C) Copyright 2016 Hewlett Packard Enterprise Development LP<BR>
|
||||
SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
|
||||
**/
|
||||
|
||||
#include "InternalTlsLib.h"
|
||||
|
||||
/**
|
||||
Checks if the TLS handshake was done.
|
||||
|
||||
This function will check if the specified TLS handshake was done.
|
||||
|
||||
@param[in] Tls Pointer to the TLS object for handshake state checking.
|
||||
|
||||
@retval TRUE The TLS handshake was done.
|
||||
@retval FALSE The TLS handshake was not done.
|
||||
|
||||
**/
|
||||
BOOLEAN
|
||||
EFIAPI
|
||||
TlsInHandshake (
|
||||
IN VOID *Tls
|
||||
)
|
||||
{
|
||||
ASSERT(FALSE);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/**
|
||||
Perform a TLS/SSL handshake.
|
||||
|
||||
This function will perform a TLS/SSL handshake.
|
||||
|
||||
@param[in] Tls Pointer to the TLS object for handshake operation.
|
||||
@param[in] BufferIn Pointer to the most recently received TLS Handshake packet.
|
||||
@param[in] BufferInSize Packet size in bytes for the most recently received TLS
|
||||
Handshake packet.
|
||||
@param[out] BufferOut Pointer to the buffer to hold the built packet.
|
||||
@param[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.
|
||||
|
||||
@retval EFI_SUCCESS The required TLS packet is built successfully.
|
||||
@retval 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.
|
||||
@retval EFI_BUFFER_TOO_SMALL BufferOutSize is too small to hold the response packet.
|
||||
@retval EFI_ABORTED Something wrong during handshake.
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
TlsDoHandshake (
|
||||
IN VOID *Tls,
|
||||
IN UINT8 *BufferIn, OPTIONAL
|
||||
IN UINTN BufferInSize, OPTIONAL
|
||||
OUT UINT8 *BufferOut, OPTIONAL
|
||||
IN OUT UINTN *BufferOutSize
|
||||
)
|
||||
{
|
||||
ASSERT(FALSE);
|
||||
return EFI_UNSUPPORTED;
|
||||
}
|
||||
|
||||
/**
|
||||
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.
|
||||
|
||||
@param[in] Tls Pointer to the TLS object for state checking.
|
||||
@param[in] BufferIn Pointer to the most recently received TLS Alert packet.
|
||||
@param[in] BufferInSize Packet size in bytes for the most recently received TLS
|
||||
Alert packet.
|
||||
@param[out] BufferOut Pointer to the buffer to hold the built packet.
|
||||
@param[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.
|
||||
|
||||
@retval EFI_SUCCESS The required TLS packet is built successfully.
|
||||
@retval 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.
|
||||
@retval EFI_ABORTED An error occurred.
|
||||
@retval EFI_BUFFER_TOO_SMALL BufferOutSize is too small to hold the response packet.
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
TlsHandleAlert (
|
||||
IN VOID *Tls,
|
||||
IN UINT8 *BufferIn, OPTIONAL
|
||||
IN UINTN BufferInSize, OPTIONAL
|
||||
OUT UINT8 *BufferOut, OPTIONAL
|
||||
IN OUT UINTN *BufferOutSize
|
||||
)
|
||||
{
|
||||
ASSERT(FALSE);
|
||||
return EFI_UNSUPPORTED;
|
||||
}
|
||||
|
||||
/**
|
||||
Build the CloseNotify packet.
|
||||
|
||||
@param[in] Tls Pointer to the TLS object for state checking.
|
||||
@param[in, out] Buffer Pointer to the buffer to hold the built packet.
|
||||
@param[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.
|
||||
|
||||
@retval EFI_SUCCESS The required TLS packet is built successfully.
|
||||
@retval 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.
|
||||
@retval EFI_BUFFER_TOO_SMALL BufferSize is too small to hold the response packet.
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
TlsCloseNotify (
|
||||
IN VOID *Tls,
|
||||
IN OUT UINT8 *Buffer,
|
||||
IN OUT UINTN *BufferSize
|
||||
)
|
||||
{
|
||||
ASSERT(FALSE);
|
||||
return EFI_UNSUPPORTED;
|
||||
}
|
||||
|
||||
/**
|
||||
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.
|
||||
|
||||
@param[in] Tls Pointer to the TLS object.
|
||||
@param[in,out] Buffer Pointer to the buffer to store the data.
|
||||
@param[in] BufferSize The size of Buffer in bytes.
|
||||
|
||||
@retval >0 The amount of data successfully read from the TLS object.
|
||||
@retval <=0 No data was successfully read.
|
||||
|
||||
**/
|
||||
INTN
|
||||
EFIAPI
|
||||
TlsCtrlTrafficOut (
|
||||
IN VOID *Tls,
|
||||
IN OUT VOID *Buffer,
|
||||
IN UINTN BufferSize
|
||||
)
|
||||
{
|
||||
ASSERT(FALSE);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
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.
|
||||
|
||||
@param[in] Tls Pointer to the TLS object.
|
||||
@param[in] Buffer Pointer to the data buffer.
|
||||
@param[in] BufferSize The size of Buffer in bytes.
|
||||
|
||||
@retval >0 The amount of data successfully written to the TLS object.
|
||||
@retval <=0 No data was successfully written.
|
||||
|
||||
**/
|
||||
INTN
|
||||
EFIAPI
|
||||
TlsCtrlTrafficIn (
|
||||
IN VOID *Tls,
|
||||
IN VOID *Buffer,
|
||||
IN UINTN BufferSize
|
||||
)
|
||||
{
|
||||
ASSERT(FALSE);
|
||||
return 0;
|
||||
}
|
||||
/**
|
||||
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.
|
||||
|
||||
@param[in] Tls Pointer to the TLS connection for data reading.
|
||||
@param[in,out] Buffer Pointer to the data buffer.
|
||||
@param[in] BufferSize The size of Buffer in bytes.
|
||||
|
||||
@retval >0 The read operation was successful, and return value is the
|
||||
number of bytes actually read from the TLS connection.
|
||||
@retval <=0 The read operation was not successful.
|
||||
|
||||
**/
|
||||
INTN
|
||||
EFIAPI
|
||||
TlsRead (
|
||||
IN VOID *Tls,
|
||||
IN OUT VOID *Buffer,
|
||||
IN UINTN BufferSize
|
||||
)
|
||||
{
|
||||
ASSERT(FALSE);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
Attempts to write data to a TLS connection.
|
||||
|
||||
This function tries to write BufferSize bytes data from the Buffer into the
|
||||
specified TLS connection.
|
||||
|
||||
@param[in] Tls Pointer to the TLS connection for data writing.
|
||||
@param[in] Buffer Pointer to the data buffer.
|
||||
@param[in] BufferSize The size of Buffer in bytes.
|
||||
|
||||
@retval >0 The write operation was successful, and return value is the
|
||||
number of bytes actually written to the TLS connection.
|
||||
@retval <=0 The write operation was not successful.
|
||||
|
||||
**/
|
||||
INTN
|
||||
EFIAPI
|
||||
TlsWrite (
|
||||
IN VOID *Tls,
|
||||
IN VOID *Buffer,
|
||||
IN UINTN BufferSize
|
||||
)
|
||||
{
|
||||
ASSERT(FALSE);
|
||||
return 0;
|
||||
}
|
||||
|
Reference in New Issue
Block a user