garbage collect and fix bad parameter in Squeeze()
authorkremlin <ian@kremlin.cc>
Sat, 20 Sep 2014 02:06:17 +0000 (22:06 -0400)
committerkremlin <ian@kremlin.cc>
Sat, 20 Sep 2014 02:06:17 +0000 (22:06 -0400)
DH-Keccak/assets/KremKeccak/krem_keccak.c

index 7a64c052ee15dc6fe874556bf07884fef19972e4..08b8e529e0e5f72670fe406044f35d3064ea5342 100644 (file)
@@ -55,8 +55,8 @@ int main(int argc, char *argv[]) {
                exit(1);
        }
 
-       input_buf  = calloc(1, (size_t) input_stat.st_size);
-       output_buf = calloc(1, (size_t) 64);
+       input_buf  = calloc(input_stat.st_size, sizeof(unsigned char));
+       output_buf = calloc(64, sizeof(unsigned char));
 
        if( ! (input_bytes_read = fread(input_buf, 1, (size_t)input_stat.st_size, input))) {
 
@@ -66,12 +66,12 @@ int main(int argc, char *argv[]) {
 
        fclose(input);
 
-       if(Absorb(state, input_buf, (unsigned long long) (8 * input_stat.st_size))) {
+       if(Absorb(state, input_buf, 8 * (unsigned long long) input_stat.st_size)) {
 
                printf("encryption failure\n");
                exit(1);
 
-       } else if(Squeeze(state, output_buf, (unsigned long long) (8 * input_stat.st_size))) {
+       } else if(Squeeze(state, output_buf, 512)) {
 
                printf("decryption failure\n");
                exit(1);
@@ -82,6 +82,8 @@ int main(int argc, char *argv[]) {
                printf("%x%x", HI_NIBBLE(output_buf[i]), LO_NIBBLE(output_buf[i]));
 
        free(state);
+       free(input_buf);
+       free(output_buf);
 
        return 0;
 }