ReactOS 0.4.17-dev-1005-g171e1de
sha3_256.c File Reference
#include "precomp.h"
#include "hash_pattern.c"
Include dependency graph for sha3_256.c:

Go to the source code of this file.

Macros

#define ALG   SHA3_256
 
#define Alg   Sha3_256
 

Functions

VOID SYMCRYPT_CALL SymCryptSha3_256Init (_Out_ PSYMCRYPT_SHA3_256_STATE pState)
 
VOID SYMCRYPT_CALL SymCryptSha3_256Append (_Inout_ PSYMCRYPT_SHA3_256_STATE pState, _In_reads_(cbData) PCBYTE pbData, SIZE_T cbData)
 
VOID SYMCRYPT_CALL SymCryptSha3_256Result (_Inout_ PSYMCRYPT_SHA3_256_STATE pState, _Out_writes_(SYMCRYPT_SHA3_256_RESULT_SIZE) PBYTE pbResult)
 
VOID SYMCRYPT_CALL SymCryptSha3_256StateExport (_In_ PCSYMCRYPT_SHA3_256_STATE pState, _Out_writes_bytes_(SYMCRYPT_SHA3_256_STATE_EXPORT_SIZE) PBYTE pbBlob)
 
SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptSha3_256StateImport (_Out_ PSYMCRYPT_SHA3_256_STATE pState, _In_reads_bytes_(SYMCRYPT_SHA3_256_STATE_EXPORT_SIZE) PCBYTE pbBlob)
 
VOID SYMCRYPT_CALL SymCryptSha3_256Selftest (void)
 

Variables

const SYMCRYPT_HASH SymCryptSha3_256Algorithm_default
 
const PCSYMCRYPT_HASH SymCryptSha3_256Algorithm = &SymCryptSha3_256Algorithm_default
 
static const BYTE sha3_256KATAnswer [32]
 

Macro Definition Documentation

◆ ALG

#define ALG   SHA3_256

Definition at line 33 of file sha3_256.c.

◆ Alg

#define Alg   Sha3_256

Definition at line 34 of file sha3_256.c.

Function Documentation

◆ SymCryptSha3_256Append()

VOID SYMCRYPT_CALL SymCryptSha3_256Append ( _Inout_ PSYMCRYPT_SHA3_256_STATE  pState,
_In_reads_(cbData) PCBYTE  pbData,
SIZE_T  cbData 
)

Definition at line 60 of file sha3_256.c.

64{
66}
VOID SYMCRYPT_CALL SymCryptKeccakAppend(_Inout_ PSYMCRYPT_KECCAK_STATE pState, _In_reads_(cbData) PCBYTE pbData, SIZE_T cbData)
Definition: sha3.c:285
PCBYTE PBYTE SIZE_T cbData
PSYMCRYPT_COMMON_HASH_STATE pState
PCBYTE pbData

Referenced by SymCryptMlKemkeyComputeEncapsulationKeyHash().

◆ SymCryptSha3_256Init()

VOID SYMCRYPT_CALL SymCryptSha3_256Init ( _Out_ PSYMCRYPT_SHA3_256_STATE  pState)

Definition at line 45 of file sha3_256.c.

46{
50
52}
VOID SYMCRYPT_CALL SymCryptKeccakInit(_Out_ PSYMCRYPT_KECCAK_STATE pState, UINT32 inputBlockSize, UINT8 padding)
Definition: sha3.c:174
#define SYMCRYPT_SHA3_PADDING_VALUE
Definition: sc_lib.h:1808
#define SYMCRYPT_SHA3_256_INPUT_BLOCK_SIZE
Definition: symcrypt.h:1615
#define SYMCRYPT_SET_MAGIC(p)

Referenced by SymCryptMlKemkeyComputeEncapsulationKeyHash().

◆ SymCryptSha3_256Result()

Definition at line 74 of file sha3_256.c.

77{
79}
#define TRUE
Definition: types.h:120
VOID SYMCRYPT_CALL SymCryptKeccakExtract(_Inout_ PSYMCRYPT_KECCAK_STATE pState, _Out_writes_(cbResult) PBYTE pbResult, SIZE_T cbResult, BOOLEAN bWipe)
Definition: sha3.c:411
static const BYTE pbResult[]
#define SYMCRYPT_SHA3_256_RESULT_SIZE
Definition: symcrypt.h:1614

Referenced by SymCryptMlKemkeyComputeEncapsulationKeyHash().

◆ SymCryptSha3_256Selftest()

VOID SYMCRYPT_CALL SymCryptSha3_256Selftest ( void  )

Definition at line 129 of file sha3_256.c.

130{
132
134
136
137 if (memcmp(result, sha3_256KATAnswer, sizeof(result)) != 0)
138 {
139 SymCryptFatal('SHA3');
140 }
141}
_ACRTIMP int __cdecl memcmp(const void *, const void *, size_t)
Definition: string.c:2807
GLuint64EXT * result
Definition: glext.h:11304
VOID SYMCRYPT_CALL SymCryptInjectError(PBYTE pbData, SIZE_T cbData)
const BYTE SymCryptTestMsg3[3]
Definition: selftest.c:8
static const BYTE sha3_256KATAnswer[32]
Definition: sha3_256.c:120
_Analysis_noreturn_ VOID SYMCRYPT_CALL SymCryptFatal(UINT32 fatalCode)
VOID SYMCRYPT_CALL SymCryptSha3_256(_In_reads_(cbData) PCBYTE pbData, SIZE_T cbData, _Out_writes_(SYMCRYPT_SHA3_256_RESULT_SIZE) PBYTE pbResult)
unsigned char BYTE
Definition: xxhash.c:193

◆ SymCryptSha3_256StateExport()

Definition at line 87 of file sha3_256.c.

90{
93}
@ SymCryptBlobTypeSha3_256State
Definition: sc_lib.h:1068
VOID SYMCRYPT_CALL SymCryptKeccakStateExport(SYMCRYPT_BLOB_TYPE type, _In_ PCSYMCRYPT_KECCAK_STATE pState, _Out_writes_bytes_(SYMCRYPT_KECCAK_STATE_EXPORT_SIZE) PBYTE pbBlob)
Definition: sha3.c:479
#define SYMCRYPT_CHECK_MAGIC(p)

◆ SymCryptSha3_256StateImport()

Definition at line 101 of file sha3_256.c.

104{
106
107 if (scError == SYMCRYPT_NO_ERROR)
108 {
110 }
111
112 return scError;
113}
SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptKeccakStateImport(SYMCRYPT_BLOB_TYPE type, _Out_ PSYMCRYPT_KECCAK_STATE pState, _In_reads_bytes_(SYMCRYPT_KECCAK_STATE_EXPORT_SIZE) PCBYTE pbBlob)
Definition: sha3.c:518
SYMCRYPT_ERROR
Definition: symcrypt.h:227

Variable Documentation

◆ sha3_256KATAnswer

const BYTE sha3_256KATAnswer[32]
static
Initial value:
= {
0x3a, 0x98, 0x5d, 0xa7, 0x4f, 0xe2, 0x25, 0xb2,
0x04, 0x5c, 0x17, 0x2d, 0x6b, 0xd3, 0x90, 0xbd,
0x85, 0x5f, 0x08, 0x6e, 0x3e, 0x9d, 0x52, 0x5b,
0x46, 0xbf, 0xe2, 0x45, 0x11, 0x43, 0x15, 0x32
}

Definition at line 120 of file sha3_256.c.

Referenced by SymCryptSha3_256Selftest().

◆ SymCryptSha3_256Algorithm

Definition at line 27 of file sha3_256.c.

Referenced by SymCryptHmacSha3_256ExpandKey().

◆ SymCryptSha3_256Algorithm_default

const SYMCRYPT_HASH SymCryptSha3_256Algorithm_default
Initial value:
= {
NULL,
}
#define NULL
Definition: types.h:112
VOID SYMCRYPT_CALL SymCryptSha3_256Init(_Out_ PSYMCRYPT_SHA3_256_STATE pState)
Definition: sha3_256.c:45
VOID SYMCRYPT_CALL SymCryptSha3_256Result(_Inout_ PSYMCRYPT_SHA3_256_STATE pState, _Out_writes_(SYMCRYPT_SHA3_256_RESULT_SIZE) PBYTE pbResult)
Definition: sha3_256.c:74
VOID SYMCRYPT_CALL SymCryptSha3_256Append(_Inout_ PSYMCRYPT_SHA3_256_STATE pState, _In_reads_(cbData) PCBYTE pbData, SIZE_T cbData)
Definition: sha3_256.c:60
VOID SYMCRYPT_CALL SymCryptSha3_256StateCopy(_In_ PCSYMCRYPT_SHA3_256_STATE pSrc, _Out_ PSYMCRYPT_SHA3_256_STATE pDst)
#define SYMCRYPT_FIELD_SIZE(type, field)
SYMCRYPT_MAGIC_FIELD SYMCRYPT_SHA3_256_STATE
#define SYMCRYPT_FIELD_OFFSET(type, field)

Definition at line 14 of file sha3_256.c.