On Wed, 18 Aug 2010 17:10:19 -0500
Kent Yoder <[email protected]> wrote:

> Update digest_func.c to test SHA256 and SHA512 HMAC algorithms.  The patch 
> also adds the p11_get_mech() function to the new p11util.c file, which 
> converts a CK_ULONG mechanism into a string.
> 
> Signed-off-by: Kent Yoder <[email protected]>

A couple of comments to this one...


> +     { .key = { 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b,
> +                0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b },
> +       .key_len = 20,
> +       .data = { "Hi There" },
> +       .data_len = 8,
> +       .mech = { CKM_SHA_1_HMAC_GENERAL, &four, sizeof(CK_ULONG) },
> +       .hash_len = 20,
> +       .result = { 0xb6, 0x17, 0x31, 0x86, 0x55, 0x05, 0x72, 0x64, 0xe2, 
> 0x8b,
> +                   0xc0, 0xb6, 0xfb, 0x37, 0x8c, 0x8e, 0xf1, 0x46, 0xbe, 
> 0x00 }
> +     },

Since we're only asking for 4 bytes, we could make .hash_len=4 and use
use only the first 4 bytes, right? Just wanted to confirm, since this
may possibly simplify the logic further down, but either way is fine.

> +     },
> +     { .key = { 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
> +                0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
> +                0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
> +                0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
> +                0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
> +                0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
> +                0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
> +                0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
> +                0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
> +                0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
> +                0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
> +                0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
> +                0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 
> 0xaa },
> +       .key_len = 131,
> +       .data = { "This is a test using a larger than block-size key and a 
> larger than block-size"
> +                 " data. The key needs to be hashed before being used by the 
> HMAC algorithm." },
> +       .data_len = 148,
> +       .mech = { CKM_SHA256_HMAC, 0, 0 },
> +       .hash_len = 32,
> +       .result = { 0x9b, 0x09, 0xff, 0xa7, 0x1b, 0x94, 0x2f, 0xcb, 0x27, 
> 0x63, 0x5f, 0xbc, 0xd5,
> +                   0xb0, 0xe9, 0x44, 0xbf, 0xdc, 0x63, 0x64, 0x4f, 0x07, 
> 0x13, 0x93, 0x8a, 0x7f,
> +                   0x51, 0x53, 0x5c, 0x3a, 0x35, 0xe2 }
> +     },

Just checking, we are not doing any SHA_HMAC[256|512]_GENERAL tests?

> +     /* SHA-512 HMAC tests */
> +     { .key = { 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b,
> +                0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b },
> +       .key_len = 20,
> +       .data = { "Hi There" },
> +       .data_len = 8,
> +       .mech = { CKM_SHA512_HMAC, 0, 0 },
> +       .hash_len = 64,
> +       .result = { 0x87, 0xaa, 0x7c, 0xde, 0xa5, 0xef, 0x61, 0x9d, 0x4f, 
> 0xf0, 0xb4, 0x24, 0x1a,
> +                   0x1d, 0x6c, 0xb0, 0x23, 0x79, 0xf4, 0xe2, 0xce, 0x4e, 
> 0xc2, 0x78, 0x7a, 0xd0,
> +                   0xb3, 0x05, 0x45, 0xe1, 0x7c, 0xde, 0xda, 0xa8, 0x33, 
> 0xb7, 0xd6, 0xb8, 0xa7,
> +                   0x02, 0x03, 0x8b, 0x27, 0x4e, 0xae, 0xa3, 0xf4, 0xe4, 
> 0xbe, 0x9d, 0x91, 0x4e,
> +                   0xeb, 0x61, 0xf1, 0x70, 0x2e, 0x69, 0x6c, 0x20, 0x3a, 
> 0x12, 0x68, 0x54 }

> diff --git a/usr/lib/pkcs11/common/p11util.c b/usr/lib/pkcs11/common/p11util.c
> index 9f751dc..119f024 100755
> --- a/usr/lib/pkcs11/common/p11util.c
> +++ b/usr/lib/pkcs11/common/p11util.c
> @@ -463,3 +463,197 @@ is_attribute_defined( CK_ATTRIBUTE_TYPE type )
>  }
> 
> 
> +char *
> +p11_get_mech(CK_ULONG mechanism)
> +{

It may sound picky, but we're using p11_get_ckr() and p11_get_mech().
Do you think we should change the first to use p11_get_err() or the
second to use p11_get_ckm()?


Thanks,

 -Klaus

-- 
Klaus Heinrich Kiwi | [email protected] | http://blog.klauskiwi.com
Open Source Security blog :     http://www.ratliff.net/blog
IBM Linux Technology Center :   http://www.ibm.com/linux/ltc

------------------------------------------------------------------------------
This SF.net email is sponsored by 

Make an app they can't live without
Enter the BlackBerry Developer Challenge
http://p.sf.net/sfu/RIM-dev2dev 
_______________________________________________
Opencryptoki-tech mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opencryptoki-tech

Reply via email to