int main(argc, argv)
     int argc;
     char **argv;
{
  unsigned char hash[16];
  char words[1024];
  int i;
  if (argc == 1+16) {
    for(i = 0; i<16; i++) {
      sscanf(argv[i+1], "%x", hash+i);
    }
    key2eng(words, hash);
    printf("Words: %s\n", words);
    return 0;
  } else if (argc == 12+1) {
    words[0] = 0;
    for (i=0; i<12; i++) {
      strcat(words, argv[i+1]);
      strcat(words, " ");
    }
    eng2key(hash, words);
    printf("Hash: ");
    for(i=0; i<16; i++) {
      printf("%02x ", hash[i]);
    }
    printf("\n");
    return 0;
  } else {
    printf("usage: %s 00 11 22 .. ff\n", argv[0]);
    printf("or:    %s aaaa bbbb cccc ... kkkk llll\n", argv[0]);
    return 1;
  }
}
