5 static char * sha1sum(char *string) {
6 unsigned char digest[20];
7 static char ret[(sizeof(digest) * 2) + 1] = {0};
8 static char hexabet[] = "0123456789abcdef";
14 sha1_process_bytes(string, strlen(string), &ctx);
16 sha1_finish_ctx(&ctx, digest);
18 for (i = 0; i < sizeof(digest); i++) {
19 ret[retcnt++] = hexabet[(digest[i] & 0xf0) >> 4];
20 ret[retcnt++] = hexabet[digest[i] & 0xf];
28 int main(int argc, char **argv) {
34 plaintext = malloc(1024);
42 while (plaintext[0] == '\0' && fail_cnt < 3) {
46 fgets_ret = fgets(plaintext, 1024, stdin);
52 if (plaintext[strlen(plaintext) - 1] == '\n') {
53 plaintext[strlen(plaintext) - 1] = '\0';
58 } else if (argc > 1) {
64 if (plaintext[0] == '\0') {
65 printf("Invalid password specified, aborting.\n");
69 printf("%s\n", sha1sum(plaintext));