use the openssl api for md4/md5/sha. handle openssl/*.h

git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@9559 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
Assar Westerlund
2001-01-29 02:09:01 +00:00
parent 249225774c
commit 59a594bad4
23 changed files with 229 additions and 212 deletions

View File

@@ -176,25 +176,25 @@ crypt_md5(pw, salt)
/* get the length of the true salt */
sl = ep - sp;
MD5Init(&ctx);
MD5_Init(&ctx);
/* The password first, since that is what is most unknown */
MD5Update(&ctx,pw,strlen(pw));
MD5_Update(&ctx,pw,strlen(pw));
/* Then our magic string */
MD5Update(&ctx,magic,strlen(magic));
MD5_Update(&ctx,magic,strlen(magic));
/* Then the raw salt */
MD5Update(&ctx,sp,sl);
MD5_Update(&ctx,sp,sl);
/* Then just as many characters of the MD5(pw,salt,pw) */
MD5Init(&ctx1);
MD5Update(&ctx1,pw,strlen(pw));
MD5Update(&ctx1,sp,sl);
MD5Update(&ctx1,pw,strlen(pw));
MD5Final(final,&ctx1);
MD5_Init(&ctx1);
MD5_Update(&ctx1,pw,strlen(pw));
MD5_Update(&ctx1,sp,sl);
MD5_Update(&ctx1,pw,strlen(pw));
MD5_Final(final,&ctx1);
for(pl = strlen(pw); pl > 0; pl -= 16)
MD5Update(&ctx,final,pl>16 ? 16 : pl);
MD5_Update(&ctx,final,pl>16 ? 16 : pl);
/* Don't leave anything around in vm they could use. */
memset(final,0,sizeof final);
@@ -202,16 +202,16 @@ crypt_md5(pw, salt)
/* Then something really weird... */
for (j=0,i = strlen(pw); i ; i >>= 1)
if(i&1)
MD5Update(&ctx, final+j, 1);
MD5_Update(&ctx, final+j, 1);
else
MD5Update(&ctx, pw+j, 1);
MD5_Update(&ctx, pw+j, 1);
/* Now make the output string */
strcpy(passwd, magic); /* sizeof(passwd) > sizeof(magic) */
strncat(passwd, sp, sl); /* ok, since sl <= 8 */
strcat(passwd, "$");
MD5Final(final,&ctx);
MD5_Final(final,&ctx);
/*
* and now, just to make sure things don't run too fast
@@ -219,23 +219,23 @@ crypt_md5(pw, salt)
* need 30 seconds to build a 1000 entry dictionary...
*/
for(i=0;i<1000;i++) {
MD5Init(&ctx1);
MD5_Init(&ctx1);
if(i & 1)
MD5Update(&ctx1,pw,strlen(pw));
MD5_Update(&ctx1,pw,strlen(pw));
else
MD5Update(&ctx1,final,16);
MD5_Update(&ctx1,final,16);
if(i % 3)
MD5Update(&ctx1,sp,sl);
MD5_Update(&ctx1,sp,sl);
if(i % 7)
MD5Update(&ctx1,pw,strlen(pw));
MD5_Update(&ctx1,pw,strlen(pw));
if(i & 1)
MD5Update(&ctx1,final,16);
MD5_Update(&ctx1,final,16);
else
MD5Update(&ctx1,pw,strlen(pw));
MD5Final(final,&ctx1);
MD5_Update(&ctx1,pw,strlen(pw));
MD5_Final(final,&ctx1);
}
p = passwd + strlen(passwd);

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 1995 - 2000 Kungliga Tekniska H<>gskolan
* Copyright (c) 1995 - 2001 Kungliga Tekniska H<>gskolan
* (Royal Institute of Technology, Stockholm, Sweden).
* All rights reserved.
*
@@ -47,7 +47,7 @@ RCSID("$Id$");
#define X data
void
MD4Init (struct md4 *m)
MD4_Init (struct md4 *m)
{
m->sz[0] = 0;
m->sz[1] = 0;
@@ -175,7 +175,7 @@ struct x32{
};
void
MD4Update (struct md4 *m, const void *v, size_t len)
MD4_Update (struct md4 *m, const void *v, size_t len)
{
const unsigned char *p = v;
size_t old_sz = m->sz[0];
@@ -210,7 +210,7 @@ MD4Update (struct md4 *m, const void *v, size_t len)
}
void
MD4Final (void *res, struct md4 *m)
MD4_Final (void *res, struct md4 *m)
{
static unsigned char zeros[72];
unsigned offset = (m->sz[0] / 8) % 64;

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 1995 - 2000 Kungliga Tekniska H<>gskolan
* Copyright (c) 1995 - 2001 Kungliga Tekniska H<>gskolan
* (Royal Institute of Technology, Stockholm, Sweden).
* All rights reserved.
*
@@ -54,6 +54,6 @@ struct md4 {
typedef struct md4 MD4_CTX;
void MD4Init (struct md4 *m);
void MD4Update (struct md4 *m, const void *p, size_t len);
void MD4Final (void *res, struct md4 *m);
void MD4_Init (struct md4 *m);
void MD4_Update (struct md4 *m, const void *p, size_t len);
void MD4_Final (void *res, struct md4 *m);

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 1995 - 2000 Kungliga Tekniska H<>gskolan
* Copyright (c) 1995 - 2001 Kungliga Tekniska H<>gskolan
* (Royal Institute of Technology, Stockholm, Sweden).
* All rights reserved.
*
@@ -47,7 +47,7 @@ RCSID("$Id$");
#define X data
void
MD5Init (struct md5 *m)
MD5_Init (struct md5 *m)
{
m->sz[0] = 0;
m->sz[1] = 0;
@@ -199,7 +199,7 @@ struct x32{
};
void
MD5Update (struct md5 *m, const void *v, size_t len)
MD5_Update (struct md5 *m, const void *v, size_t len)
{
const unsigned char *p = v;
size_t old_sz = m->sz[0];
@@ -234,7 +234,7 @@ MD5Update (struct md5 *m, const void *v, size_t len)
}
void
MD5Final (void *res, struct md5 *m)
MD5_Final (void *res, struct md5 *m)
{
static unsigned char zeros[72];
unsigned offset = (m->sz[0] / 8) % 64;

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 1995 - 2000 Kungliga Tekniska H<>gskolan
* Copyright (c) 1995 - 2001 Kungliga Tekniska H<>gskolan
* (Royal Institute of Technology, Stockholm, Sweden).
* All rights reserved.
*
@@ -54,6 +54,6 @@ struct md5 {
typedef struct md5 MD5_CTX;
void MD5Init (struct md5 *m);
void MD5Update (struct md5 *m, const void *p, size_t len);
void MD5Final (void *res, struct md5 *m); /* u_int32_t res[4] */
void MD5_Init (struct md5 *m);
void MD5_Update (struct md5 *m, const void *p, size_t len);
void MD5_Final (void *res, struct md5 *m); /* u_int32_t res[4] */

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 1995 - 2000 Kungliga Tekniska H<>gskolan
* Copyright (c) 1995 - 2001 Kungliga Tekniska H<>gskolan
* (Royal Institute of Technology, Stockholm, Sweden).
* All rights reserved.
*
@@ -74,9 +74,9 @@ md4_tests (void)
unsigned char res[16];
int i;
MD4Init (&md4);
MD4Update (&md4, (unsigned char *)t->str, strlen(t->str));
MD4Final (res, &md4);
MD4_Init (&md4);
MD4_Update (&md4, (unsigned char *)t->str, strlen(t->str));
MD4_Final (res, &md4);
if (memcmp (res, t->hash, 16) != 0) {
printf ("MD4(\"%s\") failed\n", t->str);
printf("should be: ");
@@ -116,9 +116,9 @@ md5_tests (void)
MD5_CTX md5;
unsigned char res[16];
MD5Init (&md5);
MD5Update (&md5, (unsigned char *)t->str, strlen(t->str));
MD5Final (res, &md5);
MD5_Init (&md5);
MD5_Update (&md5, (unsigned char *)t->str, strlen(t->str));
MD5_Final (res, &md5);
if (memcmp (res, t->hash, 16) != 0) {
int i;
@@ -157,12 +157,12 @@ sha1_tests (void)
printf ("sha... ");
for (t = tests; t->str; ++t) {
SHA1_CTX sha;
SHA_CTX sha;
unsigned char res[20];
SHA1Init (&sha);
SHA1Update (&sha, (unsigned char *)t->str, strlen(t->str));
SHA1Final (res, &sha);
SHA1_Init (&sha);
SHA1_Update (&sha, (unsigned char *)t->str, strlen(t->str));
SHA1_Final (res, &sha);
if (memcmp (res, t->hash, 20) != 0) {
int i;

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 1995 - 2000 Kungliga Tekniska H<>gskolan
* Copyright (c) 1995 - 2001 Kungliga Tekniska H<>gskolan
* (Royal Institute of Technology, Stockholm, Sweden).
* All rights reserved.
*
@@ -48,7 +48,7 @@ RCSID("$Id$");
#define X data
void
SHA1Init (struct sha1 *m)
SHA1_Init (struct sha *m)
{
m->sz[0] = 0;
m->sz[1] = 0;
@@ -83,7 +83,7 @@ do { \
} while(0)
static inline void
calc (struct sha1 *m, u_int32_t *in)
calc (struct sha *m, u_int32_t *in)
{
u_int32_t AA, BB, CC, DD, EE;
u_int32_t data[80];
@@ -225,7 +225,7 @@ struct x32{
};
void
SHA1Update (struct sha1 *m, const void *v, size_t len)
SHA1_Update (struct sha *m, const void *v, size_t len)
{
const unsigned char *p = v;
size_t old_sz = m->sz[0];
@@ -260,7 +260,7 @@ SHA1Update (struct sha1 *m, const void *v, size_t len)
}
void
SHA1Final (void *res, struct sha1 *m)
SHA1_Final (void *res, struct sha *m)
{
static unsigned char zeros[72];
unsigned offset = (m->sz[0] / 8) % 64;

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 1995 - 2000 Kungliga Tekniska H<>gskolan
* Copyright (c) 1995 - 2001 Kungliga Tekniska H<>gskolan
* (Royal Institute of Technology, Stockholm, Sweden).
* All rights reserved.
*
@@ -46,14 +46,14 @@
#include <ktypes.h>
#endif
struct sha1 {
struct sha {
unsigned int sz[2];
u_int32_t counter[5];
unsigned char save[64];
};
typedef struct sha1 SHA1_CTX;
typedef struct sha SHA_CTX;
void SHA1Init (struct sha1 *m);
void SHA1Update (struct sha1 *m, const void *v, size_t len);
void SHA1Final (void *res, struct sha1 *m);
void SHA1_Init (struct sha *m);
void SHA1_Update (struct sha *m, const void *v, size_t len);
void SHA1_Final (void *res, struct sha *m);