@@ -422,6 +422,124 @@ static const int sizeof_dh_2048_exp = sizeof(dh_2048_exp);
422422#endif
423423
424424#ifndef NO_AES
425+ /* NIST SP 800-38D, Test Case 4 */
426+ static const unsigned char aes_gcm_key [16 ] = {
427+ 0xFE , 0xFF , 0xE9 , 0x92 , 0x86 , 0x65 , 0x73 , 0x1C ,
428+ 0x6D , 0x6A , 0x8F , 0x94 , 0x67 , 0x30 , 0x83 , 0x08
429+ };
430+ static const unsigned char aes_gcm_iv [12 ] = {
431+ 0xCA , 0xFE , 0xBA , 0xBE , 0xFA , 0xCE , 0xDB , 0xAD ,
432+ 0xDE , 0xCA , 0xF8 , 0x88
433+ };
434+ static const unsigned char aes_gcm_plain [32 ] = {
435+ 0xD9 , 0x31 , 0x32 , 0x25 , 0xF8 , 0x84 , 0x06 , 0xE5 ,
436+ 0xA5 , 0x59 , 0x09 , 0xC5 , 0xAF , 0xF5 , 0x26 , 0x9A ,
437+ 0x86 , 0xA7 , 0xA9 , 0x53 , 0x15 , 0x34 , 0xF7 , 0xDA ,
438+ 0x2E , 0x4C , 0x30 , 0x3D , 0x8A , 0x31 , 0x8A , 0x72
439+ };
440+ static const unsigned char aes_gcm_aad [] = {
441+ 0xFE , 0xED , 0xFA , 0xCE , 0xDE , 0xAD , 0xBE , 0xEF ,
442+ 0xFE , 0xED , 0xFA , 0xCE , 0xDE , 0xAD , 0xBE , 0xEF ,
443+ 0xAB , 0xAD , 0xDA , 0xD2
444+ };
445+ static const unsigned char aes_gcm_cipher [32 ] = {
446+ 0x42 , 0x83 , 0x1E , 0xC2 , 0x21 , 0x77 , 0x74 , 0x24 ,
447+ 0x4B , 0x72 , 0x21 , 0xB7 , 0x84 , 0xD0 , 0xD4 , 0x9C ,
448+ 0xE3 , 0xAA , 0x21 , 0x2F , 0x2C , 0x02 , 0xA4 , 0xE0 ,
449+ 0x35 , 0xC1 , 0x7E , 0x23 , 0x29 , 0xAC , 0xA1 , 0x2E
450+ };
451+ static const unsigned char aes_gcm_tag [16 ] = {
452+ 0xE1 , 0x3E , 0x14 , 0x34 , 0x28 , 0x5A , 0x94 , 0x26 ,
453+ 0xAD , 0xDF , 0xBF , 0xC2 , 0x70 , 0xD2 , 0x7F , 0x16
454+ };
455+
456+ static const unsigned char aes_cbc_key [16 ] = {
457+ 0x2B , 0x7E , 0x15 , 0x16 , 0x28 , 0xAE , 0xD2 , 0xA6 ,
458+ 0xAB , 0xF7 , 0x15 , 0x88 , 0x09 , 0xCF , 0x4F , 0x3C
459+ };
460+ static const unsigned char aes_cbc_iv [16 ] = {
461+ 0x00 , 0x01 , 0x02 , 0x03 , 0x04 , 0x05 , 0x06 , 0x07 ,
462+ 0x08 , 0x09 , 0x0A , 0x0B , 0x0C , 0x0D , 0x0E , 0x0F
463+ };
464+ static const unsigned char aes_cbc_plain [16 ] = {
465+ 0x6B , 0xC1 , 0xBE , 0xE2 , 0x2E , 0x40 , 0x9F , 0x96 ,
466+ 0xE9 , 0x3D , 0x7E , 0x11 , 0x73 , 0x93 , 0x17 , 0x2A
467+ };
468+ static const unsigned char aes_cbc_cipher [16 ] = {
469+ 0x76 , 0x49 , 0xAB , 0xAC , 0x81 , 0x19 , 0xB2 , 0x46 ,
470+ 0xCE , 0xE9 , 0x8E , 0x9B , 0x12 , 0xE9 , 0x19 , 0x7D
471+ };
472+
473+ static const unsigned char aes_cbc256_key [32 ] = {
474+ 0x60 , 0x3D , 0xEB , 0x10 , 0x15 , 0xCA , 0x71 , 0xBE ,
475+ 0x2B , 0x73 , 0xAE , 0xF0 , 0x85 , 0x7D , 0x77 , 0x81 ,
476+ 0x1F , 0x35 , 0x2C , 0x07 , 0x3B , 0x61 , 0x08 , 0xD7 ,
477+ 0x2D , 0x98 , 0x10 , 0xA3 , 0x09 , 0x14 , 0xDF , 0xF4
478+ };
479+ static const unsigned char aes_cbc256_iv [16 ] = {
480+ 0x00 , 0x01 , 0x02 , 0x03 , 0x04 , 0x05 , 0x06 , 0x07 ,
481+ 0x08 , 0x09 , 0x0A , 0x0B , 0x0C , 0x0D , 0x0E , 0x0F
482+ };
483+ static const unsigned char aes_cbc256_cipher [16 ] = {
484+ 0xF5 , 0x8C , 0x4C , 0x04 , 0xD6 , 0xE5 , 0xF1 , 0xBA ,
485+ 0x77 , 0x9E , 0xAB , 0xFB , 0x5F , 0x7B , 0xFB , 0xD6
486+ };
487+
488+ static const unsigned char aes_ctr_key [16 ] = {
489+ 0x2B , 0x7E , 0x15 , 0x16 , 0x28 , 0xAE , 0xD2 , 0xA6 ,
490+ 0xAB , 0xF7 , 0x15 , 0x88 , 0x09 , 0xCF , 0x4F , 0x3C
491+ };
492+ static const unsigned char aes_ctr_iv [16 ] = {
493+ 0xF0 , 0xF1 , 0xF2 , 0xF3 , 0xF4 , 0xF5 , 0xF6 , 0xF7 ,
494+ 0xF8 , 0xF9 , 0xFA , 0xFB , 0xFC , 0xFD , 0xFE , 0xFF
495+ };
496+ static const unsigned char aes_ctr_plain [16 ] = {
497+ 0x6B , 0xC1 , 0xBE , 0xE2 , 0x2E , 0x40 , 0x9F , 0x96 ,
498+ 0xE9 , 0x3D , 0x7E , 0x11 , 0x73 , 0x93 , 0x17 , 0x2A
499+ };
500+ static const unsigned char aes_ctr_cipher [16 ] = {
501+ 0x87 , 0x4D , 0x61 , 0x91 , 0xB6 , 0x20 , 0xE3 , 0x26 ,
502+ 0x1B , 0xEF , 0x68 , 0x64 , 0x99 , 0x0D , 0xB6 , 0xCE
503+ };
504+
505+ static const unsigned char aes_ctr256_key [32 ] = {
506+ 0x60 , 0x3D , 0xEB , 0x10 , 0x15 , 0xCA , 0x71 , 0xBE ,
507+ 0x2B , 0x73 , 0xAE , 0xF0 , 0x85 , 0x7D , 0x77 , 0x81 ,
508+ 0x1F , 0x35 , 0x2C , 0x07 , 0x3B , 0x61 , 0x08 , 0xD7 ,
509+ 0x2D , 0x98 , 0x10 , 0xA3 , 0x09 , 0x14 , 0xDF , 0xF4
510+ };
511+ static const unsigned char aes_ctr256_iv [16 ] = {
512+ 0xF0 , 0xF1 , 0xF2 , 0xF3 , 0xF4 , 0xF5 , 0xF6 , 0xF7 ,
513+ 0xF8 , 0xF9 , 0xFA , 0xFB , 0xFC , 0xFD , 0xFE , 0xFF
514+ };
515+ static const unsigned char aes_ctr256_cipher [16 ] = {
516+ 0x60 , 0x1E , 0xC3 , 0x13 , 0x77 , 0x57 , 0x89 , 0xA5 ,
517+ 0xB7 , 0xA7 , 0xF5 , 0x04 , 0xBB , 0xF3 , 0xD2 , 0x28
518+ };
519+
520+ static const unsigned char aes_xts_key [32 ] = {
521+ 0x39 , 0x25 , 0x79 , 0x05 , 0xDF , 0xCC , 0x77 , 0x76 ,
522+ 0x6C , 0x87 , 0x0A , 0x80 , 0x6A , 0x60 , 0xE3 , 0xC0 ,
523+ 0x93 , 0xD1 , 0x2A , 0xCF , 0xCB , 0x51 , 0x42 , 0xFA ,
524+ 0x09 , 0x69 , 0x89 , 0x62 , 0x5B , 0x60 , 0xDB , 0x16
525+ };
526+ static const unsigned char aes_xts_tweak [16 ] = {
527+ 0x5C , 0xF7 , 0x9D , 0xB6 , 0xC5 , 0xCD , 0x99 , 0x1A ,
528+ 0x1C , 0x78 , 0x81 , 0x42 , 0x24 , 0x95 , 0x1E , 0x84
529+ };
530+ static const unsigned char aes_xts_plain [32 ] = {
531+ 0xBD , 0xC5 , 0x46 , 0x8F , 0xBC , 0x8D , 0x50 , 0xA1 ,
532+ 0x0D , 0x1C , 0x85 , 0x7F , 0x79 , 0x1C , 0x5C , 0xBA ,
533+ 0xB3 , 0x81 , 0x0D , 0x0D , 0x73 , 0xCF , 0x8F , 0x20 ,
534+ 0x46 , 0xB1 , 0xD1 , 0x9E , 0x7D , 0x5D , 0x8A , 0x56
535+ };
536+ static const unsigned char aes_xts_cipher [32 ] = {
537+ 0xD6 , 0xBE , 0x04 , 0x6D , 0x41 , 0xF2 , 0x3B , 0x5E ,
538+ 0xD7 , 0x0B , 0x6B , 0x3D , 0x5C , 0x8E , 0x66 , 0x23 ,
539+ 0x2B , 0xE6 , 0xB8 , 0x07 , 0xD4 , 0xDC , 0xC6 , 0x0E ,
540+ 0xFF , 0x8D , 0xBC , 0x1D , 0x9F , 0x7F , 0xC8 , 0x22
541+ };
542+
425543static unsigned char aes_128_key [] = {
426544 0xf7 , 0x88 , 0x9e , 0x9a , 0x5f , 0xe2 , 0xaa , 0xca ,
427545 0xba , 0x14 , 0x8a , 0xd3 , 0xd1 , 0x2d , 0x39 , 0xe0 ,
@@ -472,6 +590,61 @@ static unsigned char aes_128_cts_exp[] = {
472590#endif
473591#endif
474592
593+ static const unsigned char hmac_key [20 ] = {
594+ 0x0B , 0x0B , 0x0B , 0x0B , 0x0B , 0x0B , 0x0B , 0x0B ,
595+ 0x0B , 0x0B , 0x0B , 0x0B , 0x0B , 0x0B , 0x0B , 0x0B ,
596+ 0x0B , 0x0B , 0x0B , 0x0B
597+ };
598+ static const unsigned char hmac_msg [] = {
599+ 'H' , 'i' , ' ' , 'T' , 'h' , 'e' , 'r' , 'e'
600+ };
601+ static const unsigned char hmac_digest [32 ] = {
602+ 0xB0 , 0x34 , 0x4C , 0x61 , 0xD8 , 0xDB , 0x38 , 0x53 ,
603+ 0x5C , 0xA8 , 0xAF , 0xCE , 0xAF , 0x0B , 0xF1 , 0x2B ,
604+ 0x88 , 0x1D , 0xC2 , 0x00 , 0xC9 , 0x83 , 0x3D , 0xA7 ,
605+ 0x26 , 0xE9 , 0x37 , 0x6C , 0x2E , 0x32 , 0xCF , 0xF7
606+ };
607+
608+ static const unsigned char sha_test_msg [] = { 'a' , 'b' , 'c' };
609+ static const unsigned char sha224_expected [] = {
610+ 0x23 , 0x09 , 0x7D , 0x22 , 0x34 , 0x05 , 0xD8 , 0x22 ,
611+ 0x86 , 0x42 , 0xA4 , 0x77 , 0xBD , 0xA2 , 0x55 , 0xB3 ,
612+ 0x2A , 0xAD , 0xBC , 0xE4 , 0xBD , 0xA0 , 0xB3 , 0xF7 ,
613+ 0xE3 , 0x6C , 0x9D , 0xA7
614+ };
615+ static const unsigned char sha256_expected [] = {
616+ 0xBA , 0x78 , 0x16 , 0xBF , 0x8F , 0x01 , 0xCF , 0xEA ,
617+ 0x41 , 0x41 , 0x40 , 0xDE , 0x5D , 0xAE , 0x22 , 0x23 ,
618+ 0xB0 , 0x03 , 0x61 , 0xA3 , 0x96 , 0x17 , 0x7A , 0x9C ,
619+ 0xB4 , 0x10 , 0xFF , 0x61 , 0xF2 , 0x00 , 0x15 , 0xAD
620+ };
621+ static const unsigned char sha384_expected [] = {
622+ 0xCB , 0x00 , 0x75 , 0x3F , 0x45 , 0xA3 , 0x5E , 0x8B ,
623+ 0xB5 , 0xA0 , 0x3D , 0x69 , 0x9A , 0xC6 , 0x50 , 0x07 ,
624+ 0x27 , 0x2C , 0x32 , 0xAB , 0x0E , 0xDE , 0xD1 , 0x63 ,
625+ 0x1A , 0x8B , 0x60 , 0x5A , 0x43 , 0xFF , 0x5B , 0xED ,
626+ 0x80 , 0x86 , 0x07 , 0x2B , 0xA1 , 0xE7 , 0xCC , 0x23 ,
627+ 0x58 , 0xBA , 0xEC , 0xA1 , 0x34 , 0xC8 , 0x25 , 0xA7
628+ };
629+ static const unsigned char sha512_expected [] = {
630+ 0xDD , 0xAF , 0x35 , 0xA1 , 0x93 , 0x61 , 0x7A , 0xBA ,
631+ 0xCC , 0x41 , 0x73 , 0x49 , 0xAE , 0x20 , 0x41 , 0x31 ,
632+ 0x12 , 0xE6 , 0xFA , 0x4E , 0x89 , 0xA9 , 0x7E , 0xA2 ,
633+ 0x0A , 0x9E , 0xEE , 0xE6 , 0x4B , 0x55 , 0xD3 , 0x9A ,
634+ 0x21 , 0x92 , 0x99 , 0x2A , 0x27 , 0x4F , 0xC1 , 0xA8 ,
635+ 0x36 , 0xBA , 0x3C , 0x23 , 0xA3 , 0xFE , 0xEB , 0xBD ,
636+ 0x45 , 0x4D , 0x44 , 0x23 , 0x64 , 0x3C , 0xE8 , 0x0E ,
637+ 0x2A , 0x9A , 0xC9 , 0x4F , 0xA5 , 0x4C , 0xA4 , 0x9F
638+ };
639+ #ifdef WOLFSSL_SHA3
640+ static const unsigned char sha3_256_expected [] = {
641+ 0x3A , 0x98 , 0x5D , 0xA7 , 0x4F , 0xE2 , 0x25 , 0xB2 ,
642+ 0x04 , 0x5C , 0x17 , 0x2D , 0x6B , 0xD3 , 0x90 , 0xBD ,
643+ 0x85 , 0x5F , 0x08 , 0x6E , 0x3E , 0x9D , 0x52 , 0x5B ,
644+ 0x46 , 0xBF , 0xE2 , 0x45 , 0x11 , 0x43 , 0x15 , 0x32
645+ };
646+ #endif /* WOLFSSL_SHA3 */
647+
475648
476649#ifndef WOLFPKCS11_NO_ENV
477650#include <stdio.h>
0 commit comments