add optimized recipe to Makefile
[mobile-com.git] / DH-Keccak / assets / KremKeccak / krem_keccak.c
index 01fe486b90dec22946df1d22300f3b69e1ba03f2..08b8e529e0e5f72670fe406044f35d3064ea5342 100644 (file)
@@ -5,9 +5,9 @@
 #include <sys/types.h>
 #include <sys/stat.h>
 
-#include "../keccak-ref/Sources/KeccakSponge.c"
-#include "../keccak-ref/Sources/KeccakF-1600-reference.c"
-#include "../keccak-ref/Sources/displayIntermediateValues.c"
+#include "KeccakSponge.c"
+#include "KeccakF-1600-reference.c"
+#include "displayIntermediateValues.c"
 
 #define HI_NIBBLE(b) (((b) >> 4) & 0x0F)
 #define LO_NIBBLE(b) ((b) & 0x0F)
@@ -37,7 +37,7 @@ int main(int argc, char *argv[]) {
        r = 576;
        c = 1024;
 
-       state = (spongeState*) calloc(1, sizeof(spongeState));
+       state = calloc(1, sizeof(spongeState));
 
        if(stat(argv[1], &input_stat) || input_stat.st_size <= 0) {
 
@@ -55,8 +55,8 @@ int main(int argc, char *argv[]) {
                exit(1);
        }
 
-       input_buf  = (unsigned char *) calloc(1, (size_t) input_stat.st_size);
-       output_buf = (unsigned char *) 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;
 }