diff options
author | Damien Miller <djm@mindrot.org> | 2000-01-11 10:59:47 +1100 |
---|---|---|
committer | Damien Miller <djm@mindrot.org> | 2000-01-11 10:59:47 +1100 |
commit | 25e4256ad4f453d8a7c1866243ec1984f859b1de (patch) | |
tree | ac850c8b4ef680968a7bd248a8ff9d7213204195 /auth-skey.c | |
parent | fa824cbb7ed7d296f3984045ee9696a037b0e0f8 (diff) |
- Fixes to auth-skey to enable it to use the standard OpenSSL librariesPRE_IPV6
Diffstat (limited to 'auth-skey.c')
-rw-r--r-- | auth-skey.c | 30 |
1 files changed, 18 insertions, 12 deletions
diff --git a/auth-skey.c b/auth-skey.c index 4e82bdef..f403a196 100644 --- a/auth-skey.c +++ b/auth-skey.c @@ -7,10 +7,10 @@ RCSID("$Id: auth-skey.c,v 1.5 1999/12/06 19:04:57 deraadt Exp $"); #include "packet.h" #ifdef HAVE_OPENSSL -#include <openssl/sha1.h> +#include <openssl/sha.h> #endif #ifdef HAVE_SSL -#include <ssl/sha1.h> +#include <ssl/sha.h> #endif /* from %OpenBSD: skeylogin.c,v 1.32 1999/08/16 14:46:56 millert Exp % */ @@ -79,8 +79,9 @@ skey_fake_keyinfo(char *username) static char skeyprompt[SKEY_MAX_CHALLENGE+1]; char *secret = NULL; size_t secretlen = 0; - SHA1_CTX ctx; + SHA_CTX ctx; char *p, *u; + char md[SHA_DIGEST_LENGTH]; /* * Base first 4 chars of seed on hostname. @@ -97,11 +98,16 @@ skey_fake_keyinfo(char *username) pbuf[4] = '\0'; /* Hash the username if possible */ - if ((up = SHA1Data(username, strlen(username), NULL)) != NULL) { + up = malloc(SHA_DIGEST_LENGTH); + if (up != NULL) { struct stat sb; time_t t; int fd; + SHA1_Init(&ctx); + SHA1_Update(&ctx, username, strlen(username)); + SHA1_End(&ctx, up); + /* Collapse the hash */ ptr = hash_collapse(up); memset(up, 0, strlen(up)); @@ -131,18 +137,18 @@ skey_fake_keyinfo(char *username) /* Put that in your pipe and smoke it */ if (flg == 0) { /* Hash secret value with username */ - SHA1Init(&ctx); - SHA1Update(&ctx, secret, secretlen); - SHA1Update(&ctx, username, strlen(username)); - SHA1End(&ctx, up); + SHA1_Init(&ctx); + SHA1_Update(&ctx, secret, secretlen); + SHA1_Update(&ctx, username, strlen(username)); + SHA1_End(&ctx, up); /* Zero out */ memset(secret, 0, secretlen); /* Now hash the hash */ - SHA1Init(&ctx); - SHA1Update(&ctx, up, strlen(up)); - SHA1End(&ctx, up); + SHA1_Init(&ctx); + SHA1_Update(&ctx, up, strlen(up)); + SHA1_End(&ctx, up); ptr = hash_collapse(up + 4); @@ -155,7 +161,7 @@ skey_fake_keyinfo(char *username) /* Sequence number */ ptr = ((up[2] + up[3]) % 99) + 1; - memset(up, 0, 20); /* SHA1 specific */ + memset(up, 0, SHA_DIGEST_LENGTH); /* SHA1 specific */ free(up); (void)snprintf(skeyprompt, sizeof skeyprompt, |