diff --git a/software/infnoise.c b/software/infnoise.c index 80305f5..d511d07 100644 --- a/software/infnoise.c +++ b/software/infnoise.c @@ -268,10 +268,8 @@ int main(int argc, char **argv) { // calculate output size based on the parameters: uint64_t resultSize; - if (opts.outputMultiplier <= 1 || opts.raw) { - resultSize = 32u; - } else if (opts.outputMultiplier==2) { - resultSize=64; + if (opts.outputMultiplier <= 2 || opts.raw) { + resultSize = 64u; } else { resultSize = 128u; } diff --git a/software/libinfnoise.c b/software/libinfnoise.c index 0aaba5b..d94f7a6 100644 --- a/software/libinfnoise.c +++ b/software/libinfnoise.c @@ -142,7 +142,7 @@ uint32_t processBytes(uint8_t *bytes, uint8_t *result, uint32_t *entropy, // gets a snapshot of the keccak state. BUFLEN must be a multiple of 64, since // Keccak-1600 uses 64-bit "lanes". - uint8_t dataOut[1024u]; + uint8_t dataOut[128u]; KeccakAbsorb(keccakState, bytes, BUFLEN / 64u); if (outputMultiplier == 0u) { @@ -203,6 +203,7 @@ devlist_node listUSBDevices(char **message) { } else { *message = "Can't find Infinite Noise Multiplier."; } + return NULL; } devlist_node return_list = malloc(sizeof(struct infnoise_devlist_node)); devlist_node current_entry = return_list; @@ -212,11 +213,10 @@ devlist_node listUSBDevices(char **message) { if (rc < 0) { if (!isSuperUser()) { *message = "Can't find Infinite Noise Multiplier. Try running as super user?"; - return NULL; } else { - //todo: *message = "ftdi_usb_get_strings failed: %d (%s)\n", rc, ftdi_get_error_string(&ftdic)); - return NULL; + sprintf(*message, "ftdi_usb_get_strings failed: %d (%s)", rc, ftdi_get_error_string(&ftdic)); } + return NULL; } current_entry->id = i; strcpy(current_entry->serial, serial);