diff options
author | Sam Hartman <hartmans@mit.edu> | 2011-09-19 00:35:06 +0000 |
---|---|---|
committer | Sam Hartman <hartmans@mit.edu> | 2011-09-19 00:35:06 +0000 |
commit | 864d4b2669d6e4a798314f28530613a8721491a2 (patch) | |
tree | e13984c31b59e2b5754fcecac74aa177f24166a7 /src/plugins | |
parent | ab80f80934526c270d40f3ee709b489e13da0c3f (diff) | |
download | krb5-864d4b2669d6e4a798314f28530613a8721491a2.tar.gz krb5-864d4b2669d6e4a798314f28530613a8721491a2.tar.xz krb5-864d4b2669d6e4a798314f28530613a8721491a2.zip |
Refactor to use oid instead of algorithm_id in KDF interface
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25193 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/plugins')
-rw-r--r-- | src/plugins/preauth/pkinit/pkinit_crypto.h | 2 | ||||
-rw-r--r-- | src/plugins/preauth/pkinit/pkinit_crypto_openssl.c | 24 | ||||
-rw-r--r-- | src/plugins/preauth/pkinit/pkinit_kdf_test.c | 2 |
3 files changed, 16 insertions, 12 deletions
diff --git a/src/plugins/preauth/pkinit/pkinit_crypto.h b/src/plugins/preauth/pkinit/pkinit_crypto.h index ad8e815586..e69fce3ea8 100644 --- a/src/plugins/preauth/pkinit/pkinit_crypto.h +++ b/src/plugins/preauth/pkinit/pkinit_crypto.h @@ -634,7 +634,7 @@ krb5_error_code pkinit_identity_set_prompter krb5_error_code pkinit_alg_agility_kdf(krb5_context context, krb5_octet_data *secret, - krb5_algorithm_identifier *alg_id, + krb5_octet_data *alg_oid, krb5_principal party_u_info, krb5_principal party_v_info, krb5_enctype enctype, diff --git a/src/plugins/preauth/pkinit/pkinit_crypto_openssl.c b/src/plugins/preauth/pkinit/pkinit_crypto_openssl.c index a5f26bb96f..509f8b6e42 100644 --- a/src/plugins/preauth/pkinit/pkinit_crypto_openssl.c +++ b/src/plugins/preauth/pkinit/pkinit_crypto_openssl.c @@ -2172,28 +2172,28 @@ cleanup: */ static krb5_error_code pkinit_alg_values(krb5_context context, - krb5_algorithm_identifier *alg_id, + const krb5_octet_data *alg_id, size_t *hash_bytes, const EVP_MD *(**func)(void)) { *hash_bytes = 0; *func = NULL; - if ((alg_id->algorithm.length == krb5_pkinit_sha1_oid_len) && - (0 == memcmp(alg_id->algorithm.data, &krb5_pkinit_sha1_oid, + if ((alg_id->length == krb5_pkinit_sha1_oid_len) && + (0 == memcmp(alg_id->data, &krb5_pkinit_sha1_oid, krb5_pkinit_sha1_oid_len))) { *hash_bytes = 20; *func = &EVP_sha1; return 0; } - else if ((alg_id->algorithm.length == krb5_pkinit_sha256_oid_len) && - (0 == memcmp(alg_id->algorithm.data, krb5_pkinit_sha256_oid, + else if ((alg_id->length == krb5_pkinit_sha256_oid_len) && + (0 == memcmp(alg_id->data, krb5_pkinit_sha256_oid, krb5_pkinit_sha256_oid_len))) { *hash_bytes = 32; *func = &EVP_sha256; return 0; } - else if ((alg_id->algorithm.length == krb5_pkinit_sha512_oid_len) && - (0 == memcmp(alg_id->algorithm.data, krb5_pkinit_sha512_oid, + else if ((alg_id->length == krb5_pkinit_sha512_oid_len) && + (0 == memcmp(alg_id->data, krb5_pkinit_sha512_oid, krb5_pkinit_sha512_oid_len))) { *hash_bytes = 32; *func = &EVP_sha512; @@ -2227,7 +2227,7 @@ pkinit_alg_values(krb5_context context, krb5_error_code pkinit_alg_agility_kdf(krb5_context context, krb5_octet_data *secret, - krb5_algorithm_identifier *alg_id, + krb5_octet_data *alg_oid, krb5_principal party_u_info, krb5_principal party_v_info, krb5_enctype enctype, @@ -2248,6 +2248,7 @@ pkinit_alg_agility_kdf(krb5_context context, krb5_pkinit_supp_pub_info supp_pub_info_fields; krb5_data *other_info = NULL; krb5_data *supp_pub_info = NULL; + krb5_algorithm_identifier alg_id; const EVP_MD *(*EVP_func)(void); /* initialize random_data here to make clean-up safe */ @@ -2266,7 +2267,7 @@ pkinit_alg_agility_kdf(krb5_context context, } memset (key_block->contents, 0, key_block->length); - if (0 != (retval = pkinit_alg_values(context, alg_id, &hash_len, &EVP_func))) + if (0 != (retval = pkinit_alg_values(context, alg_oid, &hash_len, &EVP_func))) goto cleanup; /* 1. reps = keydatalen (K) / hash length (H) */ @@ -2297,7 +2298,10 @@ pkinit_alg_agility_kdf(krb5_context context, goto cleanup; /* Now encode the ASN.1 octet string for "OtherInfo" */ - other_info_fields.algorithm_identifier = *alg_id; + memset(&alg_id, 0, sizeof alg_id); + alg_id.algorithm = *alg_oid; /*alias*/ + + other_info_fields.algorithm_identifier = alg_id; other_info_fields.party_u_info = party_u_info; other_info_fields.party_v_info = party_v_info; other_info_fields.supp_pub_info = *supp_pub_info; diff --git a/src/plugins/preauth/pkinit/pkinit_kdf_test.c b/src/plugins/preauth/pkinit/pkinit_kdf_test.c index ed89873367..1d659bfeac 100644 --- a/src/plugins/preauth/pkinit/pkinit_kdf_test.c +++ b/src/plugins/preauth/pkinit/pkinit_kdf_test.c @@ -149,7 +149,7 @@ main (int argc, } /* call krb5_pkinit_alg_agility_kdf() with test vector values*/ - if (0 != (retval = pkinit_alg_agility_kdf(context, &secret, &alg_id, + if (0 != (retval = pkinit_alg_agility_kdf(context, &secret, &alg_id.algorithm, u_principal, v_principal, enctype, &as_req, &pk_as_rep, &test_ticket, &key_block))) { |