patch-2_6_7-vs1_9_1_12
[linux-2.6.git] / net / sunrpc / auth_gss / gss_krb5_crypto.c
index 9c53c74..b4db918 100644 (file)
@@ -59,14 +59,14 @@ krb5_encrypt(
         struct scatterlist sg[1];
        u8 local_iv[16] = {0};
 
-       dprintk("RPC: krb5_encrypt: input data:\n");
+       dprintk("RPC:      krb5_encrypt: input data:\n");
        print_hexl((u32 *)in, length, 0);
 
        if (length % crypto_tfm_alg_blocksize(tfm) != 0)
                goto out;
 
        if (crypto_tfm_alg_ivsize(tfm) > 16) {
-               dprintk("RPC: gss_k5encrypt: tfm iv size to large %d\n",
+               dprintk("RPC:      gss_k5encrypt: tfm iv size to large %d\n",
                         crypto_tfm_alg_ivsize(tfm));
                goto out;
        }
@@ -81,13 +81,15 @@ krb5_encrypt(
 
        ret = crypto_cipher_encrypt_iv(tfm, sg, sg, length, local_iv);
 
-       dprintk("RPC: krb5_encrypt: output data:\n");
+       dprintk("RPC:      krb5_encrypt: output data:\n");
        print_hexl((u32 *)out, length, 0);
 out:
-       dprintk("krb5_encrypt returns %d\n",ret);
+       dprintk("RPC:      krb5_encrypt returns %d\n",ret);
        return(ret);
 }
 
+EXPORT_SYMBOL(krb5_encrypt);
+
 u32
 krb5_decrypt(
      struct crypto_tfm *tfm,
@@ -100,14 +102,14 @@ krb5_decrypt(
        struct scatterlist sg[1];
        u8 local_iv[16] = {0};
 
-       dprintk("RPC: krb5_decrypt: input data:\n");
+       dprintk("RPC:      krb5_decrypt: input data:\n");
        print_hexl((u32 *)in, length, 0);
 
        if (length % crypto_tfm_alg_blocksize(tfm) != 0)
                goto out;
 
        if (crypto_tfm_alg_ivsize(tfm) > 16) {
-               dprintk("RPC: gss_k5decrypt: tfm iv size to large %d\n",
+               dprintk("RPC:      gss_k5decrypt: tfm iv size to large %d\n",
                        crypto_tfm_alg_ivsize(tfm));
                goto out;
        }
@@ -121,13 +123,15 @@ krb5_decrypt(
 
        ret = crypto_cipher_decrypt_iv(tfm, sg, sg, length, local_iv);
 
-       dprintk("RPC: krb5_decrypt: output_data:\n");
+       dprintk("RPC:      krb5_decrypt: output_data:\n");
        print_hexl((u32 *)out, length, 0);
 out:
-       dprintk("gss_k5decrypt returns %d\n",ret);
+       dprintk("RPC:      gss_k5decrypt returns %d\n",ret);
        return(ret);
 }
 
+EXPORT_SYMBOL(krb5_decrypt);
+
 void
 buf_to_sg(struct scatterlist *sg, char *ptr, int len) {
        sg->page = virt_to_page(ptr);
@@ -135,10 +139,9 @@ buf_to_sg(struct scatterlist *sg, char *ptr, int len) {
        sg->length = len;
 }
 
-/* checksum the plaintext data and the first 8 bytes of the krb5 token header,
- * as specified by the rfc: */
+/* checksum the plaintext data and hdrlen bytes of the token header */
 s32
-krb5_make_checksum(s32 cksumtype, char *header, struct xdr_buf *body,
+make_checksum(s32 cksumtype, char *header, int hdrlen, struct xdr_buf *body,
                   struct xdr_netobj *cksum)
 {
        char                            *cksumname;
@@ -153,7 +156,7 @@ krb5_make_checksum(s32 cksumtype, char *header, struct xdr_buf *body,
                        cksumname = "md5";
                        break;
                default:
-                       dprintk("RPC: krb5_make_checksum:"
+                       dprintk("RPC:      krb5_make_checksum:"
                                " unsupported checksum %d", cksumtype);
                        goto out;
        }
@@ -164,7 +167,7 @@ krb5_make_checksum(s32 cksumtype, char *header, struct xdr_buf *body,
                goto out;
 
        crypto_digest_init(tfm);
-       buf_to_sg(sg, header, 8);
+       buf_to_sg(sg, header, hdrlen);
        crypto_digest_update(tfm, sg, 1);
        if (body->head[0].iov_len) {
                buf_to_sg(sg, body->head[0].iov_base, body->head[0].iov_len);
@@ -202,3 +205,5 @@ out:
                crypto_free_tfm(tfm);
        return code;
 }
+
+EXPORT_SYMBOL(make_checksum);