mndecode.c 646 B

1234567891011121314151617181920212223242526272829303132333435
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <stdlib.h>
  4. #include "mnemonic.h"
  5. int main(int argc, char **argv) {
  6. char buf[0x90000];
  7. mn_byte outbuf[0x10000];
  8. int buflen;
  9. int n, i;
  10. int hex_encoded_output = 0;
  11. if(argc > 1 && strcmp(argv[1],"-x") == 0) {
  12. hex_encoded_output = 1;
  13. }
  14. buflen = fread(buf, 1, sizeof buf - 1, stdin);
  15. buf[buflen] = 0;
  16. n = mn_decode(buf, outbuf, sizeof outbuf);
  17. if(n < 0) {
  18. fprintf(stderr, "mn_decode result %d\n", n);
  19. return EXIT_FAILURE;
  20. }
  21. if(hex_encoded_output) {
  22. for(i = 0; i < n; i++) {
  23. printf("%02X", outbuf[i]);
  24. }
  25. } else {
  26. fwrite(outbuf, 1, n, stdout);
  27. }
  28. return EXIT_SUCCESS;
  29. }