/* cau_sha1_initialize_output */ status_t MMCAU_SHA1_InitializeOutput(uint32_t *sha1State) { status_t status; if (sha1State) { uint8_t hashStateAlign[MMCAU_HASH_STATE_SIZE]; void *hashStateWork; bool copyInOut; /* align pointer */ hashStateWork = mmcau_align(sha1State, hashStateAlign, ©InOut); if (copyInOut) { mmcau_memcpy(hashStateAlign, sha1State, MMCAU_SHA1_STATE_SIZE); } /* CAU API */ cau_sha1_initialize_output(hashStateWork); /* copy result to unaligned pointer */ if (copyInOut) { mmcau_memcpy(sha1State, hashStateAlign, MMCAU_SHA1_STATE_SIZE); } status = kStatus_Success; } else { status = kStatus_InvalidArgument; } return status; }
void InitSha(Sha* sha) { #ifdef FREESCALE_MMCAU cau_sha1_initialize_output(sha->digest); #else sha->digest[0] = 0x67452301L; sha->digest[1] = 0xEFCDAB89L; sha->digest[2] = 0x98BADCFEL; sha->digest[3] = 0x10325476L; sha->digest[4] = 0xC3D2E1F0L; #endif sha->buffLen = 0; sha->loLen = 0; sha->hiLen = 0; }
int wc_InitSha(Sha* sha) { int ret = 0; #ifdef FREESCALE_MMCAU ret = wolfSSL_CryptHwMutexLock(); if(ret != 0) { return ret; } cau_sha1_initialize_output(sha->digest); wolfSSL_CryptHwMutexUnLock(); #else sha->digest[0] = 0x67452301L; sha->digest[1] = 0xEFCDAB89L; sha->digest[2] = 0x98BADCFEL; sha->digest[3] = 0x10325476L; sha->digest[4] = 0xC3D2E1F0L; #endif sha->buffLen = 0; sha->loLen = 0; sha->hiLen = 0; return ret; }