BytesGiven is part of keccak only

This commit is contained in:
Patrick Siegl
2020-04-15 19:29:31 +02:00
parent 4a09610d50
commit 1b48e0c5b9
2 changed files with 7 additions and 7 deletions

View File

@@ -40,7 +40,7 @@ bool initInfnoise(struct infnoise_context *context, char *serial, bool keccak, b
context->message=""; context->message="";
context->entropyThisTime=0; context->entropyThisTime=0;
context->errorFlag=false; context->errorFlag=false;
context->bytesGiven=0; context->keccakBytesGiven=0;
context->bytesWritten=0; context->bytesWritten=0;
prepareOutputBuffer(); prepareOutputBuffer();
@@ -355,21 +355,21 @@ uint32_t processBytes(uint8_t *bytes, uint8_t *result, uint32_t *entropy,
uint32_t readData(struct infnoise_context *context, uint8_t *result, bool raw, uint32_t outputMultiplier) { uint32_t readData(struct infnoise_context *context, uint8_t *result, bool raw, uint32_t outputMultiplier) {
// check if data can be squeezed from the keccak sponge from previous state (or we need to collect some new entropy to get bytesGiven >0) // check if data can be squeezed from the keccak sponge from previous state (or we need to collect some new entropy to get bytesGiven >0)
if (context->bytesGiven > 0u) { if (context->keccakBytesGiven > 0u) {
// squeeze the sponge! // squeeze the sponge!
// Output up to 1024 bits at a time. // Output up to 1024 bits at a time.
uint32_t bytesToWrite = 1024u / 8u; uint32_t bytesToWrite = 1024u / 8u;
if (bytesToWrite > context->bytesGiven) { if (bytesToWrite > context->keccakBytesGiven) {
bytesToWrite = context->bytesGiven; bytesToWrite = context->keccakBytesGiven;
} }
KeccakExtract(keccakState, result, bytesToWrite / 8u); KeccakExtract(keccakState, result, bytesToWrite / 8u);
KeccakPermutation(keccakState); KeccakPermutation(keccakState);
context->bytesWritten += bytesToWrite; context->bytesWritten += bytesToWrite;
context->bytesGiven -= bytesToWrite; context->keccakBytesGiven -= bytesToWrite;
return bytesToWrite; return bytesToWrite;
} else { // collect new entropy } else { // collect new entropy
uint8_t inBuf[BUFLEN]; uint8_t inBuf[BUFLEN];
@@ -402,7 +402,7 @@ uint32_t readData(struct infnoise_context *context, uint8_t *result, bool raw, u
} }
// call health check and return bytes if OK // call health check and return bytes if OK
if (inmHealthCheckOkToUseData() && inmEntropyOnTarget(context->entropyThisTime, BUFLEN)) { if (inmHealthCheckOkToUseData() && inmEntropyOnTarget(context->entropyThisTime, BUFLEN)) {
return processBytes(bytes, result, &context->entropyThisTime, &context->bytesGiven, &context->bytesWritten, return processBytes(bytes, result, &context->entropyThisTime, &context->keccakBytesGiven, &context->bytesWritten,
raw, outputMultiplier); raw, outputMultiplier);
} }
} }

View File

@@ -24,7 +24,7 @@ struct infnoise_context {
//uint8_t keccakState[KeccakPermutationSizeInBytes]; //uint8_t keccakState[KeccakPermutationSizeInBytes];
// used in multiplier mode to keep track of bytes to be put out // used in multiplier mode to keep track of bytes to be put out
uint32_t bytesGiven; uint32_t keccakBytesGiven;
uint32_t bytesWritten; uint32_t bytesWritten;
}; };