Exemplo n.º 1
0
//	tauset(58, 19);
//	taurand(2040);
int32 authTest_hmacTest(void) {
	uint32 i, dataLen, keyLen;
	
	dataLen = 2048;
	keyLen = 8;
	for(i=0; i<2048; i++)
		asicTestData[i] = 0xFF;//(uint8)taurand(256);
	for(i=0; i<keyLen; i++)
		asicTestKey[i] = 0x01;//(uint8)taurand(256);
	for(dataLen = 8; dataLen<2048; dataLen++) {	
		rtlglue_printf("\r HMAC MD5 0xFF pattern data length %4u", dataLen);
		rtl8651b_authEngine_hmacMd5(asicTestData, dataLen, asicTestKey, keyLen, asicDigest);
		authSim_hmacMd5(asicTestData, dataLen, asicTestKey, keyLen, simDigest);
		if(memcmp(asicDigest, simDigest, RTL8651B_MD5_DIGEST_LENGTH)) {
			displayDigestMismatch("HMAC MD5 Digest mismatch", asicTestData, dataLen, asicTestKey, keyLen, "ASIC", asicDigest, "SIM", simDigest, RTL8651B_MD5_DIGEST_LENGTH);
			if(memcmp(asicDigest, nullPattern, RTL8651B_MD5_DIGEST_LENGTH) != 0)
				triggerGpio();
			break;
		}
	}
	for(dataLen = 8; dataLen<2048; dataLen++) {
		rtlglue_printf("\r HMAC SHA-1 0xFF pattern data length %4u", dataLen);
		rtl8651b_authEngine_hmacSha1(asicTestData, dataLen, asicTestKey, keyLen, asicDigest);
		authSim_hmacSha1(asicTestData, dataLen, asicTestKey, keyLen, simDigest);
		if(memcmp(asicDigest, simDigest, RTL8651B_SHA1_DIGEST_LENGTH)) {
			displayDigestMismatch("HMAC SHA1 Digest mismatch", asicTestData, dataLen, asicTestKey, keyLen, "ASIC", asicDigest, "SIM", simDigest, RTL8651B_SHA1_DIGEST_LENGTH);
			if(memcmp(asicDigest, nullPattern, RTL8651B_SHA1_DIGEST_LENGTH) != 0)
				triggerGpio();
			break;
		}
	}
	return SUCCESS;
}
Exemplo n.º 2
0
err_status_t
hmac_compute(hmac_ctx_t *state, const void *message,
	     int msg_octets, int tag_len, uint8_t *result) {

	rtl8651b_authEngine_hmacSha1(message, msg_octets, 
		state->key, state->key_len, result);
	return err_status_ok;
}