ReactOS 0.4.17-dev-1005-g171e1de
sha3_224.c
Go to the documentation of this file.
1//
2// Sha3_224.c
3//
4// Copyright (c) Microsoft Corporation. Licensed under the MIT license.
5//
6
7#include "precomp.h"
8
9//
10// See the symcrypt.h file for documentation on what the various functions do.
11//
12
13
18 NULL, // AppendBlocks function is not implemented for SHA-3
25};
26
28
29
30//
31// SymCryptSha3_224
32//
33#define ALG SHA3_224
34#define Alg Sha3_224
35#include "hash_pattern.c"
36#undef ALG
37#undef Alg
38
39
40//
41// SymCryptSha3_224Init
42//
43VOID
46{
50
52}
53
54
55//
56// SymCryptSha3_224Append
57//
58VOID
64{
66}
67
68
69//
70// SymCryptSha3_224Result
71//
72VOID
77{
79}
80
81
82//
83// SymCryptSha3_224StateExport
84//
85VOID
90{
93}
94
95
96//
97// SymCryptSha3_224StateImport
98//
104{
106
107 if (scError == SYMCRYPT_NO_ERROR)
108 {
110 }
111
112 return scError;
113}
114
115
116//
117// Simple test vector for FIPS module testing
118//
119
120static const BYTE sha3_224KATAnswer[28] = {
121 0xe6, 0x42, 0x82, 0x4c, 0x3f, 0x8c, 0xf2, 0x4a,
122 0xd0, 0x92, 0x34, 0xee, 0x7d, 0x3c, 0x76, 0x6f,
123 0xc9, 0xa3, 0xa5, 0x16, 0x8d, 0x0c, 0x94, 0xad,
124 0x73, 0xb4, 0x6f, 0xdf,
125};
126
127VOID
130{
132
134
136
137 if (memcmp(result, sha3_224KATAnswer, sizeof(result)) != 0)
138 {
139 SymCryptFatal('SHA3');
140 }
141}
#define NULL
Definition: types.h:112
#define TRUE
Definition: types.h:120
_ACRTIMP int __cdecl memcmp(const void *, const void *, size_t)
Definition: string.c:2807
GLuint64EXT * result
Definition: glext.h:11304
#define _In_reads_bytes_(s)
Definition: no_sal2.h:170
#define _In_reads_(s)
Definition: no_sal2.h:168
#define _Inout_
Definition: no_sal2.h:162
#define _Out_writes_(s)
Definition: no_sal2.h:176
#define _Out_
Definition: no_sal2.h:160
#define _In_
Definition: no_sal2.h:158
#define _Out_writes_bytes_(s)
Definition: no_sal2.h:178
BYTE * PBYTE
Definition: pedump.c:66
VOID SYMCRYPT_CALL SymCryptKeccakInit(_Out_ PSYMCRYPT_KECCAK_STATE pState, UINT32 inputBlockSize, UINT8 padding)
Definition: sha3.c:174
@ SymCryptBlobTypeSha3_224State
Definition: sc_lib.h:1074
VOID SYMCRYPT_CALL SymCryptInjectError(PBYTE pbData, SIZE_T cbData)
VOID SYMCRYPT_CALL SymCryptKeccakAppend(_Inout_ PSYMCRYPT_KECCAK_STATE pState, _In_reads_(cbData) PCBYTE pbData, SIZE_T cbData)
Definition: sha3.c:285
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
#define SYMCRYPT_SHA3_PADDING_VALUE
Definition: sc_lib.h:1808
const BYTE SymCryptTestMsg3[3]
Definition: selftest.c:8
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
VOID SYMCRYPT_CALL SymCryptKeccakExtract(_Inout_ PSYMCRYPT_KECCAK_STATE pState, _Out_writes_(cbResult) PBYTE pbResult, SIZE_T cbResult, BOOLEAN bWipe)
Definition: sha3.c:411
const SYMCRYPT_HASH SymCryptSha3_224Algorithm_default
Definition: sha3_224.c:14
static const BYTE sha3_224KATAnswer[28]
Definition: sha3_224.c:120
const PCSYMCRYPT_HASH SymCryptSha3_224Algorithm
Definition: sha3_224.c:27
VOID SYMCRYPT_CALL SymCryptSha3_224Init(_Out_ PSYMCRYPT_SHA3_224_STATE pState)
Definition: sha3_224.c:45
VOID SYMCRYPT_CALL SymCryptSha3_224Result(_Inout_ PSYMCRYPT_SHA3_224_STATE pState, _Out_writes_(SYMCRYPT_SHA3_224_RESULT_SIZE) PBYTE pbResult)
Definition: sha3_224.c:74
VOID SYMCRYPT_CALL SymCryptSha3_224StateExport(_In_ PCSYMCRYPT_SHA3_224_STATE pState, _Out_writes_bytes_(SYMCRYPT_SHA3_224_STATE_EXPORT_SIZE) PBYTE pbBlob)
Definition: sha3_224.c:87
VOID SYMCRYPT_CALL SymCryptSha3_224Selftest(void)
Definition: sha3_224.c:129
SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptSha3_224StateImport(_Out_ PSYMCRYPT_SHA3_224_STATE pState, _In_reads_bytes_(SYMCRYPT_SHA3_224_STATE_EXPORT_SIZE) PCBYTE pbBlob)
Definition: sha3_224.c:101
VOID SYMCRYPT_CALL SymCryptSha3_224Append(_Inout_ PSYMCRYPT_SHA3_224_STATE pState, _In_reads_(cbData) PCBYTE pbData, SIZE_T cbData)
Definition: sha3_224.c:60
static const BYTE pbResult[]
VOID SYMCRYPT_CALL SymCryptSha3_224StateCopy(_In_ PCSYMCRYPT_SHA3_224_STATE pSrc, _Out_ PSYMCRYPT_SHA3_224_STATE pDst)
_Analysis_noreturn_ VOID SYMCRYPT_CALL SymCryptFatal(UINT32 fatalCode)
#define SYMCRYPT_SHA3_224_INPUT_BLOCK_SIZE
Definition: symcrypt.h:1561
VOID SYMCRYPT_CALL SymCryptSha3_224(_In_reads_(cbData) PCBYTE pbData, SIZE_T cbData, _Out_writes_(SYMCRYPT_SHA3_224_RESULT_SIZE) PBYTE pbResult)
#define SYMCRYPT_SHA3_224_RESULT_SIZE
Definition: symcrypt.h:1560
SYMCRYPT_ERROR
Definition: symcrypt.h:227
#define SYMCRYPT_CALL
const SYMCRYPT_SHA3_224_STATE * PCSYMCRYPT_SHA3_224_STATE
struct _SYMCRYPT_HASH SYMCRYPT_HASH
#define SYMCRYPT_FIELD_SIZE(type, field)
SYMCRYPT_MAGIC_FIELD * PSYMCRYPT_SHA3_224_STATE
#define SYMCRYPT_SHA3_224_STATE_EXPORT_SIZE
const SYMCRYPT_HASH * PCSYMCRYPT_HASH
PCBYTE PBYTE SIZE_T cbData
#define SYMCRYPT_SET_MAGIC(p)
#define SYMCRYPT_FIELD_OFFSET(type, field)
PSYMCRYPT_COMMON_HASH_STATE pState
const BYTE * PCBYTE
PCBYTE pbData
SYMCRYPT_MAGIC_FIELD SYMCRYPT_SHA3_224_STATE
#define SYMCRYPT_CHECK_MAGIC(p)
ULONG_PTR SIZE_T
Definition: typedefs.h:80
unsigned char BYTE
Definition: xxhash.c:193