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:
@@ -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);
|
||||
|
@@ -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;
|
||||
|
@@ -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);
|
||||
|
@@ -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;
|
||||
|
@@ -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] */
|
||||
|
@@ -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;
|
||||
|
||||
|
@@ -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;
|
||||
|
@@ -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);
|
||||
|
Reference in New Issue
Block a user