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;
}
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,
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;
}
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);
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;
cksumname = "md5";
break;
default:
- dprintk("RPC: krb5_make_checksum:"
+ dprintk("RPC: krb5_make_checksum:"
" unsupported checksum %d", cksumtype);
goto out;
}
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);
crypto_free_tfm(tfm);
return code;
}
+
+EXPORT_SYMBOL(make_checksum);