Skip to content

Commit

Permalink
rpcgss: simplify make_checksum
Browse files Browse the repository at this point in the history
We're doing some pointless translation between krb5 constants and kernel
crypto string names.

Also clean up some related spkm3 code as necessary.

Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
  • Loading branch information
J. Bruce Fields authored and Trond Myklebust committed Dec 6, 2006
1 parent 2818bf8 commit ca54f89
Show file tree
Hide file tree
Showing 5 changed files with 6 additions and 17 deletions.
2 changes: 1 addition & 1 deletion include/linux/sunrpc/gss_krb5.h
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ enum seal_alg {
#define ENCTYPE_UNKNOWN 0x01ff

s32
make_checksum(s32 cksumtype, char *header, int hdrlen, struct xdr_buf *body,
make_checksum(char *, char *header, int hdrlen, struct xdr_buf *body,
int body_offset, struct xdr_netobj *cksum);

u32 gss_get_mic_kerberos(struct gss_ctx *, struct xdr_buf *,
Expand Down
12 changes: 1 addition & 11 deletions net/sunrpc/auth_gss/gss_krb5_crypto.c
Original file line number Diff line number Diff line change
Expand Up @@ -130,23 +130,13 @@ checksummer(struct scatterlist *sg, void *data)

/* checksum the plaintext data and hdrlen bytes of the token header */
s32
make_checksum(s32 cksumtype, char *header, int hdrlen, struct xdr_buf *body,
make_checksum(char *cksumname, char *header, int hdrlen, struct xdr_buf *body,
int body_offset, struct xdr_netobj *cksum)
{
char *cksumname;
struct hash_desc desc; /* XXX add to ctx? */
struct scatterlist sg[1];
int err;

switch (cksumtype) {
case CKSUMTYPE_RSA_MD5:
cksumname = "md5";
break;
default:
dprintk("RPC: krb5_make_checksum:"
" unsupported checksum %d", cksumtype);
return GSS_S_FAILURE;
}
desc.tfm = crypto_alloc_hash(cksumname, 0, CRYPTO_ALG_ASYNC);
if (IS_ERR(desc.tfm))
return GSS_S_FAILURE;
Expand Down
2 changes: 1 addition & 1 deletion net/sunrpc/auth_gss/gss_krb5_seal.c
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ gss_get_mic_kerberos(struct gss_ctx *gss_ctx, struct xdr_buf *text,
*(__be16 *)(krb5_hdr + 2) = htons(SGN_ALG_DES_MAC_MD5);
memset(krb5_hdr + 4, 0xff, 4);

if (make_checksum(CKSUMTYPE_RSA_MD5, krb5_hdr, 8, text, 0, &md5cksum))
if (make_checksum("md5", krb5_hdr, 8, text, 0, &md5cksum))
goto out_err;

if (krb5_encrypt(ctx->seq, NULL, md5cksum.data,
Expand Down
3 changes: 1 addition & 2 deletions net/sunrpc/auth_gss/gss_krb5_unseal.c
Original file line number Diff line number Diff line change
Expand Up @@ -114,8 +114,7 @@ gss_verify_mic_kerberos(struct gss_ctx *gss_ctx,
if (signalg != SGN_ALG_DES_MAC_MD5)
goto out;

ret = make_checksum(CKSUMTYPE_RSA_MD5, ptr - 2, 8,
message_buffer, 0, &md5cksum);
ret = make_checksum("md5", ptr - 2, 8, message_buffer, 0, &md5cksum);
if (ret)
goto out;

Expand Down
4 changes: 2 additions & 2 deletions net/sunrpc/auth_gss/gss_krb5_wrap.c
Original file line number Diff line number Diff line change
Expand Up @@ -176,7 +176,7 @@ gss_wrap_kerberos(struct gss_ctx *ctx, int offset,
/* XXXJBF: UGH!: */
tmp_pages = buf->pages;
buf->pages = pages;
if (make_checksum(CKSUMTYPE_RSA_MD5, krb5_hdr, 8, buf,
if (make_checksum("md5", krb5_hdr, 8, buf,
offset + headlen - blocksize, &md5cksum))
goto out_err;
buf->pages = tmp_pages;
Expand Down Expand Up @@ -272,7 +272,7 @@ gss_unwrap_kerberos(struct gss_ctx *ctx, int offset, struct xdr_buf *buf)
ptr + 22 - (unsigned char *)buf->head[0].iov_base))
goto out;

ret = make_checksum(CKSUMTYPE_RSA_MD5, ptr - 2, 8, buf,
ret = make_checksum("md5", ptr - 2, 8, buf,
ptr + 22 - (unsigned char *)buf->head[0].iov_base, &md5cksum);
if (ret)
goto out;
Expand Down

0 comments on commit ca54f89

Please sign in to comment.