From 57ddd446300cc329d12b410868220394a0c228b5 Mon Sep 17 00:00:00 2001 From: Nikos Mavrogiannopoulos Date: Tue, 15 Jun 2010 16:47:51 +0200 Subject: AES self tests now pass. --- examples/new.c | 28 +++++++++++++++++++++++----- 1 file changed, 23 insertions(+), 5 deletions(-) (limited to 'examples') diff --git a/examples/new.c b/examples/new.c index 1a0edb4..fe8f4a6 100644 --- a/examples/new.c +++ b/examples/new.c @@ -564,7 +564,7 @@ struct aes_vectors_st { const uint8_t* ciphertext; } aes_vectors[] = { { - .key = "\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", + .key = "\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", .plaintext = "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", .ciphertext = "\x4b\xc3\xf8\x83\x45\x0c\x11\x3c\x64\xca\x42\xe1\x11\x2a\x9e\x87", }, @@ -601,7 +601,7 @@ test_ncr_aes(int cfd) struct ncr_data_st kdata; ncr_data_t dd, dd2; uint8_t data[KEY_DATA_SIZE]; - int i; + int i, j; struct ncr_session_once_op_st nop; dinit.max_object_size = KEY_DATA_SIZE; @@ -675,12 +675,19 @@ test_ncr_aes(int cfd) } /* encrypt */ + memset(&nop, 0, sizeof(nop)); nop.init.algorithm = NCR_ALG_AES_ECB; nop.init.params.key = key; nop.init.op = NCR_OP_ENCRYPT; nop.op.data.cipher.plaintext = dd; nop.op.data.cipher.ciphertext = dd2; + if (ioctl(cfd, NCRIO_SESSION_ONCE, &nop)) { + fprintf(stderr, "Error: %s:%d\n", __func__, __LINE__); + perror("ioctl(NCRIO_SESSION_ONCE)"); + return 1; + } + /* verify */ kdata.desc = dd2; kdata.data = data; @@ -693,8 +700,19 @@ test_ncr_aes(int cfd) return 1; } - if (memcmp(kdata.data, aes_vectors[i].ciphertext, 16) != 0) { + if (kdata.data_size != 16 || memcmp(kdata.data, aes_vectors[i].ciphertext, 16) != 0) { fprintf(stderr, "AES test vector %d failed!\n", i); + + fprintf(stderr, "Cipher[%d]: ", kdata.data_size); + for(j=0;j