optimize buffer size when multiplier <= 2
This commit is contained in:
		| @@ -141,8 +141,14 @@ uint32_t processBytes(uint8_t *bytes, uint8_t *result, uint32_t *entropy, | ||||
|     // we instantly recover (reseed) from a state compromise, which is when an attacker | ||||
|     // gets a snapshot of the keccak state.  BUFLEN must be a multiple of 64, since | ||||
|     // Keccak-1600 uses 64-bit "lanes". | ||||
|     uint8_t resultSize; | ||||
|     if (outputMultiplier <= 2) { | ||||
|         resultSize = 64u; | ||||
|     } else { | ||||
|         resultSize = 128u; | ||||
|     } | ||||
|  | ||||
|     uint8_t dataOut[128u]; | ||||
|     uint8_t dataOut[resultSize]; | ||||
|     KeccakAbsorb(keccakState, bytes, BUFLEN / 64u); | ||||
|  | ||||
|     if (outputMultiplier == 0u) { | ||||
| @@ -170,7 +176,7 @@ uint32_t processBytes(uint8_t *bytes, uint8_t *result, uint32_t *entropy, | ||||
|         KeccakPermutation(keccakState); | ||||
|         *bytesWritten = bytesToWrite; | ||||
|         *numBits -= bytesToWrite * 8u; | ||||
|     }     | ||||
|     } | ||||
|     return *bytesWritten; | ||||
| } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user