keygen.c (1096B)
1 #include "slh.h" 2 #include <stdio.h> 3 4 static void print_usage(char *command) { 5 printf("usage: %s <pk_file> <sk_file>\n\n", command); 6 printf(" pk_file: public key output filename\n"); 7 printf(" sk_file: secret key output filename\n"); 8 } 9 10 int main(int argc, char *argv[]) { 11 if (argc != 3) { 12 print_usage(argv[0]); 13 return 1; 14 } 15 16 uint8_t pk[2 * ENN]; 17 uint8_t sk[4 * ENN]; 18 slh_keygen(sk, pk); 19 20 FILE *pk_file = fopen(argv[1], "w"); 21 if (pk_file == NULL) { 22 fprintf(stderr, "Error! Could not open file %s\n", argv[1]); 23 return 1; 24 } 25 26 FILE *sk_file = fopen(argv[2], "w"); 27 if (sk_file == NULL) { 28 fprintf(stderr, "Error! Could not open file %s\n", argv[2]); 29 return 1; 30 } 31 32 size_t r; 33 r = fwrite(pk, sizeof(*pk), 2 * ENN, pk_file); 34 if (r < 2 * ENN) { 35 fprintf(stderr, "Error! Failed to write to file %s\n", argv[1]); 36 return 1; 37 } 38 39 r = fwrite(sk, sizeof(*sk), 4 * ENN, sk_file); 40 if (r < 4 * ENN) { 41 fprintf(stderr, "Error! Failed to write to file %s\n", argv[2]); 42 return 1; 43 } 44 45 fclose(sk_file); 46 fclose(pk_file); 47 48 return 0; 49 }