Pull bugzilla-5737 into release branch
[pandora-kernel.git] / crypto / hmac.c
index da0456b..46120de 100644 (file)
 #include <linux/mm.h>
 #include <linux/highmem.h>
 #include <linux/slab.h>
-#include <asm/scatterlist.h>
+#include <linux/scatterlist.h>
 #include "internal.h"
 
 static void hash_key(struct crypto_tfm *tfm, u8 *key, unsigned int keylen)
 {
        struct scatterlist tmp;
        
-       tmp.page = virt_to_page(key);
-       tmp.offset = offset_in_page(key);
-       tmp.length = keylen;
+       sg_set_buf(&tmp, key, keylen);
        crypto_digest_digest(tfm, &tmp, 1, key);
-               
 }
 
 int crypto_alloc_hmac_block(struct crypto_tfm *tfm)
@@ -69,9 +66,7 @@ void crypto_hmac_init(struct crypto_tfm *tfm, u8 *key, unsigned int *keylen)
        for (i = 0; i < crypto_tfm_alg_blocksize(tfm); i++)
                ipad[i] ^= 0x36;
 
-       tmp.page = virt_to_page(ipad);
-       tmp.offset = offset_in_page(ipad);
-       tmp.length = crypto_tfm_alg_blocksize(tfm);
+       sg_set_buf(&tmp, ipad, crypto_tfm_alg_blocksize(tfm));
        
        crypto_digest_init(tfm);
        crypto_digest_update(tfm, &tmp, 1);
@@ -103,16 +98,12 @@ void crypto_hmac_final(struct crypto_tfm *tfm, u8 *key,
        for (i = 0; i < crypto_tfm_alg_blocksize(tfm); i++)
                opad[i] ^= 0x5c;
 
-       tmp.page = virt_to_page(opad);
-       tmp.offset = offset_in_page(opad);
-       tmp.length = crypto_tfm_alg_blocksize(tfm);
+       sg_set_buf(&tmp, opad, crypto_tfm_alg_blocksize(tfm));
 
        crypto_digest_init(tfm);
        crypto_digest_update(tfm, &tmp, 1);
        
-       tmp.page = virt_to_page(out);
-       tmp.offset = offset_in_page(out);
-       tmp.length = crypto_tfm_alg_digestsize(tfm);
+       sg_set_buf(&tmp, out, crypto_tfm_alg_digestsize(tfm));
        
        crypto_digest_update(tfm, &tmp, 1);
        crypto_digest_final(tfm, out);