85 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
86 0, 4, 8, 12, 1, 5, 9, 13, 2, 6, 10, 14, 3, 7, 11, 15,
87 0, 8, 4, 12, 2, 10, 6, 14, 1, 9, 5, 13, 3, 11, 7, 15,
123 pState->bytesInBuffer = 0;
178#define F( x, y, z ) ((((z) ^ (y)) & (x)) ^ (z))
179#define G( x, y, z ) ((((x) | (y)) & (z) ) | ((x) & (y)))
180#define H( x, y, z ) ((x) ^ (y) ^ (z) )
211#define CROUND( r, Func ) { \
212 ad[r%4] = ROL32( ad[r%4] + Func(ad[(r+3)%4], ad[(r+2)%4], ad[(r+1)%4]) + Wt + md4Const[r/16], md4Rotate[r] ); \
218#define IROUND( r, Func ) { \
219 Wt = SYMCRYPT_LOAD_LSBFIRST32( &pbData[ 4*md4MsgIndex[r] ] ); \
227#define FROUND( r, Func ) { \
228 Wt = W[md4MsgIndex[r]];\
245 ad[0] = pChain->H[0];
246 ad[1] = pChain->H[3];
247 ad[2] = pChain->H[2];
248 ad[3] = pChain->H[1];
307 pChain->H[0] = ad[0] = ad[0] + pChain->H[0];
308 pChain->H[3] = ad[1] = ad[1] + pChain->H[3];
309 pChain->H[2] = ad[2] = ad[2] + pChain->H[2];
310 pChain->H[1] = ad[3] = ad[3] + pChain->H[1];
377 scError = SYMCRYPT_INVALID_BLOB;
384 scError = SYMCRYPT_INVALID_BLOB;
391 pState->bytesInBuffer =
blob.dataLength & 0x3f;
408 0xa4, 0x48, 0x01, 0x7a, 0xaf, 0x21, 0xd8, 0x52,
409 0x5f, 0xc1, 0x0a, 0xe8, 0x7a, 0xa6, 0x72, 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
FORCEINLINE VOID SYMCRYPT_CALL SymCryptUint32ToLsbFirst(_In_reads_(cuData) PCUINT32 puData, _Out_writes_(4 *cuData) PBYTE pbResult, SIZE_T cuData)
@ SymCryptBlobTypeMd4State
VOID SYMCRYPT_CALL SymCryptInjectError(PBYTE pbData, SIZE_T cbData)
FORCEINLINE VOID SYMCRYPT_CALL SymCryptLsbFirstToUint32(_In_reads_(4 *cuResult) PCBYTE pbData, _Out_writes_(cuResult) PUINT32 puResult, SIZE_T cuResult)
const BYTE SymCryptTestMsg3[3]
VOID SYMCRYPT_CALL SymCryptHashAppendInternal(_In_ PCSYMCRYPT_HASH pHash, _Inout_ PSYMCRYPT_COMMON_HASH_STATE pState, _In_reads_bytes_(cbData) PCBYTE pbData, SIZE_T cbData)
VOID SYMCRYPT_CALL SymCryptHashCommonPaddingMd4Style(_In_ PCSYMCRYPT_HASH pHash, _Inout_ PSYMCRYPT_COMMON_HASH_STATE pState)
VOID SYMCRYPT_CALL SymCryptMd4Result(_Inout_ PSYMCRYPT_MD4_STATE pState, _Out_writes_(SYMCRYPT_MD4_RESULT_SIZE) PBYTE pbResult)
VOID SYMCRYPT_CALL SymCryptMd4StateExport(_In_ PCSYMCRYPT_MD4_STATE pState, _Out_writes_bytes_(SYMCRYPT_MD4_STATE_EXPORT_SIZE) PBYTE pbBlob)
VOID SYMCRYPT_CALL SymCryptMd4AppendBlocks(_Inout_ PSYMCRYPT_MD4_CHAINING_STATE pChain, _In_reads_(cbData) PCBYTE pbData, SIZE_T cbData, _Out_ SIZE_T *pcbRemaining)
const SYMCRYPT_HASH SymCryptMd4Algorithm_default
VOID SYMCRYPT_CALL SymCryptMd4Selftest(void)
static const UINT32 md4InitialState[4]
static const UINT32 md4Const[3]
static const BYTE md4KATAnswer[16]
VOID SYMCRYPT_CALL SymCryptMd4Init(_Out_ PSYMCRYPT_MD4_STATE pState)
static const int md4Rotate[48]
SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptMd4StateImport(_Out_ PSYMCRYPT_MD4_STATE pState, _In_reads_bytes_(SYMCRYPT_MD4_STATE_EXPORT_SIZE) PCBYTE pbBlob)
static const int md4MsgIndex[48]
const PCSYMCRYPT_HASH SymCryptMd4Algorithm
VOID SYMCRYPT_CALL SymCryptMd4Append(_Inout_ PSYMCRYPT_MD4_STATE pState, _In_reads_(cbData) PCBYTE pbData, SIZE_T cbData)
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)
_Analysis_noreturn_ VOID SYMCRYPT_CALL SymCryptFatal(UINT32 fatalCode)
VOID SYMCRYPT_CALL SymCryptMd4StateCopy(_In_ PCSYMCRYPT_MD4_STATE pSrc, _Out_ PSYMCRYPT_MD4_STATE pDst)
#define SYMCRYPT_MD4_INPUT_BLOCK_SIZE
VOID SYMCRYPT_CALL SymCryptMd4(_In_reads_(cbData) PCBYTE pbData, SIZE_T cbData, _Out_writes_(SYMCRYPT_MD4_RESULT_SIZE) PBYTE pbResult)
#define SYMCRYPT_FORCE_WRITE32(_p, _v)
PCSYMCRYPT_MARVIN32_EXPANDED_SEED const SymCryptMarvin32DefaultSeed
#define SYMCRYPT_MD4_RESULT_SIZE
struct _SYMCRYPT_HASH SYMCRYPT_HASH
#define SYMCRYPT_FIELD_SIZE(type, field)
* PSYMCRYPT_MD4_CHAINING_STATE
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
#define SYMCRYPT_MD4_STATE_EXPORT_SIZE
#define SYMCRYPT_CHECK_MAGIC(p)
const SYMCRYPT_MD4_STATE * PCSYMCRYPT_MD4_STATE