/*
* cvspasswd - Dieses Programm verschlüsselt die Passwörter für die passwd-Datei von CVS
*
* Das Programm wird mit 2 oder 3 Parametern aufgerufen:
* 1. Parameter: CVS-Benutzername
* 2. Parameter: Passwort im Klartext
* 3. Parameter: System-Benutzername (optional, kann weggelassen werden wenn identisch mit 1)
* Als Ausgabe wird jeweils eine Zeile für die passwd-Datei ausgegeben. Daher kann man sich die Datei passwd zeilenweise
* durch das Programm zusammen setzen lassen. Beispiel:
*
* cvspasswd heinz geheim1 >> passwd
* cvspasswd karl topsecret >> passwd
*
* Compilierung mit gcc -ocvspasswd -lcrypt cvspasswd.c
*
* Autor: Frank Budszuhn, autor@cvsbuch.de
* Datum: 29.12.2003
* Copyright: GNU GPL
* Zu finden unter: http://passwd.cvsbuch.de/
*
*/
#include <stdio.h>
#include <crypt.h>
char s[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890./";
char salt[3];
int main (int argc, char *argv[])
{
srand ((int) time (NULL));
salt[0] = s[ rand() % sizeof (s) ];
salt[1] = s[ rand() % sizeof (s) ];
salt[2] = '\0';
if (argc < 3 || argc > 4)
{
printf ("cvspasswd by Frank Budszuhn, http://passwd.cvsbuch.de/\n\n");
printf ("Benutzung:\ncvspasswd CVS-Benutzername Passwort [System-Benutzername]\n");
printf ("\nBeispiel:");
printf ("\ncvspasswd heinz geheim1 heinz\n\n");
return 1;
}
if (argc == 3)
{
printf ("%s:%s\n", argv[1], crypt (argv[2], salt));
}
else
{
printf ("%s:%s:%s\n", argv[1], crypt (argv[2], salt), argv[3]);
}
return 0;
}