/******************************************************
 * passgen.c -- simple password generation program    *
 *                                                    *
 * Author: stderr (stderr.dev@gmail.com)              *
 *                                                    *
 * Purpose: a simple random password generator        *
 ******************************************************/

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

void usage();
void gen(int pass_length);

char *prog_name;

int main(int argc, char *argv[])
{
  int length;

  prog_name = &argv[0][0];

  if (argc != 2) {
    usage();
  }
  length = atoi(argv[1]);

  gen(length);
  printf("\n");
  return 0;
}

void usage()
{
  fprintf(stderr,"%s <pass length>\n",prog_name);
  exit(1);
}

void gen(int pass_length)
{
  char array[] = { 48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122 };
  int rnd,x;

  srand((unsigned) time(NULL));

  for (x = 0; x < pass_length; ++x) {
    rnd = 0+(int) (62.0*rand()/(RAND_MAX+1.0));
    printf("%c",array[rnd]);
  }
}
