buf_to_sg(sg, header, hdrlen); 
sg_set_buf(sg, header, hdrlen); 
make_checksum(s32 cksumtype, char *header, int hdrlen, struct xdr_buf *body,		   int body_offset, struct xdr_netobj *cksum){	char                            *cksumname;	struct crypto_tfm               *tfm = NULL; /* XXX add to ctx? */	struct scatterlist              sg[1];	u32                             code = GSS_S_FAILURE;	switch (cksumtype) {		case CKSUMTYPE_RSA_MD5:			cksumname = "md5";			break;		default:			dprintk("RPC:      krb5_make_checksum:"				" unsupported checksum %d", cksumtype);			goto out;	}	if (!(tfm = crypto_alloc_tfm(cksumname, CRYPTO_TFM_REQ_MAY_SLEEP)))		goto out;	cksum->len = crypto_tfm_alg_digestsize(tfm);	if ((cksum->data = kmalloc(cksum->len, GFP_KERNEL)) == NULL)		goto out;	crypto_digest_init(tfm);	buf_to_sg(sg, header, hdrlen);	crypto_digest_update(tfm, sg, 1);	process_xdr_buf(body, body_offset, body->len - body_offset,			checksummer, tfm);	crypto_digest_final(tfm, cksum->data);	code = 0;out:	crypto_free_tfm(tfm);	return code;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/378f058cc49bcda7fa63d3cd86d2f9a0a5188b1c/gss_krb5_crypto.c/clean/net/sunrpc/auth_gss/gss_krb5_crypto.c