From 6b2093b9efe64850ccbbd9c6b43ce3144c73d256 Mon Sep 17 00:00:00 2001 From: Nikos Mavrogiannopoulos Date: Tue, 15 Jun 2010 17:24:50 +0200 Subject: Key wrapping fixed. --- examples/new.c | 40 ++++++++++++++++++++++------------------ 1 file changed, 22 insertions(+), 18 deletions(-) (limited to 'examples') diff --git a/examples/new.c b/examples/new.c index fe8f4a6..65592c4 100644 --- a/examples/new.c +++ b/examples/new.c @@ -28,6 +28,7 @@ int i; } #define KEY_DATA_SIZE 16 +#define WRAPPED_KEY_DATA_SIZE 32 static int test_ncr_key(int cfd) { @@ -389,7 +390,7 @@ test_ncr_wrap_key(int cfd) struct ncr_key_data_st keydata; struct ncr_data_st kdata; struct ncr_key_wrap_st kwrap; - uint8_t data[KEY_DATA_SIZE]; + uint8_t data[WRAPPED_KEY_DATA_SIZE]; fprintf(stdout, "Tests on Keys:\n"); @@ -400,7 +401,7 @@ test_ncr_wrap_key(int cfd) fprintf(stdout, "\tKey Wrap test...\n"); - dinit.max_object_size = KEY_DATA_SIZE; + dinit.max_object_size = WRAPPED_KEY_DATA_SIZE; dinit.flags = NCR_DATA_FLAG_EXPORTABLE; dinit.initial_data = "\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0A\x0B\x0C\x0D\x0E\x0F"; dinit.initial_data_size = 16; @@ -422,7 +423,7 @@ test_ncr_wrap_key(int cfd) keydata.key_id_size = 2; keydata.type = NCR_KEY_TYPE_SECRET; keydata.algorithm = NCR_ALG_AES_CBC; - keydata.flags = NCR_KEY_FLAG_EXPORTABLE; + keydata.flags = NCR_KEY_FLAG_EXPORTABLE|NCR_KEY_FLAG_WRAPPABLE; keydata.key = key; keydata.data = dinit.desc; @@ -459,7 +460,7 @@ test_ncr_wrap_key(int cfd) keydata.algorithm = NCR_ALG_AES_CBC; keydata.flags = NCR_KEY_FLAG_EXPORTABLE|NCR_KEY_FLAG_WRAPPABLE; - keydata.key = key; + keydata.key = key2; keydata.data = kdata.desc; if (ioctl(cfd, NCRIO_KEY_IMPORT, &keydata)) { @@ -494,13 +495,15 @@ test_ncr_wrap_key(int cfd) if (kdata.data_size != 24 || memcmp(kdata.data, "\x1F\xA6\x8B\x0A\x81\x12\xB4\x47\xAE\xF3\x4B\xD8\xFB\x5A\x7B\x82\x9D\x3E\x86\x23\x71\xD2\xCF\xE5", 24) != 0) { fprintf(stderr, "Wrapped data do not match.\n"); + + fprintf(stderr, "Data[%d]: ",(int) kdata.data_size); + for(i=0;i