#include "crypt.h" /* * Main function */ int main (int argc, char **argv) { /* The hash we will produce, hopefully */ char *hash = NULL; /* Option character */ int opt; /* Iterate through any options */ while ((opt = getopt(argc, argv, "h")) != -1) { switch (opt) { case 'h': usage(stdout, EXIT_SUCCESS); break; case '?': usage(stderr, EXIT_FAILURE); break; default: abort(); } } /* If we don't have three arguments left now, bail */ if (argc != 3) usage(stderr, EXIT_FAILURE); /* All seems well, build the hash and print it */ hash = crypt(argv[1], argv[2]); puts(hash); exit(EXIT_SUCCESS); } /* * Show usage to given stream, and exit with given code */ void usage(FILE *stream, int status) { fputs("USAGE: crypt [-h | KEY SALT]\n", stream); exit(status); }