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:
@@ -555,18 +555,15 @@ AC_CHECK_HEADERS([ \
|
|||||||
openssl/rc4.h \
|
openssl/rc4.h \
|
||||||
])
|
])
|
||||||
|
|
||||||
AC_FIND_FUNC_NO_LIBS2(MD4Init, crypto des, [], [], [], [$LIB_krb4])
|
|
||||||
AC_FIND_FUNC_NO_LIBS2(MD4_Init, crypto des, [], [], [], [$LIB_krb4])
|
AC_FIND_FUNC_NO_LIBS2(MD4_Init, crypto des, [], [], [], [$LIB_krb4])
|
||||||
AC_FIND_FUNC_NO_LIBS2(MD5Init, crypto des, [], [], [], [$LIB_krb4])
|
|
||||||
AC_FIND_FUNC_NO_LIBS2(MD5_Init, crypto des, [], [], [], [$LIB_krb4])
|
AC_FIND_FUNC_NO_LIBS2(MD5_Init, crypto des, [], [], [], [$LIB_krb4])
|
||||||
AC_FIND_FUNC_NO_LIBS2(SHA1Init, crypto des, [], [], [], [$LIB_krb4])
|
|
||||||
AC_FIND_FUNC_NO_LIBS2(SHA1_Init, crypto des, [], [], [], [$LIB_krb4])
|
AC_FIND_FUNC_NO_LIBS2(SHA1_Init, crypto des, [], [], [], [$LIB_krb4])
|
||||||
AC_FIND_FUNC_NO_LIBS2(des_cbc_encrypt, crypto des, [], [], [], [$LIB_krb4])
|
AC_FIND_FUNC_NO_LIBS2(des_cbc_encrypt, crypto des, [], [], [], [$LIB_krb4])
|
||||||
AC_FIND_FUNC_NO_LIBS2(RC4, crypto des, [], [], [], [$LIB_krb4])
|
AC_FIND_FUNC_NO_LIBS2(RC4, crypto des, [], [], [], [$LIB_krb4])
|
||||||
if test "$ac_cv_func_des_cbc_encrypt" = "yes" -a \
|
if test "$ac_cv_func_des_cbc_encrypt" = "yes" -a \
|
||||||
\( "$ac_cv_func_MD4Init" = "yes" -o "$ac_cv_func_MD4_Init" = "yes" \) -a \
|
"$ac_cv_func_MD4_Init" = "yes" -a \
|
||||||
\( "$ac_cv_func_MD5Init" = "yes" -o "$ac_cv_func_MD5_Init" = "yes" \) -a \
|
"$ac_cv_func_MD5_Init" = "yes" -a \
|
||||||
\( "$ac_cv_func_SHA1Init" = "yes" -o "$ac_cv_func_SHA1_Init" = "yes" \) -a \
|
"$ac_cv_func_SHA1_Init" = "yes" -a \
|
||||||
"$ac_cv_func_RC4" = "yes"; then
|
"$ac_cv_func_RC4" = "yes"; then
|
||||||
DIR_des=''
|
DIR_des=''
|
||||||
LIB_des="-R $krb4_libdir -L$krb4_libdir $ac_cv_funclib_MD4Init"
|
LIB_des="-R $krb4_libdir -L$krb4_libdir $ac_cv_funclib_MD4Init"
|
||||||
|
@@ -176,25 +176,25 @@ crypt_md5(pw, salt)
|
|||||||
/* get the length of the true salt */
|
/* get the length of the true salt */
|
||||||
sl = ep - sp;
|
sl = ep - sp;
|
||||||
|
|
||||||
MD5Init(&ctx);
|
MD5_Init(&ctx);
|
||||||
|
|
||||||
/* The password first, since that is what is most unknown */
|
/* 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 */
|
/* Then our magic string */
|
||||||
MD5Update(&ctx,magic,strlen(magic));
|
MD5_Update(&ctx,magic,strlen(magic));
|
||||||
|
|
||||||
/* Then the raw salt */
|
/* Then the raw salt */
|
||||||
MD5Update(&ctx,sp,sl);
|
MD5_Update(&ctx,sp,sl);
|
||||||
|
|
||||||
/* Then just as many characters of the MD5(pw,salt,pw) */
|
/* Then just as many characters of the MD5(pw,salt,pw) */
|
||||||
MD5Init(&ctx1);
|
MD5_Init(&ctx1);
|
||||||
MD5Update(&ctx1,pw,strlen(pw));
|
MD5_Update(&ctx1,pw,strlen(pw));
|
||||||
MD5Update(&ctx1,sp,sl);
|
MD5_Update(&ctx1,sp,sl);
|
||||||
MD5Update(&ctx1,pw,strlen(pw));
|
MD5_Update(&ctx1,pw,strlen(pw));
|
||||||
MD5Final(final,&ctx1);
|
MD5_Final(final,&ctx1);
|
||||||
for(pl = strlen(pw); pl > 0; pl -= 16)
|
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. */
|
/* Don't leave anything around in vm they could use. */
|
||||||
memset(final,0,sizeof final);
|
memset(final,0,sizeof final);
|
||||||
@@ -202,16 +202,16 @@ crypt_md5(pw, salt)
|
|||||||
/* Then something really weird... */
|
/* Then something really weird... */
|
||||||
for (j=0,i = strlen(pw); i ; i >>= 1)
|
for (j=0,i = strlen(pw); i ; i >>= 1)
|
||||||
if(i&1)
|
if(i&1)
|
||||||
MD5Update(&ctx, final+j, 1);
|
MD5_Update(&ctx, final+j, 1);
|
||||||
else
|
else
|
||||||
MD5Update(&ctx, pw+j, 1);
|
MD5_Update(&ctx, pw+j, 1);
|
||||||
|
|
||||||
/* Now make the output string */
|
/* Now make the output string */
|
||||||
strcpy(passwd, magic); /* sizeof(passwd) > sizeof(magic) */
|
strcpy(passwd, magic); /* sizeof(passwd) > sizeof(magic) */
|
||||||
strncat(passwd, sp, sl); /* ok, since sl <= 8 */
|
strncat(passwd, sp, sl); /* ok, since sl <= 8 */
|
||||||
strcat(passwd, "$");
|
strcat(passwd, "$");
|
||||||
|
|
||||||
MD5Final(final,&ctx);
|
MD5_Final(final,&ctx);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* and now, just to make sure things don't run too fast
|
* 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...
|
* need 30 seconds to build a 1000 entry dictionary...
|
||||||
*/
|
*/
|
||||||
for(i=0;i<1000;i++) {
|
for(i=0;i<1000;i++) {
|
||||||
MD5Init(&ctx1);
|
MD5_Init(&ctx1);
|
||||||
if(i & 1)
|
if(i & 1)
|
||||||
MD5Update(&ctx1,pw,strlen(pw));
|
MD5_Update(&ctx1,pw,strlen(pw));
|
||||||
else
|
else
|
||||||
MD5Update(&ctx1,final,16);
|
MD5_Update(&ctx1,final,16);
|
||||||
|
|
||||||
if(i % 3)
|
if(i % 3)
|
||||||
MD5Update(&ctx1,sp,sl);
|
MD5_Update(&ctx1,sp,sl);
|
||||||
|
|
||||||
if(i % 7)
|
if(i % 7)
|
||||||
MD5Update(&ctx1,pw,strlen(pw));
|
MD5_Update(&ctx1,pw,strlen(pw));
|
||||||
|
|
||||||
if(i & 1)
|
if(i & 1)
|
||||||
MD5Update(&ctx1,final,16);
|
MD5_Update(&ctx1,final,16);
|
||||||
else
|
else
|
||||||
MD5Update(&ctx1,pw,strlen(pw));
|
MD5_Update(&ctx1,pw,strlen(pw));
|
||||||
MD5Final(final,&ctx1);
|
MD5_Final(final,&ctx1);
|
||||||
}
|
}
|
||||||
|
|
||||||
p = passwd + strlen(passwd);
|
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).
|
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
@@ -47,7 +47,7 @@ RCSID("$Id$");
|
|||||||
#define X data
|
#define X data
|
||||||
|
|
||||||
void
|
void
|
||||||
MD4Init (struct md4 *m)
|
MD4_Init (struct md4 *m)
|
||||||
{
|
{
|
||||||
m->sz[0] = 0;
|
m->sz[0] = 0;
|
||||||
m->sz[1] = 0;
|
m->sz[1] = 0;
|
||||||
@@ -175,7 +175,7 @@ struct x32{
|
|||||||
};
|
};
|
||||||
|
|
||||||
void
|
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;
|
const unsigned char *p = v;
|
||||||
size_t old_sz = m->sz[0];
|
size_t old_sz = m->sz[0];
|
||||||
@@ -210,7 +210,7 @@ MD4Update (struct md4 *m, const void *v, size_t len)
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
MD4Final (void *res, struct md4 *m)
|
MD4_Final (void *res, struct md4 *m)
|
||||||
{
|
{
|
||||||
static unsigned char zeros[72];
|
static unsigned char zeros[72];
|
||||||
unsigned offset = (m->sz[0] / 8) % 64;
|
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).
|
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
@@ -54,6 +54,6 @@ struct md4 {
|
|||||||
|
|
||||||
typedef struct md4 MD4_CTX;
|
typedef struct md4 MD4_CTX;
|
||||||
|
|
||||||
void MD4Init (struct md4 *m);
|
void MD4_Init (struct md4 *m);
|
||||||
void MD4Update (struct md4 *m, const void *p, size_t len);
|
void MD4_Update (struct md4 *m, const void *p, size_t len);
|
||||||
void MD4Final (void *res, struct md4 *m);
|
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).
|
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
@@ -47,7 +47,7 @@ RCSID("$Id$");
|
|||||||
#define X data
|
#define X data
|
||||||
|
|
||||||
void
|
void
|
||||||
MD5Init (struct md5 *m)
|
MD5_Init (struct md5 *m)
|
||||||
{
|
{
|
||||||
m->sz[0] = 0;
|
m->sz[0] = 0;
|
||||||
m->sz[1] = 0;
|
m->sz[1] = 0;
|
||||||
@@ -199,7 +199,7 @@ struct x32{
|
|||||||
};
|
};
|
||||||
|
|
||||||
void
|
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;
|
const unsigned char *p = v;
|
||||||
size_t old_sz = m->sz[0];
|
size_t old_sz = m->sz[0];
|
||||||
@@ -234,7 +234,7 @@ MD5Update (struct md5 *m, const void *v, size_t len)
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
MD5Final (void *res, struct md5 *m)
|
MD5_Final (void *res, struct md5 *m)
|
||||||
{
|
{
|
||||||
static unsigned char zeros[72];
|
static unsigned char zeros[72];
|
||||||
unsigned offset = (m->sz[0] / 8) % 64;
|
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).
|
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
@@ -54,6 +54,6 @@ struct md5 {
|
|||||||
|
|
||||||
typedef struct md5 MD5_CTX;
|
typedef struct md5 MD5_CTX;
|
||||||
|
|
||||||
void MD5Init (struct md5 *m);
|
void MD5_Init (struct md5 *m);
|
||||||
void MD5Update (struct md5 *m, const void *p, size_t len);
|
void MD5_Update (struct md5 *m, const void *p, size_t len);
|
||||||
void MD5Final (void *res, struct md5 *m); /* u_int32_t res[4] */
|
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).
|
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
@@ -74,9 +74,9 @@ md4_tests (void)
|
|||||||
unsigned char res[16];
|
unsigned char res[16];
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
MD4Init (&md4);
|
MD4_Init (&md4);
|
||||||
MD4Update (&md4, (unsigned char *)t->str, strlen(t->str));
|
MD4_Update (&md4, (unsigned char *)t->str, strlen(t->str));
|
||||||
MD4Final (res, &md4);
|
MD4_Final (res, &md4);
|
||||||
if (memcmp (res, t->hash, 16) != 0) {
|
if (memcmp (res, t->hash, 16) != 0) {
|
||||||
printf ("MD4(\"%s\") failed\n", t->str);
|
printf ("MD4(\"%s\") failed\n", t->str);
|
||||||
printf("should be: ");
|
printf("should be: ");
|
||||||
@@ -116,9 +116,9 @@ md5_tests (void)
|
|||||||
MD5_CTX md5;
|
MD5_CTX md5;
|
||||||
unsigned char res[16];
|
unsigned char res[16];
|
||||||
|
|
||||||
MD5Init (&md5);
|
MD5_Init (&md5);
|
||||||
MD5Update (&md5, (unsigned char *)t->str, strlen(t->str));
|
MD5_Update (&md5, (unsigned char *)t->str, strlen(t->str));
|
||||||
MD5Final (res, &md5);
|
MD5_Final (res, &md5);
|
||||||
if (memcmp (res, t->hash, 16) != 0) {
|
if (memcmp (res, t->hash, 16) != 0) {
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
@@ -157,12 +157,12 @@ sha1_tests (void)
|
|||||||
|
|
||||||
printf ("sha... ");
|
printf ("sha... ");
|
||||||
for (t = tests; t->str; ++t) {
|
for (t = tests; t->str; ++t) {
|
||||||
SHA1_CTX sha;
|
SHA_CTX sha;
|
||||||
unsigned char res[20];
|
unsigned char res[20];
|
||||||
|
|
||||||
SHA1Init (&sha);
|
SHA1_Init (&sha);
|
||||||
SHA1Update (&sha, (unsigned char *)t->str, strlen(t->str));
|
SHA1_Update (&sha, (unsigned char *)t->str, strlen(t->str));
|
||||||
SHA1Final (res, &sha);
|
SHA1_Final (res, &sha);
|
||||||
if (memcmp (res, t->hash, 20) != 0) {
|
if (memcmp (res, t->hash, 20) != 0) {
|
||||||
int i;
|
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).
|
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
@@ -48,7 +48,7 @@ RCSID("$Id$");
|
|||||||
#define X data
|
#define X data
|
||||||
|
|
||||||
void
|
void
|
||||||
SHA1Init (struct sha1 *m)
|
SHA1_Init (struct sha *m)
|
||||||
{
|
{
|
||||||
m->sz[0] = 0;
|
m->sz[0] = 0;
|
||||||
m->sz[1] = 0;
|
m->sz[1] = 0;
|
||||||
@@ -83,7 +83,7 @@ do { \
|
|||||||
} while(0)
|
} while(0)
|
||||||
|
|
||||||
static inline void
|
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 AA, BB, CC, DD, EE;
|
||||||
u_int32_t data[80];
|
u_int32_t data[80];
|
||||||
@@ -225,7 +225,7 @@ struct x32{
|
|||||||
};
|
};
|
||||||
|
|
||||||
void
|
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;
|
const unsigned char *p = v;
|
||||||
size_t old_sz = m->sz[0];
|
size_t old_sz = m->sz[0];
|
||||||
@@ -260,7 +260,7 @@ SHA1Update (struct sha1 *m, const void *v, size_t len)
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
SHA1Final (void *res, struct sha1 *m)
|
SHA1_Final (void *res, struct sha *m)
|
||||||
{
|
{
|
||||||
static unsigned char zeros[72];
|
static unsigned char zeros[72];
|
||||||
unsigned offset = (m->sz[0] / 8) % 64;
|
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).
|
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
@@ -46,14 +46,14 @@
|
|||||||
#include <ktypes.h>
|
#include <ktypes.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
struct sha1 {
|
struct sha {
|
||||||
unsigned int sz[2];
|
unsigned int sz[2];
|
||||||
u_int32_t counter[5];
|
u_int32_t counter[5];
|
||||||
unsigned char save[64];
|
unsigned char save[64];
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef struct sha1 SHA1_CTX;
|
typedef struct sha SHA_CTX;
|
||||||
|
|
||||||
void SHA1Init (struct sha1 *m);
|
void SHA1_Init (struct sha *m);
|
||||||
void SHA1Update (struct sha1 *m, const void *v, size_t len);
|
void SHA1_Update (struct sha *m, const void *v, size_t len);
|
||||||
void SHA1Final (void *res, struct sha1 *m);
|
void SHA1_Final (void *res, struct sha *m);
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 1997 - 2000 Kungliga Tekniska H<>gskolan
|
* Copyright (c) 1997 - 2001 Kungliga Tekniska H<>gskolan
|
||||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
@@ -59,30 +59,30 @@ hash_input_chan_bindings (const gss_channel_bindings_t b,
|
|||||||
u_char num[4];
|
u_char num[4];
|
||||||
MD5_CTX md5;
|
MD5_CTX md5;
|
||||||
|
|
||||||
MD5Init(&md5);
|
MD5_Init(&md5);
|
||||||
encode_om_uint32 (b->initiator_addrtype, num);
|
encode_om_uint32 (b->initiator_addrtype, num);
|
||||||
MD5Update (&md5, num, sizeof(num));
|
MD5_Update (&md5, num, sizeof(num));
|
||||||
encode_om_uint32 (b->initiator_address.length, num);
|
encode_om_uint32 (b->initiator_address.length, num);
|
||||||
MD5Update (&md5, num, sizeof(num));
|
MD5_Update (&md5, num, sizeof(num));
|
||||||
if (b->initiator_address.length)
|
if (b->initiator_address.length)
|
||||||
MD5Update (&md5,
|
MD5_Update (&md5,
|
||||||
b->initiator_address.value,
|
b->initiator_address.value,
|
||||||
b->initiator_address.length);
|
b->initiator_address.length);
|
||||||
encode_om_uint32 (b->acceptor_addrtype, num);
|
encode_om_uint32 (b->acceptor_addrtype, num);
|
||||||
MD5Update (&md5, num, sizeof(num));
|
MD5_Update (&md5, num, sizeof(num));
|
||||||
encode_om_uint32 (b->acceptor_address.length, num);
|
encode_om_uint32 (b->acceptor_address.length, num);
|
||||||
MD5Update (&md5, num, sizeof(num));
|
MD5_Update (&md5, num, sizeof(num));
|
||||||
if (b->acceptor_address.length)
|
if (b->acceptor_address.length)
|
||||||
MD5Update (&md5,
|
MD5_Update (&md5,
|
||||||
b->acceptor_address.value,
|
b->acceptor_address.value,
|
||||||
b->acceptor_address.length);
|
b->acceptor_address.length);
|
||||||
encode_om_uint32 (b->application_data.length, num);
|
encode_om_uint32 (b->application_data.length, num);
|
||||||
MD5Update (&md5, num, sizeof(num));
|
MD5_Update (&md5, num, sizeof(num));
|
||||||
if (b->application_data.length)
|
if (b->application_data.length)
|
||||||
MD5Update (&md5,
|
MD5_Update (&md5,
|
||||||
b->application_data.value,
|
b->application_data.value,
|
||||||
b->application_data.length);
|
b->application_data.length);
|
||||||
MD5Final (p, &md5);
|
MD5_Final (p, &md5);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -78,10 +78,10 @@ mic_des
|
|||||||
p += 16;
|
p += 16;
|
||||||
|
|
||||||
/* checksum */
|
/* checksum */
|
||||||
MD5Init (&md5);
|
MD5_Init (&md5);
|
||||||
MD5Update (&md5, p - 24, 8);
|
MD5_Update (&md5, p - 24, 8);
|
||||||
MD5Update (&md5, message_buffer->value, message_buffer->length);
|
MD5_Update (&md5, message_buffer->value, message_buffer->length);
|
||||||
MD5Final (hash, &md5);
|
MD5_Final (hash, &md5);
|
||||||
|
|
||||||
memset (&zero, 0, sizeof(zero));
|
memset (&zero, 0, sizeof(zero));
|
||||||
memcpy (&deskey, key->keyvalue.data, sizeof(deskey));
|
memcpy (&deskey, key->keyvalue.data, sizeof(deskey));
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 1997 - 2000 Kungliga Tekniska H<>gskolan
|
* Copyright (c) 1997 - 2001 Kungliga Tekniska H<>gskolan
|
||||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
@@ -59,30 +59,30 @@ hash_input_chan_bindings (const gss_channel_bindings_t b,
|
|||||||
u_char num[4];
|
u_char num[4];
|
||||||
MD5_CTX md5;
|
MD5_CTX md5;
|
||||||
|
|
||||||
MD5Init(&md5);
|
MD5_Init(&md5);
|
||||||
encode_om_uint32 (b->initiator_addrtype, num);
|
encode_om_uint32 (b->initiator_addrtype, num);
|
||||||
MD5Update (&md5, num, sizeof(num));
|
MD5_Update (&md5, num, sizeof(num));
|
||||||
encode_om_uint32 (b->initiator_address.length, num);
|
encode_om_uint32 (b->initiator_address.length, num);
|
||||||
MD5Update (&md5, num, sizeof(num));
|
MD5_Update (&md5, num, sizeof(num));
|
||||||
if (b->initiator_address.length)
|
if (b->initiator_address.length)
|
||||||
MD5Update (&md5,
|
MD5_Update (&md5,
|
||||||
b->initiator_address.value,
|
b->initiator_address.value,
|
||||||
b->initiator_address.length);
|
b->initiator_address.length);
|
||||||
encode_om_uint32 (b->acceptor_addrtype, num);
|
encode_om_uint32 (b->acceptor_addrtype, num);
|
||||||
MD5Update (&md5, num, sizeof(num));
|
MD5_Update (&md5, num, sizeof(num));
|
||||||
encode_om_uint32 (b->acceptor_address.length, num);
|
encode_om_uint32 (b->acceptor_address.length, num);
|
||||||
MD5Update (&md5, num, sizeof(num));
|
MD5_Update (&md5, num, sizeof(num));
|
||||||
if (b->acceptor_address.length)
|
if (b->acceptor_address.length)
|
||||||
MD5Update (&md5,
|
MD5_Update (&md5,
|
||||||
b->acceptor_address.value,
|
b->acceptor_address.value,
|
||||||
b->acceptor_address.length);
|
b->acceptor_address.length);
|
||||||
encode_om_uint32 (b->application_data.length, num);
|
encode_om_uint32 (b->application_data.length, num);
|
||||||
MD5Update (&md5, num, sizeof(num));
|
MD5_Update (&md5, num, sizeof(num));
|
||||||
if (b->application_data.length)
|
if (b->application_data.length)
|
||||||
MD5Update (&md5,
|
MD5_Update (&md5,
|
||||||
b->application_data.value,
|
b->application_data.value,
|
||||||
b->application_data.length);
|
b->application_data.length);
|
||||||
MD5Final (p, &md5);
|
MD5_Final (p, &md5);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -78,10 +78,10 @@ mic_des
|
|||||||
p += 16;
|
p += 16;
|
||||||
|
|
||||||
/* checksum */
|
/* checksum */
|
||||||
MD5Init (&md5);
|
MD5_Init (&md5);
|
||||||
MD5Update (&md5, p - 24, 8);
|
MD5_Update (&md5, p - 24, 8);
|
||||||
MD5Update (&md5, message_buffer->value, message_buffer->length);
|
MD5_Update (&md5, message_buffer->value, message_buffer->length);
|
||||||
MD5Final (hash, &md5);
|
MD5_Final (hash, &md5);
|
||||||
|
|
||||||
memset (&zero, 0, sizeof(zero));
|
memset (&zero, 0, sizeof(zero));
|
||||||
memcpy (&deskey, key->keyvalue.data, sizeof(deskey));
|
memcpy (&deskey, key->keyvalue.data, sizeof(deskey));
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 1997 - 2000 Kungliga Tekniska H<>gskolan
|
* Copyright (c) 1997 - 2001 Kungliga Tekniska H<>gskolan
|
||||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
@@ -136,10 +136,10 @@ unwrap_des
|
|||||||
if (i != 0)
|
if (i != 0)
|
||||||
return GSS_S_BAD_MIC;
|
return GSS_S_BAD_MIC;
|
||||||
|
|
||||||
MD5Init (&md5);
|
MD5_Init (&md5);
|
||||||
MD5Update (&md5, p - 24, 8);
|
MD5_Update (&md5, p - 24, 8);
|
||||||
MD5Update (&md5, p, input_message_buffer->length - len);
|
MD5_Update (&md5, p, input_message_buffer->length - len);
|
||||||
MD5Final (hash, &md5);
|
MD5_Final (hash, &md5);
|
||||||
|
|
||||||
memset (&zero, 0, sizeof(zero));
|
memset (&zero, 0, sizeof(zero));
|
||||||
memcpy (&deskey, key->keyvalue.data, sizeof(deskey));
|
memcpy (&deskey, key->keyvalue.data, sizeof(deskey));
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 1997 - 2000 Kungliga Tekniska H<>gskolan
|
* Copyright (c) 1997 - 2001 Kungliga Tekniska H<>gskolan
|
||||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
@@ -70,11 +70,11 @@ verify_mic_des
|
|||||||
p += 16;
|
p += 16;
|
||||||
|
|
||||||
/* verify checksum */
|
/* verify checksum */
|
||||||
MD5Init (&md5);
|
MD5_Init (&md5);
|
||||||
MD5Update (&md5, p - 24, 8);
|
MD5_Update (&md5, p - 24, 8);
|
||||||
MD5Update (&md5, message_buffer->value,
|
MD5_Update (&md5, message_buffer->value,
|
||||||
message_buffer->length);
|
message_buffer->length);
|
||||||
MD5Final (hash, &md5);
|
MD5_Final (hash, &md5);
|
||||||
|
|
||||||
memset (&zero, 0, sizeof(zero));
|
memset (&zero, 0, sizeof(zero));
|
||||||
memcpy (&deskey, key->keyvalue.data, sizeof(deskey));
|
memcpy (&deskey, key->keyvalue.data, sizeof(deskey));
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 1997 - 2000 Kungliga Tekniska H<>gskolan
|
* Copyright (c) 1997 - 2001 Kungliga Tekniska H<>gskolan
|
||||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
@@ -148,10 +148,10 @@ wrap_des
|
|||||||
memset (p + 8 + input_message_buffer->length, padlength, padlength);
|
memset (p + 8 + input_message_buffer->length, padlength, padlength);
|
||||||
|
|
||||||
/* checksum */
|
/* checksum */
|
||||||
MD5Init (&md5);
|
MD5_Init (&md5);
|
||||||
MD5Update (&md5, p - 24, 8);
|
MD5_Update (&md5, p - 24, 8);
|
||||||
MD5Update (&md5, p, datalen);
|
MD5_Update (&md5, p, datalen);
|
||||||
MD5Final (hash, &md5);
|
MD5_Final (hash, &md5);
|
||||||
|
|
||||||
memset (&zero, 0, sizeof(zero));
|
memset (&zero, 0, sizeof(zero));
|
||||||
memcpy (&deskey, key->keyvalue.data, sizeof(deskey));
|
memcpy (&deskey, key->keyvalue.data, sizeof(deskey));
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 1997 - 2000 Kungliga Tekniska H<>gskolan
|
* Copyright (c) 1997 - 2001 Kungliga Tekniska H<>gskolan
|
||||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
@@ -136,10 +136,10 @@ unwrap_des
|
|||||||
if (i != 0)
|
if (i != 0)
|
||||||
return GSS_S_BAD_MIC;
|
return GSS_S_BAD_MIC;
|
||||||
|
|
||||||
MD5Init (&md5);
|
MD5_Init (&md5);
|
||||||
MD5Update (&md5, p - 24, 8);
|
MD5_Update (&md5, p - 24, 8);
|
||||||
MD5Update (&md5, p, input_message_buffer->length - len);
|
MD5_Update (&md5, p, input_message_buffer->length - len);
|
||||||
MD5Final (hash, &md5);
|
MD5_Final (hash, &md5);
|
||||||
|
|
||||||
memset (&zero, 0, sizeof(zero));
|
memset (&zero, 0, sizeof(zero));
|
||||||
memcpy (&deskey, key->keyvalue.data, sizeof(deskey));
|
memcpy (&deskey, key->keyvalue.data, sizeof(deskey));
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 1997 - 2000 Kungliga Tekniska H<>gskolan
|
* Copyright (c) 1997 - 2001 Kungliga Tekniska H<>gskolan
|
||||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
@@ -70,11 +70,11 @@ verify_mic_des
|
|||||||
p += 16;
|
p += 16;
|
||||||
|
|
||||||
/* verify checksum */
|
/* verify checksum */
|
||||||
MD5Init (&md5);
|
MD5_Init (&md5);
|
||||||
MD5Update (&md5, p - 24, 8);
|
MD5_Update (&md5, p - 24, 8);
|
||||||
MD5Update (&md5, message_buffer->value,
|
MD5_Update (&md5, message_buffer->value,
|
||||||
message_buffer->length);
|
message_buffer->length);
|
||||||
MD5Final (hash, &md5);
|
MD5_Final (hash, &md5);
|
||||||
|
|
||||||
memset (&zero, 0, sizeof(zero));
|
memset (&zero, 0, sizeof(zero));
|
||||||
memcpy (&deskey, key->keyvalue.data, sizeof(deskey));
|
memcpy (&deskey, key->keyvalue.data, sizeof(deskey));
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 1997 - 2000 Kungliga Tekniska H<>gskolan
|
* Copyright (c) 1997 - 2001 Kungliga Tekniska H<>gskolan
|
||||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
@@ -148,10 +148,10 @@ wrap_des
|
|||||||
memset (p + 8 + input_message_buffer->length, padlength, padlength);
|
memset (p + 8 + input_message_buffer->length, padlength, padlength);
|
||||||
|
|
||||||
/* checksum */
|
/* checksum */
|
||||||
MD5Init (&md5);
|
MD5_Init (&md5);
|
||||||
MD5Update (&md5, p - 24, 8);
|
MD5_Update (&md5, p - 24, 8);
|
||||||
MD5Update (&md5, p, datalen);
|
MD5_Update (&md5, p, datalen);
|
||||||
MD5Final (hash, &md5);
|
MD5_Final (hash, &md5);
|
||||||
|
|
||||||
memset (&zero, 0, sizeof(zero));
|
memset (&zero, 0, sizeof(zero));
|
||||||
memcpy (&deskey, key->keyvalue.data, sizeof(deskey));
|
memcpy (&deskey, key->keyvalue.data, sizeof(deskey));
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 1997 - 2000 Kungliga Tekniska H<>gskolan
|
* Copyright (c) 1997 - 2001 Kungliga Tekniska H<>gskolan
|
||||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
@@ -439,11 +439,11 @@ ARCFOUR_string_to_key(krb5_context context,
|
|||||||
*p++ = ((char *)password.data)[i];
|
*p++ = ((char *)password.data)[i];
|
||||||
*p++ = 0;
|
*p++ = 0;
|
||||||
}
|
}
|
||||||
MD4Init (&m);
|
MD4_Init (&m);
|
||||||
MD4Update (&m, s, len);
|
MD4_Update (&m, s, len);
|
||||||
key->keytype = enctype;
|
key->keytype = enctype;
|
||||||
krb5_data_alloc (&key->keyvalue, 16);
|
krb5_data_alloc (&key->keyvalue, 16);
|
||||||
MD4Final (key->keyvalue.data, &m);
|
MD4_Final (key->keyvalue.data, &m);
|
||||||
memset (s, 0, len);
|
memset (s, 0, len);
|
||||||
free (s);
|
free (s);
|
||||||
return 0;
|
return 0;
|
||||||
@@ -838,9 +838,9 @@ RSA_MD4_checksum(krb5_context context,
|
|||||||
{
|
{
|
||||||
MD4_CTX m;
|
MD4_CTX m;
|
||||||
|
|
||||||
MD4Init (&m);
|
MD4_Init (&m);
|
||||||
MD4Update (&m, data, len);
|
MD4_Update (&m, data, len);
|
||||||
MD4Final (C->checksum.data, &m);
|
MD4_Final (C->checksum.data, &m);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@@ -856,10 +856,10 @@ RSA_MD4_DES_checksum(krb5_context context,
|
|||||||
unsigned char *p = cksum->checksum.data;
|
unsigned char *p = cksum->checksum.data;
|
||||||
|
|
||||||
krb5_generate_random_block(p, 8);
|
krb5_generate_random_block(p, 8);
|
||||||
MD4Init (&md4);
|
MD4_Init (&md4);
|
||||||
MD4Update (&md4, p, 8);
|
MD4_Update (&md4, p, 8);
|
||||||
MD4Update (&md4, data, len);
|
MD4_Update (&md4, data, len);
|
||||||
MD4Final (p + 8, &md4);
|
MD4_Final (p + 8, &md4);
|
||||||
memset (&ivec, 0, sizeof(ivec));
|
memset (&ivec, 0, sizeof(ivec));
|
||||||
des_cbc_encrypt((des_cblock*)p,
|
des_cbc_encrypt((des_cblock*)p,
|
||||||
(des_cblock*)p,
|
(des_cblock*)p,
|
||||||
@@ -890,10 +890,10 @@ RSA_MD4_DES_verify(krb5_context context,
|
|||||||
key->schedule->data,
|
key->schedule->data,
|
||||||
&ivec,
|
&ivec,
|
||||||
DES_DECRYPT);
|
DES_DECRYPT);
|
||||||
MD4Init (&md4);
|
MD4_Init (&md4);
|
||||||
MD4Update (&md4, tmp, 8); /* confounder */
|
MD4_Update (&md4, tmp, 8); /* confounder */
|
||||||
MD4Update (&md4, data, len);
|
MD4_Update (&md4, data, len);
|
||||||
MD4Final (res, &md4);
|
MD4_Final (res, &md4);
|
||||||
if(memcmp(res, tmp + 8, sizeof(res)) != 0)
|
if(memcmp(res, tmp + 8, sizeof(res)) != 0)
|
||||||
ret = KRB5KRB_AP_ERR_BAD_INTEGRITY;
|
ret = KRB5KRB_AP_ERR_BAD_INTEGRITY;
|
||||||
memset(tmp, 0, sizeof(tmp));
|
memset(tmp, 0, sizeof(tmp));
|
||||||
@@ -911,9 +911,9 @@ RSA_MD5_checksum(krb5_context context,
|
|||||||
{
|
{
|
||||||
MD5_CTX m;
|
MD5_CTX m;
|
||||||
|
|
||||||
MD5Init (&m);
|
MD5_Init (&m);
|
||||||
MD5Update(&m, data, len);
|
MD5_Update(&m, data, len);
|
||||||
MD5Final (C->checksum.data, &m);
|
MD5_Final (C->checksum.data, &m);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@@ -929,10 +929,10 @@ RSA_MD5_DES_checksum(krb5_context context,
|
|||||||
unsigned char *p = C->checksum.data;
|
unsigned char *p = C->checksum.data;
|
||||||
|
|
||||||
krb5_generate_random_block(p, 8);
|
krb5_generate_random_block(p, 8);
|
||||||
MD5Init (&md5);
|
MD5_Init (&md5);
|
||||||
MD5Update (&md5, p, 8);
|
MD5_Update (&md5, p, 8);
|
||||||
MD5Update (&md5, data, len);
|
MD5_Update (&md5, data, len);
|
||||||
MD5Final (p + 8, &md5);
|
MD5_Final (p + 8, &md5);
|
||||||
memset (&ivec, 0, sizeof(ivec));
|
memset (&ivec, 0, sizeof(ivec));
|
||||||
des_cbc_encrypt((des_cblock*)p,
|
des_cbc_encrypt((des_cblock*)p,
|
||||||
(des_cblock*)p,
|
(des_cblock*)p,
|
||||||
@@ -964,10 +964,10 @@ RSA_MD5_DES_verify(krb5_context context,
|
|||||||
sched[0],
|
sched[0],
|
||||||
&ivec,
|
&ivec,
|
||||||
DES_DECRYPT);
|
DES_DECRYPT);
|
||||||
MD5Init (&md5);
|
MD5_Init (&md5);
|
||||||
MD5Update (&md5, tmp, 8); /* confounder */
|
MD5_Update (&md5, tmp, 8); /* confounder */
|
||||||
MD5Update (&md5, data, len);
|
MD5_Update (&md5, data, len);
|
||||||
MD5Final (res, &md5);
|
MD5_Final (res, &md5);
|
||||||
if(memcmp(res, tmp + 8, sizeof(res)) != 0)
|
if(memcmp(res, tmp + 8, sizeof(res)) != 0)
|
||||||
ret = KRB5KRB_AP_ERR_BAD_INTEGRITY;
|
ret = KRB5KRB_AP_ERR_BAD_INTEGRITY;
|
||||||
memset(tmp, 0, sizeof(tmp));
|
memset(tmp, 0, sizeof(tmp));
|
||||||
@@ -989,10 +989,10 @@ RSA_MD5_DES3_checksum(krb5_context context,
|
|||||||
des_key_schedule *sched = key->schedule->data;
|
des_key_schedule *sched = key->schedule->data;
|
||||||
|
|
||||||
krb5_generate_random_block(p, 8);
|
krb5_generate_random_block(p, 8);
|
||||||
MD5Init (&md5);
|
MD5_Init (&md5);
|
||||||
MD5Update (&md5, p, 8);
|
MD5_Update (&md5, p, 8);
|
||||||
MD5Update (&md5, data, len);
|
MD5_Update (&md5, data, len);
|
||||||
MD5Final (p + 8, &md5);
|
MD5_Final (p + 8, &md5);
|
||||||
memset (&ivec, 0, sizeof(ivec));
|
memset (&ivec, 0, sizeof(ivec));
|
||||||
des_ede3_cbc_encrypt((des_cblock*)p,
|
des_ede3_cbc_encrypt((des_cblock*)p,
|
||||||
(des_cblock*)p,
|
(des_cblock*)p,
|
||||||
@@ -1024,10 +1024,10 @@ RSA_MD5_DES3_verify(krb5_context context,
|
|||||||
sched[0], sched[1], sched[2],
|
sched[0], sched[1], sched[2],
|
||||||
&ivec,
|
&ivec,
|
||||||
DES_DECRYPT);
|
DES_DECRYPT);
|
||||||
MD5Init (&md5);
|
MD5_Init (&md5);
|
||||||
MD5Update (&md5, tmp, 8); /* confounder */
|
MD5_Update (&md5, tmp, 8); /* confounder */
|
||||||
MD5Update (&md5, data, len);
|
MD5_Update (&md5, data, len);
|
||||||
MD5Final (res, &md5);
|
MD5_Final (res, &md5);
|
||||||
if(memcmp(res, tmp + 8, sizeof(res)) != 0)
|
if(memcmp(res, tmp + 8, sizeof(res)) != 0)
|
||||||
ret = KRB5KRB_AP_ERR_BAD_INTEGRITY;
|
ret = KRB5KRB_AP_ERR_BAD_INTEGRITY;
|
||||||
memset(tmp, 0, sizeof(tmp));
|
memset(tmp, 0, sizeof(tmp));
|
||||||
@@ -1043,11 +1043,11 @@ SHA1_checksum(krb5_context context,
|
|||||||
unsigned usage,
|
unsigned usage,
|
||||||
Checksum *C)
|
Checksum *C)
|
||||||
{
|
{
|
||||||
SHA1_CTX m;
|
SHA_CTX m;
|
||||||
|
|
||||||
SHA1Init(&m);
|
SHA1_Init(&m);
|
||||||
SHA1Update(&m, data, len);
|
SHA1_Update(&m, data, len);
|
||||||
SHA1Final(C->checksum.data, &m);
|
SHA1_Final(C->checksum.data, &m);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* HMAC according to RFC2104 */
|
/* HMAC according to RFC2104 */
|
||||||
@@ -1139,14 +1139,14 @@ HMAC_MD5_checksum(krb5_context context,
|
|||||||
hmac(context, c, signature, sizeof(signature), 0, key, &ksign_c);
|
hmac(context, c, signature, sizeof(signature), 0, key, &ksign_c);
|
||||||
ksign.key = &kb;
|
ksign.key = &kb;
|
||||||
kb.keyvalue = ksign_c.checksum;
|
kb.keyvalue = ksign_c.checksum;
|
||||||
MD5Init (&md5);
|
MD5_Init (&md5);
|
||||||
t[0] = (usage >> 0) & 0xFF;
|
t[0] = (usage >> 0) & 0xFF;
|
||||||
t[1] = (usage >> 8) & 0xFF;
|
t[1] = (usage >> 8) & 0xFF;
|
||||||
t[2] = (usage >> 16) & 0xFF;
|
t[2] = (usage >> 16) & 0xFF;
|
||||||
t[3] = (usage >> 24) & 0xFF;
|
t[3] = (usage >> 24) & 0xFF;
|
||||||
MD5Update (&md5, t, 4);
|
MD5_Update (&md5, t, 4);
|
||||||
MD5Update (&md5, data, len);
|
MD5_Update (&md5, data, len);
|
||||||
MD5Final (tmp, &md5);
|
MD5_Final (tmp, &md5);
|
||||||
hmac(context, c, tmp, sizeof(tmp), 0, &ksign, result);
|
hmac(context, c, tmp, sizeof(tmp), 0, &ksign, result);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2835,9 +2835,9 @@ krb5_get_keyid(krb5_context context,
|
|||||||
MD5_CTX md5;
|
MD5_CTX md5;
|
||||||
unsigned char tmp[16];
|
unsigned char tmp[16];
|
||||||
|
|
||||||
MD5Init (&md5);
|
MD5_Init (&md5);
|
||||||
MD5Update (&md5, key->keyvalue.data, key->keyvalue.length);
|
MD5_Update (&md5, key->keyvalue.data, key->keyvalue.length);
|
||||||
MD5Final (tmp, &md5);
|
MD5_Final (tmp, &md5);
|
||||||
*keyid = (tmp[12] << 24) | (tmp[13] << 16) | (tmp[14] << 8) | tmp[15];
|
*keyid = (tmp[12] << 24) | (tmp[13] << 16) | (tmp[14] << 8) | tmp[15];
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 1997-1999 Kungliga Tekniska H<>gskolan
|
* Copyright (c) 1997-2001 Kungliga Tekniska H<>gskolan
|
||||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
@@ -109,11 +109,31 @@ struct sockaddr_dl;
|
|||||||
#include <parse_time.h>
|
#include <parse_time.h>
|
||||||
#include <base64.h>
|
#include <base64.h>
|
||||||
|
|
||||||
|
#ifdef HAVE_OPENSSL_DES_H
|
||||||
|
#include <openssl/des.h>
|
||||||
|
#else
|
||||||
#include <des.h>
|
#include <des.h>
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_OPENSSL_MD4_H
|
||||||
|
#include <openssl/md4.h>
|
||||||
|
#else
|
||||||
#include <md4.h>
|
#include <md4.h>
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_OPENSSL_MD5_H
|
||||||
|
#include <openssl/md5.h>
|
||||||
|
#else
|
||||||
#include <md5.h>
|
#include <md5.h>
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_OPENSSL_SHA_H
|
||||||
|
#include <openssl/sha.h>
|
||||||
|
#else
|
||||||
#include <sha.h>
|
#include <sha.h>
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_OPENSSL_RC4_H
|
||||||
|
#include <openssl/rc4.h>
|
||||||
|
#else
|
||||||
#include <rc4.h>
|
#include <rc4.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <asn1.h>
|
#include <asn1.h>
|
||||||
#include <der.h>
|
#include <der.h>
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 1997-2000 Kungliga Tekniska H<>gskolan
|
* Copyright (c) 1997-2001 Kungliga Tekniska H<>gskolan
|
||||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
@@ -149,14 +149,14 @@ checksum_authenticator(Authenticator *auth, void *data)
|
|||||||
MD5_CTX md5;
|
MD5_CTX md5;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
MD5Init (&md5);
|
MD5_Init (&md5);
|
||||||
MD5Update (&md5, auth->crealm, strlen(auth->crealm));
|
MD5_Update (&md5, auth->crealm, strlen(auth->crealm));
|
||||||
for(i = 0; i < auth->cname.name_string.len; i++)
|
for(i = 0; i < auth->cname.name_string.len; i++)
|
||||||
MD5Update(&md5, auth->cname.name_string.val[i],
|
MD5_Update(&md5, auth->cname.name_string.val[i],
|
||||||
strlen(auth->cname.name_string.val[i]));
|
strlen(auth->cname.name_string.val[i]));
|
||||||
MD5Update (&md5, &auth->ctime, sizeof(auth->ctime));
|
MD5_Update (&md5, &auth->ctime, sizeof(auth->ctime));
|
||||||
MD5Update (&md5, &auth->cusec, sizeof(auth->cusec));
|
MD5_Update (&md5, &auth->cusec, sizeof(auth->cusec));
|
||||||
MD5Final (data, &md5);
|
MD5_Final (data, &md5);
|
||||||
}
|
}
|
||||||
|
|
||||||
krb5_error_code
|
krb5_error_code
|
||||||
|
@@ -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).
|
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
@@ -131,9 +131,9 @@ otp_md4_init (OtpKey key, const char *pwd, const char *seed)
|
|||||||
MD4_CTX md4;
|
MD4_CTX md4;
|
||||||
|
|
||||||
return otp_md_init (key, pwd, seed,
|
return otp_md_init (key, pwd, seed,
|
||||||
(void (*)(void *))MD4Init,
|
(void (*)(void *))MD4_Init,
|
||||||
(void (*)(void *, const void *, size_t))MD4Update,
|
(void (*)(void *, const void *, size_t))MD4_Update,
|
||||||
(void (*)(void *, void *))MD4Final,
|
(void (*)(void *, void *))MD4_Final,
|
||||||
&md4, res, sizeof(res));
|
&md4, res, sizeof(res));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -145,9 +145,9 @@ otp_md4_hash (const char *data,
|
|||||||
MD4_CTX md4;
|
MD4_CTX md4;
|
||||||
|
|
||||||
return otp_md_hash (data, len,
|
return otp_md_hash (data, len,
|
||||||
(void (*)(void *))MD4Init,
|
(void (*)(void *))MD4_Init,
|
||||||
(void (*)(void *, const void *, size_t))MD4Update,
|
(void (*)(void *, const void *, size_t))MD4_Update,
|
||||||
(void (*)(void *, void *))MD4Final,
|
(void (*)(void *, void *))MD4_Final,
|
||||||
&md4, res, 16);
|
&md4, res, 16);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -158,9 +158,9 @@ otp_md4_next (OtpKey key)
|
|||||||
MD4_CTX md4;
|
MD4_CTX md4;
|
||||||
|
|
||||||
return otp_md_next (key,
|
return otp_md_next (key,
|
||||||
(void (*)(void *))MD4Init,
|
(void (*)(void *))MD4_Init,
|
||||||
(void (*)(void *, const void *, size_t))MD4Update,
|
(void (*)(void *, const void *, size_t))MD4_Update,
|
||||||
(void (*)(void *, void *))MD4Final,
|
(void (*)(void *, void *))MD4_Final,
|
||||||
&md4, res, sizeof(res));
|
&md4, res, sizeof(res));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -172,9 +172,9 @@ otp_md5_init (OtpKey key, const char *pwd, const char *seed)
|
|||||||
MD5_CTX md5;
|
MD5_CTX md5;
|
||||||
|
|
||||||
return otp_md_init (key, pwd, seed,
|
return otp_md_init (key, pwd, seed,
|
||||||
(void (*)(void *))MD5Init,
|
(void (*)(void *))MD5_Init,
|
||||||
(void (*)(void *, const void *, size_t))MD5Update,
|
(void (*)(void *, const void *, size_t))MD5_Update,
|
||||||
(void (*)(void *, void *))MD5Final,
|
(void (*)(void *, void *))MD5_Final,
|
||||||
&md5, res, sizeof(res));
|
&md5, res, sizeof(res));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -186,9 +186,9 @@ otp_md5_hash (const char *data,
|
|||||||
MD5_CTX md5;
|
MD5_CTX md5;
|
||||||
|
|
||||||
return otp_md_hash (data, len,
|
return otp_md_hash (data, len,
|
||||||
(void (*)(void *))MD5Init,
|
(void (*)(void *))MD5_Init,
|
||||||
(void (*)(void *, const void *, size_t))MD5Update,
|
(void (*)(void *, const void *, size_t))MD5_Update,
|
||||||
(void (*)(void *, void *))MD5Final,
|
(void (*)(void *, void *))MD5_Final,
|
||||||
&md5, res, 16);
|
&md5, res, 16);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -199,9 +199,9 @@ otp_md5_next (OtpKey key)
|
|||||||
MD5_CTX md5;
|
MD5_CTX md5;
|
||||||
|
|
||||||
return otp_md_next (key,
|
return otp_md_next (key,
|
||||||
(void (*)(void *))MD5Init,
|
(void (*)(void *))MD5_Init,
|
||||||
(void (*)(void *, const void *, size_t))MD5Update,
|
(void (*)(void *, const void *, size_t))MD5_Update,
|
||||||
(void (*)(void *, void *))MD5Final,
|
(void (*)(void *, void *))MD5_Final,
|
||||||
&md5, res, sizeof(res));
|
&md5, res, sizeof(res));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -212,13 +212,13 @@ otp_md5_next (OtpKey key)
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
static void
|
static void
|
||||||
SHA1Final_little_endian (void *res, struct sha1 *m)
|
SHA1_Final_little_endian (void *res, struct sha1 *m)
|
||||||
{
|
{
|
||||||
unsigned char tmp[20];
|
unsigned char tmp[20];
|
||||||
unsigned char *p = res;
|
unsigned char *p = res;
|
||||||
int j;
|
int j;
|
||||||
|
|
||||||
SHA1Final (tmp, m);
|
SHA1_Final (tmp, m);
|
||||||
for (j = 0; j < 20; j += 4) {
|
for (j = 0; j < 20; j += 4) {
|
||||||
p[j] = tmp[j+3];
|
p[j] = tmp[j+3];
|
||||||
p[j+1] = tmp[j+2];
|
p[j+1] = tmp[j+2];
|
||||||
@@ -231,12 +231,12 @@ int
|
|||||||
otp_sha_init (OtpKey key, const char *pwd, const char *seed)
|
otp_sha_init (OtpKey key, const char *pwd, const char *seed)
|
||||||
{
|
{
|
||||||
unsigned char res[20];
|
unsigned char res[20];
|
||||||
struct sha1 sha1;
|
SHA_CTX sha1;
|
||||||
|
|
||||||
return otp_md_init (key, pwd, seed,
|
return otp_md_init (key, pwd, seed,
|
||||||
(void (*)(void *))SHA1Init,
|
(void (*)(void *))SHA1_Init,
|
||||||
(void (*)(void *, const void *, size_t))SHA1Update,
|
(void (*)(void *, const void *, size_t))SHA1_Update,
|
||||||
(void (*)(void *, void *))SHA1Final_little_endian,
|
(void (*)(void *, void *))SHA1_Final_little_endian,
|
||||||
&sha1, res, sizeof(res));
|
&sha1, res, sizeof(res));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -245,12 +245,12 @@ otp_sha_hash (const char *data,
|
|||||||
size_t len,
|
size_t len,
|
||||||
unsigned char *res)
|
unsigned char *res)
|
||||||
{
|
{
|
||||||
struct sha1 sha1;
|
SHA_CTX sha1;
|
||||||
|
|
||||||
return otp_md_hash (data, len,
|
return otp_md_hash (data, len,
|
||||||
(void (*)(void *))SHA1Init,
|
(void (*)(void *))SHA1_Init,
|
||||||
(void (*)(void *, const void *, size_t))SHA1Update,
|
(void (*)(void *, const void *, size_t))SHA1_Update,
|
||||||
(void (*)(void *, void *))SHA1Final_little_endian,
|
(void (*)(void *, void *))SHA1_Final_little_endian,
|
||||||
&sha1, res, 20);
|
&sha1, res, 20);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -258,11 +258,11 @@ int
|
|||||||
otp_sha_next (OtpKey key)
|
otp_sha_next (OtpKey key)
|
||||||
{
|
{
|
||||||
unsigned char res[20];
|
unsigned char res[20];
|
||||||
struct sha1 sha1;
|
SHA_CTX sha1;
|
||||||
|
|
||||||
return otp_md_next (key,
|
return otp_md_next (key,
|
||||||
(void (*)(void *))SHA1Init,
|
(void (*)(void *))SHA1_Init,
|
||||||
(void (*)(void *, const void *, size_t))SHA1Update,
|
(void (*)(void *, const void *, size_t))SHA1_Update,
|
||||||
(void (*)(void *, void *))SHA1Final_little_endian,
|
(void (*)(void *, void *))SHA1_Final_little_endian,
|
||||||
&sha1, res, sizeof(res));
|
&sha1, res, sizeof(res));
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user