Add timing code for s2k function.
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@16289 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
@@ -84,11 +84,51 @@ time_encryption(krb5_context context, size_t size,
|
|||||||
(long)tv2.tv_sec, (long)tv2.tv_usec);
|
(long)tv2.tv_sec, (long)tv2.tv_usec);
|
||||||
|
|
||||||
free(buf);
|
free(buf);
|
||||||
|
free(etype_name);
|
||||||
krb5_crypto_destroy(context, crypto);
|
krb5_crypto_destroy(context, crypto);
|
||||||
krb5_free_keyblock_contents(context, &key);
|
krb5_free_keyblock_contents(context, &key);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
time_s2k(krb5_context context,
|
||||||
|
krb5_enctype etype,
|
||||||
|
const char *password,
|
||||||
|
krb5_salt salt,
|
||||||
|
int iterations)
|
||||||
|
{
|
||||||
|
struct timeval tv1, tv2;
|
||||||
|
krb5_error_code ret;
|
||||||
|
krb5_keyblock key;
|
||||||
|
krb5_data opaque;
|
||||||
|
char *etype_name;
|
||||||
|
int i;
|
||||||
|
|
||||||
|
ret = krb5_enctype_to_string(context, etype, &etype_name);
|
||||||
|
if (ret)
|
||||||
|
krb5_err(context, 1, ret, "krb5_enctype_to_string");
|
||||||
|
|
||||||
|
opaque.data = NULL;
|
||||||
|
opaque.length = 0;
|
||||||
|
|
||||||
|
gettimeofday(&tv1, NULL);
|
||||||
|
|
||||||
|
for (i = 0; i < iterations; i++) {
|
||||||
|
ret = krb5_string_to_key_salt_opaque(context, etype, password, salt,
|
||||||
|
opaque, &key);
|
||||||
|
if (ret)
|
||||||
|
krb5_err(context, 1, ret, "krb5_string_to_key_data_salt_opaque");
|
||||||
|
krb5_free_keyblock_contents(context, &key);
|
||||||
|
}
|
||||||
|
|
||||||
|
gettimeofday(&tv2, NULL);
|
||||||
|
|
||||||
|
timevalsub(&tv2, &tv1);
|
||||||
|
|
||||||
|
printf("%s string2key %d iterations time: %3ld.%06ld\n",
|
||||||
|
etype_name, iterations, (long)tv2.tv_sec, (long)tv2.tv_usec);
|
||||||
|
free(etype_name);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
static int version_flag = 0;
|
static int version_flag = 0;
|
||||||
static int help_flag = 0;
|
static int help_flag = 0;
|
||||||
@@ -117,6 +157,7 @@ main(int argc, char **argv)
|
|||||||
krb5_error_code ret;
|
krb5_error_code ret;
|
||||||
int i, iterations;
|
int i, iterations;
|
||||||
int optidx = 0;
|
int optidx = 0;
|
||||||
|
krb5_salt salt;
|
||||||
|
|
||||||
krb5_enctype enctypes[] = {
|
krb5_enctype enctypes[] = {
|
||||||
ETYPE_DES_CBC_CRC,
|
ETYPE_DES_CBC_CRC,
|
||||||
@@ -142,6 +183,9 @@ main(int argc, char **argv)
|
|||||||
argc -= optidx;
|
argc -= optidx;
|
||||||
argv += optidx;
|
argv += optidx;
|
||||||
|
|
||||||
|
salt.salttype = KRB5_PW_SALT;
|
||||||
|
salt.saltvalue.data = NULL;
|
||||||
|
salt.saltvalue.length = 0;
|
||||||
|
|
||||||
ret = krb5_init_context(&context);
|
ret = krb5_init_context(&context);
|
||||||
if (ret)
|
if (ret)
|
||||||
@@ -150,6 +194,7 @@ main(int argc, char **argv)
|
|||||||
iterations = 1000;
|
iterations = 1000;
|
||||||
|
|
||||||
for (i = 0; i < sizeof(enctypes)/sizeof(enctypes[0]); i++) {
|
for (i = 0; i < sizeof(enctypes)/sizeof(enctypes[0]); i++) {
|
||||||
|
|
||||||
time_encryption(context, 16, enctypes[i], iterations);
|
time_encryption(context, 16, enctypes[i], iterations);
|
||||||
time_encryption(context, 32, enctypes[i], iterations);
|
time_encryption(context, 32, enctypes[i], iterations);
|
||||||
time_encryption(context, 512, enctypes[i], iterations);
|
time_encryption(context, 512, enctypes[i], iterations);
|
||||||
@@ -159,6 +204,8 @@ main(int argc, char **argv)
|
|||||||
time_encryption(context, 8192, enctypes[i], iterations);
|
time_encryption(context, 8192, enctypes[i], iterations);
|
||||||
time_encryption(context, 16384, enctypes[i], iterations);
|
time_encryption(context, 16384, enctypes[i], iterations);
|
||||||
time_encryption(context, 32768, enctypes[i], iterations);
|
time_encryption(context, 32768, enctypes[i], iterations);
|
||||||
|
|
||||||
|
time_s2k(context, enctypes[i], "mYsecreitPassword", salt, iterations);
|
||||||
}
|
}
|
||||||
|
|
||||||
krb5_free_context(context);
|
krb5_free_context(context);
|
||||||
|
Reference in New Issue
Block a user