TianoCore EDK2 master
Loading...
Searching...
No Matches
CryptSha256.c File Reference
#include "InternalCryptLib.h"
#include <mbedtls/sha256.h>

Go to the source code of this file.

Functions

UINTN EFIAPI Sha256GetContextSize (VOID)
 
BOOLEAN EFIAPI Sha256Init (OUT VOID *Sha256Context)
 
BOOLEAN EFIAPI Sha256Duplicate (IN CONST VOID *Sha256Context, OUT VOID *NewSha256Context)
 
BOOLEAN EFIAPI Sha256Update (IN OUT VOID *Sha256Context, IN CONST VOID *Data, IN UINTN DataSize)
 
BOOLEAN EFIAPI Sha256Final (IN OUT VOID *Sha256Context, OUT UINT8 *HashValue)
 
BOOLEAN EFIAPI Sha256HashAll (IN CONST VOID *Data, IN UINTN DataSize, OUT UINT8 *HashValue)
 

Detailed Description

SHA-256 Digest Wrapper Implementation over MbedTLS.

Copyright (c) 2023, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent

Definition in file CryptSha256.c.

Function Documentation

◆ Sha256Duplicate()

BOOLEAN EFIAPI Sha256Duplicate ( IN CONST VOID *  Sha256Context,
OUT VOID *  NewSha256Context 
)

Makes a copy of an existing SHA-256 context.

If Sha256Context is NULL, then return FALSE. If NewSha256Context is NULL, then return FALSE.

Parameters
[in]Sha256ContextPointer to SHA-256 context being copied.
[out]NewSha256ContextPointer to new SHA-256 context.
Return values
TRUESHA-256 context copy succeeded.
FALSESHA-256 context copy failed.

Definition at line 76 of file CryptSha256.c.

◆ Sha256Final()

BOOLEAN EFIAPI Sha256Final ( IN OUT VOID *  Sha256Context,
OUT UINT8 *  HashValue 
)

Completes computation of the SHA-256 digest value.

This function completes SHA-256 hash computation and retrieves the digest value into the specified memory. After this function has been called, the SHA-256 context cannot be used again. SHA-256 context should be already correctly initialized by Sha256Init(), and should not be finalized by Sha256Final(). Behavior with invalid SHA-256 context is undefined.

If Sha256Context is NULL, then return FALSE. If HashValue is NULL, then return FALSE.

Parameters
[in,out]Sha256ContextPointer to the SHA-256 context.
[out]HashValuePointer to a buffer that receives the SHA-256 digest value (32 bytes).
Return values
TRUESHA-256 digest computation succeeded.
FALSESHA-256 digest computation failed.

Definition at line 156 of file CryptSha256.c.

◆ Sha256GetContextSize()

UINTN EFIAPI Sha256GetContextSize ( VOID  )

Retrieves the size, in bytes, of the context buffer required for SHA-256 hash operations.

Returns
The size, in bytes, of the context buffer required for SHA-256 hash operations.

Definition at line 20 of file CryptSha256.c.

◆ Sha256HashAll()

BOOLEAN EFIAPI Sha256HashAll ( IN CONST VOID *  Data,
IN UINTN  DataSize,
OUT UINT8 *  HashValue 
)

Computes the SHA-256 message digest of a input data buffer.

This function performs the SHA-256 message digest of a given data buffer, and places the digest value into the specified memory.

If this interface is not supported, then return FALSE.

Parameters
[in]DataPointer to the buffer containing the data to be hashed.
[in]DataSizeSize of Data buffer in bytes.
[out]HashValuePointer to a buffer that receives the SHA-256 digest value (32 bytes).
Return values
TRUESHA-256 digest computation succeeded.
FALSESHA-256 digest computation failed.
FALSEThis interface is not supported.

Definition at line 196 of file CryptSha256.c.

◆ Sha256Init()

BOOLEAN EFIAPI Sha256Init ( OUT VOID *  Sha256Context)

Initializes user-supplied memory pointed by Sha256Context as SHA-256 hash context for subsequent use.

If Sha256Context is NULL, then return FALSE.

Parameters
[out]Sha256ContextPointer to SHA-256 context being initialized.
Return values
TRUESHA-256 context initialization succeeded.
FALSESHA-256 context initialization failed.

Definition at line 41 of file CryptSha256.c.

◆ Sha256Update()

BOOLEAN EFIAPI Sha256Update ( IN OUT VOID *  Sha256Context,
IN CONST VOID *  Data,
IN UINTN  DataSize 
)

Digests the input data and updates SHA-256 context.

This function performs SHA-256 digest on a data buffer of the specified size. It can be called multiple times to compute the digest of long or discontinuous data streams. SHA-256 context should be already correctly initialized by Sha256Init(), and should not be finalized by Sha256Final(). Behavior with invalid context is undefined.

If Sha256Context is NULL, then return FALSE.

Parameters
[in,out]Sha256ContextPointer to the SHA-256 context.
[in]DataPointer to the buffer containing the data to be hashed.
[in]DataSizeSize of Data buffer in bytes.
Return values
TRUESHA-256 data digest succeeded.
FALSESHA-256 data digest failed.

Definition at line 110 of file CryptSha256.c.