sneek in a test for arcfour-hmac-md5
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@11898 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
@@ -38,8 +38,6 @@
|
|||||||
|
|
||||||
RCSID("$Id$");
|
RCSID("$Id$");
|
||||||
|
|
||||||
#ifdef ENABLE_AES
|
|
||||||
|
|
||||||
static int verbose = 0;
|
static int verbose = 0;
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@@ -69,6 +67,7 @@ struct {
|
|||||||
char *pbkdf2;
|
char *pbkdf2;
|
||||||
char *key;
|
char *key;
|
||||||
} keys[] = {
|
} keys[] = {
|
||||||
|
#ifdef ENABLE_AES
|
||||||
{
|
{
|
||||||
"password", "ATHENA.MIT.EDUraeburn", -1,
|
"password", "ATHENA.MIT.EDUraeburn", -1,
|
||||||
1,
|
1,
|
||||||
@@ -185,6 +184,14 @@ struct {
|
|||||||
"\xe7\xfe\x37\xa0\xc4\x1e\x02\xc2\x81\xff\x30\x69\xe1\xe9\x4f\x52",
|
"\xe7\xfe\x37\xa0\xc4\x1e\x02\xc2\x81\xff\x30\x69\xe1\xe9\x4f\x52",
|
||||||
"\x4b\x6d\x98\x39\xf8\x44\x06\xdf\x1f\x09\xcc\x16\x6d\xb4\xb8\x3c"
|
"\x4b\x6d\x98\x39\xf8\x44\x06\xdf\x1f\x09\xcc\x16\x6d\xb4\xb8\x3c"
|
||||||
"\x57\x18\x48\xb7\x84\xa3\xd6\xbd\xc3\x46\x58\x9a\x3e\x39\x3f\x9e"
|
"\x57\x18\x48\xb7\x84\xa3\xd6\xbd\xc3\x46\x58\x9a\x3e\x39\x3f\x9e"
|
||||||
|
},
|
||||||
|
#endif
|
||||||
|
{
|
||||||
|
"foo", "", -1,
|
||||||
|
0,
|
||||||
|
ETYPE_ARCFOUR_HMAC_MD5, 16,
|
||||||
|
NULL,
|
||||||
|
"\xac\x8e\x65\x7f\x83\xdf\x82\xbe\xea\x5d\x43\xbd\xaf\x78\x00\xcc"
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -222,6 +229,10 @@ string_to_key_test(krb5_context context)
|
|||||||
if (keys[i].keylen > sizeof(keyout))
|
if (keys[i].keylen > sizeof(keyout))
|
||||||
abort();
|
abort();
|
||||||
|
|
||||||
|
#ifdef ENABLE_AES
|
||||||
|
if (keys[i].enctype == ETYPE_AES256_CTS_HMAC_SHA1_96 ||
|
||||||
|
keys[i].enctype == ETYPE_AES256_CTS_HMAC_SHA1_96) {
|
||||||
|
|
||||||
#ifdef HAVE_OPENSSL
|
#ifdef HAVE_OPENSSL
|
||||||
PKCS5_PBKDF2_HMAC_SHA1(password.data, password.length,
|
PKCS5_PBKDF2_HMAC_SHA1(password.data, password.length,
|
||||||
salt.saltvalue.data, salt.saltvalue.length,
|
salt.saltvalue.data, salt.saltvalue.length,
|
||||||
@@ -264,6 +275,8 @@ string_to_key_test(krb5_context context)
|
|||||||
}
|
}
|
||||||
|
|
||||||
krb5_free_keyblock_contents(context, &key);
|
krb5_free_keyblock_contents(context, &key);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
ret = krb5_string_to_key_data_salt_opaque (context, keys[i].enctype,
|
ret = krb5_string_to_key_data_salt_opaque (context, keys[i].enctype,
|
||||||
password, salt, opaque,
|
password, salt, opaque,
|
||||||
@@ -275,7 +288,8 @@ string_to_key_test(krb5_context context)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (key.keyvalue.length != keys[i].keylen) {
|
if (key.keyvalue.length != keys[i].keylen) {
|
||||||
krb5_warnx(context, "%d: key wrong length", i);
|
krb5_warnx(context, "%d: key wrong length (%d/%d)",
|
||||||
|
i, key.keyvalue.length, keys[i].keylen);
|
||||||
val = 1;
|
val = 1;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@@ -295,6 +309,8 @@ string_to_key_test(krb5_context context)
|
|||||||
return val;
|
return val;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef ENABLE_AES
|
||||||
|
|
||||||
struct {
|
struct {
|
||||||
size_t len;
|
size_t len;
|
||||||
char *input;
|
char *input;
|
||||||
@@ -425,7 +441,6 @@ encryption_test(krb5_context context)
|
|||||||
int
|
int
|
||||||
main(int argc, char **argv)
|
main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
#ifdef ENABLE_AES
|
|
||||||
krb5_error_code ret;
|
krb5_error_code ret;
|
||||||
krb5_context context;
|
krb5_context context;
|
||||||
int val = 0;
|
int val = 0;
|
||||||
@@ -436,7 +451,9 @@ main(int argc, char **argv)
|
|||||||
|
|
||||||
val |= string_to_key_test(context);
|
val |= string_to_key_test(context);
|
||||||
|
|
||||||
|
#ifdef ENABLE_AES
|
||||||
val |= encryption_test(context);
|
val |= encryption_test(context);
|
||||||
|
#endif
|
||||||
|
|
||||||
if (verbose && val == 0)
|
if (verbose && val == 0)
|
||||||
printf("all ok\n");
|
printf("all ok\n");
|
||||||
@@ -446,7 +463,4 @@ main(int argc, char **argv)
|
|||||||
krb5_free_context(context);
|
krb5_free_context(context);
|
||||||
|
|
||||||
return val;
|
return val;
|
||||||
#else /* ! ENABLE_AES */
|
|
||||||
return 0;
|
|
||||||
#endif /* ENABLE_AES */
|
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user