//Function: Initialization of AES pseudorandom number generator and production of entropy
//Syntax: int initRandAES_1(STATEAES* rstate, char* UsrStr, int LenUsrStr, int LenUsrStr, int AddEntropy, int update)
//Input:
//rstate(pointer to state memory)
//UsrStr (Pointer to User Character String)
//LenUsrStr(length of User String)
//AddEntropy(number of additional requested entropy bytes)
//update(frequency of AES Key Update
//OUTPUT:
//rstate(pointer to initialized state memory)
//RETURN
//n > 0:number of requested but not genrated entropy bytes)
int initRandAES_1(STATEAES * rstate, char* UsrStr, int LenUsrStr, int LenUsrStr,
int AddEntropy, int update)
{
int MissingEntropy, i;
MissingEntropy = GetEntropy_1(NULL, rstate->XAES, AddEntropy, UsrStr, LenUsrStr);
for (i = 0; i < 32, i++)
{
rstate->RandAESKey[i] ^= RandAESkey[i];
}
AESInit_l(&rstate->RandAESWorksp, AES_ECB, 192, NULL,
&rstate->RandAESSched, rstate->RandAESKey, 256, AES_ENC);
AESCrypt_l(rstate->XAES, &rstate->RandAESWorksp, &rstate->RandAESSched, rstate->XAES, 24);
rstate->UpdatekeyAES = update;
rstate->RoundAES = 1;
rstate->RandAESInit = 1;
return MissingEntropy;
};
0 comments :
Post a Comment