/*************************************************************************
 * passgen.c 
 * Janet Davis
 * November 18, 2010
 *************************************************************************/

#define _XOPEN_SOURCE
#include <errno.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <strings.h>
#include <time.h>
#include <unistd.h>

#define MAX_USERNAME 8
#define SALT "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789./"

int main(int argc, char* argv) {
    char username[MAX_USERNAME+1];
    char salt[2];
    char *password, *hash;
    int n;
    long lsalt; 

    /* YOUR COMMENT HERE */
    fprintf(stderr,"Username: ");
    gets(username);

    /* YOUR COMMENT HERE */
    password = getpass("Password: ");

    /* YOUR COMMENT HERE */
    srandom(time(NULL));
    n = strlen(SALT);
    salt[0] = SALT[random()%n];
    salt[1] = SALT[random()%n];

    /* YOUR COMMENT HERE */
    hash = crypt(password, salt);
    bzero(password, strlen(password)*sizeof(char));

    /* YOUR COMMENT HERE */
    printf("%s:%s:%s\n", username, salt, hash);
}
