36 0x5a827999UL, 0x6ed9eba1UL, 0x8f1bbcdcUL, 0xca62c1d6UL,
175#define MAJ( x, y, z ) ((((x) | (y)) & (z) ) | ((x) & (y)))
176#define CH( x, y, z ) ((((z) ^ (y)) & (x)) ^ (z))
178#define PARITY( x, y, z ) ((x) ^ (y) ^ (z) )
207#define CROUND( a, b, c, d, e, r, F ) {\
209 e += ROL32( a, 5 ) + F(b, c, d) + Sha1K[r/20] + Wt;\
213#define IROUND( a, b, c, d, e, r, F ) { \
214 Wt = SYMCRYPT_LOAD_MSBFIRST32( &pbData[ 4*r ] ); \
215 CROUND( a, b, c, d, e, r, F ); \
223#define FROUND( a, b, c, d, e, r, F ) { \
224 Wt = ROL32( W[(r+13)%16] ^ W[(r+8)%16] ^ W[(r+2)%16] ^ W[r%16], 1 );\
225 CROUND( a, b, c, d, e, r, F ); \
344 pChain->H[0] =
A =
A + pChain->H[0];
345 pChain->H[1] =
B =
B + pChain->H[1];
346 pChain->H[2] =
C =
C + pChain->H[2];
347 pChain->H[3] =
D =
D + pChain->H[3];
348 pChain->H[4] = E = E + pChain->H[4];
421 scError = SYMCRYPT_INVALID_BLOB;
428 scError = SYMCRYPT_INVALID_BLOB;
435 pState->bytesInBuffer =
blob.dataLength & 0x3f;
452 0xa9, 0x99, 0x3e, 0x36,
453 0x47, 0x06, 0x81, 0x6a,
454 0xba, 0x3e, 0x25, 0x71,
455 0x78, 0x50, 0xc2, 0x6c,
456 0x9c, 0xd0, 0xd8, 0x9d
static cab_ULONG checksum(const cab_UBYTE *data, cab_UWORD bytes, cab_ULONG csum)
static void cleanup(void)
_ACRTIMP int __cdecl memcmp(const void *, const void *, size_t)
#define memcpy(s1, s2, n)
#define _In_reads_bytes_(s)
#define _Out_writes_bytes_(s)
#define SYMCRYPT_BLOB_MAGIC
@ SymCryptBlobTypeSha1State
VOID SYMCRYPT_CALL SymCryptInjectError(PBYTE pbData, SIZE_T cbData)
FORCEINLINE VOID SYMCRYPT_CALL SymCryptUint32ToMsbFirst(_In_reads_(cuData) PCUINT32 puData, _Out_writes_(4 *cuData) PBYTE pbResult, SIZE_T cuData)
const BYTE SymCryptTestMsg3[3]
FORCEINLINE VOID SYMCRYPT_CALL SymCryptMsbFirstToUint32(_In_reads_(4 *cuResult) PCBYTE pbData, _Out_writes_(cuResult) PUINT32 puResult, SIZE_T cuResult)
VOID SYMCRYPT_CALL SymCryptHashAppendInternal(_In_ PCSYMCRYPT_HASH pHash, _Inout_ PSYMCRYPT_COMMON_HASH_STATE pState, _In_reads_bytes_(cbData) PCBYTE pbData, SIZE_T cbData)
const SYMCRYPT_HASH SymCryptSha1Algorithm_default
SYMCRYPT_NOINLINE VOID SYMCRYPT_CALL SymCryptSha1Init(_Out_ PSYMCRYPT_SHA1_STATE pState)
static const BYTE sha1KATAnswer[20]
#define IROUND(a, b, c, d, e, r, F)
static const UINT32 sha1InitialState[5]
SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptSha1StateImport(_Out_ PSYMCRYPT_SHA1_STATE pState, _In_reads_bytes_(SYMCRYPT_SHA1_STATE_EXPORT_SIZE) PCBYTE pbBlob)
const PCSYMCRYPT_HASH SymCryptSha1Algorithm
VOID SYMCRYPT_CALL SymCryptSha1StateExport(_In_ PCSYMCRYPT_SHA1_STATE pState, _Out_writes_bytes_(SYMCRYPT_SHA1_STATE_EXPORT_SIZE) PBYTE pbBlob)
#define FROUND(a, b, c, d, e, r, F)
VOID SYMCRYPT_CALL SymCryptSha1AppendBlocks(_Inout_ SYMCRYPT_SHA1_CHAINING_STATE *pChain, _In_reads_(cbData) PCBYTE pbData, SIZE_T cbData, _Out_ SIZE_T *pcbRemaining)
SYMCRYPT_NOINLINE VOID SYMCRYPT_CALL SymCryptSha1Result(_Inout_ PSYMCRYPT_SHA1_STATE pState, _Out_writes_(SYMCRYPT_SHA1_RESULT_SIZE) PBYTE pbResult)
SYMCRYPT_NOINLINE VOID SYMCRYPT_CALL SymCryptSha1Append(_Inout_ PSYMCRYPT_SHA1_STATE pState, _In_reads_(cbData) PCBYTE pbData, SIZE_T cbData)
VOID SYMCRYPT_CALL SymCryptSha1Selftest(void)
static const UINT32 Sha1K[4]
static const BYTE pbResult[]
#define SYMCRYPT_ASSERT(_x)
VOID SYMCRYPT_CALL SymCryptMarvin32(_In_ PCSYMCRYPT_MARVIN32_EXPANDED_SEED pExpandedSeed, _In_reads_(cbData) PCBYTE pbData, SIZE_T cbData, _Out_writes_(SYMCRYPT_MARVIN32_RESULT_SIZE) PBYTE pbResult)
FORCEINLINE VOID SYMCRYPT_CALL SymCryptWipeKnownSize(_Out_writes_bytes_(cbData) PVOID pbData, SIZE_T cbData)
#define SYMCRYPT_SHA1_RESULT_SIZE
_Analysis_noreturn_ VOID SYMCRYPT_CALL SymCryptFatal(UINT32 fatalCode)
#define SYMCRYPT_SHA1_INPUT_BLOCK_SIZE
#define SYMCRYPT_FORCE_WRITE32(_p, _v)
PCSYMCRYPT_MARVIN32_EXPANDED_SEED const SymCryptMarvin32DefaultSeed
VOID SYMCRYPT_CALL SymCryptSha1StateCopy(_In_ PCSYMCRYPT_SHA1_STATE pSrc, _Out_ PSYMCRYPT_SHA1_STATE pDst)
VOID SYMCRYPT_CALL SymCryptSha1(_In_reads_(cbData) PCBYTE pbData, SIZE_T cbData, _Out_writes_(SYMCRYPT_SHA1_RESULT_SIZE) PBYTE pbResult)
#define SYMCRYPT_STORE_MSBFIRST64(p, v)
#define SYMCRYPT_SHA1_STATE_EXPORT_SIZE
struct _SYMCRYPT_HASH SYMCRYPT_HASH
#define SYMCRYPT_FIELD_SIZE(type, field)
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
PSYMCRYPT_COMMON_HASH_STATE pState
SYMCRYPT_SHA1_CHAINING_STATE
#define SYMCRYPT_CHECK_MAGIC(p)
const SYMCRYPT_SHA1_STATE * PCSYMCRYPT_SHA1_STATE