Initialization of AES pseudorandom number generator and production of entropy

Saturday, March 7, 2020


//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