Better error reporting through com_err
[mech_eap.git] / util_crypt.c
index 481b7fe..e8ebd9c 100644 (file)
@@ -205,7 +205,7 @@ gssEapEncrypt(krb5_context context, int dce_style, size_t ec,
     krb5_crypto_iov *kiov;
 
     if (iv) {
-        code = krb5_c_block_size(context, KRB_KEYTYPE(key), &blocksize);
+        code = krb5_c_block_size(context, KRB_KEY_TYPE(key), &blocksize);
         if (code)
             return(code);
 
@@ -220,7 +220,7 @@ gssEapEncrypt(krb5_context context, int dce_style, size_t ec,
     }
 
     code = mapIov(context, dce_style, ec, rrc,
-                  KRB_KEYTYPE(key), iov, iov_count,
+                  KRB_KEY_TYPE(key), iov, iov_count,
                   &kiov, &kiov_count);
     if (code == 0) {
         code = krb5_c_encrypt_iov(context, key, usage, pivd, kiov, kiov_count);
@@ -245,7 +245,7 @@ gssEapDecrypt(krb5_context context, int dce_style, size_t ec,
     krb5_crypto_iov *kiov;
 
     if (iv) {
-        code = krb5_c_block_size(context, KRB_KEYTYPE(key), &blocksize);
+        code = krb5_c_block_size(context, KRB_KEY_TYPE(key), &blocksize);
         if (code)
             return(code);
 
@@ -260,7 +260,7 @@ gssEapDecrypt(krb5_context context, int dce_style, size_t ec,
     }
 
     code = mapIov(context, dce_style, ec, rrc,
-                  KRB_KEYTYPE(key), iov, iov_count,
+                  KRB_KEY_TYPE(key), iov, iov_count,
                   &kiov, &kiov_count);
     if (code == 0) {
         code = krb5_c_decrypt_iov(context, key, usage, pivd, kiov, kiov_count);
@@ -316,7 +316,7 @@ gssEapLocateIov(gss_iov_buffer_desc *iov, int iov_count, OM_uint32 type)
 }
 
 void
-gssEapIovMessageLnegth(gss_iov_buffer_desc *iov,
+gssEapIovMessageLength(gss_iov_buffer_desc *iov,
                        int iov_count,
                        size_t *data_length_p,
                        size_t *assoc_data_length_p)
@@ -394,86 +394,3 @@ gssEapAllocIov(gss_iov_buffer_t iov, size_t size)
 
     return 0;
 }
-
-static char
-keyDerivationConstant[] = "rfc4121-gss-eap";
-
-OM_uint32
-gssEapDeriveRFC3961Key(OM_uint32 *minor,
-                       gss_buffer_t msk,
-                       krb5_enctype enctype,
-                       krb5_keyblock *pKey)
-{
-    krb5_context context;
-    krb5_data data, prf;
-    krb5_keyblock kd;
-    krb5_error_code code;
-    size_t keybytes, keylength, prflength;
-
-    memset(pKey, 0, sizeof(*pKey));
-
-    GSSEAP_KRB_INIT(&context);
-
-    kd.contents = NULL;
-    kd.length = 0;
-    KRB_KEYTYPE(&kd) = enctype;
-
-    prf.data = NULL;
-    prf.length = 0;
-
-    code = krb5_c_keylengths(context, enctype, &keybytes, &keylength);
-    if (code != 0)
-        goto cleanup;
-
-    data.length = msk->length;
-    data.data = (char *)msk->value;
-
-    kd.contents = GSSEAP_MALLOC(keylength);
-    if (kd.contents == NULL) {
-        code = ENOMEM;
-        goto cleanup;
-    }
-    kd.length = keylength;
-
-    code = krb5_c_random_to_key(context, enctype, &data, &kd);
-    if (code != 0)
-        goto cleanup;
-
-    data.length = sizeof(keyDerivationConstant) - 1;
-    data.data = keyDerivationConstant;
-
-    code = krb5_c_prf_length(context, enctype, &prflength);
-    if (code != 0)
-        goto cleanup;
-
-    prf.length = prflength;
-    prf.data = GSSEAP_MALLOC(prflength);
-    if (data.data == NULL) {
-        code = ENOMEM;
-        goto cleanup;
-    }
-
-    code = krb5_c_prf(context, &kd, &data, &prf);
-    if (code != 0)
-        goto cleanup;
-
-    code = krb5_c_random_to_key(context, enctype, &prf, &kd);
-    if (code != 0)
-        goto cleanup;
-
-    *pKey = kd;
-    kd.contents = NULL;
-
-cleanup:
-    if (kd.contents != NULL) {
-        memset(kd.contents, 0, kd.length);
-        GSSEAP_FREE(kd.contents);
-    }
-    if (prf.data != NULL) {
-        memset(prf.data, 0, prf.length);
-        GSSEAP_FREE(prf.data);
-    }
-
-    *minor = code;
-    return (*minor == 0) ? GSS_S_COMPLETE : GSS_S_FAILURE;
-}