Whoops, forgot FIPS DES, also add EVPs for DES CFB1 and 8.
authorBen Laurie <ben@openssl.org>
Wed, 30 Jul 2003 18:30:18 +0000 (18:30 +0000)
committerBen Laurie <ben@openssl.org>
Wed, 30 Jul 2003 18:30:18 +0000 (18:30 +0000)
104 files changed:
Makefile.org
crypto/des/cfb_enc.c
crypto/des/des_enc.c
crypto/evp/e_aes.c
crypto/evp/e_des.c
crypto/evp/evp.h
crypto/evp/evp_locl.h
crypto/objects/obj_dat.h
crypto/objects/obj_mac.h
crypto/objects/obj_mac.num
crypto/objects/objects.txt
fips/Makefile.ssl
fips/aes/Makefile.ssl
fips/des/.cvsignore [new file with mode: 0644]
fips/des/Makefile.ssl [new file with mode: 0644]
fips/des/fingerprint.sha1 [new file with mode: 0644]
fips/des/fips_des_enc.c [new file with mode: 0644]
fips/des/fips_des_locl.h [new file with mode: 0644]
fips/des/fips_desmovs.c [new file with mode: 0644]
fips/fips_make_sha1
fips/testvectors/des/req/CBCMMT.req [new file with mode: 0644]
fips/testvectors/des/req/CBCMonte.req [new file with mode: 0644]
fips/testvectors/des/req/CBCinvperm.req [new file with mode: 0644]
fips/testvectors/des/req/CBCpermop.req [new file with mode: 0644]
fips/testvectors/des/req/CBCsubtab.req [new file with mode: 0644]
fips/testvectors/des/req/CBCvarkey.req [new file with mode: 0644]
fips/testvectors/des/req/CBCvartext.req [new file with mode: 0644]
fips/testvectors/des/req/CFB1MMT.req [new file with mode: 0644]
fips/testvectors/des/req/CFB1Monte.req [new file with mode: 0644]
fips/testvectors/des/req/CFB1invperm.req [new file with mode: 0644]
fips/testvectors/des/req/CFB1permop.req [new file with mode: 0644]
fips/testvectors/des/req/CFB1subtab.req [new file with mode: 0644]
fips/testvectors/des/req/CFB1varkey.req [new file with mode: 0644]
fips/testvectors/des/req/CFB1vartext.req [new file with mode: 0644]
fips/testvectors/des/req/CFB64MMT.req [new file with mode: 0644]
fips/testvectors/des/req/CFB64Monte.req [new file with mode: 0644]
fips/testvectors/des/req/CFB64invperm.req [new file with mode: 0644]
fips/testvectors/des/req/CFB64permop.req [new file with mode: 0644]
fips/testvectors/des/req/CFB64subtab.req [new file with mode: 0644]
fips/testvectors/des/req/CFB64varkey.req [new file with mode: 0644]
fips/testvectors/des/req/CFB64vartext.req [new file with mode: 0644]
fips/testvectors/des/req/CFB8MMT.req [new file with mode: 0644]
fips/testvectors/des/req/CFB8Monte.req [new file with mode: 0644]
fips/testvectors/des/req/CFB8invperm.req [new file with mode: 0644]
fips/testvectors/des/req/CFB8permop.req [new file with mode: 0644]
fips/testvectors/des/req/CFB8subtab.req [new file with mode: 0644]
fips/testvectors/des/req/CFB8varkey.req [new file with mode: 0644]
fips/testvectors/des/req/CFB8vartext.req [new file with mode: 0644]
fips/testvectors/des/req/ECBMMT.req [new file with mode: 0644]
fips/testvectors/des/req/ECBMonte.req [new file with mode: 0644]
fips/testvectors/des/req/ECBinvperm.req [new file with mode: 0644]
fips/testvectors/des/req/ECBpermop.req [new file with mode: 0644]
fips/testvectors/des/req/ECBsubtab.req [new file with mode: 0644]
fips/testvectors/des/req/ECBvarkey.req [new file with mode: 0644]
fips/testvectors/des/req/ECBvartext.req [new file with mode: 0644]
fips/testvectors/des/req/OFBMMT.req [new file with mode: 0644]
fips/testvectors/des/req/OFBMonte.req [new file with mode: 0644]
fips/testvectors/des/req/OFBinvperm.req [new file with mode: 0644]
fips/testvectors/des/req/OFBpermop.req [new file with mode: 0644]
fips/testvectors/des/req/OFBsubtab.req [new file with mode: 0644]
fips/testvectors/des/req/OFBvarkey.req [new file with mode: 0644]
fips/testvectors/des/req/OFBvartext.req [new file with mode: 0644]
fips/testvectors/des/sample/CBCMMT.sam [new file with mode: 0644]
fips/testvectors/des/sample/CBCMonte.sam [new file with mode: 0644]
fips/testvectors/des/sample/CBCinvperm.sam [new file with mode: 0644]
fips/testvectors/des/sample/CBCpermop.sam [new file with mode: 0644]
fips/testvectors/des/sample/CBCsubtab.sam [new file with mode: 0644]
fips/testvectors/des/sample/CBCvarkey.sam [new file with mode: 0644]
fips/testvectors/des/sample/CBCvartext.sam [new file with mode: 0644]
fips/testvectors/des/sample/CFB1MMT.sam [new file with mode: 0644]
fips/testvectors/des/sample/CFB1Monte.sam [new file with mode: 0644]
fips/testvectors/des/sample/CFB1invperm.sam [new file with mode: 0644]
fips/testvectors/des/sample/CFB1permop.sam [new file with mode: 0644]
fips/testvectors/des/sample/CFB1subtab.sam [new file with mode: 0644]
fips/testvectors/des/sample/CFB1varkey.sam [new file with mode: 0644]
fips/testvectors/des/sample/CFB1vartext.sam [new file with mode: 0644]
fips/testvectors/des/sample/CFB64MMT.sam [new file with mode: 0644]
fips/testvectors/des/sample/CFB64Monte.sam [new file with mode: 0644]
fips/testvectors/des/sample/CFB64invperm.sam [new file with mode: 0644]
fips/testvectors/des/sample/CFB64permop.sam [new file with mode: 0644]
fips/testvectors/des/sample/CFB64subtab.sam [new file with mode: 0644]
fips/testvectors/des/sample/CFB64varkey.sam [new file with mode: 0644]
fips/testvectors/des/sample/CFB64vartext.sam [new file with mode: 0644]
fips/testvectors/des/sample/CFB8MMT.sam [new file with mode: 0644]
fips/testvectors/des/sample/CFB8Monte.sam [new file with mode: 0644]
fips/testvectors/des/sample/CFB8invperm.sam [new file with mode: 0644]
fips/testvectors/des/sample/CFB8permop.sam [new file with mode: 0644]
fips/testvectors/des/sample/CFB8subtab.sam [new file with mode: 0644]
fips/testvectors/des/sample/CFB8varkey.sam [new file with mode: 0644]
fips/testvectors/des/sample/CFB8vartext.sam [new file with mode: 0644]
fips/testvectors/des/sample/ECBMMT.sam [new file with mode: 0644]
fips/testvectors/des/sample/ECBMonte.sam [new file with mode: 0644]
fips/testvectors/des/sample/ECBinvperm.sam [new file with mode: 0644]
fips/testvectors/des/sample/ECBpermop.sam [new file with mode: 0644]
fips/testvectors/des/sample/ECBsubtab.sam [new file with mode: 0644]
fips/testvectors/des/sample/ECBvarkey.sam [new file with mode: 0644]
fips/testvectors/des/sample/ECBvartext.sam [new file with mode: 0644]
fips/testvectors/des/sample/OFBMMT.sam [new file with mode: 0644]
fips/testvectors/des/sample/OFBMonte.sam [new file with mode: 0644]
fips/testvectors/des/sample/OFBinvperm.sam [new file with mode: 0644]
fips/testvectors/des/sample/OFBpermop.sam [new file with mode: 0644]
fips/testvectors/des/sample/OFBsubtab.sam [new file with mode: 0644]
fips/testvectors/des/sample/OFBvarkey.sam [new file with mode: 0644]
fips/testvectors/des/sample/OFBvartext.sam [new file with mode: 0644]

index ec9c4eefb8aa1da65a6ec1bb65d21beb4e0103ad..ca75880ae2e2cd8674e3c763ac8a7ea4fea0249d 100644 (file)
@@ -177,11 +177,11 @@ DIRS=   crypto fips ssl $(SHLIB_MARK) apps test tools
 SHLIBDIRS= fips crypto ssl
 
 # dirs in crypto to build
-SDIRS=  \
+SDIRS=  objects \
        md2 md4 md5 sha mdc2 hmac ripemd \
        des rc2 rc4 rc5 idea bf cast \
        bn ec rsa dsa dh dso engine aes \
-       buffer bio stack lhash rand err objects \
+       buffer bio stack lhash rand err \
        evp asn1 pem x509 x509v3 conf txt_db pkcs7 pkcs12 comp ocsp ui krb5
 
 # tests to perform.  "alltests" is a special word indicating that all tests
@@ -231,7 +231,18 @@ sub_all:
        do \
        if [ -d "$$i" ]; then \
                (cd $$i && echo "making all in $$i..." && \
-               $(MAKE) CC='${CC}' PLATFORM='${PLATFORM}' CFLAG='${CFLAG}' AS='${AS}' ASFLAG='${ASFLAG}' SDIRS='$(SDIRS)' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' BN_ASM='${BN_ASM}' DES_ENC='${DES_ENC}' BF_ENC='${BF_ENC}' CAST_ENC='${CAST_ENC}' RC4_ENC='${RC4_ENC}' RC5_ENC='${RC5_ENC}' SHA1_ASM_OBJ='${SHA1_ASM_OBJ}' MD5_ASM_OBJ='${MD5_ASM_OBJ}' RMD160_ASM_OBJ='${RMD160_ASM_OBJ}' AR='${AR}' PROCESSOR='${PROCESSOR}' PERL='${PERL}' RANLIB='${RANLIB}' KRB5_INCLUDES='${KRB5_INCLUDES}' LIBKRB5='${LIBKRB5}' EXE_EXT='${EXE_EXT}' SHARED_LIBS='${SHARED_LIBS}' SHLIB_EXT='${SHLIB_EXT}' SHLIB_TARGET='${SHLIB_TARGET}' all ) || exit 1; \
+               $(MAKE) CC='${CC}' PLATFORM='${PLATFORM}' CFLAG='${CFLAG}' AS='${AS}' ASFLAG='${ASFLAG}' SDIRS='$(SDIRS)' FDIRS='$(FDIRS)' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' BN_ASM='${BN_ASM}' DES_ENC='${DES_ENC}' BF_ENC='${BF_ENC}' CAST_ENC='${CAST_ENC}' RC4_ENC='${RC4_ENC}' RC5_ENC='${RC5_ENC}' SHA1_ASM_OBJ='${SHA1_ASM_OBJ}' MD5_ASM_OBJ='${MD5_ASM_OBJ}' RMD160_ASM_OBJ='${RMD160_ASM_OBJ}' AR='${AR}' PROCESSOR='${PROCESSOR}' PERL='${PERL}' RANLIB='${RANLIB}' KRB5_INCLUDES='${KRB5_INCLUDES}' LIBKRB5='${LIBKRB5}' EXE_EXT='${EXE_EXT}' SHARED_LIBS='${SHARED_LIBS}' SHLIB_EXT='${SHLIB_EXT}' SHLIB_TARGET='${SHLIB_TARGET}' all ) || exit 1; \
+       else \
+               $(MAKE) $$i; \
+       fi; \
+       done;
+
+sub_target:
+       @for i in $(DIRS); \
+       do \
+       if [ -d "$$i" ]; then \
+               (cd $$i && echo "making $(TARGET) in $$i..." && \
+               $(MAKE) CC='${CC}' PLATFORM='${PLATFORM}' CFLAG='${CFLAG}' AS='${AS}' ASFLAG='${ASFLAG}' SDIRS='$(SDIRS)' FDIRS='$(FDIRS)' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' BN_ASM='${BN_ASM}' DES_ENC='${DES_ENC}' BF_ENC='${BF_ENC}' CAST_ENC='${CAST_ENC}' RC4_ENC='${RC4_ENC}' RC5_ENC='${RC5_ENC}' SHA1_ASM_OBJ='${SHA1_ASM_OBJ}' MD5_ASM_OBJ='${MD5_ASM_OBJ}' RMD160_ASM_OBJ='${RMD160_ASM_OBJ}' AR='${AR}' PROCESSOR='${PROCESSOR}' PERL='${PERL}' RANLIB='${RANLIB}' KRB5_INCLUDES='${KRB5_INCLUDES}' LIBKRB5='${LIBKRB5}' EXE_EXT='${EXE_EXT}' SHARED_LIBS='${SHARED_LIBS}' SHLIB_EXT='${SHLIB_EXT}' SHLIB_TARGET='${SHLIB_TARGET}' TARGET='$(TARGET)' sub_target ) || exit 1; \
        else \
                $(MAKE) $$i; \
        fi; \
@@ -486,7 +497,7 @@ do_hpux-shared:
                libs="$(LIBKRB5) $$libs"; \
        fi; \
        ( set -x; /usr/ccs/bin/ld ${SHARED_LDFLAGS} \
-               +vnocompatwarnings \
+               +vnocompatwarnings \
                -b -z +s \
                -o lib$$i.sl.${SHLIB_MAJOR}.${SHLIB_MINOR} \
                +h lib$$i.sl.${SHLIB_MAJOR}.${SHLIB_MINOR} \
@@ -509,7 +520,7 @@ do_hpux64-shared:
                libs="$(LIBKRB5) $$libs"; \
        fi; \
        ( set -x; /usr/ccs/bin/ld ${SHARED_LDFLAGS} \
-               -b -z \
+               -b -z \
                -o lib$$i.sl.${SHLIB_MAJOR}.${SHLIB_MINOR} \
                +h lib$$i.sl.${SHLIB_MAJOR}.${SHLIB_MINOR} \
                +forceload lib$$i.a -ldl -lc ) || exit 1; \
index 17bf77ca9e388ef0df43d6a390d3b19ad1eca328..185a63ea0402182a41839820efb89037d22a429c 100644 (file)
@@ -65,7 +65,8 @@
  * byte.
  */
 void DES_cfb_encrypt(const unsigned char *in, unsigned char *out, int numbits,
-                    long length, DES_key_schedule *schedule, DES_cblock *ivec, int enc)
+                    long length, DES_key_schedule *schedule, DES_cblock *ivec,
+                    int enc)
        {
        register DES_LONG d0,d1,v0,v1,n=(numbits+7)/8;
        register DES_LONG mask0,mask1;
index 1c37ab96d3ded2c158cfe1c351cb26e7ee4fdf20..3ad3c9bc750b5abe8f1ad1e068344d7baf918d17 100644 (file)
@@ -58,6 +58,8 @@
 
 #include "des_locl.h"
 
+#ifndef FIPS
+
 void DES_encrypt1(DES_LONG *data, DES_key_schedule *ks, int enc)
        {
        register DES_LONG l,r,t,u;
@@ -287,6 +289,8 @@ void DES_decrypt3(DES_LONG *data, DES_key_schedule *ks1,
        data[1]=r;
        }
 
+#endif /* ndef FIPS */
+
 #ifndef DES_DEFAULT_OPTIONS
 
 #undef CBC_ENC_C__DONT_UPDATE_IV
index e45b6b326876b52a89353f0ecf8976f5038101d1..9844d7f9bcc6963f85f913d2d1ef9bcb5c2b4a03 100644 (file)
@@ -84,22 +84,15 @@ IMPLEMENT_BLOCK_CIPHER(aes_256, ks, AES, EVP_AES_KEY,
                       EVP_CIPHER_get_asn1_iv,
                       NULL)
 
-#define IMPLEMENT_CFBR(keysize,cbits) \
-       BLOCK_CIPHER_func_cfb(aes_##keysize,AES,cbits,EVP_AES_KEY,ks) \
-       BLOCK_CIPHER_def_cfb(aes_##keysize,EVP_AES_KEY, \
-                            NID_aes_##keysize, keysize/8, 16, cbits, \
-                            0, aes_init_key, NULL, \
-                            EVP_CIPHER_set_asn1_iv, \
-                            EVP_CIPHER_get_asn1_iv, \
-                            NULL)
+#define IMPLEMENT_AES_CFBR(ksize,cbits)        IMPLEMENT_CFBR(aes,AES,EVP_AES_KEY,ks,ksize,cbits,16)
 
-IMPLEMENT_CFBR(128,1)
-IMPLEMENT_CFBR(192,1)
-IMPLEMENT_CFBR(256,1)
+IMPLEMENT_AES_CFBR(128,1)
+IMPLEMENT_AES_CFBR(192,1)
+IMPLEMENT_AES_CFBR(256,1)
 
-IMPLEMENT_CFBR(128,8)
-IMPLEMENT_CFBR(192,8)
-IMPLEMENT_CFBR(256,8)
+IMPLEMENT_AES_CFBR(128,8)
+IMPLEMENT_AES_CFBR(192,8)
+IMPLEMENT_AES_CFBR(256,8)
 
 static int aes_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,
                   const unsigned char *iv, int enc)
index f7d4d619bc70df7061527b2494203c240ef1feb5..0b05c116112e2d31acb4b43799b80045b242c009 100644 (file)
@@ -93,19 +93,55 @@ static int des_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
 }
 
 static int des_cfb64_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
-                         const unsigned char *in, unsigned int inl)
+                           const unsigned char *in, unsigned int inl)
 {
        DES_cfb64_encrypt(in, out, (long)inl, ctx->cipher_data,
                          (DES_cblock *)ctx->iv, &ctx->num, ctx->encrypt);
        return 1;
 }
 
+/* Although we have a CFB-r implementation for DES, it doesn't pack the right
+   way, so wrap it here */
+static int des_cfb1_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
+                          const unsigned char *in, unsigned int inl)
+    {
+    unsigned int n;
+    unsigned char c[1],d[1];
+
+    memset(out,0,(inl+7)/8);
+    for(n=0 ; n < inl ; ++n)
+       {
+       c[0]=(in[n/8]&(1 << (7-n%8))) ? 0x80 : 0;
+       DES_cfb_encrypt(c,d,1,1,ctx->cipher_data,(DES_cblock *)ctx->iv,
+                       ctx->encrypt);
+       out[n/8]=(out[n/8]&~(1 << (7-n%8)))|((d[0]&0x80) >> (n%8));
+       }
+
+    return 1;
+    }
+
+static int des_cfb8_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
+                          const unsigned char *in, unsigned int inl)
+    {
+    DES_cfb_encrypt(in,out,8,inl,ctx->cipher_data,(DES_cblock *)ctx->iv,
+                   ctx->encrypt);
+
+    return 1;
+    }
+
 BLOCK_CIPHER_defs(des, DES_key_schedule, NID_des, 8, 8, 8, 64,
                        0, des_init_key, NULL,
                        EVP_CIPHER_set_asn1_iv,
                        EVP_CIPHER_get_asn1_iv,
                        NULL)
 
+BLOCK_CIPHER_def_cfb(des,DES_key_schedule,NID_des,8,8,1,0,des_init_key,NULL,
+                    EVP_CIPHER_set_asn1_iv,
+                    EVP_CIPHER_get_asn1_iv,NULL)
+
+BLOCK_CIPHER_def_cfb(des,DES_key_schedule,NID_des,8,8,8,0,des_init_key,NULL,
+                    EVP_CIPHER_set_asn1_iv,
+                    EVP_CIPHER_get_asn1_iv,NULL)
 
 static int des_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,
                        const unsigned char *iv, int enc)
index 2f482a4e30862f35673e5fac3f2f38b81384cc5b..10e68f010f2a5a7125625588e78110844ec87fb1 100644 (file)
@@ -640,10 +640,16 @@ const EVP_CIPHER *EVP_des_ede_ecb(void);
 const EVP_CIPHER *EVP_des_ede3_ecb(void);
 const EVP_CIPHER *EVP_des_cfb64(void);
 # define EVP_des_cfb EVP_des_cfb64
+const EVP_CIPHER *EVP_des_cfb1(void);
+const EVP_CIPHER *EVP_des_cfb8(void);
 const EVP_CIPHER *EVP_des_ede_cfb64(void);
 # define EVP_des_ede_cfb EVP_des_ede_cfb64
+const EVP_CIPHER *EVP_des_ede_cfb1(void);
+const EVP_CIPHER *EVP_des_ede_cfb8(void);
 const EVP_CIPHER *EVP_des_ede3_cfb64(void);
 # define EVP_des_ede3_cfb EVP_des_ede3_cfb64
+const EVP_CIPHER *EVP_des_ede3_cfb1(void);
+const EVP_CIPHER *EVP_des_ede3_cfb8(void);
 const EVP_CIPHER *EVP_des_ofb(void);
 const EVP_CIPHER *EVP_des_ede_ofb(void);
 const EVP_CIPHER *EVP_des_ede3_ofb(void);
index e4981d401b8ae2a17321aef6f7f9a615ce154684..2204e345ad1af7e869541b232bd670a945b8f761 100644 (file)
@@ -225,3 +225,12 @@ const EVP_CIPHER *EVP_##cname##_ecb(void) { return &cname##_ecb; }
                          get_asn1, ctrl)
 
 #define EVP_C_DATA(kstruct, ctx)       ((kstruct *)(ctx)->cipher_data)
+
+#define IMPLEMENT_CFBR(cipher,cprefix,kstruct,ksched,keysize,cbits,iv_len) \
+       BLOCK_CIPHER_func_cfb(cipher##_##keysize,cprefix,cbits,kstruct,ksched) \
+       BLOCK_CIPHER_def_cfb(cipher##_##keysize,kstruct, \
+                            NID_##cipher##_##keysize, keysize/8, iv_len, cbits, \
+                            0, cipher##_init_key, NULL, \
+                            EVP_CIPHER_set_asn1_iv, \
+                            EVP_CIPHER_get_asn1_iv, \
+                            NULL)
index 91f59da366b40ba33aa1d4adff0510ec59034075..d85c2fe779ee76dfedc8795829a54379296fbaa6 100644 (file)
  * [including the GNU Public Licence.]
  */
 
-#define NUM_NID 656
-#define NUM_SN 649
-#define NUM_LN 649
-#define NUM_OBJ 623
+#define NUM_NID 661
+#define NUM_SN 654
+#define NUM_LN 654
+#define NUM_OBJ 628
 
-static unsigned char lvalues[4491]={
+static unsigned char lvalues[4559]={
 0x00,                                        /* [  0] OBJ_undef */
 0x2A,0x86,0x48,0x86,0xF7,0x0D,               /* [  1] OBJ_rsadsi */
 0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01,          /* [  7] OBJ_pkcs */
@@ -685,12 +685,17 @@ static unsigned char lvalues[4491]={
 0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01,0x01,0x06,/* [4425] OBJ_rsaOAEPEncryptionSET */
 0x2B,0x06,0x01,0x04,0x01,0x82,0x37,0x14,0x02,0x02,/* [4434] OBJ_ms_smartcard_login */
 0x2B,0x06,0x01,0x04,0x01,0x82,0x37,0x14,0x02,0x03,/* [4444] OBJ_ms_upn */
-0x29,0x01,0x01,0x85,0x1A,0x03,               /* [4454] OBJ_aes_128_cfb1 */
-0x29,0x01,0x01,0x85,0x1A,0x04,               /* [4460] OBJ_aes_192_cfb1 */
-0x29,0x01,0x01,0x85,0x1A,0x05,               /* [4466] OBJ_aes_256_cfb1 */
-0x29,0x01,0x01,0x85,0x1A,0x06,               /* [4472] OBJ_aes_128_cfb8 */
-0x29,0x01,0x01,0x85,0x1A,0x07,               /* [4478] OBJ_aes_192_cfb8 */
-0x29,0x01,0x01,0x85,0x1A,0x08,               /* [4484] OBJ_aes_256_cfb8 */
+0x2B,0x06,0x01,0x04,0x01,0xEF,0x17,0x01,0x01,0x01,/* [4454] OBJ_aes_128_cfb1 */
+0x2B,0x06,0x01,0x04,0x01,0xEF,0x17,0x01,0x01,0x02,/* [4464] OBJ_aes_192_cfb1 */
+0x2B,0x06,0x01,0x04,0x01,0xEF,0x17,0x01,0x01,0x03,/* [4474] OBJ_aes_256_cfb1 */
+0x2B,0x06,0x01,0x04,0x01,0xEF,0x17,0x01,0x01,0x04,/* [4484] OBJ_aes_128_cfb8 */
+0x2B,0x06,0x01,0x04,0x01,0xEF,0x17,0x01,0x01,0x05,/* [4494] OBJ_aes_192_cfb8 */
+0x2B,0x06,0x01,0x04,0x01,0xEF,0x17,0x01,0x01,0x06,/* [4504] OBJ_aes_256_cfb8 */
+0x2B,0x06,0x01,0x04,0x01,0xEF,0x17,0x01,0x01,0x07,/* [4514] OBJ_des_cfb1 */
+0x2B,0x06,0x01,0x04,0x01,0xEF,0x17,          /* [4524] OBJ_shmoo */
+0x2B,0x06,0x01,0x04,0x01,0xEF,0x17,0x01,     /* [4531] OBJ_ben */
+0x2B,0x06,0x01,0x04,0x01,0xEF,0x17,0x01,0x01,/* [4539] OBJ_openssl */
+0x2B,0x06,0x01,0x04,0x01,0xEF,0x17,0x01,0x01,0x08,/* [4548] OBJ_des_cfb8 */
 };
 
 static ASN1_OBJECT nid_objs[NUM_NID]={
@@ -1734,12 +1739,17 @@ static ASN1_OBJECT nid_objs[NUM_NID]={
        10,&(lvalues[4434]),0},
 {"msUPN","Microsoft Universal Principal Name",NID_ms_upn,10,
        &(lvalues[4444]),0},
-{"AES-128-CFB1","aes-128-cfb1",NID_aes_128_cfb1,6,&(lvalues[4454]),0},
-{"AES-192-CFB1","aes-192-cfb1",NID_aes_192_cfb1,6,&(lvalues[4460]),0},
-{"AES-256-CFB1","aes-256-cfb1",NID_aes_256_cfb1,6,&(lvalues[4466]),0},
-{"AES-128-CFB8","aes-128-cfb8",NID_aes_128_cfb8,6,&(lvalues[4472]),0},
-{"AES-192-CFB8","aes-192-cfb8",NID_aes_192_cfb8,6,&(lvalues[4478]),0},
-{"AES-256-CFB8","aes-256-cfb8",NID_aes_256_cfb8,6,&(lvalues[4484]),0},
+{"AES-128-CFB1","aes-128-cfb1",NID_aes_128_cfb1,10,&(lvalues[4454]),0},
+{"AES-192-CFB1","aes-192-cfb1",NID_aes_192_cfb1,10,&(lvalues[4464]),0},
+{"AES-256-CFB1","aes-256-cfb1",NID_aes_256_cfb1,10,&(lvalues[4474]),0},
+{"AES-128-CFB8","aes-128-cfb8",NID_aes_128_cfb8,10,&(lvalues[4484]),0},
+{"AES-192-CFB8","aes-192-cfb8",NID_aes_192_cfb8,10,&(lvalues[4494]),0},
+{"AES-256-CFB8","aes-256-cfb8",NID_aes_256_cfb8,10,&(lvalues[4504]),0},
+{"DES-CFB1","des-cfb1",NID_des_cfb1,10,&(lvalues[4514]),0},
+{"SHMOO","shmoo",NID_shmoo,7,&(lvalues[4524]),0},
+{"BEN","ben",NID_ben,8,&(lvalues[4531]),0},
+{"OpenSSL","openssl",NID_openssl,9,&(lvalues[4539]),0},
+{"DES-CFB8","des-cfb8",NID_des_cfb8,10,&(lvalues[4548]),0},
 };
 
 static ASN1_OBJECT *sn_objs[NUM_SN]={
@@ -1762,6 +1772,7 @@ static ASN1_OBJECT *sn_objs[NUM_SN]={
 &(nid_objs[655]),/* "AES-256-CFB8" */
 &(nid_objs[426]),/* "AES-256-ECB" */
 &(nid_objs[428]),/* "AES-256-OFB" */
+&(nid_objs[658]),/* "BEN" */
 &(nid_objs[91]),/* "BF-CBC" */
 &(nid_objs[93]),/* "BF-CFB" */
 &(nid_objs[92]),/* "BF-ECB" */
@@ -1780,6 +1791,8 @@ static ASN1_OBJECT *sn_objs[NUM_SN]={
 &(nid_objs[31]),/* "DES-CBC" */
 &(nid_objs[643]),/* "DES-CDMF" */
 &(nid_objs[30]),/* "DES-CFB" */
+&(nid_objs[656]),/* "DES-CFB1" */
+&(nid_objs[660]),/* "DES-CFB8" */
 &(nid_objs[29]),/* "DES-ECB" */
 &(nid_objs[32]),/* "DES-EDE" */
 &(nid_objs[43]),/* "DES-EDE-CBC" */
@@ -1821,6 +1834,7 @@ static ASN1_OBJECT *sn_objs[NUM_SN]={
 &(nid_objs[180]),/* "OCSPSigning" */
 &(nid_objs[379]),/* "ORG" */
 &(nid_objs[18]),/* "OU" */
+&(nid_objs[659]),/* "OpenSSL" */
 &(nid_objs[ 9]),/* "PBE-MD2-DES" */
 &(nid_objs[168]),/* "PBE-MD2-RC2-64" */
 &(nid_objs[10]),/* "PBE-MD5-DES" */
@@ -1863,6 +1877,7 @@ static ASN1_OBJECT *sn_objs[NUM_SN]={
 &(nid_objs[115]),/* "RSA-SHA1-2" */
 &(nid_objs[41]),/* "SHA" */
 &(nid_objs[64]),/* "SHA1" */
+&(nid_objs[657]),/* "SHMOO" */
 &(nid_objs[188]),/* "SMIME" */
 &(nid_objs[167]),/* "SMIME-CAPS" */
 &(nid_objs[100]),/* "SN" */
@@ -2523,6 +2538,7 @@ static ASN1_OBJECT *ln_objs[NUM_LN]={
 &(nid_objs[484]),/* "associatedDomain" */
 &(nid_objs[485]),/* "associatedName" */
 &(nid_objs[501]),/* "audio" */
+&(nid_objs[658]),/* "ben" */
 &(nid_objs[91]),/* "bf-cbc" */
 &(nid_objs[93]),/* "bf-cfb" */
 &(nid_objs[92]),/* "bf-ecb" */
@@ -2555,6 +2571,8 @@ static ASN1_OBJECT *ln_objs[NUM_LN]={
 &(nid_objs[31]),/* "des-cbc" */
 &(nid_objs[643]),/* "des-cdmf" */
 &(nid_objs[30]),/* "des-cfb" */
+&(nid_objs[656]),/* "des-cfb1" */
+&(nid_objs[660]),/* "des-cfb8" */
 &(nid_objs[29]),/* "des-ecb" */
 &(nid_objs[32]),/* "des-ede" */
 &(nid_objs[43]),/* "des-ede-cbc" */
@@ -2809,6 +2827,7 @@ static ASN1_OBJECT *ln_objs[NUM_LN]={
 &(nid_objs[488]),/* "mobileTelephoneNumber" */
 &(nid_objs[481]),/* "nSRecord" */
 &(nid_objs[173]),/* "name" */
+&(nid_objs[659]),/* "openssl" */
 &(nid_objs[379]),/* "org" */
 &(nid_objs[17]),/* "organizationName" */
 &(nid_objs[491]),/* "organizationalStatus" */
@@ -3023,6 +3042,7 @@ static ASN1_OBJECT *ln_objs[NUM_LN]={
 &(nid_objs[115]),/* "sha1WithRSA" */
 &(nid_objs[65]),/* "sha1WithRSAEncryption" */
 &(nid_objs[42]),/* "shaWithRSAEncryption" */
+&(nid_objs[657]),/* "shmoo" */
 &(nid_objs[52]),/* "signingTime" */
 &(nid_objs[454]),/* "simpleSecurityObject" */
 &(nid_objs[496]),/* "singleLevelQuality" */
@@ -3259,12 +3279,6 @@ static ASN1_OBJECT *obj_objs[NUM_OBJ]={
 &(nid_objs[642]),/* OBJ_set_brand_Novus              2 23 42 8 6011 */
 &(nid_objs[124]),/* OBJ_rle_compression              1 1 1 1 666 1 */
 &(nid_objs[125]),/* OBJ_zlib_compression             1 1 1 1 666 2 */
-&(nid_objs[650]),/* OBJ_aes_128_cfb1                 1 1 1 1 666 3 */
-&(nid_objs[651]),/* OBJ_aes_192_cfb1                 1 1 1 1 666 4 */
-&(nid_objs[652]),/* OBJ_aes_256_cfb1                 1 1 1 1 666 5 */
-&(nid_objs[653]),/* OBJ_aes_128_cfb8                 1 1 1 1 666 6 */
-&(nid_objs[654]),/* OBJ_aes_192_cfb8                 1 1 1 1 666 7 */
-&(nid_objs[655]),/* OBJ_aes_256_cfb8                 1 1 1 1 666 8 */
 &(nid_objs[ 1]),/* OBJ_rsadsi                       1 2 840 113549 */
 &(nid_objs[185]),/* OBJ_X9cm                         1 2 840 10040 4 */
 &(nid_objs[127]),/* OBJ_id_pkix                      1 3 6 1 5 5 7 */
@@ -3287,6 +3301,7 @@ static ASN1_OBJECT *obj_objs[NUM_OBJ]={
 &(nid_objs[407]),/* OBJ_X9_62_characteristic_two_field 1 2 840 10045 1 2 */
 &(nid_objs[408]),/* OBJ_X9_62_id_ecPublicKey         1 2 840 10045 2 1 */
 &(nid_objs[416]),/* OBJ_ecdsa_with_SHA1              1 2 840 10045 4 1 */
+&(nid_objs[657]),/* OBJ_shmoo                        1 3 6 1 4 1 14231 */
 &(nid_objs[258]),/* OBJ_id_pkix_mod                  1 3 6 1 5 5 7 0 */
 &(nid_objs[175]),/* OBJ_id_pe                        1 3 6 1 5 5 7 1 */
 &(nid_objs[259]),/* OBJ_id_qt                        1 3 6 1 5 5 7 2 */
@@ -3326,6 +3341,7 @@ static ASN1_OBJECT *obj_objs[NUM_OBJ]={
 &(nid_objs[413]),/* OBJ_X9_62_prime239v2             1 2 840 10045 3 1 5 */
 &(nid_objs[414]),/* OBJ_X9_62_prime239v3             1 2 840 10045 3 1 6 */
 &(nid_objs[415]),/* OBJ_X9_62_prime256v1             1 2 840 10045 3 1 7 */
+&(nid_objs[658]),/* OBJ_ben                          1 3 6 1 4 1 14231 1 */
 &(nid_objs[269]),/* OBJ_id_pkix1_explicit_88         1 3 6 1 5 5 7 0 1 */
 &(nid_objs[270]),/* OBJ_id_pkix1_implicit_88         1 3 6 1 5 5 7 0 2 */
 &(nid_objs[271]),/* OBJ_id_pkix1_explicit_93         1 3 6 1 5 5 7 0 3 */
@@ -3474,6 +3490,7 @@ static ASN1_OBJECT *obj_objs[NUM_OBJ]={
 &(nid_objs[417]),/* OBJ_ms_csp_name                  1 3 6 1 4 1 311 17 1 */
 &(nid_objs[390]),/* OBJ_dcObject                     1 3 6 1 4 1 1466 344 */
 &(nid_objs[91]),/* OBJ_bf_cbc                       1 3 6 1 4 1 3029 1 2 */
+&(nid_objs[659]),/* OBJ_openssl                      1 3 6 1 4 1 14231 1 1 */
 &(nid_objs[315]),/* OBJ_id_regCtrl_regToken          1 3 6 1 5 5 7 5 1 1 */
 &(nid_objs[316]),/* OBJ_id_regCtrl_authenticator     1 3 6 1 5 5 7 5 1 2 */
 &(nid_objs[317]),/* OBJ_id_regCtrl_pkiPublicationInfo 1 3 6 1 5 5 7 5 1 3 */
@@ -3602,6 +3619,14 @@ static ASN1_OBJECT *obj_objs[NUM_OBJ]={
 &(nid_objs[138]),/* OBJ_ms_efs                       1 3 6 1 4 1 311 10 3 4 */
 &(nid_objs[648]),/* OBJ_ms_smartcard_login           1 3 6 1 4 1 311 20 2 2 */
 &(nid_objs[649]),/* OBJ_ms_upn                       1 3 6 1 4 1 311 20 2 3 */
+&(nid_objs[650]),/* OBJ_aes_128_cfb1                 1 3 6 1 4 1 14231 1 1 1 */
+&(nid_objs[651]),/* OBJ_aes_192_cfb1                 1 3 6 1 4 1 14231 1 1 2 */
+&(nid_objs[652]),/* OBJ_aes_256_cfb1                 1 3 6 1 4 1 14231 1 1 3 */
+&(nid_objs[653]),/* OBJ_aes_128_cfb8                 1 3 6 1 4 1 14231 1 1 4 */
+&(nid_objs[654]),/* OBJ_aes_192_cfb8                 1 3 6 1 4 1 14231 1 1 5 */
+&(nid_objs[655]),/* OBJ_aes_256_cfb8                 1 3 6 1 4 1 14231 1 1 6 */
+&(nid_objs[656]),/* OBJ_des_cfb1                     1 3 6 1 4 1 14231 1 1 7 */
+&(nid_objs[660]),/* OBJ_des_cfb8                     1 3 6 1 4 1 14231 1 1 8 */
 &(nid_objs[196]),/* OBJ_id_smime_mod_cms             1 2 840 113549 1 9 16 0 1 */
 &(nid_objs[197]),/* OBJ_id_smime_mod_ess             1 2 840 113549 1 9 16 0 2 */
 &(nid_objs[198]),/* OBJ_id_smime_mod_oid             1 2 840 113549 1 9 16 0 3 */
index 0dc69f910eef68f920dfc3a77852afb48911a07b..84b4fb196b1a253efffa4d58b479c5be24d89ebd 100644 (file)
 #define NID_aes_256_cfb128             429
 #define OBJ_aes_256_cfb128             OBJ_aes,44L
 
+#define SN_shmoo               "SHMOO"
+#define LN_shmoo               "shmoo"
+#define NID_shmoo              657
+#define OBJ_shmoo              1L,3L,6L,1L,4L,1L,14231L
+
+#define SN_ben         "BEN"
+#define LN_ben         "ben"
+#define NID_ben                658
+#define OBJ_ben                OBJ_shmoo,1L
+
+#define SN_openssl             "OpenSSL"
+#define LN_openssl             "openssl"
+#define NID_openssl            659
+#define OBJ_openssl            OBJ_ben,1L
+
 #define SN_aes_128_cfb1                "AES-128-CFB1"
 #define LN_aes_128_cfb1                "aes-128-cfb1"
 #define NID_aes_128_cfb1               650
-#define OBJ_aes_128_cfb1               1L,1L,1L,1L,666L,3L
+#define OBJ_aes_128_cfb1               OBJ_openssl,1L
 
 #define SN_aes_192_cfb1                "AES-192-CFB1"
 #define LN_aes_192_cfb1                "aes-192-cfb1"
 #define NID_aes_192_cfb1               651
-#define OBJ_aes_192_cfb1               1L,1L,1L,1L,666L,4L
+#define OBJ_aes_192_cfb1               OBJ_openssl,2L
 
 #define SN_aes_256_cfb1                "AES-256-CFB1"
 #define LN_aes_256_cfb1                "aes-256-cfb1"
 #define NID_aes_256_cfb1               652
-#define OBJ_aes_256_cfb1               1L,1L,1L,1L,666L,5L
+#define OBJ_aes_256_cfb1               OBJ_openssl,3L
 
 #define SN_aes_128_cfb8                "AES-128-CFB8"
 #define LN_aes_128_cfb8                "aes-128-cfb8"
 #define NID_aes_128_cfb8               653
-#define OBJ_aes_128_cfb8               1L,1L,1L,1L,666L,6L
+#define OBJ_aes_128_cfb8               OBJ_openssl,4L
 
 #define SN_aes_192_cfb8                "AES-192-CFB8"
 #define LN_aes_192_cfb8                "aes-192-cfb8"
 #define NID_aes_192_cfb8               654
-#define OBJ_aes_192_cfb8               1L,1L,1L,1L,666L,7L
+#define OBJ_aes_192_cfb8               OBJ_openssl,5L
 
 #define SN_aes_256_cfb8                "AES-256-CFB8"
 #define LN_aes_256_cfb8                "aes-256-cfb8"
 #define NID_aes_256_cfb8               655
-#define OBJ_aes_256_cfb8               1L,1L,1L,1L,666L,8L
+#define OBJ_aes_256_cfb8               OBJ_openssl,6L
+
+#define SN_des_cfb1            "DES-CFB1"
+#define LN_des_cfb1            "des-cfb1"
+#define NID_des_cfb1           656
+#define OBJ_des_cfb1           OBJ_openssl,7L
+
+#define SN_des_cfb8            "DES-CFB8"
+#define LN_des_cfb8            "des-cfb8"
+#define NID_des_cfb8           660
+#define OBJ_des_cfb8           OBJ_openssl,8L
 
 #define SN_hold_instruction_code               "holdInstructionCode"
 #define LN_hold_instruction_code               "Hold Instruction Code"
index c675abaa6044116b7557a0af3ae94dd3d095fd80..82d261d1b37c4f83c1a6fbdbd7447c79ec890a46 100644 (file)
@@ -653,3 +653,8 @@ aes_256_cfb1                652
 aes_128_cfb8           653
 aes_192_cfb8           654
 aes_256_cfb8           655
+des_cfb1               656
+shmoo          657
+ben            658
+openssl                659
+des_cfb8               660
index 44ceace090c2162da5691537be867fe2a626961d..b981ba7b11e46419901bde9afd1d25991d617798 100644 (file)
@@ -681,14 +681,20 @@ aes 43                    : AES-256-OFB           : aes-256-ofb
 !Cname aes-256-cfb128
 aes 44                 : AES-256-CFB           : aes-256-cfb
 
+1 3 6 1 4 1 14231      : SHMOO                 : shmoo
+shmoo 1                        : BEN                   : ben
+ben 1                  : OpenSSL               : openssl
+
 # There are no OIDs for these modes...
 
-1 1 1 1 666 3          : AES-128-CFB1          : aes-128-cfb1
-1 1 1 1 666 4          : AES-192-CFB1          : aes-192-cfb1
-1 1 1 1 666 5          : AES-256-CFB1          : aes-256-cfb1
-1 1 1 1 666 6          : AES-128-CFB8          : aes-128-cfb8
-1 1 1 1 666 7          : AES-192-CFB8          : aes-192-cfb8
-1 1 1 1 666 8          : AES-256-CFB8          : aes-256-cfb8
+openssl 1              : AES-128-CFB1          : aes-128-cfb1
+openssl 2              : AES-192-CFB1          : aes-192-cfb1
+openssl 3              : AES-256-CFB1          : aes-256-cfb1
+openssl 4              : AES-128-CFB8          : aes-128-cfb8
+openssl 5              : AES-192-CFB8          : aes-192-cfb8
+openssl        6               : AES-256-CFB8          : aes-256-cfb8
+openssl 7              : DES-CFB1              : des-cfb1
+openssl 8              : DES-CFB8              : des-cfb8
 
 # Hold instruction CRL entry extension
 !Cname hold-instruction-code
index 6964b29f693a9c3a6ab144990973d9b9642ae451..6f05f0fe5f846124f2037c85eb7a56c50bfc23c9 100644 (file)
@@ -26,7 +26,7 @@ CFLAGS= $(INCLUDE) $(CFLAG)
 
 LIBS=
 
-FDIRS=rand sha1 aes dsa
+FDIRS=rand sha1 des aes dsa
 
 GENERAL=Makefile README fips-lib.com install.com
 
@@ -57,6 +57,13 @@ subdirs:
        $(MAKE) CC='$(CC)' INCLUDES='${INCLUDES}' CFLAG='${CFLAG}' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' BN_ASM='${BN_ASM}' DES_ENC='${DES_ENC}' SHA1_ASM_OBJ='${SHA1_ASM_OBJ}' MD5_ASM_OBJ='${MD5_ASM_OBJ}' RMD160_ASM_OBJ='${RMD160_ASM_OBJ}' BF_ENC='${BF_ENC}' CAST_ENC='${CAST_ENC}' RC4_ENC='${RC4_ENC}' RC5_ENC='${RC5_ENC}' AR='${AR}' PROCESSOR='${PROCESSOR}' PERL='${PERL}' RANLIB='${RANLIB}' all ) || exit 1; \
        done;
 
+sub_target:
+       @for i in $(FDIRS) ;\
+       do \
+       (cd $$i && echo "making $(TARGET) in fips/$$i..." && \
+       $(MAKE) CC='$(CC)' INCLUDES='${INCLUDES}' CFLAG='${CFLAG}' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' BN_ASM='${BN_ASM}' DES_ENC='${DES_ENC}' SHA1_ASM_OBJ='${SHA1_ASM_OBJ}' MD5_ASM_OBJ='${MD5_ASM_OBJ}' RMD160_ASM_OBJ='${RMD160_ASM_OBJ}' BF_ENC='${BF_ENC}' CAST_ENC='${CAST_ENC}' RC4_ENC='${RC4_ENC}' RC5_ENC='${RC5_ENC}' AR='${AR}' PROCESSOR='${PROCESSOR}' PERL='${PERL}' RANLIB='${RANLIB}' $(TARGET) ) || exit 1; \
+       done;
+
 files:
        $(PERL) $(TOP)/util/files.pl Makefile.ssl >> $(TOP)/MINFO
        @for i in $(FDIRS) ;\
index f96ee99c1770647526205892806904be450bf584..c6ad52ff772c6dd72a0051acaadd4536c362e7f0 100644 (file)
@@ -1,5 +1,5 @@
 #
-# SSLeay/fips/sha1/Makefile
+# SSLeay/fips/aes/Makefile
 #
 
 DIR=   aes
diff --git a/fips/des/.cvsignore b/fips/des/.cvsignore
new file mode 100644 (file)
index 0000000..8e3401a
--- /dev/null
@@ -0,0 +1,3 @@
+lib
+fips_desmovs
+testlist
diff --git a/fips/des/Makefile.ssl b/fips/des/Makefile.ssl
new file mode 100644 (file)
index 0000000..5191dad
--- /dev/null
@@ -0,0 +1,96 @@
+#
+# SSLeay/fips/des/Makefile
+#
+
+DIR=   des
+TOP=   ../..
+CC=    cc
+INCLUDES=
+CFLAG=-g
+INSTALL_PREFIX=
+OPENSSLDIR=     /usr/local/ssl
+INSTALLTOP=/usr/local/ssl
+MAKE=          make -f Makefile.ssl
+MAKEDEPPROG=   makedepend
+MAKEDEPEND=    $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
+MAKEFILE=      Makefile.ssl
+AR=            ar r
+
+CFLAGS= $(INCLUDES) $(CFLAG) -g
+
+GENERAL=Makefile
+TEST=
+APPS=
+
+LIB=$(TOP)/libcrypto.a
+LIBSRC=fips_des_enc.c
+LIBOBJ=fips_des_enc.o
+
+SRC= $(LIBSRC)
+
+EXHEADER=
+HEADER=        $(EXHEADER) fips_des_locl.h
+
+ALL=    $(GENERAL) $(SRC) $(HEADER)
+
+top:
+       (cd ../..; $(MAKE) DIRS=fips FDIRS=$(DIR) sub_all)
+
+all:   check lib
+
+check:
+       TOP=`pwd`/$(TOP) ../fips_check_sha1 fingerprint.sha1 $(SRC) $(HEADER)
+
+lib:   $(LIBOBJ)
+       $(AR) $(LIB) $(LIBOBJ)
+       $(RANLIB) $(LIB) || echo Never mind.
+       @touch lib
+
+files:
+       $(PERL) $(TOP)/util/files.pl Makefile.ssl >> $(TOP)/MINFO
+
+links:
+       @$(TOP)/util/point.sh Makefile.ssl Makefile
+       @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
+       @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
+       @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
+
+install:
+       @for i in $(EXHEADER) ; \
+       do  \
+       (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
+       chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
+       done;
+
+tags:
+       ctags $(SRC)
+
+tests:
+
+top_fips_desmovs:
+       (cd ../..; $(MAKE) DIRS=fips FDIRS=$(DIR) TARGET=fips_desmovs sub_target)
+
+
+fips_desmovs: fips_desmovs.o ../../libcrypto.a
+       $(CC) $(CFLAGS) -o fips_desmovs fips_desmovs.o ../../libcrypto.a
+
+fips_test: top_fips_desmovs
+       find ../testvectors/des/req -name '*.req' > testlist
+       -rm -rf ../testvectors/des/rsp
+       mkdir ../testvectors/des/rsp
+       ./fips_desmovs -d testlist
+
+lint:
+       lint -DLINT $(INCLUDES) $(SRC)>fluff
+
+depend:
+       $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) \
+               $(LIBSRC) fips_aesavs.c
+
+dclean:
+       $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
+       mv -f Makefile.new $(MAKEFILE)
+
+clean:
+       rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
+# DO NOT DELETE THIS LINE -- make depend depends on it.
diff --git a/fips/des/fingerprint.sha1 b/fips/des/fingerprint.sha1
new file mode 100644 (file)
index 0000000..3098ee2
--- /dev/null
@@ -0,0 +1,2 @@
+SHA1(fips_des_enc.c)= 1661dde9506404376f9565d8c6f49c205a468995
+SHA1(fips_des_locl.h)= 5e5128f074485e72d6fdee00d22d46a694bd5abe
diff --git a/fips/des/fips_des_enc.c b/fips/des/fips_des_enc.c
new file mode 100644 (file)
index 0000000..9bb3e1c
--- /dev/null
@@ -0,0 +1,288 @@
+/* crypto/des/des_enc.c */
+/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
+ * All rights reserved.
+ *
+ * This package is an SSL implementation written
+ * by Eric Young (eay@cryptsoft.com).
+ * The implementation was written so as to conform with Netscapes SSL.
+ * 
+ * This library is free for commercial and non-commercial use as long as
+ * the following conditions are aheared to.  The following conditions
+ * apply to all code found in this distribution, be it the RC4, RSA,
+ * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
+ * included with this distribution is covered by the same copyright terms
+ * except that the holder is Tim Hudson (tjh@cryptsoft.com).
+ * 
+ * Copyright remains Eric Young's, and as such any Copyright notices in
+ * the code are not to be removed.
+ * If this package is used in a product, Eric Young should be given attribution
+ * as the author of the parts of the library used.
+ * This can be in the form of a textual message at program startup or
+ * in documentation (online or textual) provided with the package.
+ * 
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *    "This product includes cryptographic software written by
+ *     Eric Young (eay@cryptsoft.com)"
+ *    The word 'cryptographic' can be left out if the rouines from the library
+ *    being used are not cryptographic related :-).
+ * 4. If you include any Windows specific code (or a derivative thereof) from 
+ *    the apps directory (application code) you must include an acknowledgement:
+ *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
+ * 
+ * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ * 
+ * The licence and distribution terms for any publically available version or
+ * derivative of this code cannot be changed.  i.e. this code cannot simply be
+ * copied and put under another distribution licence
+ * [including the GNU Public Licence.]
+ */
+
+#include "fips_des_locl.h"
+
+void DES_encrypt1(DES_LONG *data, DES_key_schedule *ks, int enc)
+       {
+       register DES_LONG l,r,t,u;
+#ifdef DES_PTR
+       register const unsigned char *des_SP=(const unsigned char *)DES_SPtrans;
+#endif
+#ifndef DES_UNROLL
+       register int i;
+#endif
+       register DES_LONG *s;
+
+       r=data[0];
+       l=data[1];
+
+       IP(r,l);
+       /* Things have been modified so that the initial rotate is
+        * done outside the loop.  This required the
+        * DES_SPtrans values in sp.h to be rotated 1 bit to the right.
+        * One perl script later and things have a 5% speed up on a sparc2.
+        * Thanks to Richard Outerbridge <71755.204@CompuServe.COM>
+        * for pointing this out. */
+       /* clear the top bits on machines with 8byte longs */
+       /* shift left by 2 */
+       r=ROTATE(r,29)&0xffffffffL;
+       l=ROTATE(l,29)&0xffffffffL;
+
+       s=ks->ks->deslong;
+       /* I don't know if it is worth the effort of loop unrolling the
+        * inner loop */
+       if (enc)
+               {
+#ifdef DES_UNROLL
+               D_ENCRYPT(l,r, 0); /*  1 */
+               D_ENCRYPT(r,l, 2); /*  2 */
+               D_ENCRYPT(l,r, 4); /*  3 */
+               D_ENCRYPT(r,l, 6); /*  4 */
+               D_ENCRYPT(l,r, 8); /*  5 */
+               D_ENCRYPT(r,l,10); /*  6 */
+               D_ENCRYPT(l,r,12); /*  7 */
+               D_ENCRYPT(r,l,14); /*  8 */
+               D_ENCRYPT(l,r,16); /*  9 */
+               D_ENCRYPT(r,l,18); /*  10 */
+               D_ENCRYPT(l,r,20); /*  11 */
+               D_ENCRYPT(r,l,22); /*  12 */
+               D_ENCRYPT(l,r,24); /*  13 */
+               D_ENCRYPT(r,l,26); /*  14 */
+               D_ENCRYPT(l,r,28); /*  15 */
+               D_ENCRYPT(r,l,30); /*  16 */
+#else
+               for (i=0; i<32; i+=8)
+                       {
+                       D_ENCRYPT(l,r,i+0); /*  1 */
+                       D_ENCRYPT(r,l,i+2); /*  2 */
+                       D_ENCRYPT(l,r,i+4); /*  3 */
+                       D_ENCRYPT(r,l,i+6); /*  4 */
+                       }
+#endif
+               }
+       else
+               {
+#ifdef DES_UNROLL
+               D_ENCRYPT(l,r,30); /* 16 */
+               D_ENCRYPT(r,l,28); /* 15 */
+               D_ENCRYPT(l,r,26); /* 14 */
+               D_ENCRYPT(r,l,24); /* 13 */
+               D_ENCRYPT(l,r,22); /* 12 */
+               D_ENCRYPT(r,l,20); /* 11 */
+               D_ENCRYPT(l,r,18); /* 10 */
+               D_ENCRYPT(r,l,16); /*  9 */
+               D_ENCRYPT(l,r,14); /*  8 */
+               D_ENCRYPT(r,l,12); /*  7 */
+               D_ENCRYPT(l,r,10); /*  6 */
+               D_ENCRYPT(r,l, 8); /*  5 */
+               D_ENCRYPT(l,r, 6); /*  4 */
+               D_ENCRYPT(r,l, 4); /*  3 */
+               D_ENCRYPT(l,r, 2); /*  2 */
+               D_ENCRYPT(r,l, 0); /*  1 */
+#else
+               for (i=30; i>0; i-=8)
+                       {
+                       D_ENCRYPT(l,r,i-0); /* 16 */
+                       D_ENCRYPT(r,l,i-2); /* 15 */
+                       D_ENCRYPT(l,r,i-4); /* 14 */
+                       D_ENCRYPT(r,l,i-6); /* 13 */
+                       }
+#endif
+               }
+
+       /* rotate and clear the top bits on machines with 8byte longs */
+       l=ROTATE(l,3)&0xffffffffL;
+       r=ROTATE(r,3)&0xffffffffL;
+
+       FP(r,l);
+       data[0]=l;
+       data[1]=r;
+       l=r=t=u=0;
+       }
+
+void DES_encrypt2(DES_LONG *data, DES_key_schedule *ks, int enc)
+       {
+       register DES_LONG l,r,t,u;
+#ifdef DES_PTR
+       register const unsigned char *des_SP=(const unsigned char *)DES_SPtrans;
+#endif
+#ifndef DES_UNROLL
+       register int i;
+#endif
+       register DES_LONG *s;
+
+       r=data[0];
+       l=data[1];
+
+       /* Things have been modified so that the initial rotate is
+        * done outside the loop.  This required the
+        * DES_SPtrans values in sp.h to be rotated 1 bit to the right.
+        * One perl script later and things have a 5% speed up on a sparc2.
+        * Thanks to Richard Outerbridge <71755.204@CompuServe.COM>
+        * for pointing this out. */
+       /* clear the top bits on machines with 8byte longs */
+       r=ROTATE(r,29)&0xffffffffL;
+       l=ROTATE(l,29)&0xffffffffL;
+
+       s=ks->ks->deslong;
+       /* I don't know if it is worth the effort of loop unrolling the
+        * inner loop */
+       if (enc)
+               {
+#ifdef DES_UNROLL
+               D_ENCRYPT(l,r, 0); /*  1 */
+               D_ENCRYPT(r,l, 2); /*  2 */
+               D_ENCRYPT(l,r, 4); /*  3 */
+               D_ENCRYPT(r,l, 6); /*  4 */
+               D_ENCRYPT(l,r, 8); /*  5 */
+               D_ENCRYPT(r,l,10); /*  6 */
+               D_ENCRYPT(l,r,12); /*  7 */
+               D_ENCRYPT(r,l,14); /*  8 */
+               D_ENCRYPT(l,r,16); /*  9 */
+               D_ENCRYPT(r,l,18); /*  10 */
+               D_ENCRYPT(l,r,20); /*  11 */
+               D_ENCRYPT(r,l,22); /*  12 */
+               D_ENCRYPT(l,r,24); /*  13 */
+               D_ENCRYPT(r,l,26); /*  14 */
+               D_ENCRYPT(l,r,28); /*  15 */
+               D_ENCRYPT(r,l,30); /*  16 */
+#else
+               for (i=0; i<32; i+=8)
+                       {
+                       D_ENCRYPT(l,r,i+0); /*  1 */
+                       D_ENCRYPT(r,l,i+2); /*  2 */
+                       D_ENCRYPT(l,r,i+4); /*  3 */
+                       D_ENCRYPT(r,l,i+6); /*  4 */
+                       }
+#endif
+               }
+       else
+               {
+#ifdef DES_UNROLL
+               D_ENCRYPT(l,r,30); /* 16 */
+               D_ENCRYPT(r,l,28); /* 15 */
+               D_ENCRYPT(l,r,26); /* 14 */
+               D_ENCRYPT(r,l,24); /* 13 */
+               D_ENCRYPT(l,r,22); /* 12 */
+               D_ENCRYPT(r,l,20); /* 11 */
+               D_ENCRYPT(l,r,18); /* 10 */
+               D_ENCRYPT(r,l,16); /*  9 */
+               D_ENCRYPT(l,r,14); /*  8 */
+               D_ENCRYPT(r,l,12); /*  7 */
+               D_ENCRYPT(l,r,10); /*  6 */
+               D_ENCRYPT(r,l, 8); /*  5 */
+               D_ENCRYPT(l,r, 6); /*  4 */
+               D_ENCRYPT(r,l, 4); /*  3 */
+               D_ENCRYPT(l,r, 2); /*  2 */
+               D_ENCRYPT(r,l, 0); /*  1 */
+#else
+               for (i=30; i>0; i-=8)
+                       {
+                       D_ENCRYPT(l,r,i-0); /* 16 */
+                       D_ENCRYPT(r,l,i-2); /* 15 */
+                       D_ENCRYPT(l,r,i-4); /* 14 */
+                       D_ENCRYPT(r,l,i-6); /* 13 */
+                       }
+#endif
+               }
+       /* rotate and clear the top bits on machines with 8byte longs */
+       data[0]=ROTATE(l,3)&0xffffffffL;
+       data[1]=ROTATE(r,3)&0xffffffffL;
+       l=r=t=u=0;
+       }
+
+void DES_encrypt3(DES_LONG *data, DES_key_schedule *ks1,
+                 DES_key_schedule *ks2, DES_key_schedule *ks3)
+       {
+       register DES_LONG l,r;
+
+       l=data[0];
+       r=data[1];
+       IP(l,r);
+       data[0]=l;
+       data[1]=r;
+       DES_encrypt2((DES_LONG *)data,ks1,DES_ENCRYPT);
+       DES_encrypt2((DES_LONG *)data,ks2,DES_DECRYPT);
+       DES_encrypt2((DES_LONG *)data,ks3,DES_ENCRYPT);
+       l=data[0];
+       r=data[1];
+       FP(r,l);
+       data[0]=l;
+       data[1]=r;
+       }
+
+void DES_decrypt3(DES_LONG *data, DES_key_schedule *ks1,
+                 DES_key_schedule *ks2, DES_key_schedule *ks3)
+       {
+       register DES_LONG l,r;
+
+       l=data[0];
+       r=data[1];
+       IP(l,r);
+       data[0]=l;
+       data[1]=r;
+       DES_encrypt2((DES_LONG *)data,ks3,DES_DECRYPT);
+       DES_encrypt2((DES_LONG *)data,ks2,DES_ENCRYPT);
+       DES_encrypt2((DES_LONG *)data,ks1,DES_DECRYPT);
+       l=data[0];
+       r=data[1];
+       FP(r,l);
+       data[0]=l;
+       data[1]=r;
+       }
diff --git a/fips/des/fips_des_locl.h b/fips/des/fips_des_locl.h
new file mode 100644 (file)
index 0000000..e44e8e9
--- /dev/null
@@ -0,0 +1,428 @@
+/* crypto/des/des_locl.h */
+/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com)
+ * All rights reserved.
+ *
+ * This package is an SSL implementation written
+ * by Eric Young (eay@cryptsoft.com).
+ * The implementation was written so as to conform with Netscapes SSL.
+ * 
+ * This library is free for commercial and non-commercial use as long as
+ * the following conditions are aheared to.  The following conditions
+ * apply to all code found in this distribution, be it the RC4, RSA,
+ * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
+ * included with this distribution is covered by the same copyright terms
+ * except that the holder is Tim Hudson (tjh@cryptsoft.com).
+ * 
+ * Copyright remains Eric Young's, and as such any Copyright notices in
+ * the code are not to be removed.
+ * If this package is used in a product, Eric Young should be given attribution
+ * as the author of the parts of the library used.
+ * This can be in the form of a textual message at program startup or
+ * in documentation (online or textual) provided with the package.
+ * 
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *    "This product includes cryptographic software written by
+ *     Eric Young (eay@cryptsoft.com)"
+ *    The word 'cryptographic' can be left out if the rouines from the library
+ *    being used are not cryptographic related :-).
+ * 4. If you include any Windows specific code (or a derivative thereof) from 
+ *    the apps directory (application code) you must include an acknowledgement:
+ *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
+ * 
+ * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ * 
+ * The licence and distribution terms for any publically available version or
+ * derivative of this code cannot be changed.  i.e. this code cannot simply be
+ * copied and put under another distribution licence
+ * [including the GNU Public Licence.]
+ */
+
+#ifndef HEADER_DES_LOCL_H
+#define HEADER_DES_LOCL_H
+
+#include <openssl/e_os2.h>
+
+#if defined(OPENSSL_SYS_WIN32) || defined(OPENSSL_SYS_WIN16)
+#ifndef OPENSSL_SYS_MSDOS
+#define OPENSSL_SYS_MSDOS
+#endif
+#endif
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#ifndef OPENSSL_SYS_MSDOS
+#if !defined(OPENSSL_SYS_VMS) || defined(__DECC)
+#ifdef OPENSSL_UNISTD
+# include OPENSSL_UNISTD
+#else
+# include <unistd.h>
+#endif
+#include <math.h>
+#endif
+#endif
+#include <openssl/des.h>
+
+#ifdef OPENSSL_SYS_MSDOS               /* Visual C++ 2.1 (Windows NT/95) */
+#include <stdlib.h>
+#include <errno.h>
+#include <time.h>
+#include <io.h>
+#endif
+
+#if defined(__STDC__) || defined(OPENSSL_SYS_VMS) || defined(M_XENIX) || defined(OPENSSL_SYS_MSDOS)
+#include <string.h>
+#endif
+
+#ifdef OPENSSL_BUILD_SHLIBCRYPTO
+# undef OPENSSL_EXTERN
+# define OPENSSL_EXTERN OPENSSL_EXPORT
+#endif
+
+#define ITERATIONS 16
+#define HALF_ITERATIONS 8
+
+/* used in des_read and des_write */
+#define MAXWRITE       (1024*16)
+#define BSIZE          (MAXWRITE+4)
+
+#define c2l(c,l)       (l =((DES_LONG)(*((c)++)))    , \
+                        l|=((DES_LONG)(*((c)++)))<< 8L, \
+                        l|=((DES_LONG)(*((c)++)))<<16L, \
+                        l|=((DES_LONG)(*((c)++)))<<24L)
+
+/* NOTE - c is not incremented as per c2l */
+#define c2ln(c,l1,l2,n)        { \
+                       c+=n; \
+                       l1=l2=0; \
+                       switch (n) { \
+                       case 8: l2 =((DES_LONG)(*(--(c))))<<24L; \
+                       case 7: l2|=((DES_LONG)(*(--(c))))<<16L; \
+                       case 6: l2|=((DES_LONG)(*(--(c))))<< 8L; \
+                       case 5: l2|=((DES_LONG)(*(--(c))));     \
+                       case 4: l1 =((DES_LONG)(*(--(c))))<<24L; \
+                       case 3: l1|=((DES_LONG)(*(--(c))))<<16L; \
+                       case 2: l1|=((DES_LONG)(*(--(c))))<< 8L; \
+                       case 1: l1|=((DES_LONG)(*(--(c))));     \
+                               } \
+                       }
+
+#define l2c(l,c)       (*((c)++)=(unsigned char)(((l)     )&0xff), \
+                        *((c)++)=(unsigned char)(((l)>> 8L)&0xff), \
+                        *((c)++)=(unsigned char)(((l)>>16L)&0xff), \
+                        *((c)++)=(unsigned char)(((l)>>24L)&0xff))
+
+/* replacements for htonl and ntohl since I have no idea what to do
+ * when faced with machines with 8 byte longs. */
+#define HDRSIZE 4
+
+#define n2l(c,l)       (l =((DES_LONG)(*((c)++)))<<24L, \
+                        l|=((DES_LONG)(*((c)++)))<<16L, \
+                        l|=((DES_LONG)(*((c)++)))<< 8L, \
+                        l|=((DES_LONG)(*((c)++))))
+
+#define l2n(l,c)       (*((c)++)=(unsigned char)(((l)>>24L)&0xff), \
+                        *((c)++)=(unsigned char)(((l)>>16L)&0xff), \
+                        *((c)++)=(unsigned char)(((l)>> 8L)&0xff), \
+                        *((c)++)=(unsigned char)(((l)     )&0xff))
+
+/* NOTE - c is not incremented as per l2c */
+#define l2cn(l1,l2,c,n)        { \
+                       c+=n; \
+                       switch (n) { \
+                       case 8: *(--(c))=(unsigned char)(((l2)>>24L)&0xff); \
+                       case 7: *(--(c))=(unsigned char)(((l2)>>16L)&0xff); \
+                       case 6: *(--(c))=(unsigned char)(((l2)>> 8L)&0xff); \
+                       case 5: *(--(c))=(unsigned char)(((l2)     )&0xff); \
+                       case 4: *(--(c))=(unsigned char)(((l1)>>24L)&0xff); \
+                       case 3: *(--(c))=(unsigned char)(((l1)>>16L)&0xff); \
+                       case 2: *(--(c))=(unsigned char)(((l1)>> 8L)&0xff); \
+                       case 1: *(--(c))=(unsigned char)(((l1)     )&0xff); \
+                               } \
+                       }
+
+#if defined(OPENSSL_SYS_WIN32) && defined(_MSC_VER)
+#define        ROTATE(a,n)     (_lrotr(a,n))
+#elif defined(__GNUC__) && __GNUC__>=2 && !defined(__STRICT_ANSI__) && !defined(OPENSSL_NO_ASM) && !defined(OPENSSL_NO_INLINE_ASM) && !defined(PEDANTIC)
+# if defined(__i386) || defined(__i386__) || defined(__x86_64) || defined(__x86_64__)
+#  define ROTATE(a,n)  ({ register unsigned int ret;   \
+                               asm ("rorl %1,%0"       \
+                                       : "=r"(ret)     \
+                                       : "I"(n),"0"(a) \
+                                       : "cc");        \
+                          ret;                         \
+                       })
+# endif
+#endif
+#ifndef ROTATE
+#define        ROTATE(a,n)     (((a)>>(n))+((a)<<(32-(n))))
+#endif
+
+/* Don't worry about the LOAD_DATA() stuff, that is used by
+ * fcrypt() to add it's little bit to the front */
+
+#ifdef DES_FCRYPT
+
+#define LOAD_DATA_tmp(R,S,u,t,E0,E1) \
+       { DES_LONG tmp; LOAD_DATA(R,S,u,t,E0,E1,tmp); }
+
+#define LOAD_DATA(R,S,u,t,E0,E1,tmp) \
+       t=R^(R>>16L); \
+       u=t&E0; t&=E1; \
+       tmp=(u<<16); u^=R^s[S  ]; u^=tmp; \
+       tmp=(t<<16); t^=R^s[S+1]; t^=tmp
+#else
+#define LOAD_DATA_tmp(a,b,c,d,e,f) LOAD_DATA(a,b,c,d,e,f,g)
+#define LOAD_DATA(R,S,u,t,E0,E1,tmp) \
+       u=R^s[S  ]; \
+       t=R^s[S+1]
+#endif
+
+/* The changes to this macro may help or hinder, depending on the
+ * compiler and the architecture.  gcc2 always seems to do well :-).
+ * Inspired by Dana How <how@isl.stanford.edu>
+ * DO NOT use the alternative version on machines with 8 byte longs.
+ * It does not seem to work on the Alpha, even when DES_LONG is 4
+ * bytes, probably an issue of accessing non-word aligned objects :-( */
+#ifdef DES_PTR
+
+/* It recently occurred to me that 0^0^0^0^0^0^0 == 0, so there
+ * is no reason to not xor all the sub items together.  This potentially
+ * saves a register since things can be xored directly into L */
+
+#if defined(DES_RISC1) || defined(DES_RISC2)
+#ifdef DES_RISC1
+#define D_ENCRYPT(LL,R,S) { \
+       unsigned int u1,u2,u3; \
+       LOAD_DATA(R,S,u,t,E0,E1,u1); \
+       u2=(int)u>>8L; \
+       u1=(int)u&0xfc; \
+       u2&=0xfc; \
+       t=ROTATE(t,4); \
+       u>>=16L; \
+       LL^= *(const DES_LONG *)(des_SP      +u1); \
+       LL^= *(const DES_LONG *)(des_SP+0x200+u2); \
+       u3=(int)(u>>8L); \
+       u1=(int)u&0xfc; \
+       u3&=0xfc; \
+       LL^= *(const DES_LONG *)(des_SP+0x400+u1); \
+       LL^= *(const DES_LONG *)(des_SP+0x600+u3); \
+       u2=(int)t>>8L; \
+       u1=(int)t&0xfc; \
+       u2&=0xfc; \
+       t>>=16L; \
+       LL^= *(const DES_LONG *)(des_SP+0x100+u1); \
+       LL^= *(const DES_LONG *)(des_SP+0x300+u2); \
+       u3=(int)t>>8L; \
+       u1=(int)t&0xfc; \
+       u3&=0xfc; \
+       LL^= *(const DES_LONG *)(des_SP+0x500+u1); \
+       LL^= *(const DES_LONG *)(des_SP+0x700+u3); }
+#endif
+#ifdef DES_RISC2
+#define D_ENCRYPT(LL,R,S) { \
+       unsigned int u1,u2,s1,s2; \
+       LOAD_DATA(R,S,u,t,E0,E1,u1); \
+       u2=(int)u>>8L; \
+       u1=(int)u&0xfc; \
+       u2&=0xfc; \
+       t=ROTATE(t,4); \
+       LL^= *(const DES_LONG *)(des_SP      +u1); \
+       LL^= *(const DES_LONG *)(des_SP+0x200+u2); \
+       s1=(int)(u>>16L); \
+       s2=(int)(u>>24L); \
+       s1&=0xfc; \
+       s2&=0xfc; \
+       LL^= *(const DES_LONG *)(des_SP+0x400+s1); \
+       LL^= *(const DES_LONG *)(des_SP+0x600+s2); \
+       u2=(int)t>>8L; \
+       u1=(int)t&0xfc; \
+       u2&=0xfc; \
+       LL^= *(const DES_LONG *)(des_SP+0x100+u1); \
+       LL^= *(const DES_LONG *)(des_SP+0x300+u2); \
+       s1=(int)(t>>16L); \
+       s2=(int)(t>>24L); \
+       s1&=0xfc; \
+       s2&=0xfc; \
+       LL^= *(const DES_LONG *)(des_SP+0x500+s1); \
+       LL^= *(const DES_LONG *)(des_SP+0x700+s2); }
+#endif
+#else
+#define D_ENCRYPT(LL,R,S) { \
+       LOAD_DATA_tmp(R,S,u,t,E0,E1); \
+       t=ROTATE(t,4); \
+       LL^= \
+       *(const DES_LONG *)(des_SP      +((u     )&0xfc))^ \
+       *(const DES_LONG *)(des_SP+0x200+((u>> 8L)&0xfc))^ \
+       *(const DES_LONG *)(des_SP+0x400+((u>>16L)&0xfc))^ \
+       *(const DES_LONG *)(des_SP+0x600+((u>>24L)&0xfc))^ \
+       *(const DES_LONG *)(des_SP+0x100+((t     )&0xfc))^ \
+       *(const DES_LONG *)(des_SP+0x300+((t>> 8L)&0xfc))^ \
+       *(const DES_LONG *)(des_SP+0x500+((t>>16L)&0xfc))^ \
+       *(const DES_LONG *)(des_SP+0x700+((t>>24L)&0xfc)); }
+#endif
+
+#else /* original version */
+
+#if defined(DES_RISC1) || defined(DES_RISC2)
+#ifdef DES_RISC1
+#define D_ENCRYPT(LL,R,S) {\
+       unsigned int u1,u2,u3; \
+       LOAD_DATA(R,S,u,t,E0,E1,u1); \
+       u>>=2L; \
+       t=ROTATE(t,6); \
+       u2=(int)u>>8L; \
+       u1=(int)u&0x3f; \
+       u2&=0x3f; \
+       u>>=16L; \
+       LL^=DES_SPtrans[0][u1]; \
+       LL^=DES_SPtrans[2][u2]; \
+       u3=(int)u>>8L; \
+       u1=(int)u&0x3f; \
+       u3&=0x3f; \
+       LL^=DES_SPtrans[4][u1]; \
+       LL^=DES_SPtrans[6][u3]; \
+       u2=(int)t>>8L; \
+       u1=(int)t&0x3f; \
+       u2&=0x3f; \
+       t>>=16L; \
+       LL^=DES_SPtrans[1][u1]; \
+       LL^=DES_SPtrans[3][u2]; \
+       u3=(int)t>>8L; \
+       u1=(int)t&0x3f; \
+       u3&=0x3f; \
+       LL^=DES_SPtrans[5][u1]; \
+       LL^=DES_SPtrans[7][u3]; }
+#endif
+#ifdef DES_RISC2
+#define D_ENCRYPT(LL,R,S) {\
+       unsigned int u1,u2,s1,s2; \
+       LOAD_DATA(R,S,u,t,E0,E1,u1); \
+       u>>=2L; \
+       t=ROTATE(t,6); \
+       u2=(int)u>>8L; \
+       u1=(int)u&0x3f; \
+       u2&=0x3f; \
+       LL^=DES_SPtrans[0][u1]; \
+       LL^=DES_SPtrans[2][u2]; \
+       s1=(int)u>>16L; \
+       s2=(int)u>>24L; \
+       s1&=0x3f; \
+       s2&=0x3f; \
+       LL^=DES_SPtrans[4][s1]; \
+       LL^=DES_SPtrans[6][s2]; \
+       u2=(int)t>>8L; \
+       u1=(int)t&0x3f; \
+       u2&=0x3f; \
+       LL^=DES_SPtrans[1][u1]; \
+       LL^=DES_SPtrans[3][u2]; \
+       s1=(int)t>>16; \
+       s2=(int)t>>24L; \
+       s1&=0x3f; \
+       s2&=0x3f; \
+       LL^=DES_SPtrans[5][s1]; \
+       LL^=DES_SPtrans[7][s2]; }
+#endif
+
+#else
+
+#define D_ENCRYPT(LL,R,S) {\
+       LOAD_DATA_tmp(R,S,u,t,E0,E1); \
+       t=ROTATE(t,4); \
+       LL^=\
+               DES_SPtrans[0][(u>> 2L)&0x3f]^ \
+               DES_SPtrans[2][(u>>10L)&0x3f]^ \
+               DES_SPtrans[4][(u>>18L)&0x3f]^ \
+               DES_SPtrans[6][(u>>26L)&0x3f]^ \
+               DES_SPtrans[1][(t>> 2L)&0x3f]^ \
+               DES_SPtrans[3][(t>>10L)&0x3f]^ \
+               DES_SPtrans[5][(t>>18L)&0x3f]^ \
+               DES_SPtrans[7][(t>>26L)&0x3f]; }
+#endif
+#endif
+
+       /* IP and FP
+        * The problem is more of a geometric problem that random bit fiddling.
+        0  1  2  3  4  5  6  7      62 54 46 38 30 22 14  6
+        8  9 10 11 12 13 14 15      60 52 44 36 28 20 12  4
+       16 17 18 19 20 21 22 23      58 50 42 34 26 18 10  2
+       24 25 26 27 28 29 30 31  to  56 48 40 32 24 16  8  0
+
+       32 33 34 35 36 37 38 39      63 55 47 39 31 23 15  7
+       40 41 42 43 44 45 46 47      61 53 45 37 29 21 13  5
+       48 49 50 51 52 53 54 55      59 51 43 35 27 19 11  3
+       56 57 58 59 60 61 62 63      57 49 41 33 25 17  9  1
+
+       The output has been subject to swaps of the form
+       0 1 -> 3 1 but the odd and even bits have been put into
+       2 3    2 0
+       different words.  The main trick is to remember that
+       t=((l>>size)^r)&(mask);
+       r^=t;
+       l^=(t<<size);
+       can be used to swap and move bits between words.
+
+       So l =  0  1  2  3  r = 16 17 18 19
+               4  5  6  7      20 21 22 23
+               8  9 10 11      24 25 26 27
+              12 13 14 15      28 29 30 31
+       becomes (for size == 2 and mask == 0x3333)
+          t =   2^16  3^17 -- --   l =  0  1 16 17  r =  2  3 18 19
+                6^20  7^21 -- --        4  5 20 21       6  7 22 23
+               10^24 11^25 -- --        8  9 24 25      10 11 24 25
+               14^28 15^29 -- --       12 13 28 29      14 15 28 29
+
+       Thanks for hints from Richard Outerbridge - he told me IP&FP
+       could be done in 15 xor, 10 shifts and 5 ands.
+       When I finally started to think of the problem in 2D
+       I first got ~42 operations without xors.  When I remembered
+       how to use xors :-) I got it to its final state.
+       */
+#define PERM_OP(a,b,t,n,m) ((t)=((((a)>>(n))^(b))&(m)),\
+       (b)^=(t),\
+       (a)^=((t)<<(n)))
+
+#define IP(l,r) \
+       { \
+       register DES_LONG tt; \
+       PERM_OP(r,l,tt, 4,0x0f0f0f0fL); \
+       PERM_OP(l,r,tt,16,0x0000ffffL); \
+       PERM_OP(r,l,tt, 2,0x33333333L); \
+       PERM_OP(l,r,tt, 8,0x00ff00ffL); \
+       PERM_OP(r,l,tt, 1,0x55555555L); \
+       }
+
+#define FP(l,r) \
+       { \
+       register DES_LONG tt; \
+       PERM_OP(l,r,tt, 1,0x55555555L); \
+       PERM_OP(r,l,tt, 8,0x00ff00ffL); \
+       PERM_OP(l,r,tt, 2,0x33333333L); \
+       PERM_OP(r,l,tt,16,0x0000ffffL); \
+       PERM_OP(l,r,tt, 4,0x0f0f0f0fL); \
+       }
+
+OPENSSL_EXTERN const DES_LONG DES_SPtrans[8][64];
+
+void fcrypt_body(DES_LONG *out,DES_key_schedule *ks,
+                DES_LONG Eswap0, DES_LONG Eswap1);
+#endif
diff --git a/fips/des/fips_desmovs.c b/fips/des/fips_desmovs.c
new file mode 100644 (file)
index 0000000..77ee4f5
--- /dev/null
@@ -0,0 +1,659 @@
+/*---------------------------------------------
+  NIST DES Modes of Operation Validation System
+  Test Program
+
+  Based on the AES Validation Suite, which was:
+  Copyright
+  V-ONE Corporation
+  20250 Century Blvd, Suite 300
+  Germantown, MD 20874
+  U.S.A.
+  ----------------------------------------------*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <errno.h>
+#include <assert.h>
+
+#include <openssl/des.h>
+#include <openssl/evp.h>
+#include <openssl/fips.h>
+#include <openssl/err.h>
+
+//#define AES_BLOCK_SIZE 16
+
+#define VERBOSE 0
+
+/*-----------------------------------------------*/
+
+int DESTest(EVP_CIPHER_CTX *ctx,
+           char *amode, int akeysz, unsigned char *aKey, 
+           unsigned char *iVec, 
+           int dir,  /* 0 = decrypt, 1 = encrypt */
+           unsigned char *plaintext, unsigned char *ciphertext, int len)
+    {
+    const EVP_CIPHER *cipher = NULL;
+    int ret = 1;
+    int kt = 0;
+
+    if (ctx)
+       memset(ctx, 0, sizeof(EVP_CIPHER_CTX));
+
+    if (strcasecmp(amode, "CBC") == 0)
+       kt = 1000;
+    else if (strcasecmp(amode, "ECB") == 0)
+       kt = 2000;
+    else if (strcasecmp(amode, "CFB64") == 0)
+       kt = 3000;
+    else if (strncasecmp(amode, "OFB", 3) == 0)
+       kt = 4000;
+    else if(!strcasecmp(amode,"CFB1"))
+       kt=5000;
+    else if(!strcasecmp(amode,"CFB8"))
+       kt=6000;
+    else
+       {
+       printf("Unknown mode: %s\n", amode);
+       exit(1);
+       }
+    if (ret)
+       {
+       if (akeysz != 64)
+           {
+           printf("Invalid key size: %d\n", akeysz);
+           ret = 0;
+           }
+       else
+           {
+           kt += akeysz;
+           switch (kt)
+               {
+           case 1064:
+               cipher=EVP_des_cbc();
+               break;
+           case 2064:
+               cipher=EVP_des_ecb();
+               break;
+           case 3064:
+               cipher=EVP_des_cfb64();
+               break;
+           case 4064:
+               cipher=EVP_des_ofb();
+               break;
+           case 5064:
+               cipher=EVP_des_cfb1();
+               break;
+           case 6064:
+               cipher=EVP_des_cfb8();
+               break;
+           default:
+               printf("Didn't handle mode %d\n",kt);
+               exit(1);
+               }
+           if (dir)
+               { /* encrypt */
+               if(!EVP_CipherInit(ctx, cipher, aKey, iVec, AES_ENCRYPT))
+                   {
+                   ERR_print_errors_fp(stderr);
+                   exit(1);
+                   }
+                 
+               EVP_Cipher(ctx, ciphertext, (unsigned char*)plaintext, len);
+               }
+           else
+               { /* decrypt */
+               if(!EVP_CipherInit(ctx, cipher, aKey, iVec, AES_DECRYPT))
+                   {
+                   ERR_print_errors_fp(stderr);
+                   exit(1);
+                   }
+               EVP_Cipher(ctx, (unsigned char*)plaintext, ciphertext, len);
+               }
+           }
+       }
+    return ret;
+    }
+
+/*-----------------------------------------------*/
+
+int hex2bin(char *in, int len, unsigned char *out)
+    {
+    int n1, n2;
+    unsigned char ch;
+
+    for (n1 = 0, n2 = 0; n1 < len; )
+       { /* first byte */
+       if ((in[n1] >= '0') && (in[n1] <= '9'))
+           ch = in[n1++] - '0';
+       else if ((in[n1] >= 'A') && (in[n1] <= 'F'))
+           ch = in[n1++] - 'A' + 10;
+       else if ((in[n1] >= 'a') && (in[n1] <= 'f'))
+           ch = in[n1++] - 'a' + 10;
+       else
+           return -1;
+       if(len == 1)
+           {
+           out[n2++]=ch;
+           break;
+           }
+       out[n2] = ch << 4;
+       /* second byte */
+       if ((in[n1] >= '0') && (in[n1] <= '9'))
+           ch = in[n1++] - '0';
+       else if ((in[n1] >= 'A') && (in[n1] <= 'F'))
+           ch = in[n1++] - 'A' + 10;
+       else if ((in[n1] >= 'a') && (in[n1] <= 'f'))
+           ch = in[n1++] - 'a' + 10;
+       else
+           return -1;
+       out[n2++] |= ch;
+       }
+    return n2;
+    }
+
+/*-----------------------------------------------*/
+
+int bin2hex(unsigned char *in, int len, char *out)
+    {
+    int n1, n2;
+    unsigned char ch;
+
+    for (n1 = 0, n2 = 0; n1 < len; ++n1)
+       {
+       /* first nibble */
+       ch = in[n1] >> 4;
+       if (ch <= 0x09)
+           out[n2++] = ch + '0';
+       else
+           out[n2++] = ch - 10 + 'a';
+       /* second nibble */
+       ch = in[n1] & 0x0f;
+       if (ch <= 0x09)
+           out[n2++] = ch + '0';
+       else
+           out[n2++] = ch - 10 + 'a';
+       }
+    return n2;
+    }
+
+/* NB: this return the number of _bits_ read */
+int bint2bin(const char *in, int len, unsigned char *out)
+    {
+    int n;
+
+    memset(out,0,len);
+    for(n=0 ; n < len ; ++n)
+       if(in[n] == '1')
+           out[n/8]|=(0x80 >> (n%8));
+    return len;
+    }
+
+int bin2bint(const unsigned char *in,int len,char *out)
+    {
+    int n;
+
+    for(n=0 ; n < len ; ++n)
+       out[n]=(in[n/8]&(0x80 >> (n%8))) ? '1' : '0';
+    return n;
+    }
+
+/*-----------------------------------------------*/
+
+void PrintValue(char *tag, unsigned char *val, int len)
+    {
+#if VERBOSE
+    char obuf[2048];
+    int olen;
+    olen = bin2hex(val, len, obuf);
+    printf("%s = %.*s\n", tag, olen, obuf);
+#endif
+    }
+
+void OutputValue(char *tag, unsigned char *val, int len, FILE *rfp,int bitmode)
+    {
+    char obuf[2048];
+    int olen;
+
+    if(bitmode)
+       olen=bin2bint(val,len,obuf);
+    else
+       olen=bin2hex(val,len,obuf);
+
+    fprintf(rfp, "%s = %.*s\n", tag, olen, obuf);
+#if VERBOSE
+    printf("%s = %.*s\n", tag, olen, obuf);
+#endif
+    }
+
+/*-----------------------------------------------*/
+char *t_tag[2] = {"PLAINTEXT", "CIPHERTEXT"};
+char *t_mode[6] = {"CBC","ECB","OFB","CFB1","CFB8","CFB64"};
+enum Mode {CBC, ECB, OFB, CFB1, CFB8, CFB128};
+enum XCrypt {XDECRYPT, XENCRYPT};
+
+void do_mct(char *amode, 
+           int akeysz, unsigned char *akey,unsigned char *ivec,
+           int dir, unsigned char *text, int len,
+           FILE *rfp)
+    {
+    int i,imode;
+
+    for (imode=0 ; imode < 6 ; ++imode)
+       if(!strcmp(amode,t_mode[imode]))
+           break;
+    if (imode == 6)
+       { 
+       printf("Unrecognized mode: %s\n", amode);
+       exit(1);
+       }
+
+    for(i=0 ; i < 400 ; ++i)
+       {
+       int j;
+       int n;
+       EVP_CIPHER_CTX ctx;
+
+       fprintf(rfp,"\nCOUNT = %d\n",i);
+       OutputValue("KEY",akey,akeysz/8,rfp,0);
+       if(imode != ECB)
+           OutputValue("IV",ivec,8,rfp,0);
+       OutputValue(t_tag[dir^1],text,len,rfp,imode == CFB1);
+
+
+       for(j=0 ; j < 10000 ; ++j)
+           {
+           unsigned char in[8];
+
+           if(imode == ECB)
+               memcpy(in,text,8);
+           else
+               for(n=0 ; n < 8 ; ++n)
+                   in[n]=text[n]^ivec[n];
+               
+           if(j == 0)
+               DESTest(&ctx,amode,akeysz,akey,ivec,dir,text,text,len);
+           else
+               EVP_Cipher(&ctx,text,text,len);
+           if(imode != ECB)
+               {
+               unsigned char tmp[8];
+
+               memcpy(tmp,text,8);
+               memcpy(text,ivec,8);
+               memcpy(ivec,tmp,8);
+               }
+           }
+       OutputValue(t_tag[dir],ivec,len,rfp,imode == CFB1);
+       for(n=0 ; n < 8 ; ++n)
+           akey[n]^=ivec[n];
+       }
+    }
+    
+int proc_file(char *rqfile)
+    {
+    char afn[256], rfn[256];
+    FILE *afp = NULL, *rfp = NULL;
+    char ibuf[2048];
+    int ilen, len, ret = 0;
+    char algo[8] = "";
+    char amode[8] = "";
+    char atest[100] = "";
+    int akeysz=0;
+    unsigned char iVec[20], aKey[40];
+    int dir = -1, err = 0, step = 0;
+    unsigned char plaintext[2048];
+    unsigned char ciphertext[2048];
+    char *rp;
+    EVP_CIPHER_CTX ctx;
+
+    if (!rqfile || !(*rqfile))
+       {
+       printf("No req file\n");
+       return -1;
+       }
+    strcpy(afn, rqfile);
+
+    if ((afp = fopen(afn, "r")) == NULL)
+       {
+       printf("Cannot open file: %s, %s\n", 
+              afn, strerror(errno));
+       return -1;
+       }
+    strcpy(rfn,afn);
+    rp=strstr(rfn,"req/");
+    assert(rp);
+    memcpy(rp,"rsp",3);
+    rp = strstr(rfn, ".req");
+    memcpy(rp, ".rsp", 4);
+    if ((rfp = fopen(rfn, "w")) == NULL)
+       {
+       printf("Cannot open file: %s, %s\n", 
+              rfn, strerror(errno));
+       fclose(afp);
+       afp = NULL;
+       return -1;
+       }
+    while (!err && (fgets(ibuf, sizeof(ibuf), afp)) != NULL)
+       {
+       ilen = strlen(ibuf);
+       //      printf("step=%d ibuf=%s",step,ibuf);
+       switch (step)
+           {
+       case 0:  /* read preamble */
+           if (ibuf[0] == '\n')
+               { /* end of preamble */
+               if ((*algo == '\0') ||
+                   (*amode == '\0') ||
+                   (akeysz == 0))
+                   {
+                   printf("Missing Algorithm, Mode or KeySize (%s/%s/%d)\n",
+                          algo,amode,akeysz);
+                   err = 1;
+                   }
+               else
+                   {
+                   fputs(ibuf, rfp);
+                   ++ step;
+                   }
+               }
+           else if (ibuf[0] != '#')
+               {
+               printf("Invalid preamble item: %s\n", ibuf);
+               err = 1;
+               }
+           else
+               { /* process preamble */
+               char *xp, *pp = ibuf+2;
+               int n;
+               if (akeysz)
+                   { /* insert current time & date */
+                   time_t rtim = time(0);
+                   fprintf(rfp, "# %s", ctime(&rtim));
+                   }
+               else
+                   {
+                   fputs(ibuf, rfp);
+                   if(!strncmp(pp,"INVERSE ",8) || !strncmp(pp,"DES ",4)
+                      || !strncmp(pp,"PERMUTATION ",12)
+                      || !strncmp(pp,"SUBSTITUTION ",13)
+                      || !strncmp(pp,"VARIABLE ",9))
+                       {
+                       strcpy(algo, "DES");
+                       /* get test type */
+                       if(!strncmp(pp,"DES ",4))
+                           pp+=4;
+                       xp = strchr(pp, ' ');
+                       n = xp-pp;
+                       strncpy(atest, pp, n);
+                       atest[n] = '\0';
+                       /* get mode */
+                       xp = strrchr(pp, ' '); /* get mode" */
+                       n = strlen(xp+1)-1;
+                       strncpy(amode, xp+1, n);
+                       amode[n] = '\0';
+                       /* amode[3] = '\0'; */
+                       printf("Test = %s, Mode = %s\n", atest, amode);
+                       }
+                   else if(!strncmp(pp,"State :",7))
+                       akeysz=64;
+                   }
+               }
+           break;
+
+       case 1:  /* [ENCRYPT] | [DECRYPT] */
+           if(ibuf[0] == '\n')
+               break;
+           if (ibuf[0] == '[')
+               {
+               fputs(ibuf, rfp);
+               ++step;
+               if (strncasecmp(ibuf, "[ENCRYPT]", 9) == 0)
+                   dir = 1;
+               else if (strncasecmp(ibuf, "[DECRYPT]", 9) == 0)
+                   dir = 0;
+               else
+                   {
+                   printf("Invalid keyword: %s\n", ibuf);
+                   err = 1;
+                   }
+               break;
+               }
+           else if (dir == -1)
+               {
+               err = 1;
+               printf("Missing ENCRYPT/DECRYPT keyword\n");
+               break;
+               }
+           else 
+               step = 2;
+
+       case 2: /* KEY = xxxx */
+           fputs(ibuf, rfp);
+           if(*ibuf == '\n')
+               break;
+           if(!strncasecmp(ibuf,"COUNT = ",8))
+               break;
+         
+           if (strncasecmp(ibuf, "KEY = ", 6) != 0)
+               {
+               printf("Missing KEY\n");
+               err = 1;
+               }
+           else
+               {
+               len = hex2bin((char*)ibuf+6, strlen(ibuf+6)-1, aKey);
+               if (len < 0)
+                   {
+                   printf("Invalid KEY\n");
+                   err =1;
+                   break;
+                   }
+               PrintValue("KEY", aKey, len);
+               if (strcmp(amode, "ECB") == 0)
+                   {
+                   memset(iVec, 0, sizeof(iVec));
+                   step = (dir)? 4: 5;  /* no ivec for ECB */
+                   }
+               else
+                   ++step;
+               }
+           break;
+
+       case 3: /* IV = xxxx */
+           fputs(ibuf, rfp);
+           if (strncasecmp(ibuf, "IV = ", 5) != 0)
+               {
+               printf("Missing IV\n");
+               err = 1;
+               }
+           else
+               {
+               len = hex2bin((char*)ibuf+5, strlen(ibuf+5)-1, iVec);
+               if (len < 0)
+                   {
+                   printf("Invalid IV\n");
+                   err =1;
+                   break;
+                   }
+               PrintValue("IV", iVec, len);
+               step = (dir)? 4: 5;
+               }
+           break;
+
+       case 4: /* PLAINTEXT = xxxx */
+           fputs(ibuf, rfp);
+           if (strncasecmp(ibuf, "PLAINTEXT = ", 12) != 0)
+               {
+               printf("Missing PLAINTEXT\n");
+               err = 1;
+               }
+           else
+               {
+               int nn = strlen(ibuf+12);
+               if(!strcmp(amode,"CFB1"))
+                   len=bint2bin(ibuf+12,nn-1,plaintext);
+               else
+                   len=hex2bin(ibuf+12, nn-1,plaintext);
+               if (len < 0)
+                   {
+                   printf("Invalid PLAINTEXT: %s", ibuf+12);
+                   err =1;
+                   break;
+                   }
+               if (len >= sizeof(plaintext))
+                   {
+                   printf("Buffer overflow\n");
+                   }
+               PrintValue("PLAINTEXT", (unsigned char*)plaintext, len);
+               if (strcmp(atest, "Monte") == 0)  /* Monte Carlo Test */
+                   {
+                   do_mct(amode,akeysz,aKey,iVec,dir,plaintext,len,rfp);
+                   }
+               else
+                   {
+                   ret = DESTest(&ctx, amode, akeysz, aKey, iVec, 
+                                 dir,  /* 0 = decrypt, 1 = encrypt */
+                                 plaintext, ciphertext, len);
+                   OutputValue("CIPHERTEXT",ciphertext,len,rfp,
+                               !strcmp(amode,"CFB1"));
+                   }
+               step = 6;
+               }
+           break;
+
+       case 5: /* CIPHERTEXT = xxxx */
+           fputs(ibuf, rfp);
+           if (strncasecmp(ibuf, "CIPHERTEXT = ", 13) != 0)
+               {
+               printf("Missing KEY\n");
+               err = 1;
+               }
+           else
+               {
+               if(!strcmp(amode,"CFB1"))
+                   len=bint2bin(ibuf+13,strlen(ibuf+13)-1,ciphertext);
+               else
+                   len = hex2bin(ibuf+13,strlen(ibuf+13)-1,ciphertext);
+               if (len < 0)
+                   {
+                   printf("Invalid CIPHERTEXT\n");
+                   err =1;
+                   break;
+                   }
+               
+               PrintValue("CIPHERTEXT", ciphertext, len);
+               if (strcmp(atest, "Monte") == 0)  /* Monte Carlo Test */
+                   {
+                   do_mct(amode, akeysz, aKey, iVec, 
+                          dir, ciphertext, len, rfp);
+                   }
+               else
+                   {
+                   ret = DESTest(&ctx, amode, akeysz, aKey, iVec, 
+                                 dir,  /* 0 = decrypt, 1 = encrypt */
+                                 plaintext, ciphertext, len);
+                   OutputValue("PLAINTEXT",(unsigned char *)plaintext,len,rfp,
+                               !strcmp(amode,"CFB1"));
+                   }
+               step = 6;
+               }
+           break;
+
+       case 6:
+           if (ibuf[0] != '\n')
+               {
+               err = 1;
+               printf("Missing terminator\n");
+               }
+           else if (strcmp(atest, "MCT") != 0)
+               { /* MCT already added terminating nl */
+               fputs(ibuf, rfp);
+               }
+           step = 1;
+           break;
+           }
+       }
+    if (rfp)
+       fclose(rfp);
+    if (afp)
+       fclose(afp);
+    return err;
+    }
+
+/*--------------------------------------------------
+  Processes either a single file or 
+  a set of files whose names are passed in a file.
+  A single file is specified as:
+    aes_test -f xxx.req
+  A set of files is specified as:
+    aes_test -d xxxxx.xxx
+  The default is: -d req.txt
+--------------------------------------------------*/
+int main(int argc, char **argv)
+    {
+    char *rqlist = "req.txt";
+    FILE *fp = NULL;
+    char fn[250] = "", rfn[256] = "";
+    int f_opt = 0, d_opt = 1;
+
+#ifdef FIPS
+    FIPS_mode_set(1);
+#endif
+    ERR_load_crypto_strings();
+    if (argc > 1)
+       {
+       if (strcasecmp(argv[1], "-d") == 0)
+           {
+           d_opt = 1;
+           }
+       else if (strcasecmp(argv[1], "-f") == 0)
+           {
+           f_opt = 1;
+           d_opt = 0;
+           }
+       else
+           {
+           printf("Invalid parameter: %s\n", argv[1]);
+           return 0;
+           }
+       if (argc < 3)
+           {
+           printf("Missing parameter\n");
+           return 0;
+           }
+       if (d_opt)
+           rqlist = argv[2];
+       else
+           strcpy(fn, argv[2]);
+       }
+    if (d_opt)
+       { /* list of files (directory) */
+       if (!(fp = fopen(rqlist, "r")))
+           {
+           printf("Cannot open req list file\n");
+           return -1;
+           }
+       while (fgets(fn, sizeof(fn), fp))
+           {
+           strtok(fn, "\r\n");
+           strcpy(rfn, fn);
+           printf("Processing: %s\n", rfn);
+           if (proc_file(rfn))
+               {
+               printf(">>> Processing failed for: %s <<<\n", rfn);
+               exit(1);
+               }
+           }
+       fclose(fp);
+       }
+    else /* single file */
+       {
+       printf("Processing: %s\n", fn);
+       if (proc_file(fn))
+           {
+           printf(">>> Processing failed for: %s <<<\n", fn);
+           }
+       }
+    return 0;
+    }
index 48c66d36f32541c32b811b6cdf15c6f18acf5c25..d1bdd65684384aa98a6303bd76644bedffb6fdde 100755 (executable)
@@ -19,3 +19,6 @@ $S fips_aes_core.c fips_aes_locl.h > fingerprint.sha1
 
 cd ../dsa
 $S fips_dsa_ossl.c > fingerprint.sha1
+
+cd ../des
+$S fips_des_enc.c fips_des_locl.h > fingerprint.sha1
diff --git a/fips/testvectors/des/req/CBCMMT.req b/fips/testvectors/des/req/CBCMMT.req
new file mode 100644 (file)
index 0000000..2492538
--- /dev/null
@@ -0,0 +1,109 @@
+# CAVS 2.0
+# Config Info for : "OpenSSL_DES"
+# DES Multi Block Message Test for CBC
+# State : Encrypt and Decrypt
+# Tue Jun 24 03:12:12 PM
+
+[ENCRYPT]
+
+COUNT = 0
+KEY = 0beaf8ab2f4ab529
+IV = 03c605dd0725e975
+PLAINTEXT = 20979b8b3577e339
+
+COUNT = 1
+KEY = 1c232f1acd4562f1
+IV = 553e35e8fb6e859e
+PLAINTEXT = cfd02cea6b26eca97a5e595ea1566d73
+
+COUNT = 2
+KEY = 7f6d13c7e645a210
+IV = 8ec669cf1e5d0bf0
+PLAINTEXT = 93b764fe7b95414457331504a4e66ceb686d9c49c632f872
+
+COUNT = 3
+KEY = 4a2af24c5d49e5e6
+IV = ff82e4ab83a89e3c
+PLAINTEXT = 7a6f9680531937f81880221c3f919bee51048b849b3ed30c2775e00dea157ff0
+
+COUNT = 4
+KEY = 678f6d832ca15d91
+IV = f70148af6f43c2c3
+PLAINTEXT = 3e8712ebe3a2e06aee2991c3dcb52b777bec8e744e53fb8c3164d22640e1a033f66758649246e19a
+
+COUNT = 5
+KEY = 3e890725f8165e58
+IV = f11533e98899078d
+PLAINTEXT = 4935cde335f15a34941b4287bc83a6c7f71c3d20d7ff481bcab3c80beeaceea92711d3fb6ec3697a6c9ab27347f22fae
+
+COUNT = 6
+KEY = f219e04a6ed068dc
+IV = 355e7c81c0ce3579
+PLAINTEXT = 09c3833050abd74cf11fb2583753454f7c485e5d8ea0e74d58b1af45bed86eb1c80f037d03c2ff8724df6754ef2db60257de227de76720f6
+
+COUNT = 7
+KEY = c761f875dff10170
+IV = 18eb8ffaa50e0b1d
+PLAINTEXT = ccf1536967e08af76434ecf924de76073345bef170e135f56e05a9351bfc0e689f587dcf87877d6a23a7826d2c9bb3eeaa5ff0e015981444bb70779e61a0b8a6
+
+COUNT = 8
+KEY = f13802e9e39d6751
+IV = 83d5fd1f1784ed94
+PLAINTEXT = 9ad0d1d4e4da365a78f1b9b5f9f93f8a8762086494a92a57f3223ee432f4591d2a653e09d458d14a5f13cffd7f46bde207491ebdbaa6e9fc5ed73a9913514842e3c197b89a956f75
+
+COUNT = 9
+KEY = 325bd50161857502
+IV = 8d5a47763874e9fd
+PLAINTEXT = 23e6898ea71222aec676eab5d03a3d219edc6e87bec70cccd128649830fd4708d66e0ea37a61da90fb492106013e6603e2534741c224bd66ffaea07acc64699f1b7f3cfcc19526fbd46da3b4581263a9
+
+[DECRYPT]
+
+COUNT = 0
+KEY = 377679d67f734389
+IV = abb7da496aeb27e8
+CIPHERTEXT = d6652f60526035a4
+
+COUNT = 1
+KEY = 57bf7308d6ad98fb
+IV = cc62620a4c47c7e1
+CIPHERTEXT = 97c29b6f8a657cae625d5cfcf572f103
+
+COUNT = 2
+KEY = 1a4cdf9d3d3d589b
+IV = 681a7773f6fd6429
+CIPHERTEXT = bb7c53b06399f41977a920c3367fac39c5388fa8757045a8
+
+COUNT = 3
+KEY = 3d323e80fb7926d6
+IV = 118f716d873f7177
+CIPHERTEXT = e9d743cb7c7c702be5e493f43b14aaf59a0bcbc5d3a471c062bd144ca199fc61
+
+COUNT = 4
+KEY = 924c37dfab239d40
+IV = 8ba9c5feda1c80cb
+CIPHERTEXT = 115786a536e5204834790309f8533b4ea22c6db89eca1b5610d3241876df8a8689d078b16366846a
+
+COUNT = 5
+KEY = 017a0b0ed051e68f
+IV = a10146ba42f337d0
+CIPHERTEXT = c59a1c49994facceac736668bfd6ae81e647e38432aa2c928c4b7577e472b4dc8c3871bdde98851e25c922fabbcb137d
+
+COUNT = 6
+KEY = fdfdc702b6c8ae9b
+IV = 05acc5c1a84c83e6
+CIPHERTEXT = ab5739136f51bc78b65562b3c820438629b1b40962fd23fc04e5435beb656a33c00e37b5c1b67788c56e49647ab481ddf2ea4b7c5e071114
+
+COUNT = 7
+KEY = ae7f64e34a205e9b
+IV = 976c8ff738376aed
+CIPHERTEXT = fef2f92cf0fd7bffa87b470596f557a39995b8fa5d2d860ee77a18286eab78796d1d16fff669bdad49a0c5c6a5d58b8a5edc1e1430523b83d3dd7c58cfb5cc1f
+
+COUNT = 8
+KEY = c785c77a13a1a194
+IV = ec8d66d9fcd4763c
+CIPHERTEXT = 51436ce3d66a1bae31663e3cdf925856959ee6d7d5d7920ec0a8a9642b61cf3ff438f226968e7c25fc73cd73936be852a3726c37df3fc72b3bc6a671fd00af6917ee73b4b4dc9e99
+
+COUNT = 9
+KEY = 9d6bfe7fba859454
+IV = b694eb44897b59d3
+CIPHERTEXT = 3f01a99616f2b70f045a280295a684682eb8f751f03b52d6df34534f44da26c650a82bab01b0fac84a32a5786e6d3d14adb597af22c64f03ec580eaa8cf409928e05caab6c3233e2afebc05357420cba
diff --git a/fips/testvectors/des/req/CBCMonte.req b/fips/testvectors/des/req/CBCMonte.req
new file mode 100644 (file)
index 0000000..5600d13
--- /dev/null
@@ -0,0 +1,17 @@
+# CAVS 2.0
+# Config Info for : "OpenSSL_DES"
+# DES Monte Carlo (Modes) Test for CBC
+# State : Encrypt and Decrypt
+# Tue Jun 24 03:12:12 PM
+
+[ENCRYPT]
+KEY = 98a275e5da515da2
+IV = f58d8cada3a4248a
+PLAINTEXT = 96d1169b840e8fdb
+
+
+[DECRYPT]
+KEY = fde0d679bc5d67fd
+IV = 753ce88d8bfcdc54
+CIPHERTEXT = cacec93587bec613
+
diff --git a/fips/testvectors/des/req/CBCinvperm.req b/fips/testvectors/des/req/CBCinvperm.req
new file mode 100644 (file)
index 0000000..7020e57
--- /dev/null
@@ -0,0 +1,648 @@
+# CAVS 2.0
+# Config Info for : "OpenSSL_DES"
+# INVERSE PERMUTATION - KAT for CBC
+# State : Encrypt and Decrypt
+# Tue Jun 24 03:11:51 PM
+
+[ENCRYPT]
+COUNT = 0
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 95f8a5e5dd31d900
+
+COUNT = 1
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = dd7f121ca5015619
+
+COUNT = 2
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 2e8653104f3834ea
+
+COUNT = 3
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 4bd388ff6cd81d4f
+
+COUNT = 4
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 20b9e767b2fb1456
+
+COUNT = 5
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 55579380d77138ef
+
+COUNT = 6
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 6cc5defaaf04512f
+
+COUNT = 7
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0d9f279ba5d87260
+
+COUNT = 8
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = d9031b0271bd5a0a
+
+COUNT = 9
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 424250b37c3dd951
+
+COUNT = 10
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = b8061b7ecd9a21e5
+
+COUNT = 11
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = f15d0f286b65bd28
+
+COUNT = 12
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = add0cc8d6e5deba1
+
+COUNT = 13
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = e6d5f82752ad63d1
+
+COUNT = 14
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = ecbfe3bd3f591a5e
+
+COUNT = 15
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = f356834379d165cd
+
+COUNT = 16
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 2b9f982f20037fa9
+
+COUNT = 17
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 889de068a16f0be6
+
+COUNT = 18
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = e19e275d846a1298
+
+COUNT = 19
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 329a8ed523d71aec
+
+COUNT = 20
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = e7fce22557d23c97
+
+COUNT = 21
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 12a9f5817ff2d65d
+
+COUNT = 22
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = a484c3ad38dc9c19
+
+COUNT = 23
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = fbe00a8a1ef8ad72
+
+COUNT = 24
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 750d079407521363
+
+COUNT = 25
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 64feed9c724c2faf
+
+COUNT = 26
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = f02b263b328e2b60
+
+COUNT = 27
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 9d64555a9a10b852
+
+COUNT = 28
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = d106ff0bed5255d7
+
+COUNT = 29
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = e1652c6b138c64a5
+
+COUNT = 30
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = e428581186ec8f46
+
+COUNT = 31
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = aeb5f5ede22d1a36
+
+COUNT = 32
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = e943d7568aec0c5c
+
+COUNT = 33
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = df98c8276f54b04b
+
+COUNT = 34
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = b160e4680f6c696f
+
+COUNT = 35
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = fa0752b07d9c4ab8
+
+COUNT = 36
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = ca3a2b036dbc8502
+
+COUNT = 37
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 5e0905517bb59bcf
+
+COUNT = 38
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 814eeb3b91d90726
+
+COUNT = 39
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 4d49db1532919c9f
+
+COUNT = 40
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 25eb5fc3f8cf0621
+
+COUNT = 41
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = ab6a20c0620d1c6f
+
+COUNT = 42
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 79e90dbc98f92cca
+
+COUNT = 43
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 866ecedd8072bb0e
+
+COUNT = 44
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 8b54536f2f3e64a8
+
+COUNT = 45
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = ea51d3975595b86b
+
+COUNT = 46
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = caffc6ac4542de31
+
+COUNT = 47
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 8dd45a2ddf90796c
+
+COUNT = 48
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 1029d55e880ec2d0
+
+COUNT = 49
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 5d86cb23639dbea9
+
+COUNT = 50
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 1d1ca853ae7c0c5f
+
+COUNT = 51
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = ce332329248f3228
+
+COUNT = 52
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 8405d1abe24fb942
+
+COUNT = 53
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = e643d78090ca4207
+
+COUNT = 54
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 48221b9937748a23
+
+COUNT = 55
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = dd7c0bbd61fafd54
+
+COUNT = 56
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 2fbc291a570db5c4
+
+COUNT = 57
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = e07c30d7e4e26e12
+
+COUNT = 58
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0953e2258e8e90a1
+
+COUNT = 59
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 5b711bc4ceebf2ee
+
+COUNT = 60
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = cc083f1e6d9e85f6
+
+COUNT = 61
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = d2fd8867d50d2dfe
+
+COUNT = 62
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 06e7ea22ce92708f
+
+COUNT = 63
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 166b40b44aba4bd6
+
+
+[DECRYPT]
+COUNT = 0
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 8000000000000000
+
+COUNT = 1
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 4000000000000000
+
+COUNT = 2
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 2000000000000000
+
+COUNT = 3
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 1000000000000000
+
+COUNT = 4
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0800000000000000
+
+COUNT = 5
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0400000000000000
+
+COUNT = 6
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0200000000000000
+
+COUNT = 7
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0100000000000000
+
+COUNT = 8
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0080000000000000
+
+COUNT = 9
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0040000000000000
+
+COUNT = 10
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0020000000000000
+
+COUNT = 11
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0010000000000000
+
+COUNT = 12
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0008000000000000
+
+COUNT = 13
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0004000000000000
+
+COUNT = 14
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0002000000000000
+
+COUNT = 15
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0001000000000000
+
+COUNT = 16
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000800000000000
+
+COUNT = 17
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000400000000000
+
+COUNT = 18
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000200000000000
+
+COUNT = 19
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000100000000000
+
+COUNT = 20
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000080000000000
+
+COUNT = 21
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000040000000000
+
+COUNT = 22
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000020000000000
+
+COUNT = 23
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000010000000000
+
+COUNT = 24
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000008000000000
+
+COUNT = 25
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000004000000000
+
+COUNT = 26
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000002000000000
+
+COUNT = 27
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000001000000000
+
+COUNT = 28
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000800000000
+
+COUNT = 29
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000400000000
+
+COUNT = 30
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000200000000
+
+COUNT = 31
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000100000000
+
+COUNT = 32
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000080000000
+
+COUNT = 33
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000040000000
+
+COUNT = 34
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000020000000
+
+COUNT = 35
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000010000000
+
+COUNT = 36
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000008000000
+
+COUNT = 37
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000004000000
+
+COUNT = 38
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000002000000
+
+COUNT = 39
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000001000000
+
+COUNT = 40
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000800000
+
+COUNT = 41
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000400000
+
+COUNT = 42
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000200000
+
+COUNT = 43
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000100000
+
+COUNT = 44
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000080000
+
+COUNT = 45
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000040000
+
+COUNT = 46
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000020000
+
+COUNT = 47
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000010000
+
+COUNT = 48
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000008000
+
+COUNT = 49
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000004000
+
+COUNT = 50
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000002000
+
+COUNT = 51
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000001000
+
+COUNT = 52
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000800
+
+COUNT = 53
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000400
+
+COUNT = 54
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000200
+
+COUNT = 55
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000100
+
+COUNT = 56
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000080
+
+COUNT = 57
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000040
+
+COUNT = 58
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000020
+
+COUNT = 59
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000010
+
+COUNT = 60
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000008
+
+COUNT = 61
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000004
+
+COUNT = 62
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000002
+
+COUNT = 63
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000001
diff --git a/fips/testvectors/des/req/CBCpermop.req b/fips/testvectors/des/req/CBCpermop.req
new file mode 100644 (file)
index 0000000..7bef2f9
--- /dev/null
@@ -0,0 +1,328 @@
+# CAVS 2.0
+# Config Info for : "OpenSSL_DES"
+# PERMUTATION OPERATION - KAT for CBC
+# State : Encrypt and Decrypt
+# Tue Jun 24 03:11:51 PM
+
+[ENCRYPT]
+COUNT = 0
+KEY = 1046913489980131
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 1
+KEY = 1007103489988020
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 2
+KEY = 10071034c8980120
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 3
+KEY = 1046103489988020
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 4
+KEY = 1086911519190101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 5
+KEY = 1086911519580101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 6
+KEY = 5107b01519580101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 7
+KEY = 1007b01519190101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 8
+KEY = 3107915498080101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 9
+KEY = 3107919498080101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 10
+KEY = 10079115b9080140
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 11
+KEY = 3107911598080140
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 12
+KEY = 1007d01589980101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 13
+KEY = 9107911589980101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 14
+KEY = 9107d01589190101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 15
+KEY = 1007d01598980120
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 16
+KEY = 1007940498190101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 17
+KEY = 0107910491190401
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 18
+KEY = 0107910491190101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 19
+KEY = 0107940491190401
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 20
+KEY = 19079210981a0101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 21
+KEY = 1007911998190801
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 22
+KEY = 10079119981a0801
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 23
+KEY = 1007921098190101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 24
+KEY = 100791159819010b
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 25
+KEY = 1004801598190101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 26
+KEY = 1004801598190102
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 27
+KEY = 1004801598190108
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 28
+KEY = 1002911598100104
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 29
+KEY = 1002911598190104
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 30
+KEY = 1002911598100201
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 31
+KEY = 1002911698100101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+
+[DECRYPT]
+COUNT = 0
+KEY = 1046913489980131
+IV = 0000000000000000
+CIPHERTEXT = 88d55e54f54c97b4
+
+COUNT = 1
+KEY = 1007103489988020
+IV = 0000000000000000
+CIPHERTEXT = 0c0cc00c83ea48fd
+
+COUNT = 2
+KEY = 10071034c8980120
+IV = 0000000000000000
+CIPHERTEXT = 83bc8ef3a6570183
+
+COUNT = 3
+KEY = 1046103489988020
+IV = 0000000000000000
+CIPHERTEXT = df725dcad94ea2e9
+
+COUNT = 4
+KEY = 1086911519190101
+IV = 0000000000000000
+CIPHERTEXT = e652b53b550be8b0
+
+COUNT = 5
+KEY = 1086911519580101
+IV = 0000000000000000
+CIPHERTEXT = af527120c485cbb0
+
+COUNT = 6
+KEY = 5107b01519580101
+IV = 0000000000000000
+CIPHERTEXT = 0f04ce393db926d5
+
+COUNT = 7
+KEY = 1007b01519190101
+IV = 0000000000000000
+CIPHERTEXT = c9f00ffc74079067
+
+COUNT = 8
+KEY = 3107915498080101
+IV = 0000000000000000
+CIPHERTEXT = 7cfd82a593252b4e
+
+COUNT = 9
+KEY = 3107919498080101
+IV = 0000000000000000
+CIPHERTEXT = cb49a2f9e91363e3
+
+COUNT = 10
+KEY = 10079115b9080140
+IV = 0000000000000000
+CIPHERTEXT = 00b588be70d23f56
+
+COUNT = 11
+KEY = 3107911598080140
+IV = 0000000000000000
+CIPHERTEXT = 406a9a6ab43399ae
+
+COUNT = 12
+KEY = 1007d01589980101
+IV = 0000000000000000
+CIPHERTEXT = 6cb773611dca9ada
+
+COUNT = 13
+KEY = 9107911589980101
+IV = 0000000000000000
+CIPHERTEXT = 67fd21c17dbb5d70
+
+COUNT = 14
+KEY = 9107d01589190101
+IV = 0000000000000000
+CIPHERTEXT = 9592cb4110430787
+
+COUNT = 15
+KEY = 1007d01598980120
+IV = 0000000000000000
+CIPHERTEXT = a6b7ff68a318ddd3
+
+COUNT = 16
+KEY = 1007940498190101
+IV = 0000000000000000
+CIPHERTEXT = 4d102196c914ca16
+
+COUNT = 17
+KEY = 0107910491190401
+IV = 0000000000000000
+CIPHERTEXT = 2dfa9f4573594965
+
+COUNT = 18
+KEY = 0107910491190101
+IV = 0000000000000000
+CIPHERTEXT = b46604816c0e0774
+
+COUNT = 19
+KEY = 0107940491190401
+IV = 0000000000000000
+CIPHERTEXT = 6e7e6221a4f34e87
+
+COUNT = 20
+KEY = 19079210981a0101
+IV = 0000000000000000
+CIPHERTEXT = aa85e74643233199
+
+COUNT = 21
+KEY = 1007911998190801
+IV = 0000000000000000
+CIPHERTEXT = 2e5a19db4d1962d6
+
+COUNT = 22
+KEY = 10079119981a0801
+IV = 0000000000000000
+CIPHERTEXT = 23a866a809d30894
+
+COUNT = 23
+KEY = 1007921098190101
+IV = 0000000000000000
+CIPHERTEXT = d812d961f017d320
+
+COUNT = 24
+KEY = 100791159819010b
+IV = 0000000000000000
+CIPHERTEXT = 055605816e58608f
+
+COUNT = 25
+KEY = 1004801598190101
+IV = 0000000000000000
+CIPHERTEXT = abd88e8b1b7716f1
+
+COUNT = 26
+KEY = 1004801598190102
+IV = 0000000000000000
+CIPHERTEXT = 537ac95be69da1e1
+
+COUNT = 27
+KEY = 1004801598190108
+IV = 0000000000000000
+CIPHERTEXT = aed0f6ae3c25cdd8
+
+COUNT = 28
+KEY = 1002911598100104
+IV = 0000000000000000
+CIPHERTEXT = b3e35a5ee53e7b8d
+
+COUNT = 29
+KEY = 1002911598190104
+IV = 0000000000000000
+CIPHERTEXT = 61c79c71921a2ef8
+
+COUNT = 30
+KEY = 1002911598100201
+IV = 0000000000000000
+CIPHERTEXT = e2f5728f0995013c
+
+COUNT = 31
+KEY = 1002911698100101
+IV = 0000000000000000
+CIPHERTEXT = 1aeac39a61f0a464
diff --git a/fips/testvectors/des/req/CBCsubtab.req b/fips/testvectors/des/req/CBCsubtab.req
new file mode 100644 (file)
index 0000000..c297d6f
--- /dev/null
@@ -0,0 +1,198 @@
+# CAVS 2.0
+# Config Info for : "OpenSSL_DES"
+# SUBSTITUTION TABLE - KAT for CBC
+# State : Encrypt and Decrypt
+# Tue Jun 24 03:11:51 PM
+
+[ENCRYPT]
+COUNT = 0
+KEY = 7ca110454a1a6e57
+IV = 0000000000000000
+PLAINTEXT = 01a1d6d039776742
+
+COUNT = 1
+KEY = 0131d9619dc1376e
+IV = 0000000000000000
+PLAINTEXT = 5cd54ca83def57da
+
+COUNT = 2
+KEY = 07a1133e4a0b2686
+IV = 0000000000000000
+PLAINTEXT = 0248d43806f67172
+
+COUNT = 3
+KEY = 3849674c2602319e
+IV = 0000000000000000
+PLAINTEXT = 51454b582ddf440a
+
+COUNT = 4
+KEY = 04b915ba43feb5b6
+IV = 0000000000000000
+PLAINTEXT = 42fd443059577fa2
+
+COUNT = 5
+KEY = 0113b970fd34f2ce
+IV = 0000000000000000
+PLAINTEXT = 059b5e0851cf143a
+
+COUNT = 6
+KEY = 0170f175468fb5e6
+IV = 0000000000000000
+PLAINTEXT = 0756d8e0774761d2
+
+COUNT = 7
+KEY = 43297fad38e373fe
+IV = 0000000000000000
+PLAINTEXT = 762514b829bf486a
+
+COUNT = 8
+KEY = 07a7137045da2a16
+IV = 0000000000000000
+PLAINTEXT = 3bdd119049372802
+
+COUNT = 9
+KEY = 04689104c2fd3b2f
+IV = 0000000000000000
+PLAINTEXT = 26955f6835af609a
+
+COUNT = 10
+KEY = 37d06bb516cb7546
+IV = 0000000000000000
+PLAINTEXT = 164d5e404f275232
+
+COUNT = 11
+KEY = 1f08260d1ac2465e
+IV = 0000000000000000
+PLAINTEXT = 6b056e18759f5cca
+
+COUNT = 12
+KEY = 584023641aba6176
+IV = 0000000000000000
+PLAINTEXT = 004bd6ef09176062
+
+COUNT = 13
+KEY = 025816164629b007
+IV = 0000000000000000
+PLAINTEXT = 480d39006ee762f2
+
+COUNT = 14
+KEY = 49793ebc79b3258f
+IV = 0000000000000000
+PLAINTEXT = 437540c8698f3cfa
+
+COUNT = 15
+KEY = 4fb05e1515ab73a7
+IV = 0000000000000000
+PLAINTEXT = 072d43a077075292
+
+COUNT = 16
+KEY = 49e95d6d4ca229bf
+IV = 0000000000000000
+PLAINTEXT = 02fe55778117f12a
+
+COUNT = 17
+KEY = 018310dc409b26d6
+IV = 0000000000000000
+PLAINTEXT = 1d9d5c5018f728c2
+
+COUNT = 18
+KEY = 1c587f1c13924fef
+IV = 0000000000000000
+PLAINTEXT = 305532286d6f295a
+
+
+[DECRYPT]
+COUNT = 0
+KEY = 7ca110454a1a6e57
+IV = 0000000000000000
+CIPHERTEXT = 690f5b0d9a26939b
+
+COUNT = 1
+KEY = 0131d9619dc1376e
+IV = 0000000000000000
+CIPHERTEXT = 7a389d10354bd271
+
+COUNT = 2
+KEY = 07a1133e4a0b2686
+IV = 0000000000000000
+CIPHERTEXT = 868ebb51cab4599a
+
+COUNT = 3
+KEY = 3849674c2602319e
+IV = 0000000000000000
+CIPHERTEXT = 7178876e01f19b2a
+
+COUNT = 4
+KEY = 04b915ba43feb5b6
+IV = 0000000000000000
+CIPHERTEXT = af37fb421f8c4095
+
+COUNT = 5
+KEY = 0113b970fd34f2ce
+IV = 0000000000000000
+CIPHERTEXT = 86a560f10ec6d85b
+
+COUNT = 6
+KEY = 0170f175468fb5e6
+IV = 0000000000000000
+CIPHERTEXT = 0cd3da020021dc09
+
+COUNT = 7
+KEY = 43297fad38e373fe
+IV = 0000000000000000
+CIPHERTEXT = ea676b2cb7db2b7a
+
+COUNT = 8
+KEY = 07a7137045da2a16
+IV = 0000000000000000
+CIPHERTEXT = dfd64a815caf1a0f
+
+COUNT = 9
+KEY = 04689104c2fd3b2f
+IV = 0000000000000000
+CIPHERTEXT = 5c513c9c4886c088
+
+COUNT = 10
+KEY = 37d06bb516cb7546
+IV = 0000000000000000
+CIPHERTEXT = 0a2aeeae3ff4ab77
+
+COUNT = 11
+KEY = 1f08260d1ac2465e
+IV = 0000000000000000
+CIPHERTEXT = ef1bf03e5dfa575a
+
+COUNT = 12
+KEY = 584023641aba6176
+IV = 0000000000000000
+CIPHERTEXT = 88bf0db6d70dee56
+
+COUNT = 13
+KEY = 025816164629b007
+IV = 0000000000000000
+CIPHERTEXT = a1f9915541020b56
+
+COUNT = 14
+KEY = 49793ebc79b3258f
+IV = 0000000000000000
+CIPHERTEXT = 6fbf1cafcffd0556
+
+COUNT = 15
+KEY = 4fb05e1515ab73a7
+IV = 0000000000000000
+CIPHERTEXT = 2f22e49bab7ca1ac
+
+COUNT = 16
+KEY = 49e95d6d4ca229bf
+IV = 0000000000000000
+CIPHERTEXT = 5a6b612cc26cce4a
+
+COUNT = 17
+KEY = 018310dc409b26d6
+IV = 0000000000000000
+CIPHERTEXT = 5f4c038ed12b2e41
+
+COUNT = 18
+KEY = 1c587f1c13924fef
+IV = 0000000000000000
+CIPHERTEXT = 63fac0d034d9f793
diff --git a/fips/testvectors/des/req/CBCvarkey.req b/fips/testvectors/des/req/CBCvarkey.req
new file mode 100644 (file)
index 0000000..64828a3
--- /dev/null
@@ -0,0 +1,568 @@
+# CAVS 2.0
+# Config Info for : "OpenSSL_DES"
+# VARIABLE KEY - KAT for CBC
+# State : Encrypt and Decrypt
+# Tue Jun 24 03:11:51 PM
+
+[ENCRYPT]
+COUNT = 0
+KEY = 8001010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 1
+KEY = 4001010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 2
+KEY = 2001010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 3
+KEY = 1001010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 4
+KEY = 0801010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 5
+KEY = 0401010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 6
+KEY = 0201010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 7
+KEY = 0180010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 8
+KEY = 0140010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 9
+KEY = 0120010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 10
+KEY = 0110010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 11
+KEY = 0108010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 12
+KEY = 0104010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 13
+KEY = 0102010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 14
+KEY = 0101800101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 15
+KEY = 0101400101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 16
+KEY = 0101200101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 17
+KEY = 0101100101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 18
+KEY = 0101080101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 19
+KEY = 0101040101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 20
+KEY = 0101020101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 21
+KEY = 0101018001010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 22
+KEY = 0101014001010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 23
+KEY = 0101012001010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 24
+KEY = 0101011001010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 25
+KEY = 0101010801010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 26
+KEY = 0101010401010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 27
+KEY = 0101010201010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 28
+KEY = 0101010180010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 29
+KEY = 0101010140010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 30
+KEY = 0101010120010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 31
+KEY = 0101010110010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 32
+KEY = 0101010108010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 33
+KEY = 0101010104010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 34
+KEY = 0101010102010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 35
+KEY = 0101010101800101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 36
+KEY = 0101010101400101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 37
+KEY = 0101010101200101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 38
+KEY = 0101010101100101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 39
+KEY = 0101010101080101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 40
+KEY = 0101010101040101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 41
+KEY = 0101010101020101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 42
+KEY = 0101010101018001
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 43
+KEY = 0101010101014001
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 44
+KEY = 0101010101012001
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 45
+KEY = 0101010101011001
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 46
+KEY = 0101010101010801
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 47
+KEY = 0101010101010401
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 48
+KEY = 0101010101010201
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 49
+KEY = 0101010101010180
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 50
+KEY = 0101010101010140
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 51
+KEY = 0101010101010120
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 52
+KEY = 0101010101010110
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 53
+KEY = 0101010101010108
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 54
+KEY = 0101010101010104
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 55
+KEY = 0101010101010102
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+
+[DECRYPT]
+COUNT = 0
+KEY = 8001010101010101
+IV = 0000000000000000
+CIPHERTEXT = 95a8d72813daa94d
+
+COUNT = 1
+KEY = 4001010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0eec1487dd8c26d5
+
+COUNT = 2
+KEY = 2001010101010101
+IV = 0000000000000000
+CIPHERTEXT = 7ad16ffb79c45926
+
+COUNT = 3
+KEY = 1001010101010101
+IV = 0000000000000000
+CIPHERTEXT = d3746294ca6a6cf3
+
+COUNT = 4
+KEY = 0801010101010101
+IV = 0000000000000000
+CIPHERTEXT = 809f5f873c1fd761
+
+COUNT = 5
+KEY = 0401010101010101
+IV = 0000000000000000
+CIPHERTEXT = c02faffec989d1fc
+
+COUNT = 6
+KEY = 0201010101010101
+IV = 0000000000000000
+CIPHERTEXT = 4615aa1d33e72f10
+
+COUNT = 7
+KEY = 0180010101010101
+IV = 0000000000000000
+CIPHERTEXT = 2055123350c00858
+
+COUNT = 8
+KEY = 0140010101010101
+IV = 0000000000000000
+CIPHERTEXT = df3b99d6577397c8
+
+COUNT = 9
+KEY = 0120010101010101
+IV = 0000000000000000
+CIPHERTEXT = 31fe17369b5288c9
+
+COUNT = 10
+KEY = 0110010101010101
+IV = 0000000000000000
+CIPHERTEXT = dfdd3cc64dae1642
+
+COUNT = 11
+KEY = 0108010101010101
+IV = 0000000000000000
+CIPHERTEXT = 178c83ce2b399d94
+
+COUNT = 12
+KEY = 0104010101010101
+IV = 0000000000000000
+CIPHERTEXT = 50f636324a9b7f80
+
+COUNT = 13
+KEY = 0102010101010101
+IV = 0000000000000000
+CIPHERTEXT = a8468ee3bc18f06d
+
+COUNT = 14
+KEY = 0101800101010101
+IV = 0000000000000000
+CIPHERTEXT = a2dc9e92fd3cde92
+
+COUNT = 15
+KEY = 0101400101010101
+IV = 0000000000000000
+CIPHERTEXT = cac09f797d031287
+
+COUNT = 16
+KEY = 0101200101010101
+IV = 0000000000000000
+CIPHERTEXT = 90ba680b22aeb525
+
+COUNT = 17
+KEY = 0101100101010101
+IV = 0000000000000000
+CIPHERTEXT = ce7a24f350e280b6
+
+COUNT = 18
+KEY = 0101080101010101
+IV = 0000000000000000
+CIPHERTEXT = 882bff0aa01a0b87
+
+COUNT = 19
+KEY = 0101040101010101
+IV = 0000000000000000
+CIPHERTEXT = 25610288924511c2
+
+COUNT = 20
+KEY = 0101020101010101
+IV = 0000000000000000
+CIPHERTEXT = c71516c29c75d170
+
+COUNT = 21
+KEY = 0101018001010101
+IV = 0000000000000000
+CIPHERTEXT = 5199c29a52c9f059
+
+COUNT = 22
+KEY = 0101014001010101
+IV = 0000000000000000
+CIPHERTEXT = c22f0a294a71f29f
+
+COUNT = 23
+KEY = 0101012001010101
+IV = 0000000000000000
+CIPHERTEXT = ee371483714c02ea
+
+COUNT = 24
+KEY = 0101011001010101
+IV = 0000000000000000
+CIPHERTEXT = a81fbd448f9e522f
+
+COUNT = 25
+KEY = 0101010801010101
+IV = 0000000000000000
+CIPHERTEXT = 4f644c92e192dfed
+
+COUNT = 26
+KEY = 0101010401010101
+IV = 0000000000000000
+CIPHERTEXT = 1afa9a66a6df92ae
+
+COUNT = 27
+KEY = 0101010201010101
+IV = 0000000000000000
+CIPHERTEXT = b3c1cc715cb879d8
+
+COUNT = 28
+KEY = 0101010180010101
+IV = 0000000000000000
+CIPHERTEXT = 19d032e64ab0bd8b
+
+COUNT = 29
+KEY = 0101010140010101
+IV = 0000000000000000
+CIPHERTEXT = 3cfaa7a7dc8720dc
+
+COUNT = 30
+KEY = 0101010120010101
+IV = 0000000000000000
+CIPHERTEXT = b7265f7f447ac6f3
+
+COUNT = 31
+KEY = 0101010110010101
+IV = 0000000000000000
+CIPHERTEXT = 9db73b3c0d163f54
+
+COUNT = 32
+KEY = 0101010108010101
+IV = 0000000000000000
+CIPHERTEXT = 8181b65babf4a975
+
+COUNT = 33
+KEY = 0101010104010101
+IV = 0000000000000000
+CIPHERTEXT = 93c9b64042eaa240
+
+COUNT = 34
+KEY = 0101010102010101
+IV = 0000000000000000
+CIPHERTEXT = 5570530829705592
+
+COUNT = 35
+KEY = 0101010101800101
+IV = 0000000000000000
+CIPHERTEXT = 8638809e878787a0
+
+COUNT = 36
+KEY = 0101010101400101
+IV = 0000000000000000
+CIPHERTEXT = 41b9a79af79ac208
+
+COUNT = 37
+KEY = 0101010101200101
+IV = 0000000000000000
+CIPHERTEXT = 7a9be42f2009a892
+
+COUNT = 38
+KEY = 0101010101100101
+IV = 0000000000000000
+CIPHERTEXT = 29038d56ba6d2745
+
+COUNT = 39
+KEY = 0101010101080101
+IV = 0000000000000000
+CIPHERTEXT = 5495c6abf1e5df51
+
+COUNT = 40
+KEY = 0101010101040101
+IV = 0000000000000000
+CIPHERTEXT = ae13dbd561488933
+
+COUNT = 41
+KEY = 0101010101020101
+IV = 0000000000000000
+CIPHERTEXT = 024d1ffa8904e389
+
+COUNT = 42
+KEY = 0101010101018001
+IV = 0000000000000000
+CIPHERTEXT = d1399712f99bf02e
+
+COUNT = 43
+KEY = 0101010101014001
+IV = 0000000000000000
+CIPHERTEXT = 14c1d7c1cffec79e
+
+COUNT = 44
+KEY = 0101010101012001
+IV = 0000000000000000
+CIPHERTEXT = 1de5279dae3bed6f
+
+COUNT = 45
+KEY = 0101010101011001
+IV = 0000000000000000
+CIPHERTEXT = e941a33f85501303
+
+COUNT = 46
+KEY = 0101010101010801
+IV = 0000000000000000
+CIPHERTEXT = da99dbbc9a03f379
+
+COUNT = 47
+KEY = 0101010101010401
+IV = 0000000000000000
+CIPHERTEXT = b7fc92f91d8e92e9
+
+COUNT = 48
+KEY = 0101010101010201
+IV = 0000000000000000
+CIPHERTEXT = ae8e5caa3ca04e85
+
+COUNT = 49
+KEY = 0101010101010180
+IV = 0000000000000000
+CIPHERTEXT = 9cc62df43b6eed74
+
+COUNT = 50
+KEY = 0101010101010140
+IV = 0000000000000000
+CIPHERTEXT = d863dbb5c59a91a0
+
+COUNT = 51
+KEY = 0101010101010120
+IV = 0000000000000000
+CIPHERTEXT = a1ab2190545b91d7
+
+COUNT = 52
+KEY = 0101010101010110
+IV = 0000000000000000
+CIPHERTEXT = 0875041e64c570f7
+
+COUNT = 53
+KEY = 0101010101010108
+IV = 0000000000000000
+CIPHERTEXT = 5a594528bebef1cc
+
+COUNT = 54
+KEY = 0101010101010104
+IV = 0000000000000000
+CIPHERTEXT = fcdb3291de21f0c0
+
+COUNT = 55
+KEY = 0101010101010102
+IV = 0000000000000000
+CIPHERTEXT = 869efd7f9f265a09
diff --git a/fips/testvectors/des/req/CBCvartext.req b/fips/testvectors/des/req/CBCvartext.req
new file mode 100644 (file)
index 0000000..50a5277
--- /dev/null
@@ -0,0 +1,648 @@
+# CAVS 2.0
+# Config Info for : "OpenSSL_DES"
+# VARIABLE PLAINTEXT/CIPHERTEXT - KAT for CBC
+# State : Encrypt and Decrypt
+# Tue Jun 24 03:11:51 PM
+
+[ENCRYPT]
+COUNT = 0
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 8000000000000000
+
+COUNT = 1
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 4000000000000000
+
+COUNT = 2
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 2000000000000000
+
+COUNT = 3
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 1000000000000000
+
+COUNT = 4
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0800000000000000
+
+COUNT = 5
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0400000000000000
+
+COUNT = 6
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0200000000000000
+
+COUNT = 7
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0100000000000000
+
+COUNT = 8
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0080000000000000
+
+COUNT = 9
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0040000000000000
+
+COUNT = 10
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0020000000000000
+
+COUNT = 11
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0010000000000000
+
+COUNT = 12
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0008000000000000
+
+COUNT = 13
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0004000000000000
+
+COUNT = 14
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0002000000000000
+
+COUNT = 15
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0001000000000000
+
+COUNT = 16
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000800000000000
+
+COUNT = 17
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000400000000000
+
+COUNT = 18
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000200000000000
+
+COUNT = 19
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000100000000000
+
+COUNT = 20
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000080000000000
+
+COUNT = 21
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000040000000000
+
+COUNT = 22
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000020000000000
+
+COUNT = 23
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000010000000000
+
+COUNT = 24
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000008000000000
+
+COUNT = 25
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000004000000000
+
+COUNT = 26
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000002000000000
+
+COUNT = 27
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000001000000000
+
+COUNT = 28
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000800000000
+
+COUNT = 29
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000400000000
+
+COUNT = 30
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000200000000
+
+COUNT = 31
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000100000000
+
+COUNT = 32
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000080000000
+
+COUNT = 33
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000040000000
+
+COUNT = 34
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000020000000
+
+COUNT = 35
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000010000000
+
+COUNT = 36
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000008000000
+
+COUNT = 37
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000004000000
+
+COUNT = 38
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000002000000
+
+COUNT = 39
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000001000000
+
+COUNT = 40
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000800000
+
+COUNT = 41
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000400000
+
+COUNT = 42
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000200000
+
+COUNT = 43
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000100000
+
+COUNT = 44
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000080000
+
+COUNT = 45
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000040000
+
+COUNT = 46
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000020000
+
+COUNT = 47
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000010000
+
+COUNT = 48
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000008000
+
+COUNT = 49
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000004000
+
+COUNT = 50
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000002000
+
+COUNT = 51
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000001000
+
+COUNT = 52
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000800
+
+COUNT = 53
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000400
+
+COUNT = 54
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000200
+
+COUNT = 55
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000100
+
+COUNT = 56
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000080
+
+COUNT = 57
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000040
+
+COUNT = 58
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000020
+
+COUNT = 59
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000010
+
+COUNT = 60
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000008
+
+COUNT = 61
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000004
+
+COUNT = 62
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000002
+
+COUNT = 63
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000001
+
+
+[DECRYPT]
+COUNT = 0
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 95f8a5e5dd31d900
+
+COUNT = 1
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = dd7f121ca5015619
+
+COUNT = 2
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 2e8653104f3834ea
+
+COUNT = 3
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 4bd388ff6cd81d4f
+
+COUNT = 4
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 20b9e767b2fb1456
+
+COUNT = 5
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 55579380d77138ef
+
+COUNT = 6
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 6cc5defaaf04512f
+
+COUNT = 7
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0d9f279ba5d87260
+
+COUNT = 8
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = d9031b0271bd5a0a
+
+COUNT = 9
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 424250b37c3dd951
+
+COUNT = 10
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = b8061b7ecd9a21e5
+
+COUNT = 11
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = f15d0f286b65bd28
+
+COUNT = 12
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = add0cc8d6e5deba1
+
+COUNT = 13
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = e6d5f82752ad63d1
+
+COUNT = 14
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = ecbfe3bd3f591a5e
+
+COUNT = 15
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = f356834379d165cd
+
+COUNT = 16
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 2b9f982f20037fa9
+
+COUNT = 17
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 889de068a16f0be6
+
+COUNT = 18
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = e19e275d846a1298
+
+COUNT = 19
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 329a8ed523d71aec
+
+COUNT = 20
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = e7fce22557d23c97
+
+COUNT = 21
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 12a9f5817ff2d65d
+
+COUNT = 22
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = a484c3ad38dc9c19
+
+COUNT = 23
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = fbe00a8a1ef8ad72
+
+COUNT = 24
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 750d079407521363
+
+COUNT = 25
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 64feed9c724c2faf
+
+COUNT = 26
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = f02b263b328e2b60
+
+COUNT = 27
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 9d64555a9a10b852
+
+COUNT = 28
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = d106ff0bed5255d7
+
+COUNT = 29
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = e1652c6b138c64a5
+
+COUNT = 30
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = e428581186ec8f46
+
+COUNT = 31
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = aeb5f5ede22d1a36
+
+COUNT = 32
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = e943d7568aec0c5c
+
+COUNT = 33
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = df98c8276f54b04b
+
+COUNT = 34
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = b160e4680f6c696f
+
+COUNT = 35
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = fa0752b07d9c4ab8
+
+COUNT = 36
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = ca3a2b036dbc8502
+
+COUNT = 37
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 5e0905517bb59bcf
+
+COUNT = 38
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 814eeb3b91d90726
+
+COUNT = 39
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 4d49db1532919c9f
+
+COUNT = 40
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 25eb5fc3f8cf0621
+
+COUNT = 41
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = ab6a20c0620d1c6f
+
+COUNT = 42
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 79e90dbc98f92cca
+
+COUNT = 43
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 866ecedd8072bb0e
+
+COUNT = 44
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 8b54536f2f3e64a8
+
+COUNT = 45
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = ea51d3975595b86b
+
+COUNT = 46
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = caffc6ac4542de31
+
+COUNT = 47
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 8dd45a2ddf90796c
+
+COUNT = 48
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 1029d55e880ec2d0
+
+COUNT = 49
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 5d86cb23639dbea9
+
+COUNT = 50
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 1d1ca853ae7c0c5f
+
+COUNT = 51
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = ce332329248f3228
+
+COUNT = 52
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 8405d1abe24fb942
+
+COUNT = 53
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = e643d78090ca4207
+
+COUNT = 54
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 48221b9937748a23
+
+COUNT = 55
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = dd7c0bbd61fafd54
+
+COUNT = 56
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 2fbc291a570db5c4
+
+COUNT = 57
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = e07c30d7e4e26e12
+
+COUNT = 58
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0953e2258e8e90a1
+
+COUNT = 59
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 5b711bc4ceebf2ee
+
+COUNT = 60
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = cc083f1e6d9e85f6
+
+COUNT = 61
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = d2fd8867d50d2dfe
+
+COUNT = 62
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 06e7ea22ce92708f
+
+COUNT = 63
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 166b40b44aba4bd6
diff --git a/fips/testvectors/des/req/CFB1MMT.req b/fips/testvectors/des/req/CFB1MMT.req
new file mode 100644 (file)
index 0000000..62638fa
--- /dev/null
@@ -0,0 +1,109 @@
+# CAVS 2.0
+# Config Info for : "OpenSSL_DES"
+# DES Multi Block Message Test for CFB1
+# State : Encrypt and Decrypt
+# Tue Jun 24 03:12:34 PM
+
+[ENCRYPT]
+
+COUNT = 0
+KEY = f43d5ebc3e16ea0e
+IV = 282d971ab9154bfc
+PLAINTEXT = 0
+
+COUNT = 1
+KEY = dc8f0897ef167a75
+IV = 1ee325df9c573d77
+PLAINTEXT = 00
+
+COUNT = 2
+KEY = 7075571523d902c8
+IV = 9a0ca30a85714205
+PLAINTEXT = 010
+
+COUNT = 3
+KEY = e3b5fd5e3d8f04c8
+IV = 6710e98ffbd26bf4
+PLAINTEXT = 1011
+
+COUNT = 4
+KEY = 15cbf7f426074368
+IV = 551d5ff78973c2e3
+PLAINTEXT = 00000
+
+COUNT = 5
+KEY = 57df4fdad097fd8f
+IV = ae873f7efd771647
+PLAINTEXT = 010110
+
+COUNT = 6
+KEY = 62cbce43d9f201f4
+IV = 53b916402f8f96fc
+PLAINTEXT = 0000010
+
+COUNT = 7
+KEY = b6f1926d9b0d263b
+IV = fabf455f7b9fc0e1
+PLAINTEXT = 10011001
+
+COUNT = 8
+KEY = 914694498923fe62
+IV = ae03d51d7b6c6a2e
+PLAINTEXT = 100110000
+
+COUNT = 9
+KEY = 64bc0e3eb00dd029
+IV = 995347f576c22226
+PLAINTEXT = 1100001001
+
+[DECRYPT]
+
+COUNT = 0
+KEY = 206b37bca2fe68a8
+IV = 7a5e281a43fba6de
+CIPHERTEXT = 0
+
+COUNT = 1
+KEY = 2c7f2ca464a78a46
+IV = d59d5ffaf74a6212
+CIPHERTEXT = 00
+
+COUNT = 2
+KEY = ab67ae5ee00b2fcd
+IV = 00c74aaa81068455
+CIPHERTEXT = 110
+
+COUNT = 3
+KEY = 89efaec2fbab7c8a
+IV = c7b12564437e3aed
+CIPHERTEXT = 1100
+
+COUNT = 4
+KEY = 856e7c622c49a8df
+IV = a4a354e62d912eb0
+CIPHERTEXT = 01010
+
+COUNT = 5
+KEY = ea34a41f3b7f6252
+IV = 157dbe40d7ed87db
+CIPHERTEXT = 011001
+
+COUNT = 6
+KEY = bfb6df198a4f67e5
+IV = bc33bb8a5cd3960b
+CIPHERTEXT = 0110111
+
+COUNT = 7
+KEY = abc1ad0494523dbc
+IV = 3d1bf092fdb9bd77
+CIPHERTEXT = 11010011
+
+COUNT = 8
+KEY = d0cd467c1aea312a
+IV = 9d0b5e3d0b8fa725
+CIPHERTEXT = 011101001
+
+COUNT = 9
+KEY = 838aabd340fbad25
+IV = 9ca03ce425a78433
+CIPHERTEXT = 1110000101
diff --git a/fips/testvectors/des/req/CFB1Monte.req b/fips/testvectors/des/req/CFB1Monte.req
new file mode 100644 (file)
index 0000000..2d44df5
--- /dev/null
@@ -0,0 +1,17 @@
+# CAVS 2.0
+# Config Info for : "OpenSSL_DES"
+# DES Monte Carlo (Modes) Test for CFB1
+# State : Encrypt and Decrypt
+# Tue Jun 24 03:12:34 PM
+
+[ENCRYPT]
+KEY = 51f146dad579c26b
+IV = 2bba4a92bc69556a
+PLAINTEXT = 0
+
+
+[DECRYPT]
+KEY = c238cda129731cf1
+IV = 3cef8cc26b4042e6
+CIPHERTEXT = 0
+
diff --git a/fips/testvectors/des/req/CFB1invperm.req b/fips/testvectors/des/req/CFB1invperm.req
new file mode 100644 (file)
index 0000000..cdce9ab
--- /dev/null
@@ -0,0 +1,648 @@
+# CAVS 2.0
+# Config Info for : "OpenSSL_DES"
+# INVERSE PERMUTATION - KAT for CFB1
+# State : Encrypt and Decrypt
+# Tue Jun 24 03:11:51 PM
+
+[ENCRYPT]
+COUNT = 0
+KEY = 0101010101010101
+IV = 8000000000000000
+PLAINTEXT = 1
+
+COUNT = 1
+KEY = 0101010101010101
+IV = 4000000000000000
+PLAINTEXT = 1
+
+COUNT = 2
+KEY = 0101010101010101
+IV = 2000000000000000
+PLAINTEXT = 0
+
+COUNT = 3
+KEY = 0101010101010101
+IV = 1000000000000000
+PLAINTEXT = 0
+
+COUNT = 4
+KEY = 0101010101010101
+IV = 0800000000000000
+PLAINTEXT = 0
+
+COUNT = 5
+KEY = 0101010101010101
+IV = 0400000000000000
+PLAINTEXT = 0
+
+COUNT = 6
+KEY = 0101010101010101
+IV = 0200000000000000
+PLAINTEXT = 0
+
+COUNT = 7
+KEY = 0101010101010101
+IV = 0100000000000000
+PLAINTEXT = 0
+
+COUNT = 8
+KEY = 0101010101010101
+IV = 0080000000000000
+PLAINTEXT = 1
+
+COUNT = 9
+KEY = 0101010101010101
+IV = 0040000000000000
+PLAINTEXT = 0
+
+COUNT = 10
+KEY = 0101010101010101
+IV = 0020000000000000
+PLAINTEXT = 1
+
+COUNT = 11
+KEY = 0101010101010101
+IV = 0010000000000000
+PLAINTEXT = 1
+
+COUNT = 12
+KEY = 0101010101010101
+IV = 0008000000000000
+PLAINTEXT = 1
+
+COUNT = 13
+KEY = 0101010101010101
+IV = 0004000000000000
+PLAINTEXT = 1
+
+COUNT = 14
+KEY = 0101010101010101
+IV = 0002000000000000
+PLAINTEXT = 1
+
+COUNT = 15
+KEY = 0101010101010101
+IV = 0001000000000000
+PLAINTEXT = 1
+
+COUNT = 16
+KEY = 0101010101010101
+IV = 0000800000000000
+PLAINTEXT = 0
+
+COUNT = 17
+KEY = 0101010101010101
+IV = 0000400000000000
+PLAINTEXT = 1
+
+COUNT = 18
+KEY = 0101010101010101
+IV = 0000200000000000
+PLAINTEXT = 1
+
+COUNT = 19
+KEY = 0101010101010101
+IV = 0000100000000000
+PLAINTEXT = 0
+
+COUNT = 20
+KEY = 0101010101010101
+IV = 0000080000000000
+PLAINTEXT = 1
+
+COUNT = 21
+KEY = 0101010101010101
+IV = 0000040000000000
+PLAINTEXT = 0
+
+COUNT = 22
+KEY = 0101010101010101
+IV = 0000020000000000
+PLAINTEXT = 1
+
+COUNT = 23
+KEY = 0101010101010101
+IV = 0000010000000000
+PLAINTEXT = 1
+
+COUNT = 24
+KEY = 0101010101010101
+IV = 0000008000000000
+PLAINTEXT = 0
+
+COUNT = 25
+KEY = 0101010101010101
+IV = 0000004000000000
+PLAINTEXT = 0
+
+COUNT = 26
+KEY = 0101010101010101
+IV = 0000002000000000
+PLAINTEXT = 1
+
+COUNT = 27
+KEY = 0101010101010101
+IV = 0000001000000000
+PLAINTEXT = 1
+
+COUNT = 28
+KEY = 0101010101010101
+IV = 0000000800000000
+PLAINTEXT = 1
+
+COUNT = 29
+KEY = 0101010101010101
+IV = 0000000400000000
+PLAINTEXT = 1
+
+COUNT = 30
+KEY = 0101010101010101
+IV = 0000000200000000
+PLAINTEXT = 1
+
+COUNT = 31
+KEY = 0101010101010101
+IV = 0000000100000000
+PLAINTEXT = 1
+
+COUNT = 32
+KEY = 0101010101010101
+IV = 0000000080000000
+PLAINTEXT = 1
+
+COUNT = 33
+KEY = 0101010101010101
+IV = 0000000040000000
+PLAINTEXT = 1
+
+COUNT = 34
+KEY = 0101010101010101
+IV = 0000000020000000
+PLAINTEXT = 1
+
+COUNT = 35
+KEY = 0101010101010101
+IV = 0000000010000000
+PLAINTEXT = 1
+
+COUNT = 36
+KEY = 0101010101010101
+IV = 0000000008000000
+PLAINTEXT = 1
+
+COUNT = 37
+KEY = 0101010101010101
+IV = 0000000004000000
+PLAINTEXT = 0
+
+COUNT = 38
+KEY = 0101010101010101
+IV = 0000000002000000
+PLAINTEXT = 1
+
+COUNT = 39
+KEY = 0101010101010101
+IV = 0000000001000000
+PLAINTEXT = 0
+
+COUNT = 40
+KEY = 0101010101010101
+IV = 0000000000800000
+PLAINTEXT = 0
+
+COUNT = 41
+KEY = 0101010101010101
+IV = 0000000000400000
+PLAINTEXT = 1
+
+COUNT = 42
+KEY = 0101010101010101
+IV = 0000000000200000
+PLAINTEXT = 0
+
+COUNT = 43
+KEY = 0101010101010101
+IV = 0000000000100000
+PLAINTEXT = 1
+
+COUNT = 44
+KEY = 0101010101010101
+IV = 0000000000080000
+PLAINTEXT = 1
+
+COUNT = 45
+KEY = 0101010101010101
+IV = 0000000000040000
+PLAINTEXT = 1
+
+COUNT = 46
+KEY = 0101010101010101
+IV = 0000000000020000
+PLAINTEXT = 1
+
+COUNT = 47
+KEY = 0101010101010101
+IV = 0000000000010000
+PLAINTEXT = 1
+
+COUNT = 48
+KEY = 0101010101010101
+IV = 0000000000008000
+PLAINTEXT = 0
+
+COUNT = 49
+KEY = 0101010101010101
+IV = 0000000000004000
+PLAINTEXT = 0
+
+COUNT = 50
+KEY = 0101010101010101
+IV = 0000000000002000
+PLAINTEXT = 0
+
+COUNT = 51
+KEY = 0101010101010101
+IV = 0000000000001000
+PLAINTEXT = 1
+
+COUNT = 52
+KEY = 0101010101010101
+IV = 0000000000000800
+PLAINTEXT = 1
+
+COUNT = 53
+KEY = 0101010101010101
+IV = 0000000000000400
+PLAINTEXT = 1
+
+COUNT = 54
+KEY = 0101010101010101
+IV = 0000000000000200
+PLAINTEXT = 0
+
+COUNT = 55
+KEY = 0101010101010101
+IV = 0000000000000100
+PLAINTEXT = 1
+
+COUNT = 56
+KEY = 0101010101010101
+IV = 0000000000000080
+PLAINTEXT = 0
+
+COUNT = 57
+KEY = 0101010101010101
+IV = 0000000000000040
+PLAINTEXT = 1
+
+COUNT = 58
+KEY = 0101010101010101
+IV = 0000000000000020
+PLAINTEXT = 0
+
+COUNT = 59
+KEY = 0101010101010101
+IV = 0000000000000010
+PLAINTEXT = 0
+
+COUNT = 60
+KEY = 0101010101010101
+IV = 0000000000000008
+PLAINTEXT = 1
+
+COUNT = 61
+KEY = 0101010101010101
+IV = 0000000000000004
+PLAINTEXT = 1
+
+COUNT = 62
+KEY = 0101010101010101
+IV = 0000000000000002
+PLAINTEXT = 0
+
+COUNT = 63
+KEY = 0101010101010101
+IV = 0000000000000001
+PLAINTEXT = 0
+
+
+[DECRYPT]
+COUNT = 0
+KEY = 0101010101010101
+IV = 8000000000000000
+CIPHERTEXT = 1
+
+COUNT = 1
+KEY = 0101010101010101
+IV = 4000000000000000
+CIPHERTEXT = 1
+
+COUNT = 2
+KEY = 0101010101010101
+IV = 2000000000000000
+CIPHERTEXT = 0
+
+COUNT = 3
+KEY = 0101010101010101
+IV = 1000000000000000
+CIPHERTEXT = 0
+
+COUNT = 4
+KEY = 0101010101010101
+IV = 0800000000000000
+CIPHERTEXT = 0
+
+COUNT = 5
+KEY = 0101010101010101
+IV = 0400000000000000
+CIPHERTEXT = 0
+
+COUNT = 6
+KEY = 0101010101010101
+IV = 0200000000000000
+CIPHERTEXT = 0
+
+COUNT = 7
+KEY = 0101010101010101
+IV = 0100000000000000
+CIPHERTEXT = 0
+
+COUNT = 8
+KEY = 0101010101010101
+IV = 0080000000000000
+CIPHERTEXT = 1
+
+COUNT = 9
+KEY = 0101010101010101
+IV = 0040000000000000
+CIPHERTEXT = 0
+
+COUNT = 10
+KEY = 0101010101010101
+IV = 0020000000000000
+CIPHERTEXT = 1
+
+COUNT = 11
+KEY = 0101010101010101
+IV = 0010000000000000
+CIPHERTEXT = 1
+
+COUNT = 12
+KEY = 0101010101010101
+IV = 0008000000000000
+CIPHERTEXT = 1
+
+COUNT = 13
+KEY = 0101010101010101
+IV = 0004000000000000
+CIPHERTEXT = 1
+
+COUNT = 14
+KEY = 0101010101010101
+IV = 0002000000000000
+CIPHERTEXT = 1
+
+COUNT = 15
+KEY = 0101010101010101
+IV = 0001000000000000
+CIPHERTEXT = 1
+
+COUNT = 16
+KEY = 0101010101010101
+IV = 0000800000000000
+CIPHERTEXT = 0
+
+COUNT = 17
+KEY = 0101010101010101
+IV = 0000400000000000
+CIPHERTEXT = 1
+
+COUNT = 18
+KEY = 0101010101010101
+IV = 0000200000000000
+CIPHERTEXT = 1
+
+COUNT = 19
+KEY = 0101010101010101
+IV = 0000100000000000
+CIPHERTEXT = 0
+
+COUNT = 20
+KEY = 0101010101010101
+IV = 0000080000000000
+CIPHERTEXT = 1
+
+COUNT = 21
+KEY = 0101010101010101
+IV = 0000040000000000
+CIPHERTEXT = 0
+
+COUNT = 22
+KEY = 0101010101010101
+IV = 0000020000000000
+CIPHERTEXT = 1
+
+COUNT = 23
+KEY = 0101010101010101
+IV = 0000010000000000
+CIPHERTEXT = 1
+
+COUNT = 24
+KEY = 0101010101010101
+IV = 0000008000000000
+CIPHERTEXT = 0
+
+COUNT = 25
+KEY = 0101010101010101
+IV = 0000004000000000
+CIPHERTEXT = 0
+
+COUNT = 26
+KEY = 0101010101010101
+IV = 0000002000000000
+CIPHERTEXT = 1
+
+COUNT = 27
+KEY = 0101010101010101
+IV = 0000001000000000
+CIPHERTEXT = 1
+
+COUNT = 28
+KEY = 0101010101010101
+IV = 0000000800000000
+CIPHERTEXT = 1
+
+COUNT = 29
+KEY = 0101010101010101
+IV = 0000000400000000
+CIPHERTEXT = 1
+
+COUNT = 30
+KEY = 0101010101010101
+IV = 0000000200000000
+CIPHERTEXT = 1
+
+COUNT = 31
+KEY = 0101010101010101
+IV = 0000000100000000
+CIPHERTEXT = 1
+
+COUNT = 32
+KEY = 0101010101010101
+IV = 0000000080000000
+CIPHERTEXT = 1
+
+COUNT = 33
+KEY = 0101010101010101
+IV = 0000000040000000
+CIPHERTEXT = 1
+
+COUNT = 34
+KEY = 0101010101010101
+IV = 0000000020000000
+CIPHERTEXT = 1
+
+COUNT = 35
+KEY = 0101010101010101
+IV = 0000000010000000
+CIPHERTEXT = 1
+
+COUNT = 36
+KEY = 0101010101010101
+IV = 0000000008000000
+CIPHERTEXT = 1
+
+COUNT = 37
+KEY = 0101010101010101
+IV = 0000000004000000
+CIPHERTEXT = 0
+
+COUNT = 38
+KEY = 0101010101010101
+IV = 0000000002000000
+CIPHERTEXT = 1
+
+COUNT = 39
+KEY = 0101010101010101
+IV = 0000000001000000
+CIPHERTEXT = 0
+
+COUNT = 40
+KEY = 0101010101010101
+IV = 0000000000800000
+CIPHERTEXT = 0
+
+COUNT = 41
+KEY = 0101010101010101
+IV = 0000000000400000
+CIPHERTEXT = 1
+
+COUNT = 42
+KEY = 0101010101010101
+IV = 0000000000200000
+CIPHERTEXT = 0
+
+COUNT = 43
+KEY = 0101010101010101
+IV = 0000000000100000
+CIPHERTEXT = 1
+
+COUNT = 44
+KEY = 0101010101010101
+IV = 0000000000080000
+CIPHERTEXT = 1
+
+COUNT = 45
+KEY = 0101010101010101
+IV = 0000000000040000
+CIPHERTEXT = 1
+
+COUNT = 46
+KEY = 0101010101010101
+IV = 0000000000020000
+CIPHERTEXT = 1
+
+COUNT = 47
+KEY = 0101010101010101
+IV = 0000000000010000
+CIPHERTEXT = 1
+
+COUNT = 48
+KEY = 0101010101010101
+IV = 0000000000008000
+CIPHERTEXT = 0
+
+COUNT = 49
+KEY = 0101010101010101
+IV = 0000000000004000
+CIPHERTEXT = 0
+
+COUNT = 50
+KEY = 0101010101010101
+IV = 0000000000002000
+CIPHERTEXT = 0
+
+COUNT = 51
+KEY = 0101010101010101
+IV = 0000000000001000
+CIPHERTEXT = 1
+
+COUNT = 52
+KEY = 0101010101010101
+IV = 0000000000000800
+CIPHERTEXT = 1
+
+COUNT = 53
+KEY = 0101010101010101
+IV = 0000000000000400
+CIPHERTEXT = 1
+
+COUNT = 54
+KEY = 0101010101010101
+IV = 0000000000000200
+CIPHERTEXT = 0
+
+COUNT = 55
+KEY = 0101010101010101
+IV = 0000000000000100
+CIPHERTEXT = 1
+
+COUNT = 56
+KEY = 0101010101010101
+IV = 0000000000000080
+CIPHERTEXT = 0
+
+COUNT = 57
+KEY = 0101010101010101
+IV = 0000000000000040
+CIPHERTEXT = 1
+
+COUNT = 58
+KEY = 0101010101010101
+IV = 0000000000000020
+CIPHERTEXT = 0
+
+COUNT = 59
+KEY = 0101010101010101
+IV = 0000000000000010
+CIPHERTEXT = 0
+
+COUNT = 60
+KEY = 0101010101010101
+IV = 0000000000000008
+CIPHERTEXT = 1
+
+COUNT = 61
+KEY = 0101010101010101
+IV = 0000000000000004
+CIPHERTEXT = 1
+
+COUNT = 62
+KEY = 0101010101010101
+IV = 0000000000000002
+CIPHERTEXT = 0
+
+COUNT = 63
+KEY = 0101010101010101
+IV = 0000000000000001
+CIPHERTEXT = 0
diff --git a/fips/testvectors/des/req/CFB1permop.req b/fips/testvectors/des/req/CFB1permop.req
new file mode 100644 (file)
index 0000000..1dad76d
--- /dev/null
@@ -0,0 +1,328 @@
+# CAVS 2.0
+# Config Info for : "OpenSSL_DES"
+# PERMUTATION OPERATION - KAT for CFB1
+# State : Encrypt and Decrypt
+# Tue Jun 24 03:11:51 PM
+
+[ENCRYPT]
+COUNT = 0
+KEY = 1046913489980131
+IV = 0000000000000000
+PLAINTEXT = 0
+
+COUNT = 1
+KEY = 1007103489988020
+IV = 0000000000000000
+PLAINTEXT = 0
+
+COUNT = 2
+KEY = 10071034c8980120
+IV = 0000000000000000
+PLAINTEXT = 0
+
+COUNT = 3
+KEY = 1046103489988020
+IV = 0000000000000000
+PLAINTEXT = 0
+
+COUNT = 4
+KEY = 1086911519190101
+IV = 0000000000000000
+PLAINTEXT = 0
+
+COUNT = 5
+KEY = 1086911519580101
+IV = 0000000000000000
+PLAINTEXT = 0
+
+COUNT = 6
+KEY = 5107b01519580101
+IV = 0000000000000000
+PLAINTEXT = 0
+
+COUNT = 7
+KEY = 1007b01519190101
+IV = 0000000000000000
+PLAINTEXT = 0
+
+COUNT = 8
+KEY = 3107915498080101
+IV = 0000000000000000
+PLAINTEXT = 0
+
+COUNT = 9
+KEY = 3107919498080101
+IV = 0000000000000000
+PLAINTEXT = 0
+
+COUNT = 10
+KEY = 10079115b9080140
+IV = 0000000000000000
+PLAINTEXT = 0
+
+COUNT = 11
+KEY = 3107911598080140
+IV = 0000000000000000
+PLAINTEXT = 0
+
+COUNT = 12
+KEY = 1007d01589980101
+IV = 0000000000000000
+PLAINTEXT = 0
+
+COUNT = 13
+KEY = 9107911589980101
+IV = 0000000000000000
+PLAINTEXT = 0
+
+COUNT = 14
+KEY = 9107d01589190101
+IV = 0000000000000000
+PLAINTEXT = 0
+
+COUNT = 15
+KEY = 1007d01598980120
+IV = 0000000000000000
+PLAINTEXT = 0
+
+COUNT = 16
+KEY = 1007940498190101
+IV = 0000000000000000
+PLAINTEXT = 0
+
+COUNT = 17
+KEY = 0107910491190401
+IV = 0000000000000000
+PLAINTEXT = 0
+
+COUNT = 18
+KEY = 0107910491190101
+IV = 0000000000000000
+PLAINTEXT = 0
+
+COUNT = 19
+KEY = 0107940491190401
+IV = 0000000000000000
+PLAINTEXT = 0
+
+COUNT = 20
+KEY = 19079210981a0101
+IV = 0000000000000000
+PLAINTEXT = 0
+
+COUNT = 21
+KEY = 1007911998190801
+IV = 0000000000000000
+PLAINTEXT = 0
+
+COUNT = 22
+KEY = 10079119981a0801
+IV = 0000000000000000
+PLAINTEXT = 0
+
+COUNT = 23
+KEY = 1007921098190101
+IV = 0000000000000000
+PLAINTEXT = 0
+
+COUNT = 24
+KEY = 100791159819010b
+IV = 0000000000000000
+PLAINTEXT = 0
+
+COUNT = 25
+KEY = 1004801598190101
+IV = 0000000000000000
+PLAINTEXT = 0
+
+COUNT = 26
+KEY = 1004801598190102
+IV = 0000000000000000
+PLAINTEXT = 0
+
+COUNT = 27
+KEY = 1004801598190108
+IV = 0000000000000000
+PLAINTEXT = 0
+
+COUNT = 28
+KEY = 1002911598100104
+IV = 0000000000000000
+PLAINTEXT = 0
+
+COUNT = 29
+KEY = 1002911598190104
+IV = 0000000000000000
+PLAINTEXT = 0
+
+COUNT = 30
+KEY = 1002911598100201
+IV = 0000000000000000
+PLAINTEXT = 0
+
+COUNT = 31
+KEY = 1002911698100101
+IV = 0000000000000000
+PLAINTEXT = 0
+
+
+[DECRYPT]
+COUNT = 0
+KEY = 1046913489980131
+IV = 0000000000000000
+CIPHERTEXT = 0
+
+COUNT = 1
+KEY = 1007103489988020
+IV = 0000000000000000
+CIPHERTEXT = 0
+
+COUNT = 2
+KEY = 10071034c8980120
+IV = 0000000000000000
+CIPHERTEXT = 0
+
+COUNT = 3
+KEY = 1046103489988020
+IV = 0000000000000000
+CIPHERTEXT = 0
+
+COUNT = 4
+KEY = 1086911519190101
+IV = 0000000000000000
+CIPHERTEXT = 0
+
+COUNT = 5
+KEY = 1086911519580101
+IV = 0000000000000000
+CIPHERTEXT = 0
+
+COUNT = 6
+KEY = 5107b01519580101
+IV = 0000000000000000
+CIPHERTEXT = 0
+
+COUNT = 7
+KEY = 1007b01519190101
+IV = 0000000000000000
+CIPHERTEXT = 0
+
+COUNT = 8
+KEY = 3107915498080101
+IV = 0000000000000000
+CIPHERTEXT = 0
+
+COUNT = 9
+KEY = 3107919498080101
+IV = 0000000000000000
+CIPHERTEXT = 0
+
+COUNT = 10
+KEY = 10079115b9080140
+IV = 0000000000000000
+CIPHERTEXT = 0
+
+COUNT = 11
+KEY = 3107911598080140
+IV = 0000000000000000
+CIPHERTEXT = 0
+
+COUNT = 12
+KEY = 1007d01589980101
+IV = 0000000000000000
+CIPHERTEXT = 0
+
+COUNT = 13
+KEY = 9107911589980101
+IV = 0000000000000000
+CIPHERTEXT = 0
+
+COUNT = 14
+KEY = 9107d01589190101
+IV = 0000000000000000
+CIPHERTEXT = 0
+
+COUNT = 15
+KEY = 1007d01598980120
+IV = 0000000000000000
+CIPHERTEXT = 0
+
+COUNT = 16
+KEY = 1007940498190101
+IV = 0000000000000000
+CIPHERTEXT = 0
+
+COUNT = 17
+KEY = 0107910491190401
+IV = 0000000000000000
+CIPHERTEXT = 0
+
+COUNT = 18
+KEY = 0107910491190101
+IV = 0000000000000000
+CIPHERTEXT = 0
+
+COUNT = 19
+KEY = 0107940491190401
+IV = 0000000000000000
+CIPHERTEXT = 0
+
+COUNT = 20
+KEY = 19079210981a0101
+IV = 0000000000000000
+CIPHERTEXT = 0
+
+COUNT = 21
+KEY = 1007911998190801
+IV = 0000000000000000
+CIPHERTEXT = 0
+
+COUNT = 22
+KEY = 10079119981a0801
+IV = 0000000000000000
+CIPHERTEXT = 0
+
+COUNT = 23
+KEY = 1007921098190101
+IV = 0000000000000000
+CIPHERTEXT = 0
+
+COUNT = 24
+KEY = 100791159819010b
+IV = 0000000000000000
+CIPHERTEXT = 0
+
+COUNT = 25
+KEY = 1004801598190101
+IV = 0000000000000000
+CIPHERTEXT = 0
+
+COUNT = 26
+KEY = 1004801598190102
+IV = 0000000000000000
+CIPHERTEXT = 0
+
+COUNT = 27
+KEY = 1004801598190108
+IV = 0000000000000000
+CIPHERTEXT = 0
+
+COUNT = 28
+KEY = 1002911598100104
+IV = 0000000000000000
+CIPHERTEXT = 0
+
+COUNT = 29
+KEY = 1002911598190104
+IV = 0000000000000000
+CIPHERTEXT = 0
+
+COUNT = 30
+KEY = 1002911598100201
+IV = 0000000000000000
+CIPHERTEXT = 0
+
+COUNT = 31
+KEY = 1002911698100101
+IV = 0000000000000000
+CIPHERTEXT = 0
diff --git a/fips/testvectors/des/req/CFB1subtab.req b/fips/testvectors/des/req/CFB1subtab.req
new file mode 100644 (file)
index 0000000..9508780
--- /dev/null
@@ -0,0 +1,198 @@
+# CAVS 2.0
+# Config Info for : "OpenSSL_DES"
+# SUBSTITUTION TABLE - KAT for CFB1
+# State : Encrypt and Decrypt
+# Tue Jun 24 03:11:51 PM
+
+[ENCRYPT]
+COUNT = 0
+KEY = 7ca110454a1a6e57
+IV = 01a1d6d039776742
+PLAINTEXT = 0
+
+COUNT = 1
+KEY = 0131d9619dc1376e
+IV = 5cd54ca83def57da
+PLAINTEXT = 0
+
+COUNT = 2
+KEY = 07a1133e4a0b2686
+IV = 0248d43806f67172
+PLAINTEXT = 0
+
+COUNT = 3
+KEY = 3849674c2602319e
+IV = 51454b582ddf440a
+PLAINTEXT = 0
+
+COUNT = 4
+KEY = 04b915ba43feb5b6
+IV = 42fd443059577fa2
+PLAINTEXT = 0
+
+COUNT = 5
+KEY = 0113b970fd34f2ce
+IV = 059b5e0851cf143a
+PLAINTEXT = 0
+
+COUNT = 6
+KEY = 0170f175468fb5e6
+IV = 0756d8e0774761d2
+PLAINTEXT = 0
+
+COUNT = 7
+KEY = 43297fad38e373fe
+IV = 762514b829bf486a
+PLAINTEXT = 0
+
+COUNT = 8
+KEY = 07a7137045da2a16
+IV = 3bdd119049372802
+PLAINTEXT = 0
+
+COUNT = 9
+KEY = 04689104c2fd3b2f
+IV = 26955f6835af609a
+PLAINTEXT = 0
+
+COUNT = 10
+KEY = 37d06bb516cb7546
+IV = 164d5e404f275232
+PLAINTEXT = 0
+
+COUNT = 11
+KEY = 1f08260d1ac2465e
+IV = 6b056e18759f5cca
+PLAINTEXT = 0
+
+COUNT = 12
+KEY = 584023641aba6176
+IV = 004bd6ef09176062
+PLAINTEXT = 0
+
+COUNT = 13
+KEY = 025816164629b007
+IV = 480d39006ee762f2
+PLAINTEXT = 0
+
+COUNT = 14
+KEY = 49793ebc79b3258f
+IV = 437540c8698f3cfa
+PLAINTEXT = 0
+
+COUNT = 15
+KEY = 4fb05e1515ab73a7
+IV = 072d43a077075292
+PLAINTEXT = 0
+
+COUNT = 16
+KEY = 49e95d6d4ca229bf
+IV = 02fe55778117f12a
+PLAINTEXT = 0
+
+COUNT = 17
+KEY = 018310dc409b26d6
+IV = 1d9d5c5018f728c2
+PLAINTEXT = 0
+
+COUNT = 18
+KEY = 1c587f1c13924fef
+IV = 305532286d6f295a
+PLAINTEXT = 0
+
+
+[DECRYPT]
+COUNT = 0
+KEY = 7ca110454a1a6e57
+IV = 01a1d6d039776742
+CIPHERTEXT = 0
+
+COUNT = 1
+KEY = 0131d9619dc1376e
+IV = 5cd54ca83def57da
+CIPHERTEXT = 0
+
+COUNT = 2
+KEY = 07a1133e4a0b2686
+IV = 0248d43806f67172
+CIPHERTEXT = 0
+
+COUNT = 3
+KEY = 3849674c2602319e
+IV = 51454b582ddf440a
+CIPHERTEXT = 0
+
+COUNT = 4
+KEY = 04b915ba43feb5b6
+IV = 42fd443059577fa2
+CIPHERTEXT = 0
+
+COUNT = 5
+KEY = 0113b970fd34f2ce
+IV = 059b5e0851cf143a
+CIPHERTEXT = 0
+
+COUNT = 6
+KEY = 0170f175468fb5e6
+IV = 0756d8e0774761d2
+CIPHERTEXT = 0
+
+COUNT = 7
+KEY = 43297fad38e373fe
+IV = 762514b829bf486a
+CIPHERTEXT = 0
+
+COUNT = 8
+KEY = 07a7137045da2a16
+IV = 3bdd119049372802
+CIPHERTEXT = 0
+
+COUNT = 9
+KEY = 04689104c2fd3b2f
+IV = 26955f6835af609a
+CIPHERTEXT = 0
+
+COUNT = 10
+KEY = 37d06bb516cb7546
+IV = 164d5e404f275232
+CIPHERTEXT = 0
+
+COUNT = 11
+KEY = 1f08260d1ac2465e
+IV = 6b056e18759f5cca
+CIPHERTEXT = 0
+
+COUNT = 12
+KEY = 584023641aba6176
+IV = 004bd6ef09176062
+CIPHERTEXT = 0
+
+COUNT = 13
+KEY = 025816164629b007
+IV = 480d39006ee762f2
+CIPHERTEXT = 0
+
+COUNT = 14
+KEY = 49793ebc79b3258f
+IV = 437540c8698f3cfa
+CIPHERTEXT = 0
+
+COUNT = 15
+KEY = 4fb05e1515ab73a7
+IV = 072d43a077075292
+CIPHERTEXT = 0
+
+COUNT = 16
+KEY = 49e95d6d4ca229bf
+IV = 02fe55778117f12a
+CIPHERTEXT = 0
+
+COUNT = 17
+KEY = 018310dc409b26d6
+IV = 1d9d5c5018f728c2
+CIPHERTEXT = 0
+
+COUNT = 18
+KEY = 1c587f1c13924fef
+IV = 305532286d6f295a
+CIPHERTEXT = 0
diff --git a/fips/testvectors/des/req/CFB1varkey.req b/fips/testvectors/des/req/CFB1varkey.req
new file mode 100644 (file)
index 0000000..380c6f9
--- /dev/null
@@ -0,0 +1,568 @@
+# CAVS 2.0
+# Config Info for : "OpenSSL_DES"
+# VARIABLE KEY - KAT for CFB1
+# State : Encrypt and Decrypt
+# Tue Jun 24 03:11:51 PM
+
+[ENCRYPT]
+COUNT = 0
+KEY = 8001010101010101
+IV = 0000000000000000
+PLAINTEXT = 0
+
+COUNT = 1
+KEY = 4001010101010101
+IV = 0000000000000000
+PLAINTEXT = 0
+
+COUNT = 2
+KEY = 2001010101010101
+IV = 0000000000000000
+PLAINTEXT = 0
+
+COUNT = 3
+KEY = 1001010101010101
+IV = 0000000000000000
+PLAINTEXT = 0
+
+COUNT = 4
+KEY = 0801010101010101
+IV = 0000000000000000
+PLAINTEXT = 0
+
+COUNT = 5
+KEY = 0401010101010101
+IV = 0000000000000000
+PLAINTEXT = 0
+
+COUNT = 6
+KEY = 0201010101010101
+IV = 0000000000000000
+PLAINTEXT = 0
+
+COUNT = 7
+KEY = 0180010101010101
+IV = 0000000000000000
+PLAINTEXT = 0
+
+COUNT = 8
+KEY = 0140010101010101
+IV = 0000000000000000
+PLAINTEXT = 0
+
+COUNT = 9
+KEY = 0120010101010101
+IV = 0000000000000000
+PLAINTEXT = 0
+
+COUNT = 10
+KEY = 0110010101010101
+IV = 0000000000000000
+PLAINTEXT = 0
+
+COUNT = 11
+KEY = 0108010101010101
+IV = 0000000000000000
+PLAINTEXT = 0
+
+COUNT = 12
+KEY = 0104010101010101
+IV = 0000000000000000
+PLAINTEXT = 0
+
+COUNT = 13
+KEY = 0102010101010101
+IV = 0000000000000000
+PLAINTEXT = 0
+
+COUNT = 14
+KEY = 0101800101010101
+IV = 0000000000000000
+PLAINTEXT = 0
+
+COUNT = 15
+KEY = 0101400101010101
+IV = 0000000000000000
+PLAINTEXT = 0
+
+COUNT = 16
+KEY = 0101200101010101
+IV = 0000000000000000
+PLAINTEXT = 0
+
+COUNT = 17
+KEY = 0101100101010101
+IV = 0000000000000000
+PLAINTEXT = 0
+
+COUNT = 18
+KEY = 0101080101010101
+IV = 0000000000000000
+PLAINTEXT = 0
+
+COUNT = 19
+KEY = 0101040101010101
+IV = 0000000000000000
+PLAINTEXT = 0
+
+COUNT = 20
+KEY = 0101020101010101
+IV = 0000000000000000
+PLAINTEXT = 0
+
+COUNT = 21
+KEY = 0101018001010101
+IV = 0000000000000000
+PLAINTEXT = 0
+
+COUNT = 22
+KEY = 0101014001010101
+IV = 0000000000000000
+PLAINTEXT = 0
+
+COUNT = 23
+KEY = 0101012001010101
+IV = 0000000000000000
+PLAINTEXT = 0
+
+COUNT = 24
+KEY = 0101011001010101
+IV = 0000000000000000
+PLAINTEXT = 0
+
+COUNT = 25
+KEY = 0101010801010101
+IV = 0000000000000000
+PLAINTEXT = 0
+
+COUNT = 26
+KEY = 0101010401010101
+IV = 0000000000000000
+PLAINTEXT = 0
+
+COUNT = 27
+KEY = 0101010201010101
+IV = 0000000000000000
+PLAINTEXT = 0
+
+COUNT = 28
+KEY = 0101010180010101
+IV = 0000000000000000
+PLAINTEXT = 0
+
+COUNT = 29
+KEY = 0101010140010101
+IV = 0000000000000000
+PLAINTEXT = 0
+
+COUNT = 30
+KEY = 0101010120010101
+IV = 0000000000000000
+PLAINTEXT = 0
+
+COUNT = 31
+KEY = 0101010110010101
+IV = 0000000000000000
+PLAINTEXT = 0
+
+COUNT = 32
+KEY = 0101010108010101
+IV = 0000000000000000
+PLAINTEXT = 0
+
+COUNT = 33
+KEY = 0101010104010101
+IV = 0000000000000000
+PLAINTEXT = 0
+
+COUNT = 34
+KEY = 0101010102010101
+IV = 0000000000000000
+PLAINTEXT = 0
+
+COUNT = 35
+KEY = 0101010101800101
+IV = 0000000000000000
+PLAINTEXT = 0
+
+COUNT = 36
+KEY = 0101010101400101
+IV = 0000000000000000
+PLAINTEXT = 0
+
+COUNT = 37
+KEY = 0101010101200101
+IV = 0000000000000000
+PLAINTEXT = 0
+
+COUNT = 38
+KEY = 0101010101100101
+IV = 0000000000000000
+PLAINTEXT = 0
+
+COUNT = 39
+KEY = 0101010101080101
+IV = 0000000000000000
+PLAINTEXT = 0
+
+COUNT = 40
+KEY = 0101010101040101
+IV = 0000000000000000
+PLAINTEXT = 0
+
+COUNT = 41
+KEY = 0101010101020101
+IV = 0000000000000000
+PLAINTEXT = 0
+
+COUNT = 42
+KEY = 0101010101018001
+IV = 0000000000000000
+PLAINTEXT = 0
+
+COUNT = 43
+KEY = 0101010101014001
+IV = 0000000000000000
+PLAINTEXT = 0
+
+COUNT = 44
+KEY = 0101010101012001
+IV = 0000000000000000
+PLAINTEXT = 0
+
+COUNT = 45
+KEY = 0101010101011001
+IV = 0000000000000000
+PLAINTEXT = 0
+
+COUNT = 46
+KEY = 0101010101010801
+IV = 0000000000000000
+PLAINTEXT = 0
+
+COUNT = 47
+KEY = 0101010101010401
+IV = 0000000000000000
+PLAINTEXT = 0
+
+COUNT = 48
+KEY = 0101010101010201
+IV = 0000000000000000
+PLAINTEXT = 0
+
+COUNT = 49
+KEY = 0101010101010180
+IV = 0000000000000000
+PLAINTEXT = 0
+
+COUNT = 50
+KEY = 0101010101010140
+IV = 0000000000000000
+PLAINTEXT = 0
+
+COUNT = 51
+KEY = 0101010101010120
+IV = 0000000000000000
+PLAINTEXT = 0
+
+COUNT = 52
+KEY = 0101010101010110
+IV = 0000000000000000
+PLAINTEXT = 0
+
+COUNT = 53
+KEY = 0101010101010108
+IV = 0000000000000000
+PLAINTEXT = 0
+
+COUNT = 54
+KEY = 0101010101010104
+IV = 0000000000000000
+PLAINTEXT = 0
+
+COUNT = 55
+KEY = 0101010101010102
+IV = 0000000000000000
+PLAINTEXT = 0
+
+
+[DECRYPT]
+COUNT = 0
+KEY = 8001010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0
+
+COUNT = 1
+KEY = 4001010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0
+
+COUNT = 2
+KEY = 2001010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0
+
+COUNT = 3
+KEY = 1001010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0
+
+COUNT = 4
+KEY = 0801010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0
+
+COUNT = 5
+KEY = 0401010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0
+
+COUNT = 6
+KEY = 0201010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0
+
+COUNT = 7
+KEY = 0180010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0
+
+COUNT = 8
+KEY = 0140010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0
+
+COUNT = 9
+KEY = 0120010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0
+
+COUNT = 10
+KEY = 0110010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0
+
+COUNT = 11
+KEY = 0108010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0
+
+COUNT = 12
+KEY = 0104010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0
+
+COUNT = 13
+KEY = 0102010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0
+
+COUNT = 14
+KEY = 0101800101010101
+IV = 0000000000000000
+CIPHERTEXT = 0
+
+COUNT = 15
+KEY = 0101400101010101
+IV = 0000000000000000
+CIPHERTEXT = 0
+
+COUNT = 16
+KEY = 0101200101010101
+IV = 0000000000000000
+CIPHERTEXT = 0
+
+COUNT = 17
+KEY = 0101100101010101
+IV = 0000000000000000
+CIPHERTEXT = 0
+
+COUNT = 18
+KEY = 0101080101010101
+IV = 0000000000000000
+CIPHERTEXT = 0
+
+COUNT = 19
+KEY = 0101040101010101
+IV = 0000000000000000
+CIPHERTEXT = 0
+
+COUNT = 20
+KEY = 0101020101010101
+IV = 0000000000000000
+CIPHERTEXT = 0
+
+COUNT = 21
+KEY = 0101018001010101
+IV = 0000000000000000
+CIPHERTEXT = 0
+
+COUNT = 22
+KEY = 0101014001010101
+IV = 0000000000000000
+CIPHERTEXT = 0
+
+COUNT = 23
+KEY = 0101012001010101
+IV = 0000000000000000
+CIPHERTEXT = 0
+
+COUNT = 24
+KEY = 0101011001010101
+IV = 0000000000000000
+CIPHERTEXT = 0
+
+COUNT = 25
+KEY = 0101010801010101
+IV = 0000000000000000
+CIPHERTEXT = 0
+
+COUNT = 26
+KEY = 0101010401010101
+IV = 0000000000000000
+CIPHERTEXT = 0
+
+COUNT = 27
+KEY = 0101010201010101
+IV = 0000000000000000
+CIPHERTEXT = 0
+
+COUNT = 28
+KEY = 0101010180010101
+IV = 0000000000000000
+CIPHERTEXT = 0
+
+COUNT = 29
+KEY = 0101010140010101
+IV = 0000000000000000
+CIPHERTEXT = 0
+
+COUNT = 30
+KEY = 0101010120010101
+IV = 0000000000000000
+CIPHERTEXT = 0
+
+COUNT = 31
+KEY = 0101010110010101
+IV = 0000000000000000
+CIPHERTEXT = 0
+
+COUNT = 32
+KEY = 0101010108010101
+IV = 0000000000000000
+CIPHERTEXT = 0
+
+COUNT = 33
+KEY = 0101010104010101
+IV = 0000000000000000
+CIPHERTEXT = 0
+
+COUNT = 34
+KEY = 0101010102010101
+IV = 0000000000000000
+CIPHERTEXT = 0
+
+COUNT = 35
+KEY = 0101010101800101
+IV = 0000000000000000
+CIPHERTEXT = 0
+
+COUNT = 36
+KEY = 0101010101400101
+IV = 0000000000000000
+CIPHERTEXT = 0
+
+COUNT = 37
+KEY = 0101010101200101
+IV = 0000000000000000
+CIPHERTEXT = 0
+
+COUNT = 38
+KEY = 0101010101100101
+IV = 0000000000000000
+CIPHERTEXT = 0
+
+COUNT = 39
+KEY = 0101010101080101
+IV = 0000000000000000
+CIPHERTEXT = 0
+
+COUNT = 40
+KEY = 0101010101040101
+IV = 0000000000000000
+CIPHERTEXT = 0
+
+COUNT = 41
+KEY = 0101010101020101
+IV = 0000000000000000
+CIPHERTEXT = 0
+
+COUNT = 42
+KEY = 0101010101018001
+IV = 0000000000000000
+CIPHERTEXT = 0
+
+COUNT = 43
+KEY = 0101010101014001
+IV = 0000000000000000
+CIPHERTEXT = 0
+
+COUNT = 44
+KEY = 0101010101012001
+IV = 0000000000000000
+CIPHERTEXT = 0
+
+COUNT = 45
+KEY = 0101010101011001
+IV = 0000000000000000
+CIPHERTEXT = 0
+
+COUNT = 46
+KEY = 0101010101010801
+IV = 0000000000000000
+CIPHERTEXT = 0
+
+COUNT = 47
+KEY = 0101010101010401
+IV = 0000000000000000
+CIPHERTEXT = 0
+
+COUNT = 48
+KEY = 0101010101010201
+IV = 0000000000000000
+CIPHERTEXT = 0
+
+COUNT = 49
+KEY = 0101010101010180
+IV = 0000000000000000
+CIPHERTEXT = 0
+
+COUNT = 50
+KEY = 0101010101010140
+IV = 0000000000000000
+CIPHERTEXT = 0
+
+COUNT = 51
+KEY = 0101010101010120
+IV = 0000000000000000
+CIPHERTEXT = 0
+
+COUNT = 52
+KEY = 0101010101010110
+IV = 0000000000000000
+CIPHERTEXT = 0
+
+COUNT = 53
+KEY = 0101010101010108
+IV = 0000000000000000
+CIPHERTEXT = 0
+
+COUNT = 54
+KEY = 0101010101010104
+IV = 0000000000000000
+CIPHERTEXT = 0
+
+COUNT = 55
+KEY = 0101010101010102
+IV = 0000000000000000
+CIPHERTEXT = 0
diff --git a/fips/testvectors/des/req/CFB1vartext.req b/fips/testvectors/des/req/CFB1vartext.req
new file mode 100644 (file)
index 0000000..78c0453
--- /dev/null
@@ -0,0 +1,648 @@
+# CAVS 2.0
+# Config Info for : "OpenSSL_DES"
+# VARIABLE PLAINTEXT/CIPHERTEXT - KAT for CFB1
+# State : Encrypt and Decrypt
+# Tue Jun 24 03:11:51 PM
+
+[ENCRYPT]
+COUNT = 0
+KEY = 0101010101010101
+IV = 8000000000000000
+PLAINTEXT = 0
+
+COUNT = 1
+KEY = 0101010101010101
+IV = 4000000000000000
+PLAINTEXT = 0
+
+COUNT = 2
+KEY = 0101010101010101
+IV = 2000000000000000
+PLAINTEXT = 0
+
+COUNT = 3
+KEY = 0101010101010101
+IV = 1000000000000000
+PLAINTEXT = 0
+
+COUNT = 4
+KEY = 0101010101010101
+IV = 0800000000000000
+PLAINTEXT = 0
+
+COUNT = 5
+KEY = 0101010101010101
+IV = 0400000000000000
+PLAINTEXT = 0
+
+COUNT = 6
+KEY = 0101010101010101
+IV = 0200000000000000
+PLAINTEXT = 0
+
+COUNT = 7
+KEY = 0101010101010101
+IV = 0100000000000000
+PLAINTEXT = 0
+
+COUNT = 8
+KEY = 0101010101010101
+IV = 0080000000000000
+PLAINTEXT = 0
+
+COUNT = 9
+KEY = 0101010101010101
+IV = 0040000000000000
+PLAINTEXT = 0
+
+COUNT = 10
+KEY = 0101010101010101
+IV = 0020000000000000
+PLAINTEXT = 0
+
+COUNT = 11
+KEY = 0101010101010101
+IV = 0010000000000000
+PLAINTEXT = 0
+
+COUNT = 12
+KEY = 0101010101010101
+IV = 0008000000000000
+PLAINTEXT = 0
+
+COUNT = 13
+KEY = 0101010101010101
+IV = 0004000000000000
+PLAINTEXT = 0
+
+COUNT = 14
+KEY = 0101010101010101
+IV = 0002000000000000
+PLAINTEXT = 0
+
+COUNT = 15
+KEY = 0101010101010101
+IV = 0001000000000000
+PLAINTEXT = 0
+
+COUNT = 16
+KEY = 0101010101010101
+IV = 0000800000000000
+PLAINTEXT = 0
+
+COUNT = 17
+KEY = 0101010101010101
+IV = 0000400000000000
+PLAINTEXT = 0
+
+COUNT = 18
+KEY = 0101010101010101
+IV = 0000200000000000
+PLAINTEXT = 0
+
+COUNT = 19
+KEY = 0101010101010101
+IV = 0000100000000000
+PLAINTEXT = 0
+
+COUNT = 20
+KEY = 0101010101010101
+IV = 0000080000000000
+PLAINTEXT = 0
+
+COUNT = 21
+KEY = 0101010101010101
+IV = 0000040000000000
+PLAINTEXT = 0
+
+COUNT = 22
+KEY = 0101010101010101
+IV = 0000020000000000
+PLAINTEXT = 0
+
+COUNT = 23
+KEY = 0101010101010101
+IV = 0000010000000000
+PLAINTEXT = 0
+
+COUNT = 24
+KEY = 0101010101010101
+IV = 0000008000000000
+PLAINTEXT = 0
+
+COUNT = 25
+KEY = 0101010101010101
+IV = 0000004000000000
+PLAINTEXT = 0
+
+COUNT = 26
+KEY = 0101010101010101
+IV = 0000002000000000
+PLAINTEXT = 0
+
+COUNT = 27
+KEY = 0101010101010101
+IV = 0000001000000000
+PLAINTEXT = 0
+
+COUNT = 28
+KEY = 0101010101010101
+IV = 0000000800000000
+PLAINTEXT = 0
+
+COUNT = 29
+KEY = 0101010101010101
+IV = 0000000400000000
+PLAINTEXT = 0
+
+COUNT = 30
+KEY = 0101010101010101
+IV = 0000000200000000
+PLAINTEXT = 0
+
+COUNT = 31
+KEY = 0101010101010101
+IV = 0000000100000000
+PLAINTEXT = 0
+
+COUNT = 32
+KEY = 0101010101010101
+IV = 0000000080000000
+PLAINTEXT = 0
+
+COUNT = 33
+KEY = 0101010101010101
+IV = 0000000040000000
+PLAINTEXT = 0
+
+COUNT = 34
+KEY = 0101010101010101
+IV = 0000000020000000
+PLAINTEXT = 0
+
+COUNT = 35
+KEY = 0101010101010101
+IV = 0000000010000000
+PLAINTEXT = 0
+
+COUNT = 36
+KEY = 0101010101010101
+IV = 0000000008000000
+PLAINTEXT = 0
+
+COUNT = 37
+KEY = 0101010101010101
+IV = 0000000004000000
+PLAINTEXT = 0
+
+COUNT = 38
+KEY = 0101010101010101
+IV = 0000000002000000
+PLAINTEXT = 0
+
+COUNT = 39
+KEY = 0101010101010101
+IV = 0000000001000000
+PLAINTEXT = 0
+
+COUNT = 40
+KEY = 0101010101010101
+IV = 0000000000800000
+PLAINTEXT = 0
+
+COUNT = 41
+KEY = 0101010101010101
+IV = 0000000000400000
+PLAINTEXT = 0
+
+COUNT = 42
+KEY = 0101010101010101
+IV = 0000000000200000
+PLAINTEXT = 0
+
+COUNT = 43
+KEY = 0101010101010101
+IV = 0000000000100000
+PLAINTEXT = 0
+
+COUNT = 44
+KEY = 0101010101010101
+IV = 0000000000080000
+PLAINTEXT = 0
+
+COUNT = 45
+KEY = 0101010101010101
+IV = 0000000000040000
+PLAINTEXT = 0
+
+COUNT = 46
+KEY = 0101010101010101
+IV = 0000000000020000
+PLAINTEXT = 0
+
+COUNT = 47
+KEY = 0101010101010101
+IV = 0000000000010000
+PLAINTEXT = 0
+
+COUNT = 48
+KEY = 0101010101010101
+IV = 0000000000008000
+PLAINTEXT = 0
+
+COUNT = 49
+KEY = 0101010101010101
+IV = 0000000000004000
+PLAINTEXT = 0
+
+COUNT = 50
+KEY = 0101010101010101
+IV = 0000000000002000
+PLAINTEXT = 0
+
+COUNT = 51
+KEY = 0101010101010101
+IV = 0000000000001000
+PLAINTEXT = 0
+
+COUNT = 52
+KEY = 0101010101010101
+IV = 0000000000000800
+PLAINTEXT = 0
+
+COUNT = 53
+KEY = 0101010101010101
+IV = 0000000000000400
+PLAINTEXT = 0
+
+COUNT = 54
+KEY = 0101010101010101
+IV = 0000000000000200
+PLAINTEXT = 0
+
+COUNT = 55
+KEY = 0101010101010101
+IV = 0000000000000100
+PLAINTEXT = 0
+
+COUNT = 56
+KEY = 0101010101010101
+IV = 0000000000000080
+PLAINTEXT = 0
+
+COUNT = 57
+KEY = 0101010101010101
+IV = 0000000000000040
+PLAINTEXT = 0
+
+COUNT = 58
+KEY = 0101010101010101
+IV = 0000000000000020
+PLAINTEXT = 0
+
+COUNT = 59
+KEY = 0101010101010101
+IV = 0000000000000010
+PLAINTEXT = 0
+
+COUNT = 60
+KEY = 0101010101010101
+IV = 0000000000000008
+PLAINTEXT = 0
+
+COUNT = 61
+KEY = 0101010101010101
+IV = 0000000000000004
+PLAINTEXT = 0
+
+COUNT = 62
+KEY = 0101010101010101
+IV = 0000000000000002
+PLAINTEXT = 0
+
+COUNT = 63
+KEY = 0101010101010101
+IV = 0000000000000001
+PLAINTEXT = 0
+
+
+[DECRYPT]
+COUNT = 0
+KEY = 0101010101010101
+IV = 8000000000000000
+CIPHERTEXT = 0
+
+COUNT = 1
+KEY = 0101010101010101
+IV = 4000000000000000
+CIPHERTEXT = 0
+
+COUNT = 2
+KEY = 0101010101010101
+IV = 2000000000000000
+CIPHERTEXT = 0
+
+COUNT = 3
+KEY = 0101010101010101
+IV = 1000000000000000
+CIPHERTEXT = 0
+
+COUNT = 4
+KEY = 0101010101010101
+IV = 0800000000000000
+CIPHERTEXT = 0
+
+COUNT = 5
+KEY = 0101010101010101
+IV = 0400000000000000
+CIPHERTEXT = 0
+
+COUNT = 6
+KEY = 0101010101010101
+IV = 0200000000000000
+CIPHERTEXT = 0
+
+COUNT = 7
+KEY = 0101010101010101
+IV = 0100000000000000
+CIPHERTEXT = 0
+
+COUNT = 8
+KEY = 0101010101010101
+IV = 0080000000000000
+CIPHERTEXT = 0
+
+COUNT = 9
+KEY = 0101010101010101
+IV = 0040000000000000
+CIPHERTEXT = 0
+
+COUNT = 10
+KEY = 0101010101010101
+IV = 0020000000000000
+CIPHERTEXT = 0
+
+COUNT = 11
+KEY = 0101010101010101
+IV = 0010000000000000
+CIPHERTEXT = 0
+
+COUNT = 12
+KEY = 0101010101010101
+IV = 0008000000000000
+CIPHERTEXT = 0
+
+COUNT = 13
+KEY = 0101010101010101
+IV = 0004000000000000
+CIPHERTEXT = 0
+
+COUNT = 14
+KEY = 0101010101010101
+IV = 0002000000000000
+CIPHERTEXT = 0
+
+COUNT = 15
+KEY = 0101010101010101
+IV = 0001000000000000
+CIPHERTEXT = 0
+
+COUNT = 16
+KEY = 0101010101010101
+IV = 0000800000000000
+CIPHERTEXT = 0
+
+COUNT = 17
+KEY = 0101010101010101
+IV = 0000400000000000
+CIPHERTEXT = 0
+
+COUNT = 18
+KEY = 0101010101010101
+IV = 0000200000000000
+CIPHERTEXT = 0
+
+COUNT = 19
+KEY = 0101010101010101
+IV = 0000100000000000
+CIPHERTEXT = 0
+
+COUNT = 20
+KEY = 0101010101010101
+IV = 0000080000000000
+CIPHERTEXT = 0
+
+COUNT = 21
+KEY = 0101010101010101
+IV = 0000040000000000
+CIPHERTEXT = 0
+
+COUNT = 22
+KEY = 0101010101010101
+IV = 0000020000000000
+CIPHERTEXT = 0
+
+COUNT = 23
+KEY = 0101010101010101
+IV = 0000010000000000
+CIPHERTEXT = 0
+
+COUNT = 24
+KEY = 0101010101010101
+IV = 0000008000000000
+CIPHERTEXT = 0
+
+COUNT = 25
+KEY = 0101010101010101
+IV = 0000004000000000
+CIPHERTEXT = 0
+
+COUNT = 26
+KEY = 0101010101010101
+IV = 0000002000000000
+CIPHERTEXT = 0
+
+COUNT = 27
+KEY = 0101010101010101
+IV = 0000001000000000
+CIPHERTEXT = 0
+
+COUNT = 28
+KEY = 0101010101010101
+IV = 0000000800000000
+CIPHERTEXT = 0
+
+COUNT = 29
+KEY = 0101010101010101
+IV = 0000000400000000
+CIPHERTEXT = 0
+
+COUNT = 30
+KEY = 0101010101010101
+IV = 0000000200000000
+CIPHERTEXT = 0
+
+COUNT = 31
+KEY = 0101010101010101
+IV = 0000000100000000
+CIPHERTEXT = 0
+
+COUNT = 32
+KEY = 0101010101010101
+IV = 0000000080000000
+CIPHERTEXT = 0
+
+COUNT = 33
+KEY = 0101010101010101
+IV = 0000000040000000
+CIPHERTEXT = 0
+
+COUNT = 34
+KEY = 0101010101010101
+IV = 0000000020000000
+CIPHERTEXT = 0
+
+COUNT = 35
+KEY = 0101010101010101
+IV = 0000000010000000
+CIPHERTEXT = 0
+
+COUNT = 36
+KEY = 0101010101010101
+IV = 0000000008000000
+CIPHERTEXT = 0
+
+COUNT = 37
+KEY = 0101010101010101
+IV = 0000000004000000
+CIPHERTEXT = 0
+
+COUNT = 38
+KEY = 0101010101010101
+IV = 0000000002000000
+CIPHERTEXT = 0
+
+COUNT = 39
+KEY = 0101010101010101
+IV = 0000000001000000
+CIPHERTEXT = 0
+
+COUNT = 40
+KEY = 0101010101010101
+IV = 0000000000800000
+CIPHERTEXT = 0
+
+COUNT = 41
+KEY = 0101010101010101
+IV = 0000000000400000
+CIPHERTEXT = 0
+
+COUNT = 42
+KEY = 0101010101010101
+IV = 0000000000200000
+CIPHERTEXT = 0
+
+COUNT = 43
+KEY = 0101010101010101
+IV = 0000000000100000
+CIPHERTEXT = 0
+
+COUNT = 44
+KEY = 0101010101010101
+IV = 0000000000080000
+CIPHERTEXT = 0
+
+COUNT = 45
+KEY = 0101010101010101
+IV = 0000000000040000
+CIPHERTEXT = 0
+
+COUNT = 46
+KEY = 0101010101010101
+IV = 0000000000020000
+CIPHERTEXT = 0
+
+COUNT = 47
+KEY = 0101010101010101
+IV = 0000000000010000
+CIPHERTEXT = 0
+
+COUNT = 48
+KEY = 0101010101010101
+IV = 0000000000008000
+CIPHERTEXT = 0
+
+COUNT = 49
+KEY = 0101010101010101
+IV = 0000000000004000
+CIPHERTEXT = 0
+
+COUNT = 50
+KEY = 0101010101010101
+IV = 0000000000002000
+CIPHERTEXT = 0
+
+COUNT = 51
+KEY = 0101010101010101
+IV = 0000000000001000
+CIPHERTEXT = 0
+
+COUNT = 52
+KEY = 0101010101010101
+IV = 0000000000000800
+CIPHERTEXT = 0
+
+COUNT = 53
+KEY = 0101010101010101
+IV = 0000000000000400
+CIPHERTEXT = 0
+
+COUNT = 54
+KEY = 0101010101010101
+IV = 0000000000000200
+CIPHERTEXT = 0
+
+COUNT = 55
+KEY = 0101010101010101
+IV = 0000000000000100
+CIPHERTEXT = 0
+
+COUNT = 56
+KEY = 0101010101010101
+IV = 0000000000000080
+CIPHERTEXT = 0
+
+COUNT = 57
+KEY = 0101010101010101
+IV = 0000000000000040
+CIPHERTEXT = 0
+
+COUNT = 58
+KEY = 0101010101010101
+IV = 0000000000000020
+CIPHERTEXT = 0
+
+COUNT = 59
+KEY = 0101010101010101
+IV = 0000000000000010
+CIPHERTEXT = 0
+
+COUNT = 60
+KEY = 0101010101010101
+IV = 0000000000000008
+CIPHERTEXT = 0
+
+COUNT = 61
+KEY = 0101010101010101
+IV = 0000000000000004
+CIPHERTEXT = 0
+
+COUNT = 62
+KEY = 0101010101010101
+IV = 0000000000000002
+CIPHERTEXT = 0
+
+COUNT = 63
+KEY = 0101010101010101
+IV = 0000000000000001
+CIPHERTEXT = 0
diff --git a/fips/testvectors/des/req/CFB64MMT.req b/fips/testvectors/des/req/CFB64MMT.req
new file mode 100644 (file)
index 0000000..030889b
--- /dev/null
@@ -0,0 +1,109 @@
+# CAVS 2.0
+# Config Info for : "OpenSSL_DES"
+# DES Multi Block Message Test for CFB64
+# State : Encrypt and Decrypt
+# Tue Jun 24 03:13:22 PM
+
+[ENCRYPT]
+
+COUNT = 0
+KEY = fef7df9b403b377c
+IV = 20b77d3db64fe6a6
+PLAINTEXT = 6a0bb874a8c575bd
+
+COUNT = 1
+KEY = 9b162a071f015802
+IV = 2f83cf4060546a84
+PLAINTEXT = 4b45f67cca2d506e2d9a8c7623ccf57f
+
+COUNT = 2
+KEY = 57c258704f3d1319
+IV = ad5be18ff3ed3c90
+PLAINTEXT = 38d9c87916a0900608427eff0f8fb05f53e0adddb8579b58
+
+COUNT = 3
+KEY = 10ba132fe558266e
+IV = 2827b1b24286d1de
+PLAINTEXT = 6b26aede2a205f342d459f9cb6a4da27a5681cfd919ec943173f8e42726a97c5
+
+COUNT = 4
+KEY = dab03115ead019c2
+IV = db195f3996f1ff27
+PLAINTEXT = 577133684c4abbd53152c2ac2b2930c30679e1161e3ea7bc7f6593194b9970545c5a910b2b4fcd46
+
+COUNT = 5
+KEY = 23408352d36b8fc4
+IV = 5bc9b05a6e6b763e
+PLAINTEXT = b3eb3c88568b0674f9afb364892039854f95c36472285804bd07b72ea36c860880cface9225afc6c889d13c3e983834e
+
+COUNT = 6
+KEY = 6b1c26dab6e307d9
+IV = 40a7a9f062aaa81e
+PLAINTEXT = da6e7877d3aa94f90eee2476513d2eaee5096f3b9055efd2c317d9c613e08acdedbee8078662f53c127ea4663671eb6fbf26193b94396ae9
+
+COUNT = 7
+KEY = 2a9b68da61e3109d
+IV = 421b6013a65aa67e
+PLAINTEXT = 1464bc0a905adaf34a0d60c2fcda89d55b38417754ec8ab5967c1e6d50e555a73c904a28dc83394504d52cf69864d72b97cac063588ca37a149514c2a5e36656
+
+COUNT = 8
+KEY = dfa713adbf97c837
+IV = 995634492a9bbfdb
+PLAINTEXT = 08aa86da9107ca3e16a2b58950e656a15c085b88033e79313e2c0f92f99f06fa187efba5b8fea08eb7145f8476304180dd280f36a072b7eac197f08557e421e88d637f80ed0a761a
+
+COUNT = 9
+KEY = 753bef73ec98bc8c
+IV = d29029949dd5a967
+PLAINTEXT = e1a4d4cb81ff50ed997ec8eda47abb9b43e2f0f3903b6944afe49392a79fbf38704dd5d14ef947595d1845906c0f309f0ef650feef9cc99565cbcb2247cd0ada022e6e53e9c40ba1cded53c0ce188a32
+
+[DECRYPT]
+
+COUNT = 0
+KEY = 1f51404c46f73dd3
+IV = df2f2488c53ef366
+CIPHERTEXT = fd9938732ea86716
+
+COUNT = 1
+KEY = 64f8e07351a2dcd5
+IV = e1a6cddf44b62d55
+CIPHERTEXT = 2b0883480a8210f83784af6936d12b0f
+
+COUNT = 2
+KEY = e640b6bca27ff16e
+IV = 4bb9f172626c2a0e
+CIPHERTEXT = b27e2115d13ec5ba71f7159a9c5697761ec992ca9741c3ae
+
+COUNT = 3
+KEY = 6785e58592104594
+IV = 3666114b1d9510e7
+CIPHERTEXT = dae17b52ce854fd19b7a9bad0489d21facd8509f7bbee35743d68ad7a3527c0a
+
+COUNT = 4
+KEY = d6c8bce901d53dcb
+IV = 5d6eb0b4ba23684d
+CIPHERTEXT = 739bcea19081a5c283e3044f16ba14a6c2e73e566719852640f01a5a15632a31b25ffbb299b037a8
+
+COUNT = 5
+KEY = 311f02c4e54029f8
+IV = ab041aeaf54e050e
+CIPHERTEXT = 595306fd1446faef0e26310db3808bff18e0fb42d74ff3cd19191df5f4d44c8ef89db25304a553885eedb9dd034dea96
+
+COUNT = 6
+KEY = 2fb60dada4239dc2
+IV = c6764c43659d0caa
+CIPHERTEXT = a174488f6221b14995a410b8ebfc36f4692af6190e41e4f8b5bd5c0d3d15c6b2e6941991fe649e5fbeecf7c86f5c5fa5d0853375bcefb20b
+
+COUNT = 7
+KEY = 075d463807a4ec19
+IV = c2dd12d3a3682b9e
+CIPHERTEXT = 9ff11d21acb74196ea6444b0786b5e13753dcb5f150f7d10f4de0ea3aab1f8fb9f1f080221101093b3c8dd98a821686ff1175093348a88781e404db6f92a5c6a
+
+COUNT = 8
+KEY = 1692ce3b080bb6d5
+IV = f32c3624aadaf5d3
+CIPHERTEXT = f0eac9339484aac38703681724a45fe8ce8f2547e1fe19e2e9a13f8312424bd9e0a5fb7b20b2aa2a1fd5235619a6b3e4f4c5822f2e08224d15d9699336d97c5b17ca2d0429ab873b
+
+COUNT = 9
+KEY = 6237f77a46c8c4bf
+IV = 2d4de36d5b9f9797
+CIPHERTEXT = 4ee410747a030abf35414184e18bbe405b57ed382237e9afbcaefa5b55425d1aaad243e2252a1bf649d514605132de9b14cbb1902ce191c4574cd0cf1d82d410b4f51b9f20a27b839ee6af2543940f05
diff --git a/fips/testvectors/des/req/CFB64Monte.req b/fips/testvectors/des/req/CFB64Monte.req
new file mode 100644 (file)
index 0000000..63f8f64
--- /dev/null
@@ -0,0 +1,17 @@
+# CAVS 2.0
+# Config Info for : "OpenSSL_DES"
+# DES Monte Carlo (Modes) Test for CFB64
+# State : Encrypt and Decrypt
+# Tue Jun 24 03:13:22 PM
+
+[ENCRYPT]
+KEY = 62d65740708019f1
+IV = 14544ea4813c49d9
+PLAINTEXT = c3acc89b9b6037ef
+
+
+[DECRYPT]
+KEY = 1938ce9d3170e943
+IV = 50da37dea25a9471
+CIPHERTEXT = ac81a4c963661942
+
diff --git a/fips/testvectors/des/req/CFB64invperm.req b/fips/testvectors/des/req/CFB64invperm.req
new file mode 100644 (file)
index 0000000..687f855
--- /dev/null
@@ -0,0 +1,648 @@
+# CAVS 2.0
+# Config Info for : "OpenSSL_DES"
+# INVERSE PERMUTATION - KAT for CFB64
+# State : Encrypt and Decrypt
+# Tue Jun 24 03:11:51 PM
+
+[ENCRYPT]
+COUNT = 0
+KEY = 0101010101010101
+IV = 8000000000000000
+PLAINTEXT = 95f8a5e5dd31d900
+
+COUNT = 1
+KEY = 0101010101010101
+IV = 4000000000000000
+PLAINTEXT = dd7f121ca5015619
+
+COUNT = 2
+KEY = 0101010101010101
+IV = 2000000000000000
+PLAINTEXT = 2e8653104f3834ea
+
+COUNT = 3
+KEY = 0101010101010101
+IV = 1000000000000000
+PLAINTEXT = 4bd388ff6cd81d4f
+
+COUNT = 4
+KEY = 0101010101010101
+IV = 0800000000000000
+PLAINTEXT = 20b9e767b2fb1456
+
+COUNT = 5
+KEY = 0101010101010101
+IV = 0400000000000000
+PLAINTEXT = 55579380d77138ef
+
+COUNT = 6
+KEY = 0101010101010101
+IV = 0200000000000000
+PLAINTEXT = 6cc5defaaf04512f
+
+COUNT = 7
+KEY = 0101010101010101
+IV = 0100000000000000
+PLAINTEXT = 0d9f279ba5d87260
+
+COUNT = 8
+KEY = 0101010101010101
+IV = 0080000000000000
+PLAINTEXT = d9031b0271bd5a0a
+
+COUNT = 9
+KEY = 0101010101010101
+IV = 0040000000000000
+PLAINTEXT = 424250b37c3dd951
+
+COUNT = 10
+KEY = 0101010101010101
+IV = 0020000000000000
+PLAINTEXT = b8061b7ecd9a21e5
+
+COUNT = 11
+KEY = 0101010101010101
+IV = 0010000000000000
+PLAINTEXT = f15d0f286b65bd28
+
+COUNT = 12
+KEY = 0101010101010101
+IV = 0008000000000000
+PLAINTEXT = add0cc8d6e5deba1
+
+COUNT = 13
+KEY = 0101010101010101
+IV = 0004000000000000
+PLAINTEXT = e6d5f82752ad63d1
+
+COUNT = 14
+KEY = 0101010101010101
+IV = 0002000000000000
+PLAINTEXT = ecbfe3bd3f591a5e
+
+COUNT = 15
+KEY = 0101010101010101
+IV = 0001000000000000
+PLAINTEXT = f356834379d165cd
+
+COUNT = 16
+KEY = 0101010101010101
+IV = 0000800000000000
+PLAINTEXT = 2b9f982f20037fa9
+
+COUNT = 17
+KEY = 0101010101010101
+IV = 0000400000000000
+PLAINTEXT = 889de068a16f0be6
+
+COUNT = 18
+KEY = 0101010101010101
+IV = 0000200000000000
+PLAINTEXT = e19e275d846a1298
+
+COUNT = 19
+KEY = 0101010101010101
+IV = 0000100000000000
+PLAINTEXT = 329a8ed523d71aec
+
+COUNT = 20
+KEY = 0101010101010101
+IV = 0000080000000000
+PLAINTEXT = e7fce22557d23c97
+
+COUNT = 21
+KEY = 0101010101010101
+IV = 0000040000000000
+PLAINTEXT = 12a9f5817ff2d65d
+
+COUNT = 22
+KEY = 0101010101010101
+IV = 0000020000000000
+PLAINTEXT = a484c3ad38dc9c19
+
+COUNT = 23
+KEY = 0101010101010101
+IV = 0000010000000000
+PLAINTEXT = fbe00a8a1ef8ad72
+
+COUNT = 24
+KEY = 0101010101010101
+IV = 0000008000000000
+PLAINTEXT = 750d079407521363
+
+COUNT = 25
+KEY = 0101010101010101
+IV = 0000004000000000
+PLAINTEXT = 64feed9c724c2faf
+
+COUNT = 26
+KEY = 0101010101010101
+IV = 0000002000000000
+PLAINTEXT = f02b263b328e2b60
+
+COUNT = 27
+KEY = 0101010101010101
+IV = 0000001000000000
+PLAINTEXT = 9d64555a9a10b852
+
+COUNT = 28
+KEY = 0101010101010101
+IV = 0000000800000000
+PLAINTEXT = d106ff0bed5255d7
+
+COUNT = 29
+KEY = 0101010101010101
+IV = 0000000400000000
+PLAINTEXT = e1652c6b138c64a5
+
+COUNT = 30
+KEY = 0101010101010101
+IV = 0000000200000000
+PLAINTEXT = e428581186ec8f46
+
+COUNT = 31
+KEY = 0101010101010101
+IV = 0000000100000000
+PLAINTEXT = aeb5f5ede22d1a36
+
+COUNT = 32
+KEY = 0101010101010101
+IV = 0000000080000000
+PLAINTEXT = e943d7568aec0c5c
+
+COUNT = 33
+KEY = 0101010101010101
+IV = 0000000040000000
+PLAINTEXT = df98c8276f54b04b
+
+COUNT = 34
+KEY = 0101010101010101
+IV = 0000000020000000
+PLAINTEXT = b160e4680f6c696f
+
+COUNT = 35
+KEY = 0101010101010101
+IV = 0000000010000000
+PLAINTEXT = fa0752b07d9c4ab8
+
+COUNT = 36
+KEY = 0101010101010101
+IV = 0000000008000000
+PLAINTEXT = ca3a2b036dbc8502
+
+COUNT = 37
+KEY = 0101010101010101
+IV = 0000000004000000
+PLAINTEXT = 5e0905517bb59bcf
+
+COUNT = 38
+KEY = 0101010101010101
+IV = 0000000002000000
+PLAINTEXT = 814eeb3b91d90726
+
+COUNT = 39
+KEY = 0101010101010101
+IV = 0000000001000000
+PLAINTEXT = 4d49db1532919c9f
+
+COUNT = 40
+KEY = 0101010101010101
+IV = 0000000000800000
+PLAINTEXT = 25eb5fc3f8cf0621
+
+COUNT = 41
+KEY = 0101010101010101
+IV = 0000000000400000
+PLAINTEXT = ab6a20c0620d1c6f
+
+COUNT = 42
+KEY = 0101010101010101
+IV = 0000000000200000
+PLAINTEXT = 79e90dbc98f92cca
+
+COUNT = 43
+KEY = 0101010101010101
+IV = 0000000000100000
+PLAINTEXT = 866ecedd8072bb0e
+
+COUNT = 44
+KEY = 0101010101010101
+IV = 0000000000080000
+PLAINTEXT = 8b54536f2f3e64a8
+
+COUNT = 45
+KEY = 0101010101010101
+IV = 0000000000040000
+PLAINTEXT = ea51d3975595b86b
+
+COUNT = 46
+KEY = 0101010101010101
+IV = 0000000000020000
+PLAINTEXT = caffc6ac4542de31
+
+COUNT = 47
+KEY = 0101010101010101
+IV = 0000000000010000
+PLAINTEXT = 8dd45a2ddf90796c
+
+COUNT = 48
+KEY = 0101010101010101
+IV = 0000000000008000
+PLAINTEXT = 1029d55e880ec2d0
+
+COUNT = 49
+KEY = 0101010101010101
+IV = 0000000000004000
+PLAINTEXT = 5d86cb23639dbea9
+
+COUNT = 50
+KEY = 0101010101010101
+IV = 0000000000002000
+PLAINTEXT = 1d1ca853ae7c0c5f
+
+COUNT = 51
+KEY = 0101010101010101
+IV = 0000000000001000
+PLAINTEXT = ce332329248f3228
+
+COUNT = 52
+KEY = 0101010101010101
+IV = 0000000000000800
+PLAINTEXT = 8405d1abe24fb942
+
+COUNT = 53
+KEY = 0101010101010101
+IV = 0000000000000400
+PLAINTEXT = e643d78090ca4207
+
+COUNT = 54
+KEY = 0101010101010101
+IV = 0000000000000200
+PLAINTEXT = 48221b9937748a23
+
+COUNT = 55
+KEY = 0101010101010101
+IV = 0000000000000100
+PLAINTEXT = dd7c0bbd61fafd54
+
+COUNT = 56
+KEY = 0101010101010101
+IV = 0000000000000080
+PLAINTEXT = 2fbc291a570db5c4
+
+COUNT = 57
+KEY = 0101010101010101
+IV = 0000000000000040
+PLAINTEXT = e07c30d7e4e26e12
+
+COUNT = 58
+KEY = 0101010101010101
+IV = 0000000000000020
+PLAINTEXT = 0953e2258e8e90a1
+
+COUNT = 59
+KEY = 0101010101010101
+IV = 0000000000000010
+PLAINTEXT = 5b711bc4ceebf2ee
+
+COUNT = 60
+KEY = 0101010101010101
+IV = 0000000000000008
+PLAINTEXT = cc083f1e6d9e85f6
+
+COUNT = 61
+KEY = 0101010101010101
+IV = 0000000000000004
+PLAINTEXT = d2fd8867d50d2dfe
+
+COUNT = 62
+KEY = 0101010101010101
+IV = 0000000000000002
+PLAINTEXT = 06e7ea22ce92708f
+
+COUNT = 63
+KEY = 0101010101010101
+IV = 0000000000000001
+PLAINTEXT = 166b40b44aba4bd6
+
+
+[DECRYPT]
+COUNT = 0
+KEY = 0101010101010101
+IV = 8000000000000000
+CIPHERTEXT = 95f8a5e5dd31d900
+
+COUNT = 1
+KEY = 0101010101010101
+IV = 4000000000000000
+CIPHERTEXT = dd7f121ca5015619
+
+COUNT = 2
+KEY = 0101010101010101
+IV = 2000000000000000
+CIPHERTEXT = 2e8653104f3834ea
+
+COUNT = 3
+KEY = 0101010101010101
+IV = 1000000000000000
+CIPHERTEXT = 4bd388ff6cd81d4f
+
+COUNT = 4
+KEY = 0101010101010101
+IV = 0800000000000000
+CIPHERTEXT = 20b9e767b2fb1456
+
+COUNT = 5
+KEY = 0101010101010101
+IV = 0400000000000000
+CIPHERTEXT = 55579380d77138ef
+
+COUNT = 6
+KEY = 0101010101010101
+IV = 0200000000000000
+CIPHERTEXT = 6cc5defaaf04512f
+
+COUNT = 7
+KEY = 0101010101010101
+IV = 0100000000000000
+CIPHERTEXT = 0d9f279ba5d87260
+
+COUNT = 8
+KEY = 0101010101010101
+IV = 0080000000000000
+CIPHERTEXT = d9031b0271bd5a0a
+
+COUNT = 9
+KEY = 0101010101010101
+IV = 0040000000000000
+CIPHERTEXT = 424250b37c3dd951
+
+COUNT = 10
+KEY = 0101010101010101
+IV = 0020000000000000
+CIPHERTEXT = b8061b7ecd9a21e5
+
+COUNT = 11
+KEY = 0101010101010101
+IV = 0010000000000000
+CIPHERTEXT = f15d0f286b65bd28
+
+COUNT = 12
+KEY = 0101010101010101
+IV = 0008000000000000
+CIPHERTEXT = add0cc8d6e5deba1
+
+COUNT = 13
+KEY = 0101010101010101
+IV = 0004000000000000
+CIPHERTEXT = e6d5f82752ad63d1
+
+COUNT = 14
+KEY = 0101010101010101
+IV = 0002000000000000
+CIPHERTEXT = ecbfe3bd3f591a5e
+
+COUNT = 15
+KEY = 0101010101010101
+IV = 0001000000000000
+CIPHERTEXT = f356834379d165cd
+
+COUNT = 16
+KEY = 0101010101010101
+IV = 0000800000000000
+CIPHERTEXT = 2b9f982f20037fa9
+
+COUNT = 17
+KEY = 0101010101010101
+IV = 0000400000000000
+CIPHERTEXT = 889de068a16f0be6
+
+COUNT = 18
+KEY = 0101010101010101
+IV = 0000200000000000
+CIPHERTEXT = e19e275d846a1298
+
+COUNT = 19
+KEY = 0101010101010101
+IV = 0000100000000000
+CIPHERTEXT = 329a8ed523d71aec
+
+COUNT = 20
+KEY = 0101010101010101
+IV = 0000080000000000
+CIPHERTEXT = e7fce22557d23c97
+
+COUNT = 21
+KEY = 0101010101010101
+IV = 0000040000000000
+CIPHERTEXT = 12a9f5817ff2d65d
+
+COUNT = 22
+KEY = 0101010101010101
+IV = 0000020000000000
+CIPHERTEXT = a484c3ad38dc9c19
+
+COUNT = 23
+KEY = 0101010101010101
+IV = 0000010000000000
+CIPHERTEXT = fbe00a8a1ef8ad72
+
+COUNT = 24
+KEY = 0101010101010101
+IV = 0000008000000000
+CIPHERTEXT = 750d079407521363
+
+COUNT = 25
+KEY = 0101010101010101
+IV = 0000004000000000
+CIPHERTEXT = 64feed9c724c2faf
+
+COUNT = 26
+KEY = 0101010101010101
+IV = 0000002000000000
+CIPHERTEXT = f02b263b328e2b60
+
+COUNT = 27
+KEY = 0101010101010101
+IV = 0000001000000000
+CIPHERTEXT = 9d64555a9a10b852
+
+COUNT = 28
+KEY = 0101010101010101
+IV = 0000000800000000
+CIPHERTEXT = d106ff0bed5255d7
+
+COUNT = 29
+KEY = 0101010101010101
+IV = 0000000400000000
+CIPHERTEXT = e1652c6b138c64a5
+
+COUNT = 30
+KEY = 0101010101010101
+IV = 0000000200000000
+CIPHERTEXT = e428581186ec8f46
+
+COUNT = 31
+KEY = 0101010101010101
+IV = 0000000100000000
+CIPHERTEXT = aeb5f5ede22d1a36
+
+COUNT = 32
+KEY = 0101010101010101
+IV = 0000000080000000
+CIPHERTEXT = e943d7568aec0c5c
+
+COUNT = 33
+KEY = 0101010101010101
+IV = 0000000040000000
+CIPHERTEXT = df98c8276f54b04b
+
+COUNT = 34
+KEY = 0101010101010101
+IV = 0000000020000000
+CIPHERTEXT = b160e4680f6c696f
+
+COUNT = 35
+KEY = 0101010101010101
+IV = 0000000010000000
+CIPHERTEXT = fa0752b07d9c4ab8
+
+COUNT = 36
+KEY = 0101010101010101
+IV = 0000000008000000
+CIPHERTEXT = ca3a2b036dbc8502
+
+COUNT = 37
+KEY = 0101010101010101
+IV = 0000000004000000
+CIPHERTEXT = 5e0905517bb59bcf
+
+COUNT = 38
+KEY = 0101010101010101
+IV = 0000000002000000
+CIPHERTEXT = 814eeb3b91d90726
+
+COUNT = 39
+KEY = 0101010101010101
+IV = 0000000001000000
+CIPHERTEXT = 4d49db1532919c9f
+
+COUNT = 40
+KEY = 0101010101010101
+IV = 0000000000800000
+CIPHERTEXT = 25eb5fc3f8cf0621
+
+COUNT = 41
+KEY = 0101010101010101
+IV = 0000000000400000
+CIPHERTEXT = ab6a20c0620d1c6f
+
+COUNT = 42
+KEY = 0101010101010101
+IV = 0000000000200000
+CIPHERTEXT = 79e90dbc98f92cca
+
+COUNT = 43
+KEY = 0101010101010101
+IV = 0000000000100000
+CIPHERTEXT = 866ecedd8072bb0e
+
+COUNT = 44
+KEY = 0101010101010101
+IV = 0000000000080000
+CIPHERTEXT = 8b54536f2f3e64a8
+
+COUNT = 45
+KEY = 0101010101010101
+IV = 0000000000040000
+CIPHERTEXT = ea51d3975595b86b
+
+COUNT = 46
+KEY = 0101010101010101
+IV = 0000000000020000
+CIPHERTEXT = caffc6ac4542de31
+
+COUNT = 47
+KEY = 0101010101010101
+IV = 0000000000010000
+CIPHERTEXT = 8dd45a2ddf90796c
+
+COUNT = 48
+KEY = 0101010101010101
+IV = 0000000000008000
+CIPHERTEXT = 1029d55e880ec2d0
+
+COUNT = 49
+KEY = 0101010101010101
+IV = 0000000000004000
+CIPHERTEXT = 5d86cb23639dbea9
+
+COUNT = 50
+KEY = 0101010101010101
+IV = 0000000000002000
+CIPHERTEXT = 1d1ca853ae7c0c5f
+
+COUNT = 51
+KEY = 0101010101010101
+IV = 0000000000001000
+CIPHERTEXT = ce332329248f3228
+
+COUNT = 52
+KEY = 0101010101010101
+IV = 0000000000000800
+CIPHERTEXT = 8405d1abe24fb942
+
+COUNT = 53
+KEY = 0101010101010101
+IV = 0000000000000400
+CIPHERTEXT = e643d78090ca4207
+
+COUNT = 54
+KEY = 0101010101010101
+IV = 0000000000000200
+CIPHERTEXT = 48221b9937748a23
+
+COUNT = 55
+KEY = 0101010101010101
+IV = 0000000000000100
+CIPHERTEXT = dd7c0bbd61fafd54
+
+COUNT = 56
+KEY = 0101010101010101
+IV = 0000000000000080
+CIPHERTEXT = 2fbc291a570db5c4
+
+COUNT = 57
+KEY = 0101010101010101
+IV = 0000000000000040
+CIPHERTEXT = e07c30d7e4e26e12
+
+COUNT = 58
+KEY = 0101010101010101
+IV = 0000000000000020
+CIPHERTEXT = 0953e2258e8e90a1
+
+COUNT = 59
+KEY = 0101010101010101
+IV = 0000000000000010
+CIPHERTEXT = 5b711bc4ceebf2ee
+
+COUNT = 60
+KEY = 0101010101010101
+IV = 0000000000000008
+CIPHERTEXT = cc083f1e6d9e85f6
+
+COUNT = 61
+KEY = 0101010101010101
+IV = 0000000000000004
+CIPHERTEXT = d2fd8867d50d2dfe
+
+COUNT = 62
+KEY = 0101010101010101
+IV = 0000000000000002
+CIPHERTEXT = 06e7ea22ce92708f
+
+COUNT = 63
+KEY = 0101010101010101
+IV = 0000000000000001
+CIPHERTEXT = 166b40b44aba4bd6
diff --git a/fips/testvectors/des/req/CFB64permop.req b/fips/testvectors/des/req/CFB64permop.req
new file mode 100644 (file)
index 0000000..9c2a265
--- /dev/null
@@ -0,0 +1,328 @@
+# CAVS 2.0
+# Config Info for : "OpenSSL_DES"
+# PERMUTATION OPERATION - KAT for CFB64
+# State : Encrypt and Decrypt
+# Tue Jun 24 03:11:52 PM
+
+[ENCRYPT]
+COUNT = 0
+KEY = 1046913489980131
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 1
+KEY = 1007103489988020
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 2
+KEY = 10071034c8980120
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 3
+KEY = 1046103489988020
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 4
+KEY = 1086911519190101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 5
+KEY = 1086911519580101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 6
+KEY = 5107b01519580101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 7
+KEY = 1007b01519190101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 8
+KEY = 3107915498080101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 9
+KEY = 3107919498080101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 10
+KEY = 10079115b9080140
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 11
+KEY = 3107911598080140
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 12
+KEY = 1007d01589980101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 13
+KEY = 9107911589980101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 14
+KEY = 9107d01589190101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 15
+KEY = 1007d01598980120
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 16
+KEY = 1007940498190101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 17
+KEY = 0107910491190401
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 18
+KEY = 0107910491190101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 19
+KEY = 0107940491190401
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 20
+KEY = 19079210981a0101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 21
+KEY = 1007911998190801
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 22
+KEY = 10079119981a0801
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 23
+KEY = 1007921098190101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 24
+KEY = 100791159819010b
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 25
+KEY = 1004801598190101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 26
+KEY = 1004801598190102
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 27
+KEY = 1004801598190108
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 28
+KEY = 1002911598100104
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 29
+KEY = 1002911598190104
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 30
+KEY = 1002911598100201
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 31
+KEY = 1002911698100101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+
+[DECRYPT]
+COUNT = 0
+KEY = 1046913489980131
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 1
+KEY = 1007103489988020
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 2
+KEY = 10071034c8980120
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 3
+KEY = 1046103489988020
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 4
+KEY = 1086911519190101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 5
+KEY = 1086911519580101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 6
+KEY = 5107b01519580101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 7
+KEY = 1007b01519190101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 8
+KEY = 3107915498080101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 9
+KEY = 3107919498080101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 10
+KEY = 10079115b9080140
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 11
+KEY = 3107911598080140
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 12
+KEY = 1007d01589980101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 13
+KEY = 9107911589980101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 14
+KEY = 9107d01589190101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 15
+KEY = 1007d01598980120
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 16
+KEY = 1007940498190101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 17
+KEY = 0107910491190401
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 18
+KEY = 0107910491190101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 19
+KEY = 0107940491190401
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 20
+KEY = 19079210981a0101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 21
+KEY = 1007911998190801
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 22
+KEY = 10079119981a0801
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 23
+KEY = 1007921098190101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 24
+KEY = 100791159819010b
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 25
+KEY = 1004801598190101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 26
+KEY = 1004801598190102
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 27
+KEY = 1004801598190108
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 28
+KEY = 1002911598100104
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 29
+KEY = 1002911598190104
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 30
+KEY = 1002911598100201
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 31
+KEY = 1002911698100101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
diff --git a/fips/testvectors/des/req/CFB64subtab.req b/fips/testvectors/des/req/CFB64subtab.req
new file mode 100644 (file)
index 0000000..978781d
--- /dev/null
@@ -0,0 +1,198 @@
+# CAVS 2.0
+# Config Info for : "OpenSSL_DES"
+# SUBSTITUTION TABLE - KAT for CFB64
+# State : Encrypt and Decrypt
+# Tue Jun 24 03:11:52 PM
+
+[ENCRYPT]
+COUNT = 0
+KEY = 7ca110454a1a6e57
+IV = 01a1d6d039776742
+PLAINTEXT = 0000000000000000
+
+COUNT = 1
+KEY = 0131d9619dc1376e
+IV = 5cd54ca83def57da
+PLAINTEXT = 0000000000000000
+
+COUNT = 2
+KEY = 07a1133e4a0b2686
+IV = 0248d43806f67172
+PLAINTEXT = 0000000000000000
+
+COUNT = 3
+KEY = 3849674c2602319e
+IV = 51454b582ddf440a
+PLAINTEXT = 0000000000000000
+
+COUNT = 4
+KEY = 04b915ba43feb5b6
+IV = 42fd443059577fa2
+PLAINTEXT = 0000000000000000
+
+COUNT = 5
+KEY = 0113b970fd34f2ce
+IV = 059b5e0851cf143a
+PLAINTEXT = 0000000000000000
+
+COUNT = 6
+KEY = 0170f175468fb5e6
+IV = 0756d8e0774761d2
+PLAINTEXT = 0000000000000000
+
+COUNT = 7
+KEY = 43297fad38e373fe
+IV = 762514b829bf486a
+PLAINTEXT = 0000000000000000
+
+COUNT = 8
+KEY = 07a7137045da2a16
+IV = 3bdd119049372802
+PLAINTEXT = 0000000000000000
+
+COUNT = 9
+KEY = 04689104c2fd3b2f
+IV = 26955f6835af609a
+PLAINTEXT = 0000000000000000
+
+COUNT = 10
+KEY = 37d06bb516cb7546
+IV = 164d5e404f275232
+PLAINTEXT = 0000000000000000
+
+COUNT = 11
+KEY = 1f08260d1ac2465e
+IV = 6b056e18759f5cca
+PLAINTEXT = 0000000000000000
+
+COUNT = 12
+KEY = 584023641aba6176
+IV = 004bd6ef09176062
+PLAINTEXT = 0000000000000000
+
+COUNT = 13
+KEY = 025816164629b007
+IV = 480d39006ee762f2
+PLAINTEXT = 0000000000000000
+
+COUNT = 14
+KEY = 49793ebc79b3258f
+IV = 437540c8698f3cfa
+PLAINTEXT = 0000000000000000
+
+COUNT = 15
+KEY = 4fb05e1515ab73a7
+IV = 072d43a077075292
+PLAINTEXT = 0000000000000000
+
+COUNT = 16
+KEY = 49e95d6d4ca229bf
+IV = 02fe55778117f12a
+PLAINTEXT = 0000000000000000
+
+COUNT = 17
+KEY = 018310dc409b26d6
+IV = 1d9d5c5018f728c2
+PLAINTEXT = 0000000000000000
+
+COUNT = 18
+KEY = 1c587f1c13924fef
+IV = 305532286d6f295a
+PLAINTEXT = 0000000000000000
+
+
+[DECRYPT]
+COUNT = 0
+KEY = 7ca110454a1a6e57
+IV = 01a1d6d039776742
+CIPHERTEXT = 0000000000000000
+
+COUNT = 1
+KEY = 0131d9619dc1376e
+IV = 5cd54ca83def57da
+CIPHERTEXT = 0000000000000000
+
+COUNT = 2
+KEY = 07a1133e4a0b2686
+IV = 0248d43806f67172
+CIPHERTEXT = 0000000000000000
+
+COUNT = 3
+KEY = 3849674c2602319e
+IV = 51454b582ddf440a
+CIPHERTEXT = 0000000000000000
+
+COUNT = 4
+KEY = 04b915ba43feb5b6
+IV = 42fd443059577fa2
+CIPHERTEXT = 0000000000000000
+
+COUNT = 5
+KEY = 0113b970fd34f2ce
+IV = 059b5e0851cf143a
+CIPHERTEXT = 0000000000000000
+
+COUNT = 6
+KEY = 0170f175468fb5e6
+IV = 0756d8e0774761d2
+CIPHERTEXT = 0000000000000000
+
+COUNT = 7
+KEY = 43297fad38e373fe
+IV = 762514b829bf486a
+CIPHERTEXT = 0000000000000000
+
+COUNT = 8
+KEY = 07a7137045da2a16
+IV = 3bdd119049372802
+CIPHERTEXT = 0000000000000000
+
+COUNT = 9
+KEY = 04689104c2fd3b2f
+IV = 26955f6835af609a
+CIPHERTEXT = 0000000000000000
+
+COUNT = 10
+KEY = 37d06bb516cb7546
+IV = 164d5e404f275232
+CIPHERTEXT = 0000000000000000
+
+COUNT = 11
+KEY = 1f08260d1ac2465e
+IV = 6b056e18759f5cca
+CIPHERTEXT = 0000000000000000
+
+COUNT = 12
+KEY = 584023641aba6176
+IV = 004bd6ef09176062
+CIPHERTEXT = 0000000000000000
+
+COUNT = 13
+KEY = 025816164629b007
+IV = 480d39006ee762f2
+CIPHERTEXT = 0000000000000000
+
+COUNT = 14
+KEY = 49793ebc79b3258f
+IV = 437540c8698f3cfa
+CIPHERTEXT = 0000000000000000
+
+COUNT = 15
+KEY = 4fb05e1515ab73a7
+IV = 072d43a077075292
+CIPHERTEXT = 0000000000000000
+
+COUNT = 16
+KEY = 49e95d6d4ca229bf
+IV = 02fe55778117f12a
+CIPHERTEXT = 0000000000000000
+
+COUNT = 17
+KEY = 018310dc409b26d6
+IV = 1d9d5c5018f728c2
+CIPHERTEXT = 0000000000000000
+
+COUNT = 18
+KEY = 1c587f1c13924fef
+IV = 305532286d6f295a
+CIPHERTEXT = 0000000000000000
diff --git a/fips/testvectors/des/req/CFB64varkey.req b/fips/testvectors/des/req/CFB64varkey.req
new file mode 100644 (file)
index 0000000..d2bf772
--- /dev/null
@@ -0,0 +1,568 @@
+# CAVS 2.0
+# Config Info for : "OpenSSL_DES"
+# VARIABLE KEY - KAT for CFB64
+# State : Encrypt and Decrypt
+# Tue Jun 24 03:11:52 PM
+
+[ENCRYPT]
+COUNT = 0
+KEY = 8001010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 1
+KEY = 4001010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 2
+KEY = 2001010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 3
+KEY = 1001010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 4
+KEY = 0801010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 5
+KEY = 0401010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 6
+KEY = 0201010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 7
+KEY = 0180010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 8
+KEY = 0140010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 9
+KEY = 0120010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 10
+KEY = 0110010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 11
+KEY = 0108010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 12
+KEY = 0104010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 13
+KEY = 0102010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 14
+KEY = 0101800101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 15
+KEY = 0101400101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 16
+KEY = 0101200101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 17
+KEY = 0101100101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 18
+KEY = 0101080101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 19
+KEY = 0101040101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 20
+KEY = 0101020101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 21
+KEY = 0101018001010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 22
+KEY = 0101014001010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 23
+KEY = 0101012001010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 24
+KEY = 0101011001010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 25
+KEY = 0101010801010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 26
+KEY = 0101010401010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 27
+KEY = 0101010201010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 28
+KEY = 0101010180010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 29
+KEY = 0101010140010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 30
+KEY = 0101010120010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 31
+KEY = 0101010110010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 32
+KEY = 0101010108010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 33
+KEY = 0101010104010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 34
+KEY = 0101010102010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 35
+KEY = 0101010101800101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 36
+KEY = 0101010101400101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 37
+KEY = 0101010101200101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 38
+KEY = 0101010101100101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 39
+KEY = 0101010101080101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 40
+KEY = 0101010101040101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 41
+KEY = 0101010101020101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 42
+KEY = 0101010101018001
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 43
+KEY = 0101010101014001
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 44
+KEY = 0101010101012001
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 45
+KEY = 0101010101011001
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 46
+KEY = 0101010101010801
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 47
+KEY = 0101010101010401
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 48
+KEY = 0101010101010201
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 49
+KEY = 0101010101010180
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 50
+KEY = 0101010101010140
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 51
+KEY = 0101010101010120
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 52
+KEY = 0101010101010110
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 53
+KEY = 0101010101010108
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 54
+KEY = 0101010101010104
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 55
+KEY = 0101010101010102
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+
+[DECRYPT]
+COUNT = 0
+KEY = 8001010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 1
+KEY = 4001010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 2
+KEY = 2001010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 3
+KEY = 1001010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 4
+KEY = 0801010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 5
+KEY = 0401010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 6
+KEY = 0201010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 7
+KEY = 0180010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 8
+KEY = 0140010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 9
+KEY = 0120010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 10
+KEY = 0110010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 11
+KEY = 0108010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 12
+KEY = 0104010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 13
+KEY = 0102010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 14
+KEY = 0101800101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 15
+KEY = 0101400101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 16
+KEY = 0101200101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 17
+KEY = 0101100101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 18
+KEY = 0101080101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 19
+KEY = 0101040101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 20
+KEY = 0101020101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 21
+KEY = 0101018001010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 22
+KEY = 0101014001010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 23
+KEY = 0101012001010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 24
+KEY = 0101011001010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 25
+KEY = 0101010801010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 26
+KEY = 0101010401010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 27
+KEY = 0101010201010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 28
+KEY = 0101010180010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 29
+KEY = 0101010140010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 30
+KEY = 0101010120010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 31
+KEY = 0101010110010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 32
+KEY = 0101010108010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 33
+KEY = 0101010104010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 34
+KEY = 0101010102010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 35
+KEY = 0101010101800101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 36
+KEY = 0101010101400101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 37
+KEY = 0101010101200101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 38
+KEY = 0101010101100101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 39
+KEY = 0101010101080101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 40
+KEY = 0101010101040101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 41
+KEY = 0101010101020101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 42
+KEY = 0101010101018001
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 43
+KEY = 0101010101014001
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 44
+KEY = 0101010101012001
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 45
+KEY = 0101010101011001
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 46
+KEY = 0101010101010801
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 47
+KEY = 0101010101010401
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 48
+KEY = 0101010101010201
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 49
+KEY = 0101010101010180
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 50
+KEY = 0101010101010140
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 51
+KEY = 0101010101010120
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 52
+KEY = 0101010101010110
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 53
+KEY = 0101010101010108
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 54
+KEY = 0101010101010104
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 55
+KEY = 0101010101010102
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
diff --git a/fips/testvectors/des/req/CFB64vartext.req b/fips/testvectors/des/req/CFB64vartext.req
new file mode 100644 (file)
index 0000000..7baed20
--- /dev/null
@@ -0,0 +1,648 @@
+# CAVS 2.0
+# Config Info for : "OpenSSL_DES"
+# VARIABLE PLAINTEXT/CIPHERTEXT - KAT for CFB64
+# State : Encrypt and Decrypt
+# Tue Jun 24 03:11:51 PM
+
+[ENCRYPT]
+COUNT = 0
+KEY = 0101010101010101
+IV = 8000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 1
+KEY = 0101010101010101
+IV = 4000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 2
+KEY = 0101010101010101
+IV = 2000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 3
+KEY = 0101010101010101
+IV = 1000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 4
+KEY = 0101010101010101
+IV = 0800000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 5
+KEY = 0101010101010101
+IV = 0400000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 6
+KEY = 0101010101010101
+IV = 0200000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 7
+KEY = 0101010101010101
+IV = 0100000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 8
+KEY = 0101010101010101
+IV = 0080000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 9
+KEY = 0101010101010101
+IV = 0040000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 10
+KEY = 0101010101010101
+IV = 0020000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 11
+KEY = 0101010101010101
+IV = 0010000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 12
+KEY = 0101010101010101
+IV = 0008000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 13
+KEY = 0101010101010101
+IV = 0004000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 14
+KEY = 0101010101010101
+IV = 0002000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 15
+KEY = 0101010101010101
+IV = 0001000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 16
+KEY = 0101010101010101
+IV = 0000800000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 17
+KEY = 0101010101010101
+IV = 0000400000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 18
+KEY = 0101010101010101
+IV = 0000200000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 19
+KEY = 0101010101010101
+IV = 0000100000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 20
+KEY = 0101010101010101
+IV = 0000080000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 21
+KEY = 0101010101010101
+IV = 0000040000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 22
+KEY = 0101010101010101
+IV = 0000020000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 23
+KEY = 0101010101010101
+IV = 0000010000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 24
+KEY = 0101010101010101
+IV = 0000008000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 25
+KEY = 0101010101010101
+IV = 0000004000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 26
+KEY = 0101010101010101
+IV = 0000002000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 27
+KEY = 0101010101010101
+IV = 0000001000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 28
+KEY = 0101010101010101
+IV = 0000000800000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 29
+KEY = 0101010101010101
+IV = 0000000400000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 30
+KEY = 0101010101010101
+IV = 0000000200000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 31
+KEY = 0101010101010101
+IV = 0000000100000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 32
+KEY = 0101010101010101
+IV = 0000000080000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 33
+KEY = 0101010101010101
+IV = 0000000040000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 34
+KEY = 0101010101010101
+IV = 0000000020000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 35
+KEY = 0101010101010101
+IV = 0000000010000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 36
+KEY = 0101010101010101
+IV = 0000000008000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 37
+KEY = 0101010101010101
+IV = 0000000004000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 38
+KEY = 0101010101010101
+IV = 0000000002000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 39
+KEY = 0101010101010101
+IV = 0000000001000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 40
+KEY = 0101010101010101
+IV = 0000000000800000
+PLAINTEXT = 0000000000000000
+
+COUNT = 41
+KEY = 0101010101010101
+IV = 0000000000400000
+PLAINTEXT = 0000000000000000
+
+COUNT = 42
+KEY = 0101010101010101
+IV = 0000000000200000
+PLAINTEXT = 0000000000000000
+
+COUNT = 43
+KEY = 0101010101010101
+IV = 0000000000100000
+PLAINTEXT = 0000000000000000
+
+COUNT = 44
+KEY = 0101010101010101
+IV = 0000000000080000
+PLAINTEXT = 0000000000000000
+
+COUNT = 45
+KEY = 0101010101010101
+IV = 0000000000040000
+PLAINTEXT = 0000000000000000
+
+COUNT = 46
+KEY = 0101010101010101
+IV = 0000000000020000
+PLAINTEXT = 0000000000000000
+
+COUNT = 47
+KEY = 0101010101010101
+IV = 0000000000010000
+PLAINTEXT = 0000000000000000
+
+COUNT = 48
+KEY = 0101010101010101
+IV = 0000000000008000
+PLAINTEXT = 0000000000000000
+
+COUNT = 49
+KEY = 0101010101010101
+IV = 0000000000004000
+PLAINTEXT = 0000000000000000
+
+COUNT = 50
+KEY = 0101010101010101
+IV = 0000000000002000
+PLAINTEXT = 0000000000000000
+
+COUNT = 51
+KEY = 0101010101010101
+IV = 0000000000001000
+PLAINTEXT = 0000000000000000
+
+COUNT = 52
+KEY = 0101010101010101
+IV = 0000000000000800
+PLAINTEXT = 0000000000000000
+
+COUNT = 53
+KEY = 0101010101010101
+IV = 0000000000000400
+PLAINTEXT = 0000000000000000
+
+COUNT = 54
+KEY = 0101010101010101
+IV = 0000000000000200
+PLAINTEXT = 0000000000000000
+
+COUNT = 55
+KEY = 0101010101010101
+IV = 0000000000000100
+PLAINTEXT = 0000000000000000
+
+COUNT = 56
+KEY = 0101010101010101
+IV = 0000000000000080
+PLAINTEXT = 0000000000000000
+
+COUNT = 57
+KEY = 0101010101010101
+IV = 0000000000000040
+PLAINTEXT = 0000000000000000
+
+COUNT = 58
+KEY = 0101010101010101
+IV = 0000000000000020
+PLAINTEXT = 0000000000000000
+
+COUNT = 59
+KEY = 0101010101010101
+IV = 0000000000000010
+PLAINTEXT = 0000000000000000
+
+COUNT = 60
+KEY = 0101010101010101
+IV = 0000000000000008
+PLAINTEXT = 0000000000000000
+
+COUNT = 61
+KEY = 0101010101010101
+IV = 0000000000000004
+PLAINTEXT = 0000000000000000
+
+COUNT = 62
+KEY = 0101010101010101
+IV = 0000000000000002
+PLAINTEXT = 0000000000000000
+
+COUNT = 63
+KEY = 0101010101010101
+IV = 0000000000000001
+PLAINTEXT = 0000000000000000
+
+
+[DECRYPT]
+COUNT = 0
+KEY = 0101010101010101
+IV = 8000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 1
+KEY = 0101010101010101
+IV = 4000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 2
+KEY = 0101010101010101
+IV = 2000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 3
+KEY = 0101010101010101
+IV = 1000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 4
+KEY = 0101010101010101
+IV = 0800000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 5
+KEY = 0101010101010101
+IV = 0400000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 6
+KEY = 0101010101010101
+IV = 0200000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 7
+KEY = 0101010101010101
+IV = 0100000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 8
+KEY = 0101010101010101
+IV = 0080000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 9
+KEY = 0101010101010101
+IV = 0040000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 10
+KEY = 0101010101010101
+IV = 0020000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 11
+KEY = 0101010101010101
+IV = 0010000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 12
+KEY = 0101010101010101
+IV = 0008000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 13
+KEY = 0101010101010101
+IV = 0004000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 14
+KEY = 0101010101010101
+IV = 0002000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 15
+KEY = 0101010101010101
+IV = 0001000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 16
+KEY = 0101010101010101
+IV = 0000800000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 17
+KEY = 0101010101010101
+IV = 0000400000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 18
+KEY = 0101010101010101
+IV = 0000200000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 19
+KEY = 0101010101010101
+IV = 0000100000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 20
+KEY = 0101010101010101
+IV = 0000080000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 21
+KEY = 0101010101010101
+IV = 0000040000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 22
+KEY = 0101010101010101
+IV = 0000020000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 23
+KEY = 0101010101010101
+IV = 0000010000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 24
+KEY = 0101010101010101
+IV = 0000008000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 25
+KEY = 0101010101010101
+IV = 0000004000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 26
+KEY = 0101010101010101
+IV = 0000002000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 27
+KEY = 0101010101010101
+IV = 0000001000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 28
+KEY = 0101010101010101
+IV = 0000000800000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 29
+KEY = 0101010101010101
+IV = 0000000400000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 30
+KEY = 0101010101010101
+IV = 0000000200000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 31
+KEY = 0101010101010101
+IV = 0000000100000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 32
+KEY = 0101010101010101
+IV = 0000000080000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 33
+KEY = 0101010101010101
+IV = 0000000040000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 34
+KEY = 0101010101010101
+IV = 0000000020000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 35
+KEY = 0101010101010101
+IV = 0000000010000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 36
+KEY = 0101010101010101
+IV = 0000000008000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 37
+KEY = 0101010101010101
+IV = 0000000004000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 38
+KEY = 0101010101010101
+IV = 0000000002000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 39
+KEY = 0101010101010101
+IV = 0000000001000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 40
+KEY = 0101010101010101
+IV = 0000000000800000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 41
+KEY = 0101010101010101
+IV = 0000000000400000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 42
+KEY = 0101010101010101
+IV = 0000000000200000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 43
+KEY = 0101010101010101
+IV = 0000000000100000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 44
+KEY = 0101010101010101
+IV = 0000000000080000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 45
+KEY = 0101010101010101
+IV = 0000000000040000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 46
+KEY = 0101010101010101
+IV = 0000000000020000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 47
+KEY = 0101010101010101
+IV = 0000000000010000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 48
+KEY = 0101010101010101
+IV = 0000000000008000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 49
+KEY = 0101010101010101
+IV = 0000000000004000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 50
+KEY = 0101010101010101
+IV = 0000000000002000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 51
+KEY = 0101010101010101
+IV = 0000000000001000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 52
+KEY = 0101010101010101
+IV = 0000000000000800
+CIPHERTEXT = 0000000000000000
+
+COUNT = 53
+KEY = 0101010101010101
+IV = 0000000000000400
+CIPHERTEXT = 0000000000000000
+
+COUNT = 54
+KEY = 0101010101010101
+IV = 0000000000000200
+CIPHERTEXT = 0000000000000000
+
+COUNT = 55
+KEY = 0101010101010101
+IV = 0000000000000100
+CIPHERTEXT = 0000000000000000
+
+COUNT = 56
+KEY = 0101010101010101
+IV = 0000000000000080
+CIPHERTEXT = 0000000000000000
+
+COUNT = 57
+KEY = 0101010101010101
+IV = 0000000000000040
+CIPHERTEXT = 0000000000000000
+
+COUNT = 58
+KEY = 0101010101010101
+IV = 0000000000000020
+CIPHERTEXT = 0000000000000000
+
+COUNT = 59
+KEY = 0101010101010101
+IV = 0000000000000010
+CIPHERTEXT = 0000000000000000
+
+COUNT = 60
+KEY = 0101010101010101
+IV = 0000000000000008
+CIPHERTEXT = 0000000000000000
+
+COUNT = 61
+KEY = 0101010101010101
+IV = 0000000000000004
+CIPHERTEXT = 0000000000000000
+
+COUNT = 62
+KEY = 0101010101010101
+IV = 0000000000000002
+CIPHERTEXT = 0000000000000000
+
+COUNT = 63
+KEY = 0101010101010101
+IV = 0000000000000001
+CIPHERTEXT = 0000000000000000
diff --git a/fips/testvectors/des/req/CFB8MMT.req b/fips/testvectors/des/req/CFB8MMT.req
new file mode 100644 (file)
index 0000000..1f29798
--- /dev/null
@@ -0,0 +1,109 @@
+# CAVS 2.0
+# Config Info for : "OpenSSL_DES"
+# DES Multi Block Message Test for CFB8
+# State : Encrypt and Decrypt
+# Tue Jun 24 03:13:00 PM
+
+[ENCRYPT]
+
+COUNT = 0
+KEY = b0ba3719ecb66b46
+IV = dfbf15e1062a751d
+PLAINTEXT = a4
+
+COUNT = 1
+KEY = 0862e3efa1b5ea1f
+IV = 31c349f7613537a6
+PLAINTEXT = 1102
+
+COUNT = 2
+KEY = d6a4f2c254103d80
+IV = f58c9293054006c2
+PLAINTEXT = 9e9376
+
+COUNT = 3
+KEY = 4ceaf7d616e5437f
+IV = 30e817f7bb38966a
+PLAINTEXT = 48a5db84
+
+COUNT = 4
+KEY = a2687ccb295e40cd
+IV = e3b6f778daf22490
+PLAINTEXT = 5f4e8930e5
+
+COUNT = 5
+KEY = 3843f1b95e259431
+IV = bc7280f913df20a5
+PLAINTEXT = 157dbe3afd3f
+
+COUNT = 6
+KEY = 0b68896b25516834
+IV = 152b9836d6fb2f97
+PLAINTEXT = 0b166361236011
+
+COUNT = 7
+KEY = 6831808f9e2cf249
+IV = cef6fbe5eb7d090e
+PLAINTEXT = b9a40efe96c8af34
+
+COUNT = 8
+KEY = 5eb0258558675237
+IV = 3196eb0d31589e4e
+PLAINTEXT = 740304a6c3912bff8c
+
+COUNT = 9
+KEY = 168558ef97514380
+IV = 48d71fdc9a70ebf4
+PLAINTEXT = 107961715521427d61aa
+
+[DECRYPT]
+
+COUNT = 0
+KEY = a225d0ec2315fdb5
+IV = 92ed9b845dc8904a
+CIPHERTEXT = dc
+
+COUNT = 1
+KEY = 9238e00b4ac751a8
+IV = 681d64c6a9d600df
+CIPHERTEXT = 4135
+
+COUNT = 2
+KEY = 3eb37ca1d9b63d32
+IV = 0c20eb65969c6a4d
+CIPHERTEXT = 04ed83
+
+COUNT = 3
+KEY = 0ec4ecc4bc029dbc
+IV = 649691d69522d0b5
+CIPHERTEXT = dc848878
+
+COUNT = 4
+KEY = b51a49d56d9e011c
+IV = 1658f62005d8c8f0
+CIPHERTEXT = a71318db10
+
+COUNT = 5
+KEY = b3ce52e5bcba9e0e
+IV = 077e230bff8e4fad
+CIPHERTEXT = a307e270dc04
+
+COUNT = 6
+KEY = ba5e6b13a476ce15
+IV = f1844870d09c25af
+CIPHERTEXT = 0f8041f36914db
+
+COUNT = 7
+KEY = 6849ce76c23d1a49
+IV = 50b862f20c0d1315
+CIPHERTEXT = d01d6c8cf689cace
+
+COUNT = 8
+KEY = ae5208f81c45c743
+IV = fd69e855c304912e
+CIPHERTEXT = d77e318fbf46a12d62
+
+COUNT = 9
+KEY = df75ce5b192cb5bf
+IV = 1a5e4623c36b49dc
+CIPHERTEXT = a0ea3d9f98c4a9b0a41a
diff --git a/fips/testvectors/des/req/CFB8Monte.req b/fips/testvectors/des/req/CFB8Monte.req
new file mode 100644 (file)
index 0000000..2df527f
--- /dev/null
@@ -0,0 +1,17 @@
+# CAVS 2.0
+# Config Info for : "OpenSSL_DES"
+# DES Monte Carlo (Modes) Test for CFB8
+# State : Encrypt and Decrypt
+# Tue Jun 24 03:13:00 PM
+
+[ENCRYPT]
+KEY = 64102f5b75b507d5
+IV = 626e2715ecb2f12d
+PLAINTEXT = fc
+
+
+[DECRYPT]
+KEY = 6bab1f1f3419ab26
+IV = 86e32d9e0f5dc507
+CIPHERTEXT = d9
+
diff --git a/fips/testvectors/des/req/CFB8invperm.req b/fips/testvectors/des/req/CFB8invperm.req
new file mode 100644 (file)
index 0000000..043ed68
--- /dev/null
@@ -0,0 +1,648 @@
+# CAVS 2.0
+# Config Info for : "OpenSSL_DES"
+# INVERSE PERMUTATION - KAT for CFB8
+# State : Encrypt and Decrypt
+# Tue Jun 24 03:11:51 PM
+
+[ENCRYPT]
+COUNT = 0
+KEY = 0101010101010101
+IV = 8000000000000000
+PLAINTEXT = 95
+
+COUNT = 1
+KEY = 0101010101010101
+IV = 4000000000000000
+PLAINTEXT = dd
+
+COUNT = 2
+KEY = 0101010101010101
+IV = 2000000000000000
+PLAINTEXT = 2e
+
+COUNT = 3
+KEY = 0101010101010101
+IV = 1000000000000000
+PLAINTEXT = 4b
+
+COUNT = 4
+KEY = 0101010101010101
+IV = 0800000000000000
+PLAINTEXT = 20
+
+COUNT = 5
+KEY = 0101010101010101
+IV = 0400000000000000
+PLAINTEXT = 55
+
+COUNT = 6
+KEY = 0101010101010101
+IV = 0200000000000000
+PLAINTEXT = 6c
+
+COUNT = 7
+KEY = 0101010101010101
+IV = 0100000000000000
+PLAINTEXT = 0d
+
+COUNT = 8
+KEY = 0101010101010101
+IV = 0080000000000000
+PLAINTEXT = d9
+
+COUNT = 9
+KEY = 0101010101010101
+IV = 0040000000000000
+PLAINTEXT = 42
+
+COUNT = 10
+KEY = 0101010101010101
+IV = 0020000000000000
+PLAINTEXT = b8
+
+COUNT = 11
+KEY = 0101010101010101
+IV = 0010000000000000
+PLAINTEXT = f1
+
+COUNT = 12
+KEY = 0101010101010101
+IV = 0008000000000000
+PLAINTEXT = ad
+
+COUNT = 13
+KEY = 0101010101010101
+IV = 0004000000000000
+PLAINTEXT = e6
+
+COUNT = 14
+KEY = 0101010101010101
+IV = 0002000000000000
+PLAINTEXT = ec
+
+COUNT = 15
+KEY = 0101010101010101
+IV = 0001000000000000
+PLAINTEXT = f3
+
+COUNT = 16
+KEY = 0101010101010101
+IV = 0000800000000000
+PLAINTEXT = 2b
+
+COUNT = 17
+KEY = 0101010101010101
+IV = 0000400000000000
+PLAINTEXT = 88
+
+COUNT = 18
+KEY = 0101010101010101
+IV = 0000200000000000
+PLAINTEXT = e1
+
+COUNT = 19
+KEY = 0101010101010101
+IV = 0000100000000000
+PLAINTEXT = 32
+
+COUNT = 20
+KEY = 0101010101010101
+IV = 0000080000000000
+PLAINTEXT = e7
+
+COUNT = 21
+KEY = 0101010101010101
+IV = 0000040000000000
+PLAINTEXT = 12
+
+COUNT = 22
+KEY = 0101010101010101
+IV = 0000020000000000
+PLAINTEXT = a4
+
+COUNT = 23
+KEY = 0101010101010101
+IV = 0000010000000000
+PLAINTEXT = fb
+
+COUNT = 24
+KEY = 0101010101010101
+IV = 0000008000000000
+PLAINTEXT = 75
+
+COUNT = 25
+KEY = 0101010101010101
+IV = 0000004000000000
+PLAINTEXT = 64
+
+COUNT = 26
+KEY = 0101010101010101
+IV = 0000002000000000
+PLAINTEXT = f0
+
+COUNT = 27
+KEY = 0101010101010101
+IV = 0000001000000000
+PLAINTEXT = 9d
+
+COUNT = 28
+KEY = 0101010101010101
+IV = 0000000800000000
+PLAINTEXT = d1
+
+COUNT = 29
+KEY = 0101010101010101
+IV = 0000000400000000
+PLAINTEXT = e1
+
+COUNT = 30
+KEY = 0101010101010101
+IV = 0000000200000000
+PLAINTEXT = e4
+
+COUNT = 31
+KEY = 0101010101010101
+IV = 0000000100000000
+PLAINTEXT = ae
+
+COUNT = 32
+KEY = 0101010101010101
+IV = 0000000080000000
+PLAINTEXT = e9
+
+COUNT = 33
+KEY = 0101010101010101
+IV = 0000000040000000
+PLAINTEXT = df
+
+COUNT = 34
+KEY = 0101010101010101
+IV = 0000000020000000
+PLAINTEXT = b1
+
+COUNT = 35
+KEY = 0101010101010101
+IV = 0000000010000000
+PLAINTEXT = fa
+
+COUNT = 36
+KEY = 0101010101010101
+IV = 0000000008000000
+PLAINTEXT = ca
+
+COUNT = 37
+KEY = 0101010101010101
+IV = 0000000004000000
+PLAINTEXT = 5e
+
+COUNT = 38
+KEY = 0101010101010101
+IV = 0000000002000000
+PLAINTEXT = 81
+
+COUNT = 39
+KEY = 0101010101010101
+IV = 0000000001000000
+PLAINTEXT = 4d
+
+COUNT = 40
+KEY = 0101010101010101
+IV = 0000000000800000
+PLAINTEXT = 25
+
+COUNT = 41
+KEY = 0101010101010101
+IV = 0000000000400000
+PLAINTEXT = ab
+
+COUNT = 42
+KEY = 0101010101010101
+IV = 0000000000200000
+PLAINTEXT = 79
+
+COUNT = 43
+KEY = 0101010101010101
+IV = 0000000000100000
+PLAINTEXT = 86
+
+COUNT = 44
+KEY = 0101010101010101
+IV = 0000000000080000
+PLAINTEXT = 8b
+
+COUNT = 45
+KEY = 0101010101010101
+IV = 0000000000040000
+PLAINTEXT = ea
+
+COUNT = 46
+KEY = 0101010101010101
+IV = 0000000000020000
+PLAINTEXT = ca
+
+COUNT = 47
+KEY = 0101010101010101
+IV = 0000000000010000
+PLAINTEXT = 8d
+
+COUNT = 48
+KEY = 0101010101010101
+IV = 0000000000008000
+PLAINTEXT = 10
+
+COUNT = 49
+KEY = 0101010101010101
+IV = 0000000000004000
+PLAINTEXT = 5d
+
+COUNT = 50
+KEY = 0101010101010101
+IV = 0000000000002000
+PLAINTEXT = 1d
+
+COUNT = 51
+KEY = 0101010101010101
+IV = 0000000000001000
+PLAINTEXT = ce
+
+COUNT = 52
+KEY = 0101010101010101
+IV = 0000000000000800
+PLAINTEXT = 84
+
+COUNT = 53
+KEY = 0101010101010101
+IV = 0000000000000400
+PLAINTEXT = e6
+
+COUNT = 54
+KEY = 0101010101010101
+IV = 0000000000000200
+PLAINTEXT = 48
+
+COUNT = 55
+KEY = 0101010101010101
+IV = 0000000000000100
+PLAINTEXT = dd
+
+COUNT = 56
+KEY = 0101010101010101
+IV = 0000000000000080
+PLAINTEXT = 2f
+
+COUNT = 57
+KEY = 0101010101010101
+IV = 0000000000000040
+PLAINTEXT = e0
+
+COUNT = 58
+KEY = 0101010101010101
+IV = 0000000000000020
+PLAINTEXT = 09
+
+COUNT = 59
+KEY = 0101010101010101
+IV = 0000000000000010
+PLAINTEXT = 5b
+
+COUNT = 60
+KEY = 0101010101010101
+IV = 0000000000000008
+PLAINTEXT = cc
+
+COUNT = 61
+KEY = 0101010101010101
+IV = 0000000000000004
+PLAINTEXT = d2
+
+COUNT = 62
+KEY = 0101010101010101
+IV = 0000000000000002
+PLAINTEXT = 06
+
+COUNT = 63
+KEY = 0101010101010101
+IV = 0000000000000001
+PLAINTEXT = 16
+
+
+[DECRYPT]
+COUNT = 0
+KEY = 0101010101010101
+IV = 8000000000000000
+CIPHERTEXT = 95
+
+COUNT = 1
+KEY = 0101010101010101
+IV = 4000000000000000
+CIPHERTEXT = dd
+
+COUNT = 2
+KEY = 0101010101010101
+IV = 2000000000000000
+CIPHERTEXT = 2e
+
+COUNT = 3
+KEY = 0101010101010101
+IV = 1000000000000000
+CIPHERTEXT = 4b
+
+COUNT = 4
+KEY = 0101010101010101
+IV = 0800000000000000
+CIPHERTEXT = 20
+
+COUNT = 5
+KEY = 0101010101010101
+IV = 0400000000000000
+CIPHERTEXT = 55
+
+COUNT = 6
+KEY = 0101010101010101
+IV = 0200000000000000
+CIPHERTEXT = 6c
+
+COUNT = 7
+KEY = 0101010101010101
+IV = 0100000000000000
+CIPHERTEXT = 0d
+
+COUNT = 8
+KEY = 0101010101010101
+IV = 0080000000000000
+CIPHERTEXT = d9
+
+COUNT = 9
+KEY = 0101010101010101
+IV = 0040000000000000
+CIPHERTEXT = 42
+
+COUNT = 10
+KEY = 0101010101010101
+IV = 0020000000000000
+CIPHERTEXT = b8
+
+COUNT = 11
+KEY = 0101010101010101
+IV = 0010000000000000
+CIPHERTEXT = f1
+
+COUNT = 12
+KEY = 0101010101010101
+IV = 0008000000000000
+CIPHERTEXT = ad
+
+COUNT = 13
+KEY = 0101010101010101
+IV = 0004000000000000
+CIPHERTEXT = e6
+
+COUNT = 14
+KEY = 0101010101010101
+IV = 0002000000000000
+CIPHERTEXT = ec
+
+COUNT = 15
+KEY = 0101010101010101
+IV = 0001000000000000
+CIPHERTEXT = f3
+
+COUNT = 16
+KEY = 0101010101010101
+IV = 0000800000000000
+CIPHERTEXT = 2b
+
+COUNT = 17
+KEY = 0101010101010101
+IV = 0000400000000000
+CIPHERTEXT = 88
+
+COUNT = 18
+KEY = 0101010101010101
+IV = 0000200000000000
+CIPHERTEXT = e1
+
+COUNT = 19
+KEY = 0101010101010101
+IV = 0000100000000000
+CIPHERTEXT = 32
+
+COUNT = 20
+KEY = 0101010101010101
+IV = 0000080000000000
+CIPHERTEXT = e7
+
+COUNT = 21
+KEY = 0101010101010101
+IV = 0000040000000000
+CIPHERTEXT = 12
+
+COUNT = 22
+KEY = 0101010101010101
+IV = 0000020000000000
+CIPHERTEXT = a4
+
+COUNT = 23
+KEY = 0101010101010101
+IV = 0000010000000000
+CIPHERTEXT = fb
+
+COUNT = 24
+KEY = 0101010101010101
+IV = 0000008000000000
+CIPHERTEXT = 75
+
+COUNT = 25
+KEY = 0101010101010101
+IV = 0000004000000000
+CIPHERTEXT = 64
+
+COUNT = 26
+KEY = 0101010101010101
+IV = 0000002000000000
+CIPHERTEXT = f0
+
+COUNT = 27
+KEY = 0101010101010101
+IV = 0000001000000000
+CIPHERTEXT = 9d
+
+COUNT = 28
+KEY = 0101010101010101
+IV = 0000000800000000
+CIPHERTEXT = d1
+
+COUNT = 29
+KEY = 0101010101010101
+IV = 0000000400000000
+CIPHERTEXT = e1
+
+COUNT = 30
+KEY = 0101010101010101
+IV = 0000000200000000
+CIPHERTEXT = e4
+
+COUNT = 31
+KEY = 0101010101010101
+IV = 0000000100000000
+CIPHERTEXT = ae
+
+COUNT = 32
+KEY = 0101010101010101
+IV = 0000000080000000
+CIPHERTEXT = e9
+
+COUNT = 33
+KEY = 0101010101010101
+IV = 0000000040000000
+CIPHERTEXT = df
+
+COUNT = 34
+KEY = 0101010101010101
+IV = 0000000020000000
+CIPHERTEXT = b1
+
+COUNT = 35
+KEY = 0101010101010101
+IV = 0000000010000000
+CIPHERTEXT = fa
+
+COUNT = 36
+KEY = 0101010101010101
+IV = 0000000008000000
+CIPHERTEXT = ca
+
+COUNT = 37
+KEY = 0101010101010101
+IV = 0000000004000000
+CIPHERTEXT = 5e
+
+COUNT = 38
+KEY = 0101010101010101
+IV = 0000000002000000
+CIPHERTEXT = 81
+
+COUNT = 39
+KEY = 0101010101010101
+IV = 0000000001000000
+CIPHERTEXT = 4d
+
+COUNT = 40
+KEY = 0101010101010101
+IV = 0000000000800000
+CIPHERTEXT = 25
+
+COUNT = 41
+KEY = 0101010101010101
+IV = 0000000000400000
+CIPHERTEXT = ab
+
+COUNT = 42
+KEY = 0101010101010101
+IV = 0000000000200000
+CIPHERTEXT = 79
+
+COUNT = 43
+KEY = 0101010101010101
+IV = 0000000000100000
+CIPHERTEXT = 86
+
+COUNT = 44
+KEY = 0101010101010101
+IV = 0000000000080000
+CIPHERTEXT = 8b
+
+COUNT = 45
+KEY = 0101010101010101
+IV = 0000000000040000
+CIPHERTEXT = ea
+
+COUNT = 46
+KEY = 0101010101010101
+IV = 0000000000020000
+CIPHERTEXT = ca
+
+COUNT = 47
+KEY = 0101010101010101
+IV = 0000000000010000
+CIPHERTEXT = 8d
+
+COUNT = 48
+KEY = 0101010101010101
+IV = 0000000000008000
+CIPHERTEXT = 10
+
+COUNT = 49
+KEY = 0101010101010101
+IV = 0000000000004000
+CIPHERTEXT = 5d
+
+COUNT = 50
+KEY = 0101010101010101
+IV = 0000000000002000
+CIPHERTEXT = 1d
+
+COUNT = 51
+KEY = 0101010101010101
+IV = 0000000000001000
+CIPHERTEXT = ce
+
+COUNT = 52
+KEY = 0101010101010101
+IV = 0000000000000800
+CIPHERTEXT = 84
+
+COUNT = 53
+KEY = 0101010101010101
+IV = 0000000000000400
+CIPHERTEXT = e6
+
+COUNT = 54
+KEY = 0101010101010101
+IV = 0000000000000200
+CIPHERTEXT = 48
+
+COUNT = 55
+KEY = 0101010101010101
+IV = 0000000000000100
+CIPHERTEXT = dd
+
+COUNT = 56
+KEY = 0101010101010101
+IV = 0000000000000080
+CIPHERTEXT = 2f
+
+COUNT = 57
+KEY = 0101010101010101
+IV = 0000000000000040
+CIPHERTEXT = e0
+
+COUNT = 58
+KEY = 0101010101010101
+IV = 0000000000000020
+CIPHERTEXT = 09
+
+COUNT = 59
+KEY = 0101010101010101
+IV = 0000000000000010
+CIPHERTEXT = 5b
+
+COUNT = 60
+KEY = 0101010101010101
+IV = 0000000000000008
+CIPHERTEXT = cc
+
+COUNT = 61
+KEY = 0101010101010101
+IV = 0000000000000004
+CIPHERTEXT = d2
+
+COUNT = 62
+KEY = 0101010101010101
+IV = 0000000000000002
+CIPHERTEXT = 06
+
+COUNT = 63
+KEY = 0101010101010101
+IV = 0000000000000001
+CIPHERTEXT = 16
diff --git a/fips/testvectors/des/req/CFB8permop.req b/fips/testvectors/des/req/CFB8permop.req
new file mode 100644 (file)
index 0000000..bef0ad0
--- /dev/null
@@ -0,0 +1,328 @@
+# CAVS 2.0
+# Config Info for : "OpenSSL_DES"
+# PERMUTATION OPERATION - KAT for CFB8
+# State : Encrypt and Decrypt
+# Tue Jun 24 03:11:51 PM
+
+[ENCRYPT]
+COUNT = 0
+KEY = 1046913489980131
+IV = 0000000000000000
+PLAINTEXT = 00
+
+COUNT = 1
+KEY = 1007103489988020
+IV = 0000000000000000
+PLAINTEXT = 00
+
+COUNT = 2
+KEY = 10071034c8980120
+IV = 0000000000000000
+PLAINTEXT = 00
+
+COUNT = 3
+KEY = 1046103489988020
+IV = 0000000000000000
+PLAINTEXT = 00
+
+COUNT = 4
+KEY = 1086911519190101
+IV = 0000000000000000
+PLAINTEXT = 00
+
+COUNT = 5
+KEY = 1086911519580101
+IV = 0000000000000000
+PLAINTEXT = 00
+
+COUNT = 6
+KEY = 5107b01519580101
+IV = 0000000000000000
+PLAINTEXT = 00
+
+COUNT = 7
+KEY = 1007b01519190101
+IV = 0000000000000000
+PLAINTEXT = 00
+
+COUNT = 8
+KEY = 3107915498080101
+IV = 0000000000000000
+PLAINTEXT = 00
+
+COUNT = 9
+KEY = 3107919498080101
+IV = 0000000000000000
+PLAINTEXT = 00
+
+COUNT = 10
+KEY = 10079115b9080140
+IV = 0000000000000000
+PLAINTEXT = 00
+
+COUNT = 11
+KEY = 3107911598080140
+IV = 0000000000000000
+PLAINTEXT = 00
+
+COUNT = 12
+KEY = 1007d01589980101
+IV = 0000000000000000
+PLAINTEXT = 00
+
+COUNT = 13
+KEY = 9107911589980101
+IV = 0000000000000000
+PLAINTEXT = 00
+
+COUNT = 14
+KEY = 9107d01589190101
+IV = 0000000000000000
+PLAINTEXT = 00
+
+COUNT = 15
+KEY = 1007d01598980120
+IV = 0000000000000000
+PLAINTEXT = 00
+
+COUNT = 16
+KEY = 1007940498190101
+IV = 0000000000000000
+PLAINTEXT = 00
+
+COUNT = 17
+KEY = 0107910491190401
+IV = 0000000000000000
+PLAINTEXT = 00
+
+COUNT = 18
+KEY = 0107910491190101
+IV = 0000000000000000
+PLAINTEXT = 00
+
+COUNT = 19
+KEY = 0107940491190401
+IV = 0000000000000000
+PLAINTEXT = 00
+
+COUNT = 20
+KEY = 19079210981a0101
+IV = 0000000000000000
+PLAINTEXT = 00
+
+COUNT = 21
+KEY = 1007911998190801
+IV = 0000000000000000
+PLAINTEXT = 00
+
+COUNT = 22
+KEY = 10079119981a0801
+IV = 0000000000000000
+PLAINTEXT = 00
+
+COUNT = 23
+KEY = 1007921098190101
+IV = 0000000000000000
+PLAINTEXT = 00
+
+COUNT = 24
+KEY = 100791159819010b
+IV = 0000000000000000
+PLAINTEXT = 00
+
+COUNT = 25
+KEY = 1004801598190101
+IV = 0000000000000000
+PLAINTEXT = 00
+
+COUNT = 26
+KEY = 1004801598190102
+IV = 0000000000000000
+PLAINTEXT = 00
+
+COUNT = 27
+KEY = 1004801598190108
+IV = 0000000000000000
+PLAINTEXT = 00
+
+COUNT = 28
+KEY = 1002911598100104
+IV = 0000000000000000
+PLAINTEXT = 00
+
+COUNT = 29
+KEY = 1002911598190104
+IV = 0000000000000000
+PLAINTEXT = 00
+
+COUNT = 30
+KEY = 1002911598100201
+IV = 0000000000000000
+PLAINTEXT = 00
+
+COUNT = 31
+KEY = 1002911698100101
+IV = 0000000000000000
+PLAINTEXT = 00
+
+
+[DECRYPT]
+COUNT = 0
+KEY = 1046913489980131
+IV = 0000000000000000
+CIPHERTEXT = 00
+
+COUNT = 1
+KEY = 1007103489988020
+IV = 0000000000000000
+CIPHERTEXT = 00
+
+COUNT = 2
+KEY = 10071034c8980120
+IV = 0000000000000000
+CIPHERTEXT = 00
+
+COUNT = 3
+KEY = 1046103489988020
+IV = 0000000000000000
+CIPHERTEXT = 00
+
+COUNT = 4
+KEY = 1086911519190101
+IV = 0000000000000000
+CIPHERTEXT = 00
+
+COUNT = 5
+KEY = 1086911519580101
+IV = 0000000000000000
+CIPHERTEXT = 00
+
+COUNT = 6
+KEY = 5107b01519580101
+IV = 0000000000000000
+CIPHERTEXT = 00
+
+COUNT = 7
+KEY = 1007b01519190101
+IV = 0000000000000000
+CIPHERTEXT = 00
+
+COUNT = 8
+KEY = 3107915498080101
+IV = 0000000000000000
+CIPHERTEXT = 00
+
+COUNT = 9
+KEY = 3107919498080101
+IV = 0000000000000000
+CIPHERTEXT = 00
+
+COUNT = 10
+KEY = 10079115b9080140
+IV = 0000000000000000
+CIPHERTEXT = 00
+
+COUNT = 11
+KEY = 3107911598080140
+IV = 0000000000000000
+CIPHERTEXT = 00
+
+COUNT = 12
+KEY = 1007d01589980101
+IV = 0000000000000000
+CIPHERTEXT = 00
+
+COUNT = 13
+KEY = 9107911589980101
+IV = 0000000000000000
+CIPHERTEXT = 00
+
+COUNT = 14
+KEY = 9107d01589190101
+IV = 0000000000000000
+CIPHERTEXT = 00
+
+COUNT = 15
+KEY = 1007d01598980120
+IV = 0000000000000000
+CIPHERTEXT = 00
+
+COUNT = 16
+KEY = 1007940498190101
+IV = 0000000000000000
+CIPHERTEXT = 00
+
+COUNT = 17
+KEY = 0107910491190401
+IV = 0000000000000000
+CIPHERTEXT = 00
+
+COUNT = 18
+KEY = 0107910491190101
+IV = 0000000000000000
+CIPHERTEXT = 00
+
+COUNT = 19
+KEY = 0107940491190401
+IV = 0000000000000000
+CIPHERTEXT = 00
+
+COUNT = 20
+KEY = 19079210981a0101
+IV = 0000000000000000
+CIPHERTEXT = 00
+
+COUNT = 21
+KEY = 1007911998190801
+IV = 0000000000000000
+CIPHERTEXT = 00
+
+COUNT = 22
+KEY = 10079119981a0801
+IV = 0000000000000000
+CIPHERTEXT = 00
+
+COUNT = 23
+KEY = 1007921098190101
+IV = 0000000000000000
+CIPHERTEXT = 00
+
+COUNT = 24
+KEY = 100791159819010b
+IV = 0000000000000000
+CIPHERTEXT = 00
+
+COUNT = 25
+KEY = 1004801598190101
+IV = 0000000000000000
+CIPHERTEXT = 00
+
+COUNT = 26
+KEY = 1004801598190102
+IV = 0000000000000000
+CIPHERTEXT = 00
+
+COUNT = 27
+KEY = 1004801598190108
+IV = 0000000000000000
+CIPHERTEXT = 00
+
+COUNT = 28
+KEY = 1002911598100104
+IV = 0000000000000000
+CIPHERTEXT = 00
+
+COUNT = 29
+KEY = 1002911598190104
+IV = 0000000000000000
+CIPHERTEXT = 00
+
+COUNT = 30
+KEY = 1002911598100201
+IV = 0000000000000000
+CIPHERTEXT = 00
+
+COUNT = 31
+KEY = 1002911698100101
+IV = 0000000000000000
+CIPHERTEXT = 00
diff --git a/fips/testvectors/des/req/CFB8subtab.req b/fips/testvectors/des/req/CFB8subtab.req
new file mode 100644 (file)
index 0000000..4582c30
--- /dev/null
@@ -0,0 +1,198 @@
+# CAVS 2.0
+# Config Info for : "OpenSSL_DES"
+# SUBSTITUTION TABLE - KAT for CFB8
+# State : Encrypt and Decrypt
+# Tue Jun 24 03:11:51 PM
+
+[ENCRYPT]
+COUNT = 0
+KEY = 7ca110454a1a6e57
+IV = 01a1d6d039776742
+PLAINTEXT = 00
+
+COUNT = 1
+KEY = 0131d9619dc1376e
+IV = 5cd54ca83def57da
+PLAINTEXT = 00
+
+COUNT = 2
+KEY = 07a1133e4a0b2686
+IV = 0248d43806f67172
+PLAINTEXT = 00
+
+COUNT = 3
+KEY = 3849674c2602319e
+IV = 51454b582ddf440a
+PLAINTEXT = 00
+
+COUNT = 4
+KEY = 04b915ba43feb5b6
+IV = 42fd443059577fa2
+PLAINTEXT = 00
+
+COUNT = 5
+KEY = 0113b970fd34f2ce
+IV = 059b5e0851cf143a
+PLAINTEXT = 00
+
+COUNT = 6
+KEY = 0170f175468fb5e6
+IV = 0756d8e0774761d2
+PLAINTEXT = 00
+
+COUNT = 7
+KEY = 43297fad38e373fe
+IV = 762514b829bf486a
+PLAINTEXT = 00
+
+COUNT = 8
+KEY = 07a7137045da2a16
+IV = 3bdd119049372802
+PLAINTEXT = 00
+
+COUNT = 9
+KEY = 04689104c2fd3b2f
+IV = 26955f6835af609a
+PLAINTEXT = 00
+
+COUNT = 10
+KEY = 37d06bb516cb7546
+IV = 164d5e404f275232
+PLAINTEXT = 00
+
+COUNT = 11
+KEY = 1f08260d1ac2465e
+IV = 6b056e18759f5cca
+PLAINTEXT = 00
+
+COUNT = 12
+KEY = 584023641aba6176
+IV = 004bd6ef09176062
+PLAINTEXT = 00
+
+COUNT = 13
+KEY = 025816164629b007
+IV = 480d39006ee762f2
+PLAINTEXT = 00
+
+COUNT = 14
+KEY = 49793ebc79b3258f
+IV = 437540c8698f3cfa
+PLAINTEXT = 00
+
+COUNT = 15
+KEY = 4fb05e1515ab73a7
+IV = 072d43a077075292
+PLAINTEXT = 00
+
+COUNT = 16
+KEY = 49e95d6d4ca229bf
+IV = 02fe55778117f12a
+PLAINTEXT = 00
+
+COUNT = 17
+KEY = 018310dc409b26d6
+IV = 1d9d5c5018f728c2
+PLAINTEXT = 00
+
+COUNT = 18
+KEY = 1c587f1c13924fef
+IV = 305532286d6f295a
+PLAINTEXT = 00
+
+
+[DECRYPT]
+COUNT = 0
+KEY = 7ca110454a1a6e57
+IV = 01a1d6d039776742
+CIPHERTEXT = 00
+
+COUNT = 1
+KEY = 0131d9619dc1376e
+IV = 5cd54ca83def57da
+CIPHERTEXT = 00
+
+COUNT = 2
+KEY = 07a1133e4a0b2686
+IV = 0248d43806f67172
+CIPHERTEXT = 00
+
+COUNT = 3
+KEY = 3849674c2602319e
+IV = 51454b582ddf440a
+CIPHERTEXT = 00
+
+COUNT = 4
+KEY = 04b915ba43feb5b6
+IV = 42fd443059577fa2
+CIPHERTEXT = 00
+
+COUNT = 5
+KEY = 0113b970fd34f2ce
+IV = 059b5e0851cf143a
+CIPHERTEXT = 00
+
+COUNT = 6
+KEY = 0170f175468fb5e6
+IV = 0756d8e0774761d2
+CIPHERTEXT = 00
+
+COUNT = 7
+KEY = 43297fad38e373fe
+IV = 762514b829bf486a
+CIPHERTEXT = 00
+
+COUNT = 8
+KEY = 07a7137045da2a16
+IV = 3bdd119049372802
+CIPHERTEXT = 00
+
+COUNT = 9
+KEY = 04689104c2fd3b2f
+IV = 26955f6835af609a
+CIPHERTEXT = 00
+
+COUNT = 10
+KEY = 37d06bb516cb7546
+IV = 164d5e404f275232
+CIPHERTEXT = 00
+
+COUNT = 11
+KEY = 1f08260d1ac2465e
+IV = 6b056e18759f5cca
+CIPHERTEXT = 00
+
+COUNT = 12
+KEY = 584023641aba6176
+IV = 004bd6ef09176062
+CIPHERTEXT = 00
+
+COUNT = 13
+KEY = 025816164629b007
+IV = 480d39006ee762f2
+CIPHERTEXT = 00
+
+COUNT = 14
+KEY = 49793ebc79b3258f
+IV = 437540c8698f3cfa
+CIPHERTEXT = 00
+
+COUNT = 15
+KEY = 4fb05e1515ab73a7
+IV = 072d43a077075292
+CIPHERTEXT = 00
+
+COUNT = 16
+KEY = 49e95d6d4ca229bf
+IV = 02fe55778117f12a
+CIPHERTEXT = 00
+
+COUNT = 17
+KEY = 018310dc409b26d6
+IV = 1d9d5c5018f728c2
+CIPHERTEXT = 00
+
+COUNT = 18
+KEY = 1c587f1c13924fef
+IV = 305532286d6f295a
+CIPHERTEXT = 00
diff --git a/fips/testvectors/des/req/CFB8varkey.req b/fips/testvectors/des/req/CFB8varkey.req
new file mode 100644 (file)
index 0000000..3888233
--- /dev/null
@@ -0,0 +1,568 @@
+# CAVS 2.0
+# Config Info for : "OpenSSL_DES"
+# VARIABLE KEY - KAT for CFB8
+# State : Encrypt and Decrypt
+# Tue Jun 24 03:11:51 PM
+
+[ENCRYPT]
+COUNT = 0
+KEY = 8001010101010101
+IV = 0000000000000000
+PLAINTEXT = 00
+
+COUNT = 1
+KEY = 4001010101010101
+IV = 0000000000000000
+PLAINTEXT = 00
+
+COUNT = 2
+KEY = 2001010101010101
+IV = 0000000000000000
+PLAINTEXT = 00
+
+COUNT = 3
+KEY = 1001010101010101
+IV = 0000000000000000
+PLAINTEXT = 00
+
+COUNT = 4
+KEY = 0801010101010101
+IV = 0000000000000000
+PLAINTEXT = 00
+
+COUNT = 5
+KEY = 0401010101010101
+IV = 0000000000000000
+PLAINTEXT = 00
+
+COUNT = 6
+KEY = 0201010101010101
+IV = 0000000000000000
+PLAINTEXT = 00
+
+COUNT = 7
+KEY = 0180010101010101
+IV = 0000000000000000
+PLAINTEXT = 00
+
+COUNT = 8
+KEY = 0140010101010101
+IV = 0000000000000000
+PLAINTEXT = 00
+
+COUNT = 9
+KEY = 0120010101010101
+IV = 0000000000000000
+PLAINTEXT = 00
+
+COUNT = 10
+KEY = 0110010101010101
+IV = 0000000000000000
+PLAINTEXT = 00
+
+COUNT = 11
+KEY = 0108010101010101
+IV = 0000000000000000
+PLAINTEXT = 00
+
+COUNT = 12
+KEY = 0104010101010101
+IV = 0000000000000000
+PLAINTEXT = 00
+
+COUNT = 13
+KEY = 0102010101010101
+IV = 0000000000000000
+PLAINTEXT = 00
+
+COUNT = 14
+KEY = 0101800101010101
+IV = 0000000000000000
+PLAINTEXT = 00
+
+COUNT = 15
+KEY = 0101400101010101
+IV = 0000000000000000
+PLAINTEXT = 00
+
+COUNT = 16
+KEY = 0101200101010101
+IV = 0000000000000000
+PLAINTEXT = 00
+
+COUNT = 17
+KEY = 0101100101010101
+IV = 0000000000000000
+PLAINTEXT = 00
+
+COUNT = 18
+KEY = 0101080101010101
+IV = 0000000000000000
+PLAINTEXT = 00
+
+COUNT = 19
+KEY = 0101040101010101
+IV = 0000000000000000
+PLAINTEXT = 00
+
+COUNT = 20
+KEY = 0101020101010101
+IV = 0000000000000000
+PLAINTEXT = 00
+
+COUNT = 21
+KEY = 0101018001010101
+IV = 0000000000000000
+PLAINTEXT = 00
+
+COUNT = 22
+KEY = 0101014001010101
+IV = 0000000000000000
+PLAINTEXT = 00
+
+COUNT = 23
+KEY = 0101012001010101
+IV = 0000000000000000
+PLAINTEXT = 00
+
+COUNT = 24
+KEY = 0101011001010101
+IV = 0000000000000000
+PLAINTEXT = 00
+
+COUNT = 25
+KEY = 0101010801010101
+IV = 0000000000000000
+PLAINTEXT = 00
+
+COUNT = 26
+KEY = 0101010401010101
+IV = 0000000000000000
+PLAINTEXT = 00
+
+COUNT = 27
+KEY = 0101010201010101
+IV = 0000000000000000
+PLAINTEXT = 00
+
+COUNT = 28
+KEY = 0101010180010101
+IV = 0000000000000000
+PLAINTEXT = 00
+
+COUNT = 29
+KEY = 0101010140010101
+IV = 0000000000000000
+PLAINTEXT = 00
+
+COUNT = 30
+KEY = 0101010120010101
+IV = 0000000000000000
+PLAINTEXT = 00
+
+COUNT = 31
+KEY = 0101010110010101
+IV = 0000000000000000
+PLAINTEXT = 00
+
+COUNT = 32
+KEY = 0101010108010101
+IV = 0000000000000000
+PLAINTEXT = 00
+
+COUNT = 33
+KEY = 0101010104010101
+IV = 0000000000000000
+PLAINTEXT = 00
+
+COUNT = 34
+KEY = 0101010102010101
+IV = 0000000000000000
+PLAINTEXT = 00
+
+COUNT = 35
+KEY = 0101010101800101
+IV = 0000000000000000
+PLAINTEXT = 00
+
+COUNT = 36
+KEY = 0101010101400101
+IV = 0000000000000000
+PLAINTEXT = 00
+
+COUNT = 37
+KEY = 0101010101200101
+IV = 0000000000000000
+PLAINTEXT = 00
+
+COUNT = 38
+KEY = 0101010101100101
+IV = 0000000000000000
+PLAINTEXT = 00
+
+COUNT = 39
+KEY = 0101010101080101
+IV = 0000000000000000
+PLAINTEXT = 00
+
+COUNT = 40
+KEY = 0101010101040101
+IV = 0000000000000000
+PLAINTEXT = 00
+
+COUNT = 41
+KEY = 0101010101020101
+IV = 0000000000000000
+PLAINTEXT = 00
+
+COUNT = 42
+KEY = 0101010101018001
+IV = 0000000000000000
+PLAINTEXT = 00
+
+COUNT = 43
+KEY = 0101010101014001
+IV = 0000000000000000
+PLAINTEXT = 00
+
+COUNT = 44
+KEY = 0101010101012001
+IV = 0000000000000000
+PLAINTEXT = 00
+
+COUNT = 45
+KEY = 0101010101011001
+IV = 0000000000000000
+PLAINTEXT = 00
+
+COUNT = 46
+KEY = 0101010101010801
+IV = 0000000000000000
+PLAINTEXT = 00
+
+COUNT = 47
+KEY = 0101010101010401
+IV = 0000000000000000
+PLAINTEXT = 00
+
+COUNT = 48
+KEY = 0101010101010201
+IV = 0000000000000000
+PLAINTEXT = 00
+
+COUNT = 49
+KEY = 0101010101010180
+IV = 0000000000000000
+PLAINTEXT = 00
+
+COUNT = 50
+KEY = 0101010101010140
+IV = 0000000000000000
+PLAINTEXT = 00
+
+COUNT = 51
+KEY = 0101010101010120
+IV = 0000000000000000
+PLAINTEXT = 00
+
+COUNT = 52
+KEY = 0101010101010110
+IV = 0000000000000000
+PLAINTEXT = 00
+
+COUNT = 53
+KEY = 0101010101010108
+IV = 0000000000000000
+PLAINTEXT = 00
+
+COUNT = 54
+KEY = 0101010101010104
+IV = 0000000000000000
+PLAINTEXT = 00
+
+COUNT = 55
+KEY = 0101010101010102
+IV = 0000000000000000
+PLAINTEXT = 00
+
+
+[DECRYPT]
+COUNT = 0
+KEY = 8001010101010101
+IV = 0000000000000000
+CIPHERTEXT = 00
+
+COUNT = 1
+KEY = 4001010101010101
+IV = 0000000000000000
+CIPHERTEXT = 00
+
+COUNT = 2
+KEY = 2001010101010101
+IV = 0000000000000000
+CIPHERTEXT = 00
+
+COUNT = 3
+KEY = 1001010101010101
+IV = 0000000000000000
+CIPHERTEXT = 00
+
+COUNT = 4
+KEY = 0801010101010101
+IV = 0000000000000000
+CIPHERTEXT = 00
+
+COUNT = 5
+KEY = 0401010101010101
+IV = 0000000000000000
+CIPHERTEXT = 00
+
+COUNT = 6
+KEY = 0201010101010101
+IV = 0000000000000000
+CIPHERTEXT = 00
+
+COUNT = 7
+KEY = 0180010101010101
+IV = 0000000000000000
+CIPHERTEXT = 00
+
+COUNT = 8
+KEY = 0140010101010101
+IV = 0000000000000000
+CIPHERTEXT = 00
+
+COUNT = 9
+KEY = 0120010101010101
+IV = 0000000000000000
+CIPHERTEXT = 00
+
+COUNT = 10
+KEY = 0110010101010101
+IV = 0000000000000000
+CIPHERTEXT = 00
+
+COUNT = 11
+KEY = 0108010101010101
+IV = 0000000000000000
+CIPHERTEXT = 00
+
+COUNT = 12
+KEY = 0104010101010101
+IV = 0000000000000000
+CIPHERTEXT = 00
+
+COUNT = 13
+KEY = 0102010101010101
+IV = 0000000000000000
+CIPHERTEXT = 00
+
+COUNT = 14
+KEY = 0101800101010101
+IV = 0000000000000000
+CIPHERTEXT = 00
+
+COUNT = 15
+KEY = 0101400101010101
+IV = 0000000000000000
+CIPHERTEXT = 00
+
+COUNT = 16
+KEY = 0101200101010101
+IV = 0000000000000000
+CIPHERTEXT = 00
+
+COUNT = 17
+KEY = 0101100101010101
+IV = 0000000000000000
+CIPHERTEXT = 00
+
+COUNT = 18
+KEY = 0101080101010101
+IV = 0000000000000000
+CIPHERTEXT = 00
+
+COUNT = 19
+KEY = 0101040101010101
+IV = 0000000000000000
+CIPHERTEXT = 00
+
+COUNT = 20
+KEY = 0101020101010101
+IV = 0000000000000000
+CIPHERTEXT = 00
+
+COUNT = 21
+KEY = 0101018001010101
+IV = 0000000000000000
+CIPHERTEXT = 00
+
+COUNT = 22
+KEY = 0101014001010101
+IV = 0000000000000000
+CIPHERTEXT = 00
+
+COUNT = 23
+KEY = 0101012001010101
+IV = 0000000000000000
+CIPHERTEXT = 00
+
+COUNT = 24
+KEY = 0101011001010101
+IV = 0000000000000000
+CIPHERTEXT = 00
+
+COUNT = 25
+KEY = 0101010801010101
+IV = 0000000000000000
+CIPHERTEXT = 00
+
+COUNT = 26
+KEY = 0101010401010101
+IV = 0000000000000000
+CIPHERTEXT = 00
+
+COUNT = 27
+KEY = 0101010201010101
+IV = 0000000000000000
+CIPHERTEXT = 00
+
+COUNT = 28
+KEY = 0101010180010101
+IV = 0000000000000000
+CIPHERTEXT = 00
+
+COUNT = 29
+KEY = 0101010140010101
+IV = 0000000000000000
+CIPHERTEXT = 00
+
+COUNT = 30
+KEY = 0101010120010101
+IV = 0000000000000000
+CIPHERTEXT = 00
+
+COUNT = 31
+KEY = 0101010110010101
+IV = 0000000000000000
+CIPHERTEXT = 00
+
+COUNT = 32
+KEY = 0101010108010101
+IV = 0000000000000000
+CIPHERTEXT = 00
+
+COUNT = 33
+KEY = 0101010104010101
+IV = 0000000000000000
+CIPHERTEXT = 00
+
+COUNT = 34
+KEY = 0101010102010101
+IV = 0000000000000000
+CIPHERTEXT = 00
+
+COUNT = 35
+KEY = 0101010101800101
+IV = 0000000000000000
+CIPHERTEXT = 00
+
+COUNT = 36
+KEY = 0101010101400101
+IV = 0000000000000000
+CIPHERTEXT = 00
+
+COUNT = 37
+KEY = 0101010101200101
+IV = 0000000000000000
+CIPHERTEXT = 00
+
+COUNT = 38
+KEY = 0101010101100101
+IV = 0000000000000000
+CIPHERTEXT = 00
+
+COUNT = 39
+KEY = 0101010101080101
+IV = 0000000000000000
+CIPHERTEXT = 00
+
+COUNT = 40
+KEY = 0101010101040101
+IV = 0000000000000000
+CIPHERTEXT = 00
+
+COUNT = 41
+KEY = 0101010101020101
+IV = 0000000000000000
+CIPHERTEXT = 00
+
+COUNT = 42
+KEY = 0101010101018001
+IV = 0000000000000000
+CIPHERTEXT = 00
+
+COUNT = 43
+KEY = 0101010101014001
+IV = 0000000000000000
+CIPHERTEXT = 00
+
+COUNT = 44
+KEY = 0101010101012001
+IV = 0000000000000000
+CIPHERTEXT = 00
+
+COUNT = 45
+KEY = 0101010101011001
+IV = 0000000000000000
+CIPHERTEXT = 00
+
+COUNT = 46
+KEY = 0101010101010801
+IV = 0000000000000000
+CIPHERTEXT = 00
+
+COUNT = 47
+KEY = 0101010101010401
+IV = 0000000000000000
+CIPHERTEXT = 00
+
+COUNT = 48
+KEY = 0101010101010201
+IV = 0000000000000000
+CIPHERTEXT = 00
+
+COUNT = 49
+KEY = 0101010101010180
+IV = 0000000000000000
+CIPHERTEXT = 00
+
+COUNT = 50
+KEY = 0101010101010140
+IV = 0000000000000000
+CIPHERTEXT = 00
+
+COUNT = 51
+KEY = 0101010101010120
+IV = 0000000000000000
+CIPHERTEXT = 00
+
+COUNT = 52
+KEY = 0101010101010110
+IV = 0000000000000000
+CIPHERTEXT = 00
+
+COUNT = 53
+KEY = 0101010101010108
+IV = 0000000000000000
+CIPHERTEXT = 00
+
+COUNT = 54
+KEY = 0101010101010104
+IV = 0000000000000000
+CIPHERTEXT = 00
+
+COUNT = 55
+KEY = 0101010101010102
+IV = 0000000000000000
+CIPHERTEXT = 00
diff --git a/fips/testvectors/des/req/CFB8vartext.req b/fips/testvectors/des/req/CFB8vartext.req
new file mode 100644 (file)
index 0000000..c969c71
--- /dev/null
@@ -0,0 +1,648 @@
+# CAVS 2.0
+# Config Info for : "OpenSSL_DES"
+# VARIABLE PLAINTEXT/CIPHERTEXT - KAT for CFB8
+# State : Encrypt and Decrypt
+# Tue Jun 24 03:11:51 PM
+
+[ENCRYPT]
+COUNT = 0
+KEY = 0101010101010101
+IV = 8000000000000000
+PLAINTEXT = 00
+
+COUNT = 1
+KEY = 0101010101010101
+IV = 4000000000000000
+PLAINTEXT = 00
+
+COUNT = 2
+KEY = 0101010101010101
+IV = 2000000000000000
+PLAINTEXT = 00
+
+COUNT = 3
+KEY = 0101010101010101
+IV = 1000000000000000
+PLAINTEXT = 00
+
+COUNT = 4
+KEY = 0101010101010101
+IV = 0800000000000000
+PLAINTEXT = 00
+
+COUNT = 5
+KEY = 0101010101010101
+IV = 0400000000000000
+PLAINTEXT = 00
+
+COUNT = 6
+KEY = 0101010101010101
+IV = 0200000000000000
+PLAINTEXT = 00
+
+COUNT = 7
+KEY = 0101010101010101
+IV = 0100000000000000
+PLAINTEXT = 00
+
+COUNT = 8
+KEY = 0101010101010101
+IV = 0080000000000000
+PLAINTEXT = 00
+
+COUNT = 9
+KEY = 0101010101010101
+IV = 0040000000000000
+PLAINTEXT = 00
+
+COUNT = 10
+KEY = 0101010101010101
+IV = 0020000000000000
+PLAINTEXT = 00
+
+COUNT = 11
+KEY = 0101010101010101
+IV = 0010000000000000
+PLAINTEXT = 00
+
+COUNT = 12
+KEY = 0101010101010101
+IV = 0008000000000000
+PLAINTEXT = 00
+
+COUNT = 13
+KEY = 0101010101010101
+IV = 0004000000000000
+PLAINTEXT = 00
+
+COUNT = 14
+KEY = 0101010101010101
+IV = 0002000000000000
+PLAINTEXT = 00
+
+COUNT = 15
+KEY = 0101010101010101
+IV = 0001000000000000
+PLAINTEXT = 00
+
+COUNT = 16
+KEY = 0101010101010101
+IV = 0000800000000000
+PLAINTEXT = 00
+
+COUNT = 17
+KEY = 0101010101010101
+IV = 0000400000000000
+PLAINTEXT = 00
+
+COUNT = 18
+KEY = 0101010101010101
+IV = 0000200000000000
+PLAINTEXT = 00
+
+COUNT = 19
+KEY = 0101010101010101
+IV = 0000100000000000
+PLAINTEXT = 00
+
+COUNT = 20
+KEY = 0101010101010101
+IV = 0000080000000000
+PLAINTEXT = 00
+
+COUNT = 21
+KEY = 0101010101010101
+IV = 0000040000000000
+PLAINTEXT = 00
+
+COUNT = 22
+KEY = 0101010101010101
+IV = 0000020000000000
+PLAINTEXT = 00
+
+COUNT = 23
+KEY = 0101010101010101
+IV = 0000010000000000
+PLAINTEXT = 00
+
+COUNT = 24
+KEY = 0101010101010101
+IV = 0000008000000000
+PLAINTEXT = 00
+
+COUNT = 25
+KEY = 0101010101010101
+IV = 0000004000000000
+PLAINTEXT = 00
+
+COUNT = 26
+KEY = 0101010101010101
+IV = 0000002000000000
+PLAINTEXT = 00
+
+COUNT = 27
+KEY = 0101010101010101
+IV = 0000001000000000
+PLAINTEXT = 00
+
+COUNT = 28
+KEY = 0101010101010101
+IV = 0000000800000000
+PLAINTEXT = 00
+
+COUNT = 29
+KEY = 0101010101010101
+IV = 0000000400000000
+PLAINTEXT = 00
+
+COUNT = 30
+KEY = 0101010101010101
+IV = 0000000200000000
+PLAINTEXT = 00
+
+COUNT = 31
+KEY = 0101010101010101
+IV = 0000000100000000
+PLAINTEXT = 00
+
+COUNT = 32
+KEY = 0101010101010101
+IV = 0000000080000000
+PLAINTEXT = 00
+
+COUNT = 33
+KEY = 0101010101010101
+IV = 0000000040000000
+PLAINTEXT = 00
+
+COUNT = 34
+KEY = 0101010101010101
+IV = 0000000020000000
+PLAINTEXT = 00
+
+COUNT = 35
+KEY = 0101010101010101
+IV = 0000000010000000
+PLAINTEXT = 00
+
+COUNT = 36
+KEY = 0101010101010101
+IV = 0000000008000000
+PLAINTEXT = 00
+
+COUNT = 37
+KEY = 0101010101010101
+IV = 0000000004000000
+PLAINTEXT = 00
+
+COUNT = 38
+KEY = 0101010101010101
+IV = 0000000002000000
+PLAINTEXT = 00
+
+COUNT = 39
+KEY = 0101010101010101
+IV = 0000000001000000
+PLAINTEXT = 00
+
+COUNT = 40
+KEY = 0101010101010101
+IV = 0000000000800000
+PLAINTEXT = 00
+
+COUNT = 41
+KEY = 0101010101010101
+IV = 0000000000400000
+PLAINTEXT = 00
+
+COUNT = 42
+KEY = 0101010101010101
+IV = 0000000000200000
+PLAINTEXT = 00
+
+COUNT = 43
+KEY = 0101010101010101
+IV = 0000000000100000
+PLAINTEXT = 00
+
+COUNT = 44
+KEY = 0101010101010101
+IV = 0000000000080000
+PLAINTEXT = 00
+
+COUNT = 45
+KEY = 0101010101010101
+IV = 0000000000040000
+PLAINTEXT = 00
+
+COUNT = 46
+KEY = 0101010101010101
+IV = 0000000000020000
+PLAINTEXT = 00
+
+COUNT = 47
+KEY = 0101010101010101
+IV = 0000000000010000
+PLAINTEXT = 00
+
+COUNT = 48
+KEY = 0101010101010101
+IV = 0000000000008000
+PLAINTEXT = 00
+
+COUNT = 49
+KEY = 0101010101010101
+IV = 0000000000004000
+PLAINTEXT = 00
+
+COUNT = 50
+KEY = 0101010101010101
+IV = 0000000000002000
+PLAINTEXT = 00
+
+COUNT = 51
+KEY = 0101010101010101
+IV = 0000000000001000
+PLAINTEXT = 00
+
+COUNT = 52
+KEY = 0101010101010101
+IV = 0000000000000800
+PLAINTEXT = 00
+
+COUNT = 53
+KEY = 0101010101010101
+IV = 0000000000000400
+PLAINTEXT = 00
+
+COUNT = 54
+KEY = 0101010101010101
+IV = 0000000000000200
+PLAINTEXT = 00
+
+COUNT = 55
+KEY = 0101010101010101
+IV = 0000000000000100
+PLAINTEXT = 00
+
+COUNT = 56
+KEY = 0101010101010101
+IV = 0000000000000080
+PLAINTEXT = 00
+
+COUNT = 57
+KEY = 0101010101010101
+IV = 0000000000000040
+PLAINTEXT = 00
+
+COUNT = 58
+KEY = 0101010101010101
+IV = 0000000000000020
+PLAINTEXT = 00
+
+COUNT = 59
+KEY = 0101010101010101
+IV = 0000000000000010
+PLAINTEXT = 00
+
+COUNT = 60
+KEY = 0101010101010101
+IV = 0000000000000008
+PLAINTEXT = 00
+
+COUNT = 61
+KEY = 0101010101010101
+IV = 0000000000000004
+PLAINTEXT = 00
+
+COUNT = 62
+KEY = 0101010101010101
+IV = 0000000000000002
+PLAINTEXT = 00
+
+COUNT = 63
+KEY = 0101010101010101
+IV = 0000000000000001
+PLAINTEXT = 00
+
+
+[DECRYPT]
+COUNT = 0
+KEY = 0101010101010101
+IV = 8000000000000000
+CIPHERTEXT = 00
+
+COUNT = 1
+KEY = 0101010101010101
+IV = 4000000000000000
+CIPHERTEXT = 00
+
+COUNT = 2
+KEY = 0101010101010101
+IV = 2000000000000000
+CIPHERTEXT = 00
+
+COUNT = 3
+KEY = 0101010101010101
+IV = 1000000000000000
+CIPHERTEXT = 00
+
+COUNT = 4
+KEY = 0101010101010101
+IV = 0800000000000000
+CIPHERTEXT = 00
+
+COUNT = 5
+KEY = 0101010101010101
+IV = 0400000000000000
+CIPHERTEXT = 00
+
+COUNT = 6
+KEY = 0101010101010101
+IV = 0200000000000000
+CIPHERTEXT = 00
+
+COUNT = 7
+KEY = 0101010101010101
+IV = 0100000000000000
+CIPHERTEXT = 00
+
+COUNT = 8
+KEY = 0101010101010101
+IV = 0080000000000000
+CIPHERTEXT = 00
+
+COUNT = 9
+KEY = 0101010101010101
+IV = 0040000000000000
+CIPHERTEXT = 00
+
+COUNT = 10
+KEY = 0101010101010101
+IV = 0020000000000000
+CIPHERTEXT = 00
+
+COUNT = 11
+KEY = 0101010101010101
+IV = 0010000000000000
+CIPHERTEXT = 00
+
+COUNT = 12
+KEY = 0101010101010101
+IV = 0008000000000000
+CIPHERTEXT = 00
+
+COUNT = 13
+KEY = 0101010101010101
+IV = 0004000000000000
+CIPHERTEXT = 00
+
+COUNT = 14
+KEY = 0101010101010101
+IV = 0002000000000000
+CIPHERTEXT = 00
+
+COUNT = 15
+KEY = 0101010101010101
+IV = 0001000000000000
+CIPHERTEXT = 00
+
+COUNT = 16
+KEY = 0101010101010101
+IV = 0000800000000000
+CIPHERTEXT = 00
+
+COUNT = 17
+KEY = 0101010101010101
+IV = 0000400000000000
+CIPHERTEXT = 00
+
+COUNT = 18
+KEY = 0101010101010101
+IV = 0000200000000000
+CIPHERTEXT = 00
+
+COUNT = 19
+KEY = 0101010101010101
+IV = 0000100000000000
+CIPHERTEXT = 00
+
+COUNT = 20
+KEY = 0101010101010101
+IV = 0000080000000000
+CIPHERTEXT = 00
+
+COUNT = 21
+KEY = 0101010101010101
+IV = 0000040000000000
+CIPHERTEXT = 00
+
+COUNT = 22
+KEY = 0101010101010101
+IV = 0000020000000000
+CIPHERTEXT = 00
+
+COUNT = 23
+KEY = 0101010101010101
+IV = 0000010000000000
+CIPHERTEXT = 00
+
+COUNT = 24
+KEY = 0101010101010101
+IV = 0000008000000000
+CIPHERTEXT = 00
+
+COUNT = 25
+KEY = 0101010101010101
+IV = 0000004000000000
+CIPHERTEXT = 00
+
+COUNT = 26
+KEY = 0101010101010101
+IV = 0000002000000000
+CIPHERTEXT = 00
+
+COUNT = 27
+KEY = 0101010101010101
+IV = 0000001000000000
+CIPHERTEXT = 00
+
+COUNT = 28
+KEY = 0101010101010101
+IV = 0000000800000000
+CIPHERTEXT = 00
+
+COUNT = 29
+KEY = 0101010101010101
+IV = 0000000400000000
+CIPHERTEXT = 00
+
+COUNT = 30
+KEY = 0101010101010101
+IV = 0000000200000000
+CIPHERTEXT = 00
+
+COUNT = 31
+KEY = 0101010101010101
+IV = 0000000100000000
+CIPHERTEXT = 00
+
+COUNT = 32
+KEY = 0101010101010101
+IV = 0000000080000000
+CIPHERTEXT = 00
+
+COUNT = 33
+KEY = 0101010101010101
+IV = 0000000040000000
+CIPHERTEXT = 00
+
+COUNT = 34
+KEY = 0101010101010101
+IV = 0000000020000000
+CIPHERTEXT = 00
+
+COUNT = 35
+KEY = 0101010101010101
+IV = 0000000010000000
+CIPHERTEXT = 00
+
+COUNT = 36
+KEY = 0101010101010101
+IV = 0000000008000000
+CIPHERTEXT = 00
+
+COUNT = 37
+KEY = 0101010101010101
+IV = 0000000004000000
+CIPHERTEXT = 00
+
+COUNT = 38
+KEY = 0101010101010101
+IV = 0000000002000000
+CIPHERTEXT = 00
+
+COUNT = 39
+KEY = 0101010101010101
+IV = 0000000001000000
+CIPHERTEXT = 00
+
+COUNT = 40
+KEY = 0101010101010101
+IV = 0000000000800000
+CIPHERTEXT = 00
+
+COUNT = 41
+KEY = 0101010101010101
+IV = 0000000000400000
+CIPHERTEXT = 00
+
+COUNT = 42
+KEY = 0101010101010101
+IV = 0000000000200000
+CIPHERTEXT = 00
+
+COUNT = 43
+KEY = 0101010101010101
+IV = 0000000000100000
+CIPHERTEXT = 00
+
+COUNT = 44
+KEY = 0101010101010101
+IV = 0000000000080000
+CIPHERTEXT = 00
+
+COUNT = 45
+KEY = 0101010101010101
+IV = 0000000000040000
+CIPHERTEXT = 00
+
+COUNT = 46
+KEY = 0101010101010101
+IV = 0000000000020000
+CIPHERTEXT = 00
+
+COUNT = 47
+KEY = 0101010101010101
+IV = 0000000000010000
+CIPHERTEXT = 00
+
+COUNT = 48
+KEY = 0101010101010101
+IV = 0000000000008000
+CIPHERTEXT = 00
+
+COUNT = 49
+KEY = 0101010101010101
+IV = 0000000000004000
+CIPHERTEXT = 00
+
+COUNT = 50
+KEY = 0101010101010101
+IV = 0000000000002000
+CIPHERTEXT = 00
+
+COUNT = 51
+KEY = 0101010101010101
+IV = 0000000000001000
+CIPHERTEXT = 00
+
+COUNT = 52
+KEY = 0101010101010101
+IV = 0000000000000800
+CIPHERTEXT = 00
+
+COUNT = 53
+KEY = 0101010101010101
+IV = 0000000000000400
+CIPHERTEXT = 00
+
+COUNT = 54
+KEY = 0101010101010101
+IV = 0000000000000200
+CIPHERTEXT = 00
+
+COUNT = 55
+KEY = 0101010101010101
+IV = 0000000000000100
+CIPHERTEXT = 00
+
+COUNT = 56
+KEY = 0101010101010101
+IV = 0000000000000080
+CIPHERTEXT = 00
+
+COUNT = 57
+KEY = 0101010101010101
+IV = 0000000000000040
+CIPHERTEXT = 00
+
+COUNT = 58
+KEY = 0101010101010101
+IV = 0000000000000020
+CIPHERTEXT = 00
+
+COUNT = 59
+KEY = 0101010101010101
+IV = 0000000000000010
+CIPHERTEXT = 00
+
+COUNT = 60
+KEY = 0101010101010101
+IV = 0000000000000008
+CIPHERTEXT = 00
+
+COUNT = 61
+KEY = 0101010101010101
+IV = 0000000000000004
+CIPHERTEXT = 00
+
+COUNT = 62
+KEY = 0101010101010101
+IV = 0000000000000002
+CIPHERTEXT = 00
+
+COUNT = 63
+KEY = 0101010101010101
+IV = 0000000000000001
+CIPHERTEXT = 00
diff --git a/fips/testvectors/des/req/ECBMMT.req b/fips/testvectors/des/req/ECBMMT.req
new file mode 100644 (file)
index 0000000..5447fd0
--- /dev/null
@@ -0,0 +1,89 @@
+# CAVS 2.0
+# Config Info for : "OpenSSL_DES"
+# DES Multi Block Message Test for ECB
+# State : Encrypt and Decrypt
+# Tue Jun 24 03:11:52 PM
+
+[ENCRYPT]
+
+COUNT = 0
+KEY = 91e601d59d64d5a4
+PLAINTEXT = 078f91710eace1c8
+
+COUNT = 1
+KEY = 4997615820ae85f2
+PLAINTEXT = e06afca4c971e04a1605f4e50440740b
+
+COUNT = 2
+KEY = d3fd4ae6a8108afb
+PLAINTEXT = b577fcc169bc5195b3c9a9545c55aa9eda1212c9723ef81d
+
+COUNT = 3
+KEY = 455ec7197f64cdf7
+PLAINTEXT = c3dc18b906040dd7f985bc77520cab59e3f55d416fc6c99cbdfc0b67ea0b5a4d
+
+COUNT = 4
+KEY = eab61c46a715917f
+PLAINTEXT = 0ada8c451f2d240d561cd7b26ffbfd3b252ac32fb08cd0ac8e3a29b3837952c6dfeab7b5ff014ab5
+
+COUNT = 5
+KEY = cbb0dab36701bfd5
+PLAINTEXT = 127c09f2b46b03f427ef21d8fd22aa1dce0e0acf87b8c7a8065db77be4fb71d3921301d7a8ade070799e23aeeb06f268
+
+COUNT = 6
+KEY = ce8f754679522580
+PLAINTEXT = 55b8d8533d9c9cf5c9de5f510a624588ea743a66565c3794a332c00f2af4b2d836d63bee21d92a79b99f6948e87ec77d95d3fb87c599e651
+
+COUNT = 7
+KEY = 1cbca873a7c1fba4
+PLAINTEXT = ba51e8fa6f8498507f5e28866b2f3a07035442c77c003a27c23d98190f2d7d84bd962fea599dc948f8d2313dce6d4b6ffcd76c2baa6d124b5680d25d6ba09101
+
+COUNT = 8
+KEY = 19d5400da74fa1bf
+PLAINTEXT = b12853904bb1ee5f40ec2f0556d533f9b6418d56a0c196df5cc904407411be97203cef3202b8599a13e5edd1de7998d9ec235f757f6eae3483e9edaac1855501563e02b163fd498b
+
+COUNT = 9
+KEY = c8cb2694b062a776
+PLAINTEXT = f941bc86e734ee0c40ab470b660fda5aa707fffebfeff8439e86d40c6ce69467cbba8d645cab0d28841b413d7016562c5685df4efea577df82b8a75452fb0aee7ad7ae90285bbece68ea5e463331d733
+
+[DECRYPT]
+
+COUNT = 0
+KEY = 9befba6dc84f1a01
+CIPHERTEXT = 7f3cc2a97ba1cc29
+
+COUNT = 1
+KEY = 014abaea8c01d049
+CIPHERTEXT = 7c80b93386ba4cfaf274622757ba6bbf
+
+COUNT = 2
+KEY = 8c5e32c410a14554
+CIPHERTEXT = 0f9d3071af25a14211c5b47380a9b4b24af9f88722ad69cf
+
+COUNT = 3
+KEY = 1f8679d326298cd6
+CIPHERTEXT = 529f1af04a98cb4d2185ea7942765c98ce576a9791155f6c3403539fb47b4209
+
+COUNT = 4
+KEY = 294c7ad3159b91c8
+CIPHERTEXT = 3807255d6bcfe8ff09ad6e54969e077a89d66f54086dabdef45634bd2590571bf7a0dcb1053ee625
+
+COUNT = 5
+KEY = d06d9e61bcb3e583
+CIPHERTEXT = 17520fb88f494ed2fa1bdc5df9760093b571c46620c3565b7e32ae9b234f71487e61160d569f47f954a28a8dc2192013
+
+COUNT = 6
+KEY = eaae8c5dd03d57ea
+CIPHERTEXT = a87c4de04336b61d648ad8a15f48cf6555dde6d909d50b86ee9e81f1858fd5c3e52813289b9c3975b58cec0d1a166a851d0ec006518b3df3
+
+COUNT = 7
+KEY = 89b398b52ad6543e
+CIPHERTEXT = dd0ba0356d0bcf5b1be0f72e063adaf5a3c839fb634e994390f8477878ee9a23ce2878214d841b539e1515977cbe92f71600de21b51127179e2e83283a31351f
+
+COUNT = 8
+KEY = c1c708b9fb389d7f
+CIPHERTEXT = 8a7b6714ab40e77240b334db55c646f83f86ce4bc6aa75668a67645b9f8c0a737bca19231253d23b3fa8836166ab4ebe58fc2bf77682305f1a48116b328be3662e1125651dbc007e
+
+COUNT = 9
+KEY = 0be3200e7cf4fe7a
+CIPHERTEXT = 2e557e17415512dea05bd93ea22f0bdf5c657c9173df16eb2e938731cf8e377b24397d1459dc12211060c683b35971fe09442d9a080cc249ebd462cb84f097cfd234795bd672246da33e69e3b5f4c498
diff --git a/fips/testvectors/des/req/ECBMonte.req b/fips/testvectors/des/req/ECBMonte.req
new file mode 100644 (file)
index 0000000..06ba387
--- /dev/null
@@ -0,0 +1,15 @@
+# CAVS 2.0
+# Config Info for : "OpenSSL_DES"
+# DES Monte Carlo (Modes) Test for ECB
+# State : Encrypt and Decrypt
+# Tue Jun 24 03:11:52 PM
+
+[ENCRYPT]
+KEY = 85ec01545e169b7c
+PLAINTEXT = a58819aa56a768fa
+
+
+[DECRYPT]
+KEY = 2a4a34049bb9f4e9
+CIPHERTEXT = ccb58233c54a7e4b
+
diff --git a/fips/testvectors/des/req/ECBinvperm.req b/fips/testvectors/des/req/ECBinvperm.req
new file mode 100644 (file)
index 0000000..d71a68c
--- /dev/null
@@ -0,0 +1,520 @@
+# CAVS 2.0
+# Config Info for : "OpenSSL_DES"
+# INVERSE PERMUTATION - KAT for ECB
+# State : Encrypt and Decrypt
+# Tue Jun 24 03:11:51 PM
+
+[ENCRYPT]
+COUNT = 0
+KEY = 0101010101010101
+PLAINTEXT = 95f8a5e5dd31d900
+
+COUNT = 1
+KEY = 0101010101010101
+PLAINTEXT = dd7f121ca5015619
+
+COUNT = 2
+KEY = 0101010101010101
+PLAINTEXT = 2e8653104f3834ea
+
+COUNT = 3
+KEY = 0101010101010101
+PLAINTEXT = 4bd388ff6cd81d4f
+
+COUNT = 4
+KEY = 0101010101010101
+PLAINTEXT = 20b9e767b2fb1456
+
+COUNT = 5
+KEY = 0101010101010101
+PLAINTEXT = 55579380d77138ef
+
+COUNT = 6
+KEY = 0101010101010101
+PLAINTEXT = 6cc5defaaf04512f
+
+COUNT = 7
+KEY = 0101010101010101
+PLAINTEXT = 0d9f279ba5d87260
+
+COUNT = 8
+KEY = 0101010101010101
+PLAINTEXT = d9031b0271bd5a0a
+
+COUNT = 9
+KEY = 0101010101010101
+PLAINTEXT = 424250b37c3dd951
+
+COUNT = 10
+KEY = 0101010101010101
+PLAINTEXT = b8061b7ecd9a21e5
+
+COUNT = 11
+KEY = 0101010101010101
+PLAINTEXT = f15d0f286b65bd28
+
+COUNT = 12
+KEY = 0101010101010101
+PLAINTEXT = add0cc8d6e5deba1
+
+COUNT = 13
+KEY = 0101010101010101
+PLAINTEXT = e6d5f82752ad63d1
+
+COUNT = 14
+KEY = 0101010101010101
+PLAINTEXT = ecbfe3bd3f591a5e
+
+COUNT = 15
+KEY = 0101010101010101
+PLAINTEXT = f356834379d165cd
+
+COUNT = 16
+KEY = 0101010101010101
+PLAINTEXT = 2b9f982f20037fa9
+
+COUNT = 17
+KEY = 0101010101010101
+PLAINTEXT = 889de068a16f0be6
+
+COUNT = 18
+KEY = 0101010101010101
+PLAINTEXT = e19e275d846a1298
+
+COUNT = 19
+KEY = 0101010101010101
+PLAINTEXT = 329a8ed523d71aec
+
+COUNT = 20
+KEY = 0101010101010101
+PLAINTEXT = e7fce22557d23c97
+
+COUNT = 21
+KEY = 0101010101010101
+PLAINTEXT = 12a9f5817ff2d65d
+
+COUNT = 22
+KEY = 0101010101010101
+PLAINTEXT = a484c3ad38dc9c19
+
+COUNT = 23
+KEY = 0101010101010101
+PLAINTEXT = fbe00a8a1ef8ad72
+
+COUNT = 24
+KEY = 0101010101010101
+PLAINTEXT = 750d079407521363
+
+COUNT = 25
+KEY = 0101010101010101
+PLAINTEXT = 64feed9c724c2faf
+
+COUNT = 26
+KEY = 0101010101010101
+PLAINTEXT = f02b263b328e2b60
+
+COUNT = 27
+KEY = 0101010101010101
+PLAINTEXT = 9d64555a9a10b852
+
+COUNT = 28
+KEY = 0101010101010101
+PLAINTEXT = d106ff0bed5255d7
+
+COUNT = 29
+KEY = 0101010101010101
+PLAINTEXT = e1652c6b138c64a5
+
+COUNT = 30
+KEY = 0101010101010101
+PLAINTEXT = e428581186ec8f46
+
+COUNT = 31
+KEY = 0101010101010101
+PLAINTEXT = aeb5f5ede22d1a36
+
+COUNT = 32
+KEY = 0101010101010101
+PLAINTEXT = e943d7568aec0c5c
+
+COUNT = 33
+KEY = 0101010101010101
+PLAINTEXT = df98c8276f54b04b
+
+COUNT = 34
+KEY = 0101010101010101
+PLAINTEXT = b160e4680f6c696f
+
+COUNT = 35
+KEY = 0101010101010101
+PLAINTEXT = fa0752b07d9c4ab8
+
+COUNT = 36
+KEY = 0101010101010101
+PLAINTEXT = ca3a2b036dbc8502
+
+COUNT = 37
+KEY = 0101010101010101
+PLAINTEXT = 5e0905517bb59bcf
+
+COUNT = 38
+KEY = 0101010101010101
+PLAINTEXT = 814eeb3b91d90726
+
+COUNT = 39
+KEY = 0101010101010101
+PLAINTEXT = 4d49db1532919c9f
+
+COUNT = 40
+KEY = 0101010101010101
+PLAINTEXT = 25eb5fc3f8cf0621
+
+COUNT = 41
+KEY = 0101010101010101
+PLAINTEXT = ab6a20c0620d1c6f
+
+COUNT = 42
+KEY = 0101010101010101
+PLAINTEXT = 79e90dbc98f92cca
+
+COUNT = 43
+KEY = 0101010101010101
+PLAINTEXT = 866ecedd8072bb0e
+
+COUNT = 44
+KEY = 0101010101010101
+PLAINTEXT = 8b54536f2f3e64a8
+
+COUNT = 45
+KEY = 0101010101010101
+PLAINTEXT = ea51d3975595b86b
+
+COUNT = 46
+KEY = 0101010101010101
+PLAINTEXT = caffc6ac4542de31
+
+COUNT = 47
+KEY = 0101010101010101
+PLAINTEXT = 8dd45a2ddf90796c
+
+COUNT = 48
+KEY = 0101010101010101
+PLAINTEXT = 1029d55e880ec2d0
+
+COUNT = 49
+KEY = 0101010101010101
+PLAINTEXT = 5d86cb23639dbea9
+
+COUNT = 50
+KEY = 0101010101010101
+PLAINTEXT = 1d1ca853ae7c0c5f
+
+COUNT = 51
+KEY = 0101010101010101
+PLAINTEXT = ce332329248f3228
+
+COUNT = 52
+KEY = 0101010101010101
+PLAINTEXT = 8405d1abe24fb942
+
+COUNT = 53
+KEY = 0101010101010101
+PLAINTEXT = e643d78090ca4207
+
+COUNT = 54
+KEY = 0101010101010101
+PLAINTEXT = 48221b9937748a23
+
+COUNT = 55
+KEY = 0101010101010101
+PLAINTEXT = dd7c0bbd61fafd54
+
+COUNT = 56
+KEY = 0101010101010101
+PLAINTEXT = 2fbc291a570db5c4
+
+COUNT = 57
+KEY = 0101010101010101
+PLAINTEXT = e07c30d7e4e26e12
+
+COUNT = 58
+KEY = 0101010101010101
+PLAINTEXT = 0953e2258e8e90a1
+
+COUNT = 59
+KEY = 0101010101010101
+PLAINTEXT = 5b711bc4ceebf2ee
+
+COUNT = 60
+KEY = 0101010101010101
+PLAINTEXT = cc083f1e6d9e85f6
+
+COUNT = 61
+KEY = 0101010101010101
+PLAINTEXT = d2fd8867d50d2dfe
+
+COUNT = 62
+KEY = 0101010101010101
+PLAINTEXT = 06e7ea22ce92708f
+
+COUNT = 63
+KEY = 0101010101010101
+PLAINTEXT = 166b40b44aba4bd6
+
+
+[DECRYPT]
+COUNT = 0
+KEY = 0101010101010101
+CIPHERTEXT = 8000000000000000
+
+COUNT = 1
+KEY = 0101010101010101
+CIPHERTEXT = 4000000000000000
+
+COUNT = 2
+KEY = 0101010101010101
+CIPHERTEXT = 2000000000000000
+
+COUNT = 3
+KEY = 0101010101010101
+CIPHERTEXT = 1000000000000000
+
+COUNT = 4
+KEY = 0101010101010101
+CIPHERTEXT = 0800000000000000
+
+COUNT = 5
+KEY = 0101010101010101
+CIPHERTEXT = 0400000000000000
+
+COUNT = 6
+KEY = 0101010101010101
+CIPHERTEXT = 0200000000000000
+
+COUNT = 7
+KEY = 0101010101010101
+CIPHERTEXT = 0100000000000000
+
+COUNT = 8
+KEY = 0101010101010101
+CIPHERTEXT = 0080000000000000
+
+COUNT = 9
+KEY = 0101010101010101
+CIPHERTEXT = 0040000000000000
+
+COUNT = 10
+KEY = 0101010101010101
+CIPHERTEXT = 0020000000000000
+
+COUNT = 11
+KEY = 0101010101010101
+CIPHERTEXT = 0010000000000000
+
+COUNT = 12
+KEY = 0101010101010101
+CIPHERTEXT = 0008000000000000
+
+COUNT = 13
+KEY = 0101010101010101
+CIPHERTEXT = 0004000000000000
+
+COUNT = 14
+KEY = 0101010101010101
+CIPHERTEXT = 0002000000000000
+
+COUNT = 15
+KEY = 0101010101010101
+CIPHERTEXT = 0001000000000000
+
+COUNT = 16
+KEY = 0101010101010101
+CIPHERTEXT = 0000800000000000
+
+COUNT = 17
+KEY = 0101010101010101
+CIPHERTEXT = 0000400000000000
+
+COUNT = 18
+KEY = 0101010101010101
+CIPHERTEXT = 0000200000000000
+
+COUNT = 19
+KEY = 0101010101010101
+CIPHERTEXT = 0000100000000000
+
+COUNT = 20
+KEY = 0101010101010101
+CIPHERTEXT = 0000080000000000
+
+COUNT = 21
+KEY = 0101010101010101
+CIPHERTEXT = 0000040000000000
+
+COUNT = 22
+KEY = 0101010101010101
+CIPHERTEXT = 0000020000000000
+
+COUNT = 23
+KEY = 0101010101010101
+CIPHERTEXT = 0000010000000000
+
+COUNT = 24
+KEY = 0101010101010101
+CIPHERTEXT = 0000008000000000
+
+COUNT = 25
+KEY = 0101010101010101
+CIPHERTEXT = 0000004000000000
+
+COUNT = 26
+KEY = 0101010101010101
+CIPHERTEXT = 0000002000000000
+
+COUNT = 27
+KEY = 0101010101010101
+CIPHERTEXT = 0000001000000000
+
+COUNT = 28
+KEY = 0101010101010101
+CIPHERTEXT = 0000000800000000
+
+COUNT = 29
+KEY = 0101010101010101
+CIPHERTEXT = 0000000400000000
+
+COUNT = 30
+KEY = 0101010101010101
+CIPHERTEXT = 0000000200000000
+
+COUNT = 31
+KEY = 0101010101010101
+CIPHERTEXT = 0000000100000000
+
+COUNT = 32
+KEY = 0101010101010101
+CIPHERTEXT = 0000000080000000
+
+COUNT = 33
+KEY = 0101010101010101
+CIPHERTEXT = 0000000040000000
+
+COUNT = 34
+KEY = 0101010101010101
+CIPHERTEXT = 0000000020000000
+
+COUNT = 35
+KEY = 0101010101010101
+CIPHERTEXT = 0000000010000000
+
+COUNT = 36
+KEY = 0101010101010101
+CIPHERTEXT = 0000000008000000
+
+COUNT = 37
+KEY = 0101010101010101
+CIPHERTEXT = 0000000004000000
+
+COUNT = 38
+KEY = 0101010101010101
+CIPHERTEXT = 0000000002000000
+
+COUNT = 39
+KEY = 0101010101010101
+CIPHERTEXT = 0000000001000000
+
+COUNT = 40
+KEY = 0101010101010101
+CIPHERTEXT = 0000000000800000
+
+COUNT = 41
+KEY = 0101010101010101
+CIPHERTEXT = 0000000000400000
+
+COUNT = 42
+KEY = 0101010101010101
+CIPHERTEXT = 0000000000200000
+
+COUNT = 43
+KEY = 0101010101010101
+CIPHERTEXT = 0000000000100000
+
+COUNT = 44
+KEY = 0101010101010101
+CIPHERTEXT = 0000000000080000
+
+COUNT = 45
+KEY = 0101010101010101
+CIPHERTEXT = 0000000000040000
+
+COUNT = 46
+KEY = 0101010101010101
+CIPHERTEXT = 0000000000020000
+
+COUNT = 47
+KEY = 0101010101010101
+CIPHERTEXT = 0000000000010000
+
+COUNT = 48
+KEY = 0101010101010101
+CIPHERTEXT = 0000000000008000
+
+COUNT = 49
+KEY = 0101010101010101
+CIPHERTEXT = 0000000000004000
+
+COUNT = 50
+KEY = 0101010101010101
+CIPHERTEXT = 0000000000002000
+
+COUNT = 51
+KEY = 0101010101010101
+CIPHERTEXT = 0000000000001000
+
+COUNT = 52
+KEY = 0101010101010101
+CIPHERTEXT = 0000000000000800
+
+COUNT = 53
+KEY = 0101010101010101
+CIPHERTEXT = 0000000000000400
+
+COUNT = 54
+KEY = 0101010101010101
+CIPHERTEXT = 0000000000000200
+
+COUNT = 55
+KEY = 0101010101010101
+CIPHERTEXT = 0000000000000100
+
+COUNT = 56
+KEY = 0101010101010101
+CIPHERTEXT = 0000000000000080
+
+COUNT = 57
+KEY = 0101010101010101
+CIPHERTEXT = 0000000000000040
+
+COUNT = 58
+KEY = 0101010101010101
+CIPHERTEXT = 0000000000000020
+
+COUNT = 59
+KEY = 0101010101010101
+CIPHERTEXT = 0000000000000010
+
+COUNT = 60
+KEY = 0101010101010101
+CIPHERTEXT = 0000000000000008
+
+COUNT = 61
+KEY = 0101010101010101
+CIPHERTEXT = 0000000000000004
+
+COUNT = 62
+KEY = 0101010101010101
+CIPHERTEXT = 0000000000000002
+
+COUNT = 63
+KEY = 0101010101010101
+CIPHERTEXT = 0000000000000001
diff --git a/fips/testvectors/des/req/ECBpermop.req b/fips/testvectors/des/req/ECBpermop.req
new file mode 100644 (file)
index 0000000..04c1c93
--- /dev/null
@@ -0,0 +1,264 @@
+# CAVS 2.0
+# Config Info for : "OpenSSL_DES"
+# PERMUTATION OPERATION - KAT for ECB
+# State : Encrypt and Decrypt
+# Tue Jun 24 03:11:51 PM
+
+[ENCRYPT]
+COUNT = 0
+KEY = 1046913489980131
+PLAINTEXT = 0000000000000000
+
+COUNT = 1
+KEY = 1007103489988020
+PLAINTEXT = 0000000000000000
+
+COUNT = 2
+KEY = 10071034c8980120
+PLAINTEXT = 0000000000000000
+
+COUNT = 3
+KEY = 1046103489988020
+PLAINTEXT = 0000000000000000
+
+COUNT = 4
+KEY = 1086911519190101
+PLAINTEXT = 0000000000000000
+
+COUNT = 5
+KEY = 1086911519580101
+PLAINTEXT = 0000000000000000
+
+COUNT = 6
+KEY = 5107b01519580101
+PLAINTEXT = 0000000000000000
+
+COUNT = 7
+KEY = 1007b01519190101
+PLAINTEXT = 0000000000000000
+
+COUNT = 8
+KEY = 3107915498080101
+PLAINTEXT = 0000000000000000
+
+COUNT = 9
+KEY = 3107919498080101
+PLAINTEXT = 0000000000000000
+
+COUNT = 10
+KEY = 10079115b9080140
+PLAINTEXT = 0000000000000000
+
+COUNT = 11
+KEY = 3107911598080140
+PLAINTEXT = 0000000000000000
+
+COUNT = 12
+KEY = 1007d01589980101
+PLAINTEXT = 0000000000000000
+
+COUNT = 13
+KEY = 9107911589980101
+PLAINTEXT = 0000000000000000
+
+COUNT = 14
+KEY = 9107d01589190101
+PLAINTEXT = 0000000000000000
+
+COUNT = 15
+KEY = 1007d01598980120
+PLAINTEXT = 0000000000000000
+
+COUNT = 16
+KEY = 1007940498190101
+PLAINTEXT = 0000000000000000
+
+COUNT = 17
+KEY = 0107910491190401
+PLAINTEXT = 0000000000000000
+
+COUNT = 18
+KEY = 0107910491190101
+PLAINTEXT = 0000000000000000
+
+COUNT = 19
+KEY = 0107940491190401
+PLAINTEXT = 0000000000000000
+
+COUNT = 20
+KEY = 19079210981a0101
+PLAINTEXT = 0000000000000000
+
+COUNT = 21
+KEY = 1007911998190801
+PLAINTEXT = 0000000000000000
+
+COUNT = 22
+KEY = 10079119981a0801
+PLAINTEXT = 0000000000000000
+
+COUNT = 23
+KEY = 1007921098190101
+PLAINTEXT = 0000000000000000
+
+COUNT = 24
+KEY = 100791159819010b
+PLAINTEXT = 0000000000000000
+
+COUNT = 25
+KEY = 1004801598190101
+PLAINTEXT = 0000000000000000
+
+COUNT = 26
+KEY = 1004801598190102
+PLAINTEXT = 0000000000000000
+
+COUNT = 27
+KEY = 1004801598190108
+PLAINTEXT = 0000000000000000
+
+COUNT = 28
+KEY = 1002911598100104
+PLAINTEXT = 0000000000000000
+
+COUNT = 29
+KEY = 1002911598190104
+PLAINTEXT = 0000000000000000
+
+COUNT = 30
+KEY = 1002911598100201
+PLAINTEXT = 0000000000000000
+
+COUNT = 31
+KEY = 1002911698100101
+PLAINTEXT = 0000000000000000
+
+
+[DECRYPT]
+COUNT = 0
+KEY = 1046913489980131
+CIPHERTEXT = 88d55e54f54c97b4
+
+COUNT = 1
+KEY = 1007103489988020
+CIPHERTEXT = 0c0cc00c83ea48fd
+
+COUNT = 2
+KEY = 10071034c8980120
+CIPHERTEXT = 83bc8ef3a6570183
+
+COUNT = 3
+KEY = 1046103489988020
+CIPHERTEXT = df725dcad94ea2e9
+
+COUNT = 4
+KEY = 1086911519190101
+CIPHERTEXT = e652b53b550be8b0
+
+COUNT = 5
+KEY = 1086911519580101
+CIPHERTEXT = af527120c485cbb0
+
+COUNT = 6
+KEY = 5107b01519580101
+CIPHERTEXT = 0f04ce393db926d5
+
+COUNT = 7
+KEY = 1007b01519190101
+CIPHERTEXT = c9f00ffc74079067
+
+COUNT = 8
+KEY = 3107915498080101
+CIPHERTEXT = 7cfd82a593252b4e
+
+COUNT = 9
+KEY = 3107919498080101
+CIPHERTEXT = cb49a2f9e91363e3
+
+COUNT = 10
+KEY = 10079115b9080140
+CIPHERTEXT = 00b588be70d23f56
+
+COUNT = 11
+KEY = 3107911598080140
+CIPHERTEXT = 406a9a6ab43399ae
+
+COUNT = 12
+KEY = 1007d01589980101
+CIPHERTEXT = 6cb773611dca9ada
+
+COUNT = 13
+KEY = 9107911589980101
+CIPHERTEXT = 67fd21c17dbb5d70
+
+COUNT = 14
+KEY = 9107d01589190101
+CIPHERTEXT = 9592cb4110430787
+
+COUNT = 15
+KEY = 1007d01598980120
+CIPHERTEXT = a6b7ff68a318ddd3
+
+COUNT = 16
+KEY = 1007940498190101
+CIPHERTEXT = 4d102196c914ca16
+
+COUNT = 17
+KEY = 0107910491190401
+CIPHERTEXT = 2dfa9f4573594965
+
+COUNT = 18
+KEY = 0107910491190101
+CIPHERTEXT = b46604816c0e0774
+
+COUNT = 19
+KEY = 0107940491190401
+CIPHERTEXT = 6e7e6221a4f34e87
+
+COUNT = 20
+KEY = 19079210981a0101
+CIPHERTEXT = aa85e74643233199
+
+COUNT = 21
+KEY = 1007911998190801
+CIPHERTEXT = 2e5a19db4d1962d6
+
+COUNT = 22
+KEY = 10079119981a0801
+CIPHERTEXT = 23a866a809d30894
+
+COUNT = 23
+KEY = 1007921098190101
+CIPHERTEXT = d812d961f017d320
+
+COUNT = 24
+KEY = 100791159819010b
+CIPHERTEXT = 055605816e58608f
+
+COUNT = 25
+KEY = 1004801598190101
+CIPHERTEXT = abd88e8b1b7716f1
+
+COUNT = 26
+KEY = 1004801598190102
+CIPHERTEXT = 537ac95be69da1e1
+
+COUNT = 27
+KEY = 1004801598190108
+CIPHERTEXT = aed0f6ae3c25cdd8
+
+COUNT = 28
+KEY = 1002911598100104
+CIPHERTEXT = b3e35a5ee53e7b8d
+
+COUNT = 29
+KEY = 1002911598190104
+CIPHERTEXT = 61c79c71921a2ef8
+
+COUNT = 30
+KEY = 1002911598100201
+CIPHERTEXT = e2f5728f0995013c
+
+COUNT = 31
+KEY = 1002911698100101
+CIPHERTEXT = 1aeac39a61f0a464
diff --git a/fips/testvectors/des/req/ECBsubtab.req b/fips/testvectors/des/req/ECBsubtab.req
new file mode 100644 (file)
index 0000000..30ea64c
--- /dev/null
@@ -0,0 +1,160 @@
+# CAVS 2.0
+# Config Info for : "OpenSSL_DES"
+# SUBSTITUTION TABLE - KAT for ECB
+# State : Encrypt and Decrypt
+# Tue Jun 24 03:11:51 PM
+
+[ENCRYPT]
+COUNT = 0
+KEY = 7ca110454a1a6e57
+PLAINTEXT = 01a1d6d039776742
+
+COUNT = 1
+KEY = 0131d9619dc1376e
+PLAINTEXT = 5cd54ca83def57da
+
+COUNT = 2
+KEY = 07a1133e4a0b2686
+PLAINTEXT = 0248d43806f67172
+
+COUNT = 3
+KEY = 3849674c2602319e
+PLAINTEXT = 51454b582ddf440a
+
+COUNT = 4
+KEY = 04b915ba43feb5b6
+PLAINTEXT = 42fd443059577fa2
+
+COUNT = 5
+KEY = 0113b970fd34f2ce
+PLAINTEXT = 059b5e0851cf143a
+
+COUNT = 6
+KEY = 0170f175468fb5e6
+PLAINTEXT = 0756d8e0774761d2
+
+COUNT = 7
+KEY = 43297fad38e373fe
+PLAINTEXT = 762514b829bf486a
+
+COUNT = 8
+KEY = 07a7137045da2a16
+PLAINTEXT = 3bdd119049372802
+
+COUNT = 9
+KEY = 04689104c2fd3b2f
+PLAINTEXT = 26955f6835af609a
+
+COUNT = 10
+KEY = 37d06bb516cb7546
+PLAINTEXT = 164d5e404f275232
+
+COUNT = 11
+KEY = 1f08260d1ac2465e
+PLAINTEXT = 6b056e18759f5cca
+
+COUNT = 12
+KEY = 584023641aba6176
+PLAINTEXT = 004bd6ef09176062
+
+COUNT = 13
+KEY = 025816164629b007
+PLAINTEXT = 480d39006ee762f2
+
+COUNT = 14
+KEY = 49793ebc79b3258f
+PLAINTEXT = 437540c8698f3cfa
+
+COUNT = 15
+KEY = 4fb05e1515ab73a7
+PLAINTEXT = 072d43a077075292
+
+COUNT = 16
+KEY = 49e95d6d4ca229bf
+PLAINTEXT = 02fe55778117f12a
+
+COUNT = 17
+KEY = 018310dc409b26d6
+PLAINTEXT = 1d9d5c5018f728c2
+
+COUNT = 18
+KEY = 1c587f1c13924fef
+PLAINTEXT = 305532286d6f295a
+
+
+[DECRYPT]
+COUNT = 0
+KEY = 7ca110454a1a6e57
+CIPHERTEXT = 690f5b0d9a26939b
+
+COUNT = 1
+KEY = 0131d9619dc1376e
+CIPHERTEXT = 7a389d10354bd271
+
+COUNT = 2
+KEY = 07a1133e4a0b2686
+CIPHERTEXT = 868ebb51cab4599a
+
+COUNT = 3
+KEY = 3849674c2602319e
+CIPHERTEXT = 7178876e01f19b2a
+
+COUNT = 4
+KEY = 04b915ba43feb5b6
+CIPHERTEXT = af37fb421f8c4095
+
+COUNT = 5
+KEY = 0113b970fd34f2ce
+CIPHERTEXT = 86a560f10ec6d85b
+
+COUNT = 6
+KEY = 0170f175468fb5e6
+CIPHERTEXT = 0cd3da020021dc09
+
+COUNT = 7
+KEY = 43297fad38e373fe
+CIPHERTEXT = ea676b2cb7db2b7a
+
+COUNT = 8
+KEY = 07a7137045da2a16
+CIPHERTEXT = dfd64a815caf1a0f
+
+COUNT = 9
+KEY = 04689104c2fd3b2f
+CIPHERTEXT = 5c513c9c4886c088
+
+COUNT = 10
+KEY = 37d06bb516cb7546
+CIPHERTEXT = 0a2aeeae3ff4ab77
+
+COUNT = 11
+KEY = 1f08260d1ac2465e
+CIPHERTEXT = ef1bf03e5dfa575a
+
+COUNT = 12
+KEY = 584023641aba6176
+CIPHERTEXT = 88bf0db6d70dee56
+
+COUNT = 13
+KEY = 025816164629b007
+CIPHERTEXT = a1f9915541020b56
+
+COUNT = 14
+KEY = 49793ebc79b3258f
+CIPHERTEXT = 6fbf1cafcffd0556
+
+COUNT = 15
+KEY = 4fb05e1515ab73a7
+CIPHERTEXT = 2f22e49bab7ca1ac
+
+COUNT = 16
+KEY = 49e95d6d4ca229bf
+CIPHERTEXT = 5a6b612cc26cce4a
+
+COUNT = 17
+KEY = 018310dc409b26d6
+CIPHERTEXT = 5f4c038ed12b2e41
+
+COUNT = 18
+KEY = 1c587f1c13924fef
+CIPHERTEXT = 63fac0d034d9f793
diff --git a/fips/testvectors/des/req/ECBvarkey.req b/fips/testvectors/des/req/ECBvarkey.req
new file mode 100644 (file)
index 0000000..a256cda
--- /dev/null
@@ -0,0 +1,456 @@
+# CAVS 2.0
+# Config Info for : "OpenSSL_DES"
+# VARIABLE KEY - KAT for ECB
+# State : Encrypt and Decrypt
+# Tue Jun 24 03:11:51 PM
+
+[ENCRYPT]
+COUNT = 0
+KEY = 8001010101010101
+PLAINTEXT = 0000000000000000
+
+COUNT = 1
+KEY = 4001010101010101
+PLAINTEXT = 0000000000000000
+
+COUNT = 2
+KEY = 2001010101010101
+PLAINTEXT = 0000000000000000
+
+COUNT = 3
+KEY = 1001010101010101
+PLAINTEXT = 0000000000000000
+
+COUNT = 4
+KEY = 0801010101010101
+PLAINTEXT = 0000000000000000
+
+COUNT = 5
+KEY = 0401010101010101
+PLAINTEXT = 0000000000000000
+
+COUNT = 6
+KEY = 0201010101010101
+PLAINTEXT = 0000000000000000
+
+COUNT = 7
+KEY = 0180010101010101
+PLAINTEXT = 0000000000000000
+
+COUNT = 8
+KEY = 0140010101010101
+PLAINTEXT = 0000000000000000
+
+COUNT = 9
+KEY = 0120010101010101
+PLAINTEXT = 0000000000000000
+
+COUNT = 10
+KEY = 0110010101010101
+PLAINTEXT = 0000000000000000
+
+COUNT = 11
+KEY = 0108010101010101
+PLAINTEXT = 0000000000000000
+
+COUNT = 12
+KEY = 0104010101010101
+PLAINTEXT = 0000000000000000
+
+COUNT = 13
+KEY = 0102010101010101
+PLAINTEXT = 0000000000000000
+
+COUNT = 14
+KEY = 0101800101010101
+PLAINTEXT = 0000000000000000
+
+COUNT = 15
+KEY = 0101400101010101
+PLAINTEXT = 0000000000000000
+
+COUNT = 16
+KEY = 0101200101010101
+PLAINTEXT = 0000000000000000
+
+COUNT = 17
+KEY = 0101100101010101
+PLAINTEXT = 0000000000000000
+
+COUNT = 18
+KEY = 0101080101010101
+PLAINTEXT = 0000000000000000
+
+COUNT = 19
+KEY = 0101040101010101
+PLAINTEXT = 0000000000000000
+
+COUNT = 20
+KEY = 0101020101010101
+PLAINTEXT = 0000000000000000
+
+COUNT = 21
+KEY = 0101018001010101
+PLAINTEXT = 0000000000000000
+
+COUNT = 22
+KEY = 0101014001010101
+PLAINTEXT = 0000000000000000
+
+COUNT = 23
+KEY = 0101012001010101
+PLAINTEXT = 0000000000000000
+
+COUNT = 24
+KEY = 0101011001010101
+PLAINTEXT = 0000000000000000
+
+COUNT = 25
+KEY = 0101010801010101
+PLAINTEXT = 0000000000000000
+
+COUNT = 26
+KEY = 0101010401010101
+PLAINTEXT = 0000000000000000
+
+COUNT = 27
+KEY = 0101010201010101
+PLAINTEXT = 0000000000000000
+
+COUNT = 28
+KEY = 0101010180010101
+PLAINTEXT = 0000000000000000
+
+COUNT = 29
+KEY = 0101010140010101
+PLAINTEXT = 0000000000000000
+
+COUNT = 30
+KEY = 0101010120010101
+PLAINTEXT = 0000000000000000
+
+COUNT = 31
+KEY = 0101010110010101
+PLAINTEXT = 0000000000000000
+
+COUNT = 32
+KEY = 0101010108010101
+PLAINTEXT = 0000000000000000
+
+COUNT = 33
+KEY = 0101010104010101
+PLAINTEXT = 0000000000000000
+
+COUNT = 34
+KEY = 0101010102010101
+PLAINTEXT = 0000000000000000
+
+COUNT = 35
+KEY = 0101010101800101
+PLAINTEXT = 0000000000000000
+
+COUNT = 36
+KEY = 0101010101400101
+PLAINTEXT = 0000000000000000
+
+COUNT = 37
+KEY = 0101010101200101
+PLAINTEXT = 0000000000000000
+
+COUNT = 38
+KEY = 0101010101100101
+PLAINTEXT = 0000000000000000
+
+COUNT = 39
+KEY = 0101010101080101
+PLAINTEXT = 0000000000000000
+
+COUNT = 40
+KEY = 0101010101040101
+PLAINTEXT = 0000000000000000
+
+COUNT = 41
+KEY = 0101010101020101
+PLAINTEXT = 0000000000000000
+
+COUNT = 42
+KEY = 0101010101018001
+PLAINTEXT = 0000000000000000
+
+COUNT = 43
+KEY = 0101010101014001
+PLAINTEXT = 0000000000000000
+
+COUNT = 44
+KEY = 0101010101012001
+PLAINTEXT = 0000000000000000
+
+COUNT = 45
+KEY = 0101010101011001
+PLAINTEXT = 0000000000000000
+
+COUNT = 46
+KEY = 0101010101010801
+PLAINTEXT = 0000000000000000
+
+COUNT = 47
+KEY = 0101010101010401
+PLAINTEXT = 0000000000000000
+
+COUNT = 48
+KEY = 0101010101010201
+PLAINTEXT = 0000000000000000
+
+COUNT = 49
+KEY = 0101010101010180
+PLAINTEXT = 0000000000000000
+
+COUNT = 50
+KEY = 0101010101010140
+PLAINTEXT = 0000000000000000
+
+COUNT = 51
+KEY = 0101010101010120
+PLAINTEXT = 0000000000000000
+
+COUNT = 52
+KEY = 0101010101010110
+PLAINTEXT = 0000000000000000
+
+COUNT = 53
+KEY = 0101010101010108
+PLAINTEXT = 0000000000000000
+
+COUNT = 54
+KEY = 0101010101010104
+PLAINTEXT = 0000000000000000
+
+COUNT = 55
+KEY = 0101010101010102
+PLAINTEXT = 0000000000000000
+
+
+[DECRYPT]
+COUNT = 0
+KEY = 8001010101010101
+CIPHERTEXT = 95a8d72813daa94d
+
+COUNT = 1
+KEY = 4001010101010101
+CIPHERTEXT = 0eec1487dd8c26d5
+
+COUNT = 2
+KEY = 2001010101010101
+CIPHERTEXT = 7ad16ffb79c45926
+
+COUNT = 3
+KEY = 1001010101010101
+CIPHERTEXT = d3746294ca6a6cf3
+
+COUNT = 4
+KEY = 0801010101010101
+CIPHERTEXT = 809f5f873c1fd761
+
+COUNT = 5
+KEY = 0401010101010101
+CIPHERTEXT = c02faffec989d1fc
+
+COUNT = 6
+KEY = 0201010101010101
+CIPHERTEXT = 4615aa1d33e72f10
+
+COUNT = 7
+KEY = 0180010101010101
+CIPHERTEXT = 2055123350c00858
+
+COUNT = 8
+KEY = 0140010101010101
+CIPHERTEXT = df3b99d6577397c8
+
+COUNT = 9
+KEY = 0120010101010101
+CIPHERTEXT = 31fe17369b5288c9
+
+COUNT = 10
+KEY = 0110010101010101
+CIPHERTEXT = dfdd3cc64dae1642
+
+COUNT = 11
+KEY = 0108010101010101
+CIPHERTEXT = 178c83ce2b399d94
+
+COUNT = 12
+KEY = 0104010101010101
+CIPHERTEXT = 50f636324a9b7f80
+
+COUNT = 13
+KEY = 0102010101010101
+CIPHERTEXT = a8468ee3bc18f06d
+
+COUNT = 14
+KEY = 0101800101010101
+CIPHERTEXT = a2dc9e92fd3cde92
+
+COUNT = 15
+KEY = 0101400101010101
+CIPHERTEXT = cac09f797d031287
+
+COUNT = 16
+KEY = 0101200101010101
+CIPHERTEXT = 90ba680b22aeb525
+
+COUNT = 17
+KEY = 0101100101010101
+CIPHERTEXT = ce7a24f350e280b6
+
+COUNT = 18
+KEY = 0101080101010101
+CIPHERTEXT = 882bff0aa01a0b87
+
+COUNT = 19
+KEY = 0101040101010101
+CIPHERTEXT = 25610288924511c2
+
+COUNT = 20
+KEY = 0101020101010101
+CIPHERTEXT = c71516c29c75d170
+
+COUNT = 21
+KEY = 0101018001010101
+CIPHERTEXT = 5199c29a52c9f059
+
+COUNT = 22
+KEY = 0101014001010101
+CIPHERTEXT = c22f0a294a71f29f
+
+COUNT = 23
+KEY = 0101012001010101
+CIPHERTEXT = ee371483714c02ea
+
+COUNT = 24
+KEY = 0101011001010101
+CIPHERTEXT = a81fbd448f9e522f
+
+COUNT = 25
+KEY = 0101010801010101
+CIPHERTEXT = 4f644c92e192dfed
+
+COUNT = 26
+KEY = 0101010401010101
+CIPHERTEXT = 1afa9a66a6df92ae
+
+COUNT = 27
+KEY = 0101010201010101
+CIPHERTEXT = b3c1cc715cb879d8
+
+COUNT = 28
+KEY = 0101010180010101
+CIPHERTEXT = 19d032e64ab0bd8b
+
+COUNT = 29
+KEY = 0101010140010101
+CIPHERTEXT = 3cfaa7a7dc8720dc
+
+COUNT = 30
+KEY = 0101010120010101
+CIPHERTEXT = b7265f7f447ac6f3
+
+COUNT = 31
+KEY = 0101010110010101
+CIPHERTEXT = 9db73b3c0d163f54
+
+COUNT = 32
+KEY = 0101010108010101
+CIPHERTEXT = 8181b65babf4a975
+
+COUNT = 33
+KEY = 0101010104010101
+CIPHERTEXT = 93c9b64042eaa240
+
+COUNT = 34
+KEY = 0101010102010101
+CIPHERTEXT = 5570530829705592
+
+COUNT = 35
+KEY = 0101010101800101
+CIPHERTEXT = 8638809e878787a0
+
+COUNT = 36
+KEY = 0101010101400101
+CIPHERTEXT = 41b9a79af79ac208
+
+COUNT = 37
+KEY = 0101010101200101
+CIPHERTEXT = 7a9be42f2009a892
+
+COUNT = 38
+KEY = 0101010101100101
+CIPHERTEXT = 29038d56ba6d2745
+
+COUNT = 39
+KEY = 0101010101080101
+CIPHERTEXT = 5495c6abf1e5df51
+
+COUNT = 40
+KEY = 0101010101040101
+CIPHERTEXT = ae13dbd561488933
+
+COUNT = 41
+KEY = 0101010101020101
+CIPHERTEXT = 024d1ffa8904e389
+
+COUNT = 42
+KEY = 0101010101018001
+CIPHERTEXT = d1399712f99bf02e
+
+COUNT = 43
+KEY = 0101010101014001
+CIPHERTEXT = 14c1d7c1cffec79e
+
+COUNT = 44
+KEY = 0101010101012001
+CIPHERTEXT = 1de5279dae3bed6f
+
+COUNT = 45
+KEY = 0101010101011001
+CIPHERTEXT = e941a33f85501303
+
+COUNT = 46
+KEY = 0101010101010801
+CIPHERTEXT = da99dbbc9a03f379
+
+COUNT = 47
+KEY = 0101010101010401
+CIPHERTEXT = b7fc92f91d8e92e9
+
+COUNT = 48
+KEY = 0101010101010201
+CIPHERTEXT = ae8e5caa3ca04e85
+
+COUNT = 49
+KEY = 0101010101010180
+CIPHERTEXT = 9cc62df43b6eed74
+
+COUNT = 50
+KEY = 0101010101010140
+CIPHERTEXT = d863dbb5c59a91a0
+
+COUNT = 51
+KEY = 0101010101010120
+CIPHERTEXT = a1ab2190545b91d7
+
+COUNT = 52
+KEY = 0101010101010110
+CIPHERTEXT = 0875041e64c570f7
+
+COUNT = 53
+KEY = 0101010101010108
+CIPHERTEXT = 5a594528bebef1cc
+
+COUNT = 54
+KEY = 0101010101010104
+CIPHERTEXT = fcdb3291de21f0c0
+
+COUNT = 55
+KEY = 0101010101010102
+CIPHERTEXT = 869efd7f9f265a09
diff --git a/fips/testvectors/des/req/ECBvartext.req b/fips/testvectors/des/req/ECBvartext.req
new file mode 100644 (file)
index 0000000..4f68d3b
--- /dev/null
@@ -0,0 +1,520 @@
+# CAVS 2.0
+# Config Info for : "OpenSSL_DES"
+# VARIABLE PLAINTEXT/CIPHERTEXT - KAT for ECB
+# State : Encrypt and Decrypt
+# Tue Jun 24 03:11:51 PM
+
+[ENCRYPT]
+COUNT = 0
+KEY = 0101010101010101
+PLAINTEXT = 8000000000000000
+
+COUNT = 1
+KEY = 0101010101010101
+PLAINTEXT = 4000000000000000
+
+COUNT = 2
+KEY = 0101010101010101
+PLAINTEXT = 2000000000000000
+
+COUNT = 3
+KEY = 0101010101010101
+PLAINTEXT = 1000000000000000
+
+COUNT = 4
+KEY = 0101010101010101
+PLAINTEXT = 0800000000000000
+
+COUNT = 5
+KEY = 0101010101010101
+PLAINTEXT = 0400000000000000
+
+COUNT = 6
+KEY = 0101010101010101
+PLAINTEXT = 0200000000000000
+
+COUNT = 7
+KEY = 0101010101010101
+PLAINTEXT = 0100000000000000
+
+COUNT = 8
+KEY = 0101010101010101
+PLAINTEXT = 0080000000000000
+
+COUNT = 9
+KEY = 0101010101010101
+PLAINTEXT = 0040000000000000
+
+COUNT = 10
+KEY = 0101010101010101
+PLAINTEXT = 0020000000000000
+
+COUNT = 11
+KEY = 0101010101010101
+PLAINTEXT = 0010000000000000
+
+COUNT = 12
+KEY = 0101010101010101
+PLAINTEXT = 0008000000000000
+
+COUNT = 13
+KEY = 0101010101010101
+PLAINTEXT = 0004000000000000
+
+COUNT = 14
+KEY = 0101010101010101
+PLAINTEXT = 0002000000000000
+
+COUNT = 15
+KEY = 0101010101010101
+PLAINTEXT = 0001000000000000
+
+COUNT = 16
+KEY = 0101010101010101
+PLAINTEXT = 0000800000000000
+
+COUNT = 17
+KEY = 0101010101010101
+PLAINTEXT = 0000400000000000
+
+COUNT = 18
+KEY = 0101010101010101
+PLAINTEXT = 0000200000000000
+
+COUNT = 19
+KEY = 0101010101010101
+PLAINTEXT = 0000100000000000
+
+COUNT = 20
+KEY = 0101010101010101
+PLAINTEXT = 0000080000000000
+
+COUNT = 21
+KEY = 0101010101010101
+PLAINTEXT = 0000040000000000
+
+COUNT = 22
+KEY = 0101010101010101
+PLAINTEXT = 0000020000000000
+
+COUNT = 23
+KEY = 0101010101010101
+PLAINTEXT = 0000010000000000
+
+COUNT = 24
+KEY = 0101010101010101
+PLAINTEXT = 0000008000000000
+
+COUNT = 25
+KEY = 0101010101010101
+PLAINTEXT = 0000004000000000
+
+COUNT = 26
+KEY = 0101010101010101
+PLAINTEXT = 0000002000000000
+
+COUNT = 27
+KEY = 0101010101010101
+PLAINTEXT = 0000001000000000
+
+COUNT = 28
+KEY = 0101010101010101
+PLAINTEXT = 0000000800000000
+
+COUNT = 29
+KEY = 0101010101010101
+PLAINTEXT = 0000000400000000
+
+COUNT = 30
+KEY = 0101010101010101
+PLAINTEXT = 0000000200000000
+
+COUNT = 31
+KEY = 0101010101010101
+PLAINTEXT = 0000000100000000
+
+COUNT = 32
+KEY = 0101010101010101
+PLAINTEXT = 0000000080000000
+
+COUNT = 33
+KEY = 0101010101010101
+PLAINTEXT = 0000000040000000
+
+COUNT = 34
+KEY = 0101010101010101
+PLAINTEXT = 0000000020000000
+
+COUNT = 35
+KEY = 0101010101010101
+PLAINTEXT = 0000000010000000
+
+COUNT = 36
+KEY = 0101010101010101
+PLAINTEXT = 0000000008000000
+
+COUNT = 37
+KEY = 0101010101010101
+PLAINTEXT = 0000000004000000
+
+COUNT = 38
+KEY = 0101010101010101
+PLAINTEXT = 0000000002000000
+
+COUNT = 39
+KEY = 0101010101010101
+PLAINTEXT = 0000000001000000
+
+COUNT = 40
+KEY = 0101010101010101
+PLAINTEXT = 0000000000800000
+
+COUNT = 41
+KEY = 0101010101010101
+PLAINTEXT = 0000000000400000
+
+COUNT = 42
+KEY = 0101010101010101
+PLAINTEXT = 0000000000200000
+
+COUNT = 43
+KEY = 0101010101010101
+PLAINTEXT = 0000000000100000
+
+COUNT = 44
+KEY = 0101010101010101
+PLAINTEXT = 0000000000080000
+
+COUNT = 45
+KEY = 0101010101010101
+PLAINTEXT = 0000000000040000
+
+COUNT = 46
+KEY = 0101010101010101
+PLAINTEXT = 0000000000020000
+
+COUNT = 47
+KEY = 0101010101010101
+PLAINTEXT = 0000000000010000
+
+COUNT = 48
+KEY = 0101010101010101
+PLAINTEXT = 0000000000008000
+
+COUNT = 49
+KEY = 0101010101010101
+PLAINTEXT = 0000000000004000
+
+COUNT = 50
+KEY = 0101010101010101
+PLAINTEXT = 0000000000002000
+
+COUNT = 51
+KEY = 0101010101010101
+PLAINTEXT = 0000000000001000
+
+COUNT = 52
+KEY = 0101010101010101
+PLAINTEXT = 0000000000000800
+
+COUNT = 53
+KEY = 0101010101010101
+PLAINTEXT = 0000000000000400
+
+COUNT = 54
+KEY = 0101010101010101
+PLAINTEXT = 0000000000000200
+
+COUNT = 55
+KEY = 0101010101010101
+PLAINTEXT = 0000000000000100
+
+COUNT = 56
+KEY = 0101010101010101
+PLAINTEXT = 0000000000000080
+
+COUNT = 57
+KEY = 0101010101010101
+PLAINTEXT = 0000000000000040
+
+COUNT = 58
+KEY = 0101010101010101
+PLAINTEXT = 0000000000000020
+
+COUNT = 59
+KEY = 0101010101010101
+PLAINTEXT = 0000000000000010
+
+COUNT = 60
+KEY = 0101010101010101
+PLAINTEXT = 0000000000000008
+
+COUNT = 61
+KEY = 0101010101010101
+PLAINTEXT = 0000000000000004
+
+COUNT = 62
+KEY = 0101010101010101
+PLAINTEXT = 0000000000000002
+
+COUNT = 63
+KEY = 0101010101010101
+PLAINTEXT = 0000000000000001
+
+
+[DECRYPT]
+COUNT = 0
+KEY = 0101010101010101
+CIPHERTEXT = 95f8a5e5dd31d900
+
+COUNT = 1
+KEY = 0101010101010101
+CIPHERTEXT = dd7f121ca5015619
+
+COUNT = 2
+KEY = 0101010101010101
+CIPHERTEXT = 2e8653104f3834ea
+
+COUNT = 3
+KEY = 0101010101010101
+CIPHERTEXT = 4bd388ff6cd81d4f
+
+COUNT = 4
+KEY = 0101010101010101
+CIPHERTEXT = 20b9e767b2fb1456
+
+COUNT = 5
+KEY = 0101010101010101
+CIPHERTEXT = 55579380d77138ef
+
+COUNT = 6
+KEY = 0101010101010101
+CIPHERTEXT = 6cc5defaaf04512f
+
+COUNT = 7
+KEY = 0101010101010101
+CIPHERTEXT = 0d9f279ba5d87260
+
+COUNT = 8
+KEY = 0101010101010101
+CIPHERTEXT = d9031b0271bd5a0a
+
+COUNT = 9
+KEY = 0101010101010101
+CIPHERTEXT = 424250b37c3dd951
+
+COUNT = 10
+KEY = 0101010101010101
+CIPHERTEXT = b8061b7ecd9a21e5
+
+COUNT = 11
+KEY = 0101010101010101
+CIPHERTEXT = f15d0f286b65bd28
+
+COUNT = 12
+KEY = 0101010101010101
+CIPHERTEXT = add0cc8d6e5deba1
+
+COUNT = 13
+KEY = 0101010101010101
+CIPHERTEXT = e6d5f82752ad63d1
+
+COUNT = 14
+KEY = 0101010101010101
+CIPHERTEXT = ecbfe3bd3f591a5e
+
+COUNT = 15
+KEY = 0101010101010101
+CIPHERTEXT = f356834379d165cd
+
+COUNT = 16
+KEY = 0101010101010101
+CIPHERTEXT = 2b9f982f20037fa9
+
+COUNT = 17
+KEY = 0101010101010101
+CIPHERTEXT = 889de068a16f0be6
+
+COUNT = 18
+KEY = 0101010101010101
+CIPHERTEXT = e19e275d846a1298
+
+COUNT = 19
+KEY = 0101010101010101
+CIPHERTEXT = 329a8ed523d71aec
+
+COUNT = 20
+KEY = 0101010101010101
+CIPHERTEXT = e7fce22557d23c97
+
+COUNT = 21
+KEY = 0101010101010101
+CIPHERTEXT = 12a9f5817ff2d65d
+
+COUNT = 22
+KEY = 0101010101010101
+CIPHERTEXT = a484c3ad38dc9c19
+
+COUNT = 23
+KEY = 0101010101010101
+CIPHERTEXT = fbe00a8a1ef8ad72
+
+COUNT = 24
+KEY = 0101010101010101
+CIPHERTEXT = 750d079407521363
+
+COUNT = 25
+KEY = 0101010101010101
+CIPHERTEXT = 64feed9c724c2faf
+
+COUNT = 26
+KEY = 0101010101010101
+CIPHERTEXT = f02b263b328e2b60
+
+COUNT = 27
+KEY = 0101010101010101
+CIPHERTEXT = 9d64555a9a10b852
+
+COUNT = 28
+KEY = 0101010101010101
+CIPHERTEXT = d106ff0bed5255d7
+
+COUNT = 29
+KEY = 0101010101010101
+CIPHERTEXT = e1652c6b138c64a5
+
+COUNT = 30
+KEY = 0101010101010101
+CIPHERTEXT = e428581186ec8f46
+
+COUNT = 31
+KEY = 0101010101010101
+CIPHERTEXT = aeb5f5ede22d1a36
+
+COUNT = 32
+KEY = 0101010101010101
+CIPHERTEXT = e943d7568aec0c5c
+
+COUNT = 33
+KEY = 0101010101010101
+CIPHERTEXT = df98c8276f54b04b
+
+COUNT = 34
+KEY = 0101010101010101
+CIPHERTEXT = b160e4680f6c696f
+
+COUNT = 35
+KEY = 0101010101010101
+CIPHERTEXT = fa0752b07d9c4ab8
+
+COUNT = 36
+KEY = 0101010101010101
+CIPHERTEXT = ca3a2b036dbc8502
+
+COUNT = 37
+KEY = 0101010101010101
+CIPHERTEXT = 5e0905517bb59bcf
+
+COUNT = 38
+KEY = 0101010101010101
+CIPHERTEXT = 814eeb3b91d90726
+
+COUNT = 39
+KEY = 0101010101010101
+CIPHERTEXT = 4d49db1532919c9f
+
+COUNT = 40
+KEY = 0101010101010101
+CIPHERTEXT = 25eb5fc3f8cf0621
+
+COUNT = 41
+KEY = 0101010101010101
+CIPHERTEXT = ab6a20c0620d1c6f
+
+COUNT = 42
+KEY = 0101010101010101
+CIPHERTEXT = 79e90dbc98f92cca
+
+COUNT = 43
+KEY = 0101010101010101
+CIPHERTEXT = 866ecedd8072bb0e
+
+COUNT = 44
+KEY = 0101010101010101
+CIPHERTEXT = 8b54536f2f3e64a8
+
+COUNT = 45
+KEY = 0101010101010101
+CIPHERTEXT = ea51d3975595b86b
+
+COUNT = 46
+KEY = 0101010101010101
+CIPHERTEXT = caffc6ac4542de31
+
+COUNT = 47
+KEY = 0101010101010101
+CIPHERTEXT = 8dd45a2ddf90796c
+
+COUNT = 48
+KEY = 0101010101010101
+CIPHERTEXT = 1029d55e880ec2d0
+
+COUNT = 49
+KEY = 0101010101010101
+CIPHERTEXT = 5d86cb23639dbea9
+
+COUNT = 50
+KEY = 0101010101010101
+CIPHERTEXT = 1d1ca853ae7c0c5f
+
+COUNT = 51
+KEY = 0101010101010101
+CIPHERTEXT = ce332329248f3228
+
+COUNT = 52
+KEY = 0101010101010101
+CIPHERTEXT = 8405d1abe24fb942
+
+COUNT = 53
+KEY = 0101010101010101
+CIPHERTEXT = e643d78090ca4207
+
+COUNT = 54
+KEY = 0101010101010101
+CIPHERTEXT = 48221b9937748a23
+
+COUNT = 55
+KEY = 0101010101010101
+CIPHERTEXT = dd7c0bbd61fafd54
+
+COUNT = 56
+KEY = 0101010101010101
+CIPHERTEXT = 2fbc291a570db5c4
+
+COUNT = 57
+KEY = 0101010101010101
+CIPHERTEXT = e07c30d7e4e26e12
+
+COUNT = 58
+KEY = 0101010101010101
+CIPHERTEXT = 0953e2258e8e90a1
+
+COUNT = 59
+KEY = 0101010101010101
+CIPHERTEXT = 5b711bc4ceebf2ee
+
+COUNT = 60
+KEY = 0101010101010101
+CIPHERTEXT = cc083f1e6d9e85f6
+
+COUNT = 61
+KEY = 0101010101010101
+CIPHERTEXT = d2fd8867d50d2dfe
+
+COUNT = 62
+KEY = 0101010101010101
+CIPHERTEXT = 06e7ea22ce92708f
+
+COUNT = 63
+KEY = 0101010101010101
+CIPHERTEXT = 166b40b44aba4bd6
diff --git a/fips/testvectors/des/req/OFBMMT.req b/fips/testvectors/des/req/OFBMMT.req
new file mode 100644 (file)
index 0000000..4f6106a
--- /dev/null
@@ -0,0 +1,109 @@
+# CAVS 2.0
+# Config Info for : "OpenSSL_DES"
+# DES Multi Block Message Test for OFB
+# State : Encrypt and Decrypt
+# Tue Jun 24 03:13:44 PM
+
+[ENCRYPT]
+
+COUNT = 0
+KEY = 6198d0bcad68895d
+IV = 4114cb436ee58ab1
+PLAINTEXT = ac40e545e9a3b240
+
+COUNT = 1
+KEY = cde97acdb58ad54a
+IV = 00cb37f85a32dfac
+PLAINTEXT = 76a31e9898b9a3f01bd9927baebe4481
+
+COUNT = 2
+KEY = 04e0022cec1cb525
+IV = 268890da0ac177b4
+PLAINTEXT = 88aa03eacd0f7ad27442ab26fc57a4d279a0c3c8dddc1ae0
+
+COUNT = 3
+KEY = c2ec861f15239ef1
+IV = 4c42fc6807777306
+PLAINTEXT = 0f00c4e0c0358aa08cee45ff030d9e0ec346ca423dd46ac8bc6ab018a36dc4cd
+
+COUNT = 4
+KEY = 9dabc2e3bf379d2f
+IV = 54610aceb70ec59b
+PLAINTEXT = 1132bd8564d0625dc91d487e2ce56122ad576d1da3fd1b6ee1f27114394f6d233fe6ed164f33cc67
+
+COUNT = 5
+KEY = dfef64fe70ce4a04
+IV = 2f8d6304e46e0493
+PLAINTEXT = 826046fcd3d4f034d12e2aebbd7478e65a33bcd1b60caade476f7daf39a7e8760717505b49c3381ecd12fdfde8d2c3d8
+
+COUNT = 6
+KEY = d3f764850d2f523d
+IV = 6c8068b76486d244
+PLAINTEXT = 6a4a7dde8423bef8dd616eed2b3017f25f0e4d17d73087ccd5222da330aff2574900640e4108c1db691f0d87faec619107898673afe2c327
+
+COUNT = 7
+KEY = 8368d5e6a8ad2ac8
+IV = c03b04a7b8ca35bf
+PLAINTEXT = 35bb24a8d26004e0e24b3a9adc20a8c34c53ca7531f33b6da4c67bbfbb9befc8addc296537636a623e8e6536b59646edc11cf3651b0592bdb7884b0ba3854f4d
+
+COUNT = 8
+KEY = 5ee64f454f10202a
+IV = 2d89bb838524431c
+PLAINTEXT = 03f7501beada1f846d5cbf746f1f583f84bb35d9615fd39991bc383e6a1e863040dcd008d8f32c511fee0a901c09c483249576a74d9e0ffc25cca80ca387152a5d5ebaf8fcaaa02c
+
+COUNT = 9
+KEY = 974f9e75167962ae
+IV = 06830973751dc9cb
+PLAINTEXT = 88fc29f4ce01d21559d24b25f6d6f061fbdbe8a9da5a55e1f5fccd97b45e0ee6d511ed9a04e69094ac68dd710ca932668d42576e5395b1a81255b8fa2349abfbd74c82100b9924d5fc45dabe5d0d03fe
+
+[DECRYPT]
+
+COUNT = 0
+KEY = d38a43264c98efea
+IV = 66a9aea46526037f
+CIPHERTEXT = 044296a2d8d9dee2
+
+COUNT = 1
+KEY = cdfdd5867680011a
+IV = 2c1405661b22871b
+CIPHERTEXT = 6106eb2a560689b8b70762dc7b6d57c7
+
+COUNT = 2
+KEY = 58d389f14515ea8c
+IV = ec5f0fd52e94bf1c
+CIPHERTEXT = bf0226a0784d2543e82f28809b15b750f6e2fcc31a3ec9f2
+
+COUNT = 3
+KEY = 5d8c9e3201342f2c
+IV = d00717b8962e7e36
+CIPHERTEXT = 7f618bc94eb68b14cf48d188e011c6fbcdb9bd871652d4e073451be4168cf974
+
+COUNT = 4
+KEY = ab0bf28c8352fd1a
+IV = c9c634664f49aa46
+CIPHERTEXT = a3c723e687948d74be8fff3575bfb4885da086f6ae1b0cc36cb405c3e906f96f8b6c1d38cf02781c
+
+COUNT = 5
+KEY = d9d5fe1545d37986
+IV = 15b9907579849287
+CIPHERTEXT = b84b4d44d5739b4a372fff9a166a05a0fb172700c822ee2ef9a75a39296384e7d86882076b148b0374435bb534c4d97b
+
+COUNT = 6
+KEY = ce1c736d7f766ba8
+IV = 0cb0dcbdd689ec04
+CIPHERTEXT = ad5dd5c90962ba7efe848b9f1de578ed30eecfcf16db70f5ce7a813bd12f62d0a53ce397af3fb5cd49fc1fed145df2d08fb7bf19e94f47d0
+
+COUNT = 7
+KEY = cb89254a976de5f2
+IV = f6e359322932fbe5
+CIPHERTEXT = e31791d3274b2f86ad25a2698e27f5b040bd6ed36ac40834f64c2303689d7b5e6f7957bdbaa1038e0d9b7f1c94b179b5773d790cae245cdc17a103cec6444c9d
+
+COUNT = 8
+KEY = df91bfdf38eabcfd
+IV = 0fd16dddf3f4d380
+CIPHERTEXT = 1b735b0557255a0e6d8d675879e7201ca34c8761a129a9147eef7e5a9a0c1125f31be006a2578642a9569727ebf4cca07c8d60081b6fb93cfd8e4bf4cd7aba53f08f3ebc0d6b4ce8
+
+COUNT = 9
+KEY = d3e9ea4c5e2abc51
+IV = 21674a6dcad30d51
+CIPHERTEXT = 8ea780373be8264a379967d1063d8690aed454aa18b0af11ba84494173beab2eb616797aeb67f7ec12becc1eaab10675d1f35f56ac25be9709ee0134434dfa44662eb72b943c0710a8f73992180627b6
diff --git a/fips/testvectors/des/req/OFBMonte.req b/fips/testvectors/des/req/OFBMonte.req
new file mode 100644 (file)
index 0000000..d7f5d12
--- /dev/null
@@ -0,0 +1,17 @@
+# CAVS 2.0
+# Config Info for : "OpenSSL_DES"
+# DES Monte Carlo (Modes) Test for OFB
+# State : Encrypt and Decrypt
+# Tue Jun 24 03:13:44 PM
+
+[ENCRYPT]
+KEY = 04fee5ea234f3b51
+IV = a8766778cda73cff
+PLAINTEXT = 176e051c37f6f7e9
+
+
+[DECRYPT]
+KEY = 2551b0cdef9726d9
+IV = fdce6ffeea89f87b
+CIPHERTEXT = 726b7e7e4a2f8e7b
+
diff --git a/fips/testvectors/des/req/OFBinvperm.req b/fips/testvectors/des/req/OFBinvperm.req
new file mode 100644 (file)
index 0000000..4a33115
--- /dev/null
@@ -0,0 +1,648 @@
+# CAVS 2.0
+# Config Info for : "OpenSSL_DES"
+# INVERSE PERMUTATION - KAT for OFB
+# State : Encrypt and Decrypt
+# Tue Jun 24 03:11:52 PM
+
+[ENCRYPT]
+COUNT = 0
+KEY = 0101010101010101
+IV = 8000000000000000
+PLAINTEXT = 95f8a5e5dd31d900
+
+COUNT = 1
+KEY = 0101010101010101
+IV = 4000000000000000
+PLAINTEXT = dd7f121ca5015619
+
+COUNT = 2
+KEY = 0101010101010101
+IV = 2000000000000000
+PLAINTEXT = 2e8653104f3834ea
+
+COUNT = 3
+KEY = 0101010101010101
+IV = 1000000000000000
+PLAINTEXT = 4bd388ff6cd81d4f
+
+COUNT = 4
+KEY = 0101010101010101
+IV = 0800000000000000
+PLAINTEXT = 20b9e767b2fb1456
+
+COUNT = 5
+KEY = 0101010101010101
+IV = 0400000000000000
+PLAINTEXT = 55579380d77138ef
+
+COUNT = 6
+KEY = 0101010101010101
+IV = 0200000000000000
+PLAINTEXT = 6cc5defaaf04512f
+
+COUNT = 7
+KEY = 0101010101010101
+IV = 0100000000000000
+PLAINTEXT = 0d9f279ba5d87260
+
+COUNT = 8
+KEY = 0101010101010101
+IV = 0080000000000000
+PLAINTEXT = d9031b0271bd5a0a
+
+COUNT = 9
+KEY = 0101010101010101
+IV = 0040000000000000
+PLAINTEXT = 424250b37c3dd951
+
+COUNT = 10
+KEY = 0101010101010101
+IV = 0020000000000000
+PLAINTEXT = b8061b7ecd9a21e5
+
+COUNT = 11
+KEY = 0101010101010101
+IV = 0010000000000000
+PLAINTEXT = f15d0f286b65bd28
+
+COUNT = 12
+KEY = 0101010101010101
+IV = 0008000000000000
+PLAINTEXT = add0cc8d6e5deba1
+
+COUNT = 13
+KEY = 0101010101010101
+IV = 0004000000000000
+PLAINTEXT = e6d5f82752ad63d1
+
+COUNT = 14
+KEY = 0101010101010101
+IV = 0002000000000000
+PLAINTEXT = ecbfe3bd3f591a5e
+
+COUNT = 15
+KEY = 0101010101010101
+IV = 0001000000000000
+PLAINTEXT = f356834379d165cd
+
+COUNT = 16
+KEY = 0101010101010101
+IV = 0000800000000000
+PLAINTEXT = 2b9f982f20037fa9
+
+COUNT = 17
+KEY = 0101010101010101
+IV = 0000400000000000
+PLAINTEXT = 889de068a16f0be6
+
+COUNT = 18
+KEY = 0101010101010101
+IV = 0000200000000000
+PLAINTEXT = e19e275d846a1298
+
+COUNT = 19
+KEY = 0101010101010101
+IV = 0000100000000000
+PLAINTEXT = 329a8ed523d71aec
+
+COUNT = 20
+KEY = 0101010101010101
+IV = 0000080000000000
+PLAINTEXT = e7fce22557d23c97
+
+COUNT = 21
+KEY = 0101010101010101
+IV = 0000040000000000
+PLAINTEXT = 12a9f5817ff2d65d
+
+COUNT = 22
+KEY = 0101010101010101
+IV = 0000020000000000
+PLAINTEXT = a484c3ad38dc9c19
+
+COUNT = 23
+KEY = 0101010101010101
+IV = 0000010000000000
+PLAINTEXT = fbe00a8a1ef8ad72
+
+COUNT = 24
+KEY = 0101010101010101
+IV = 0000008000000000
+PLAINTEXT = 750d079407521363
+
+COUNT = 25
+KEY = 0101010101010101
+IV = 0000004000000000
+PLAINTEXT = 64feed9c724c2faf
+
+COUNT = 26
+KEY = 0101010101010101
+IV = 0000002000000000
+PLAINTEXT = f02b263b328e2b60
+
+COUNT = 27
+KEY = 0101010101010101
+IV = 0000001000000000
+PLAINTEXT = 9d64555a9a10b852
+
+COUNT = 28
+KEY = 0101010101010101
+IV = 0000000800000000
+PLAINTEXT = d106ff0bed5255d7
+
+COUNT = 29
+KEY = 0101010101010101
+IV = 0000000400000000
+PLAINTEXT = e1652c6b138c64a5
+
+COUNT = 30
+KEY = 0101010101010101
+IV = 0000000200000000
+PLAINTEXT = e428581186ec8f46
+
+COUNT = 31
+KEY = 0101010101010101
+IV = 0000000100000000
+PLAINTEXT = aeb5f5ede22d1a36
+
+COUNT = 32
+KEY = 0101010101010101
+IV = 0000000080000000
+PLAINTEXT = e943d7568aec0c5c
+
+COUNT = 33
+KEY = 0101010101010101
+IV = 0000000040000000
+PLAINTEXT = df98c8276f54b04b
+
+COUNT = 34
+KEY = 0101010101010101
+IV = 0000000020000000
+PLAINTEXT = b160e4680f6c696f
+
+COUNT = 35
+KEY = 0101010101010101
+IV = 0000000010000000
+PLAINTEXT = fa0752b07d9c4ab8
+
+COUNT = 36
+KEY = 0101010101010101
+IV = 0000000008000000
+PLAINTEXT = ca3a2b036dbc8502
+
+COUNT = 37
+KEY = 0101010101010101
+IV = 0000000004000000
+PLAINTEXT = 5e0905517bb59bcf
+
+COUNT = 38
+KEY = 0101010101010101
+IV = 0000000002000000
+PLAINTEXT = 814eeb3b91d90726
+
+COUNT = 39
+KEY = 0101010101010101
+IV = 0000000001000000
+PLAINTEXT = 4d49db1532919c9f
+
+COUNT = 40
+KEY = 0101010101010101
+IV = 0000000000800000
+PLAINTEXT = 25eb5fc3f8cf0621
+
+COUNT = 41
+KEY = 0101010101010101
+IV = 0000000000400000
+PLAINTEXT = ab6a20c0620d1c6f
+
+COUNT = 42
+KEY = 0101010101010101
+IV = 0000000000200000
+PLAINTEXT = 79e90dbc98f92cca
+
+COUNT = 43
+KEY = 0101010101010101
+IV = 0000000000100000
+PLAINTEXT = 866ecedd8072bb0e
+
+COUNT = 44
+KEY = 0101010101010101
+IV = 0000000000080000
+PLAINTEXT = 8b54536f2f3e64a8
+
+COUNT = 45
+KEY = 0101010101010101
+IV = 0000000000040000
+PLAINTEXT = ea51d3975595b86b
+
+COUNT = 46
+KEY = 0101010101010101
+IV = 0000000000020000
+PLAINTEXT = caffc6ac4542de31
+
+COUNT = 47
+KEY = 0101010101010101
+IV = 0000000000010000
+PLAINTEXT = 8dd45a2ddf90796c
+
+COUNT = 48
+KEY = 0101010101010101
+IV = 0000000000008000
+PLAINTEXT = 1029d55e880ec2d0
+
+COUNT = 49
+KEY = 0101010101010101
+IV = 0000000000004000
+PLAINTEXT = 5d86cb23639dbea9
+
+COUNT = 50
+KEY = 0101010101010101
+IV = 0000000000002000
+PLAINTEXT = 1d1ca853ae7c0c5f
+
+COUNT = 51
+KEY = 0101010101010101
+IV = 0000000000001000
+PLAINTEXT = ce332329248f3228
+
+COUNT = 52
+KEY = 0101010101010101
+IV = 0000000000000800
+PLAINTEXT = 8405d1abe24fb942
+
+COUNT = 53
+KEY = 0101010101010101
+IV = 0000000000000400
+PLAINTEXT = e643d78090ca4207
+
+COUNT = 54
+KEY = 0101010101010101
+IV = 0000000000000200
+PLAINTEXT = 48221b9937748a23
+
+COUNT = 55
+KEY = 0101010101010101
+IV = 0000000000000100
+PLAINTEXT = dd7c0bbd61fafd54
+
+COUNT = 56
+KEY = 0101010101010101
+IV = 0000000000000080
+PLAINTEXT = 2fbc291a570db5c4
+
+COUNT = 57
+KEY = 0101010101010101
+IV = 0000000000000040
+PLAINTEXT = e07c30d7e4e26e12
+
+COUNT = 58
+KEY = 0101010101010101
+IV = 0000000000000020
+PLAINTEXT = 0953e2258e8e90a1
+
+COUNT = 59
+KEY = 0101010101010101
+IV = 0000000000000010
+PLAINTEXT = 5b711bc4ceebf2ee
+
+COUNT = 60
+KEY = 0101010101010101
+IV = 0000000000000008
+PLAINTEXT = cc083f1e6d9e85f6
+
+COUNT = 61
+KEY = 0101010101010101
+IV = 0000000000000004
+PLAINTEXT = d2fd8867d50d2dfe
+
+COUNT = 62
+KEY = 0101010101010101
+IV = 0000000000000002
+PLAINTEXT = 06e7ea22ce92708f
+
+COUNT = 63
+KEY = 0101010101010101
+IV = 0000000000000001
+PLAINTEXT = 166b40b44aba4bd6
+
+
+[DECRYPT]
+COUNT = 0
+KEY = 0101010101010101
+IV = 8000000000000000
+CIPHERTEXT = 95f8a5e5dd31d900
+
+COUNT = 1
+KEY = 0101010101010101
+IV = 4000000000000000
+CIPHERTEXT = dd7f121ca5015619
+
+COUNT = 2
+KEY = 0101010101010101
+IV = 2000000000000000
+CIPHERTEXT = 2e8653104f3834ea
+
+COUNT = 3
+KEY = 0101010101010101
+IV = 1000000000000000
+CIPHERTEXT = 4bd388ff6cd81d4f
+
+COUNT = 4
+KEY = 0101010101010101
+IV = 0800000000000000
+CIPHERTEXT = 20b9e767b2fb1456
+
+COUNT = 5
+KEY = 0101010101010101
+IV = 0400000000000000
+CIPHERTEXT = 55579380d77138ef
+
+COUNT = 6
+KEY = 0101010101010101
+IV = 0200000000000000
+CIPHERTEXT = 6cc5defaaf04512f
+
+COUNT = 7
+KEY = 0101010101010101
+IV = 0100000000000000
+CIPHERTEXT = 0d9f279ba5d87260
+
+COUNT = 8
+KEY = 0101010101010101
+IV = 0080000000000000
+CIPHERTEXT = d9031b0271bd5a0a
+
+COUNT = 9
+KEY = 0101010101010101
+IV = 0040000000000000
+CIPHERTEXT = 424250b37c3dd951
+
+COUNT = 10
+KEY = 0101010101010101
+IV = 0020000000000000
+CIPHERTEXT = b8061b7ecd9a21e5
+
+COUNT = 11
+KEY = 0101010101010101
+IV = 0010000000000000
+CIPHERTEXT = f15d0f286b65bd28
+
+COUNT = 12
+KEY = 0101010101010101
+IV = 0008000000000000
+CIPHERTEXT = add0cc8d6e5deba1
+
+COUNT = 13
+KEY = 0101010101010101
+IV = 0004000000000000
+CIPHERTEXT = e6d5f82752ad63d1
+
+COUNT = 14
+KEY = 0101010101010101
+IV = 0002000000000000
+CIPHERTEXT = ecbfe3bd3f591a5e
+
+COUNT = 15
+KEY = 0101010101010101
+IV = 0001000000000000
+CIPHERTEXT = f356834379d165cd
+
+COUNT = 16
+KEY = 0101010101010101
+IV = 0000800000000000
+CIPHERTEXT = 2b9f982f20037fa9
+
+COUNT = 17
+KEY = 0101010101010101
+IV = 0000400000000000
+CIPHERTEXT = 889de068a16f0be6
+
+COUNT = 18
+KEY = 0101010101010101
+IV = 0000200000000000
+CIPHERTEXT = e19e275d846a1298
+
+COUNT = 19
+KEY = 0101010101010101
+IV = 0000100000000000
+CIPHERTEXT = 329a8ed523d71aec
+
+COUNT = 20
+KEY = 0101010101010101
+IV = 0000080000000000
+CIPHERTEXT = e7fce22557d23c97
+
+COUNT = 21
+KEY = 0101010101010101
+IV = 0000040000000000
+CIPHERTEXT = 12a9f5817ff2d65d
+
+COUNT = 22
+KEY = 0101010101010101
+IV = 0000020000000000
+CIPHERTEXT = a484c3ad38dc9c19
+
+COUNT = 23
+KEY = 0101010101010101
+IV = 0000010000000000
+CIPHERTEXT = fbe00a8a1ef8ad72
+
+COUNT = 24
+KEY = 0101010101010101
+IV = 0000008000000000
+CIPHERTEXT = 750d079407521363
+
+COUNT = 25
+KEY = 0101010101010101
+IV = 0000004000000000
+CIPHERTEXT = 64feed9c724c2faf
+
+COUNT = 26
+KEY = 0101010101010101
+IV = 0000002000000000
+CIPHERTEXT = f02b263b328e2b60
+
+COUNT = 27
+KEY = 0101010101010101
+IV = 0000001000000000
+CIPHERTEXT = 9d64555a9a10b852
+
+COUNT = 28
+KEY = 0101010101010101
+IV = 0000000800000000
+CIPHERTEXT = d106ff0bed5255d7
+
+COUNT = 29
+KEY = 0101010101010101
+IV = 0000000400000000
+CIPHERTEXT = e1652c6b138c64a5
+
+COUNT = 30
+KEY = 0101010101010101
+IV = 0000000200000000
+CIPHERTEXT = e428581186ec8f46
+
+COUNT = 31
+KEY = 0101010101010101
+IV = 0000000100000000
+CIPHERTEXT = aeb5f5ede22d1a36
+
+COUNT = 32
+KEY = 0101010101010101
+IV = 0000000080000000
+CIPHERTEXT = e943d7568aec0c5c
+
+COUNT = 33
+KEY = 0101010101010101
+IV = 0000000040000000
+CIPHERTEXT = df98c8276f54b04b
+
+COUNT = 34
+KEY = 0101010101010101
+IV = 0000000020000000
+CIPHERTEXT = b160e4680f6c696f
+
+COUNT = 35
+KEY = 0101010101010101
+IV = 0000000010000000
+CIPHERTEXT = fa0752b07d9c4ab8
+
+COUNT = 36
+KEY = 0101010101010101
+IV = 0000000008000000
+CIPHERTEXT = ca3a2b036dbc8502
+
+COUNT = 37
+KEY = 0101010101010101
+IV = 0000000004000000
+CIPHERTEXT = 5e0905517bb59bcf
+
+COUNT = 38
+KEY = 0101010101010101
+IV = 0000000002000000
+CIPHERTEXT = 814eeb3b91d90726
+
+COUNT = 39
+KEY = 0101010101010101
+IV = 0000000001000000
+CIPHERTEXT = 4d49db1532919c9f
+
+COUNT = 40
+KEY = 0101010101010101
+IV = 0000000000800000
+CIPHERTEXT = 25eb5fc3f8cf0621
+
+COUNT = 41
+KEY = 0101010101010101
+IV = 0000000000400000
+CIPHERTEXT = ab6a20c0620d1c6f
+
+COUNT = 42
+KEY = 0101010101010101
+IV = 0000000000200000
+CIPHERTEXT = 79e90dbc98f92cca
+
+COUNT = 43
+KEY = 0101010101010101
+IV = 0000000000100000
+CIPHERTEXT = 866ecedd8072bb0e
+
+COUNT = 44
+KEY = 0101010101010101
+IV = 0000000000080000
+CIPHERTEXT = 8b54536f2f3e64a8
+
+COUNT = 45
+KEY = 0101010101010101
+IV = 0000000000040000
+CIPHERTEXT = ea51d3975595b86b
+
+COUNT = 46
+KEY = 0101010101010101
+IV = 0000000000020000
+CIPHERTEXT = caffc6ac4542de31
+
+COUNT = 47
+KEY = 0101010101010101
+IV = 0000000000010000
+CIPHERTEXT = 8dd45a2ddf90796c
+
+COUNT = 48
+KEY = 0101010101010101
+IV = 0000000000008000
+CIPHERTEXT = 1029d55e880ec2d0
+
+COUNT = 49
+KEY = 0101010101010101
+IV = 0000000000004000
+CIPHERTEXT = 5d86cb23639dbea9
+
+COUNT = 50
+KEY = 0101010101010101
+IV = 0000000000002000
+CIPHERTEXT = 1d1ca853ae7c0c5f
+
+COUNT = 51
+KEY = 0101010101010101
+IV = 0000000000001000
+CIPHERTEXT = ce332329248f3228
+
+COUNT = 52
+KEY = 0101010101010101
+IV = 0000000000000800
+CIPHERTEXT = 8405d1abe24fb942
+
+COUNT = 53
+KEY = 0101010101010101
+IV = 0000000000000400
+CIPHERTEXT = e643d78090ca4207
+
+COUNT = 54
+KEY = 0101010101010101
+IV = 0000000000000200
+CIPHERTEXT = 48221b9937748a23
+
+COUNT = 55
+KEY = 0101010101010101
+IV = 0000000000000100
+CIPHERTEXT = dd7c0bbd61fafd54
+
+COUNT = 56
+KEY = 0101010101010101
+IV = 0000000000000080
+CIPHERTEXT = 2fbc291a570db5c4
+
+COUNT = 57
+KEY = 0101010101010101
+IV = 0000000000000040
+CIPHERTEXT = e07c30d7e4e26e12
+
+COUNT = 58
+KEY = 0101010101010101
+IV = 0000000000000020
+CIPHERTEXT = 0953e2258e8e90a1
+
+COUNT = 59
+KEY = 0101010101010101
+IV = 0000000000000010
+CIPHERTEXT = 5b711bc4ceebf2ee
+
+COUNT = 60
+KEY = 0101010101010101
+IV = 0000000000000008
+CIPHERTEXT = cc083f1e6d9e85f6
+
+COUNT = 61
+KEY = 0101010101010101
+IV = 0000000000000004
+CIPHERTEXT = d2fd8867d50d2dfe
+
+COUNT = 62
+KEY = 0101010101010101
+IV = 0000000000000002
+CIPHERTEXT = 06e7ea22ce92708f
+
+COUNT = 63
+KEY = 0101010101010101
+IV = 0000000000000001
+CIPHERTEXT = 166b40b44aba4bd6
diff --git a/fips/testvectors/des/req/OFBpermop.req b/fips/testvectors/des/req/OFBpermop.req
new file mode 100644 (file)
index 0000000..8a045ba
--- /dev/null
@@ -0,0 +1,328 @@
+# CAVS 2.0
+# Config Info for : "OpenSSL_DES"
+# PERMUTATION OPERATION - KAT for OFB
+# State : Encrypt and Decrypt
+# Tue Jun 24 03:11:52 PM
+
+[ENCRYPT]
+COUNT = 0
+KEY = 1046913489980131
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 1
+KEY = 1007103489988020
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 2
+KEY = 10071034c8980120
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 3
+KEY = 1046103489988020
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 4
+KEY = 1086911519190101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 5
+KEY = 1086911519580101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 6
+KEY = 5107b01519580101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 7
+KEY = 1007b01519190101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 8
+KEY = 3107915498080101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 9
+KEY = 3107919498080101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 10
+KEY = 10079115b9080140
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 11
+KEY = 3107911598080140
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 12
+KEY = 1007d01589980101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 13
+KEY = 9107911589980101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 14
+KEY = 9107d01589190101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 15
+KEY = 1007d01598980120
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 16
+KEY = 1007940498190101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 17
+KEY = 0107910491190401
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 18
+KEY = 0107910491190101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 19
+KEY = 0107940491190401
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 20
+KEY = 19079210981a0101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 21
+KEY = 1007911998190801
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 22
+KEY = 10079119981a0801
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 23
+KEY = 1007921098190101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 24
+KEY = 100791159819010b
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 25
+KEY = 1004801598190101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 26
+KEY = 1004801598190102
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 27
+KEY = 1004801598190108
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 28
+KEY = 1002911598100104
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 29
+KEY = 1002911598190104
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 30
+KEY = 1002911598100201
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 31
+KEY = 1002911698100101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+
+[DECRYPT]
+COUNT = 0
+KEY = 1046913489980131
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 1
+KEY = 1007103489988020
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 2
+KEY = 10071034c8980120
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 3
+KEY = 1046103489988020
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 4
+KEY = 1086911519190101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 5
+KEY = 1086911519580101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 6
+KEY = 5107b01519580101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 7
+KEY = 1007b01519190101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 8
+KEY = 3107915498080101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 9
+KEY = 3107919498080101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 10
+KEY = 10079115b9080140
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 11
+KEY = 3107911598080140
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 12
+KEY = 1007d01589980101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 13
+KEY = 9107911589980101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 14
+KEY = 9107d01589190101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 15
+KEY = 1007d01598980120
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 16
+KEY = 1007940498190101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 17
+KEY = 0107910491190401
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 18
+KEY = 0107910491190101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 19
+KEY = 0107940491190401
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 20
+KEY = 19079210981a0101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 21
+KEY = 1007911998190801
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 22
+KEY = 10079119981a0801
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 23
+KEY = 1007921098190101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 24
+KEY = 100791159819010b
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 25
+KEY = 1004801598190101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 26
+KEY = 1004801598190102
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 27
+KEY = 1004801598190108
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 28
+KEY = 1002911598100104
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 29
+KEY = 1002911598190104
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 30
+KEY = 1002911598100201
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 31
+KEY = 1002911698100101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
diff --git a/fips/testvectors/des/req/OFBsubtab.req b/fips/testvectors/des/req/OFBsubtab.req
new file mode 100644 (file)
index 0000000..291af44
--- /dev/null
@@ -0,0 +1,198 @@
+# CAVS 2.0
+# Config Info for : "OpenSSL_DES"
+# SUBSTITUTION TABLE - KAT for OFB
+# State : Encrypt and Decrypt
+# Tue Jun 24 03:11:52 PM
+
+[ENCRYPT]
+COUNT = 0
+KEY = 7ca110454a1a6e57
+IV = 01a1d6d039776742
+PLAINTEXT = 0000000000000000
+
+COUNT = 1
+KEY = 0131d9619dc1376e
+IV = 5cd54ca83def57da
+PLAINTEXT = 0000000000000000
+
+COUNT = 2
+KEY = 07a1133e4a0b2686
+IV = 0248d43806f67172
+PLAINTEXT = 0000000000000000
+
+COUNT = 3
+KEY = 3849674c2602319e
+IV = 51454b582ddf440a
+PLAINTEXT = 0000000000000000
+
+COUNT = 4
+KEY = 04b915ba43feb5b6
+IV = 42fd443059577fa2
+PLAINTEXT = 0000000000000000
+
+COUNT = 5
+KEY = 0113b970fd34f2ce
+IV = 059b5e0851cf143a
+PLAINTEXT = 0000000000000000
+
+COUNT = 6
+KEY = 0170f175468fb5e6
+IV = 0756d8e0774761d2
+PLAINTEXT = 0000000000000000
+
+COUNT = 7
+KEY = 43297fad38e373fe
+IV = 762514b829bf486a
+PLAINTEXT = 0000000000000000
+
+COUNT = 8
+KEY = 07a7137045da2a16
+IV = 3bdd119049372802
+PLAINTEXT = 0000000000000000
+
+COUNT = 9
+KEY = 04689104c2fd3b2f
+IV = 26955f6835af609a
+PLAINTEXT = 0000000000000000
+
+COUNT = 10
+KEY = 37d06bb516cb7546
+IV = 164d5e404f275232
+PLAINTEXT = 0000000000000000
+
+COUNT = 11
+KEY = 1f08260d1ac2465e
+IV = 6b056e18759f5cca
+PLAINTEXT = 0000000000000000
+
+COUNT = 12
+KEY = 584023641aba6176
+IV = 004bd6ef09176062
+PLAINTEXT = 0000000000000000
+
+COUNT = 13
+KEY = 025816164629b007
+IV = 480d39006ee762f2
+PLAINTEXT = 0000000000000000
+
+COUNT = 14
+KEY = 49793ebc79b3258f
+IV = 437540c8698f3cfa
+PLAINTEXT = 0000000000000000
+
+COUNT = 15
+KEY = 4fb05e1515ab73a7
+IV = 072d43a077075292
+PLAINTEXT = 0000000000000000
+
+COUNT = 16
+KEY = 49e95d6d4ca229bf
+IV = 02fe55778117f12a
+PLAINTEXT = 0000000000000000
+
+COUNT = 17
+KEY = 018310dc409b26d6
+IV = 1d9d5c5018f728c2
+PLAINTEXT = 0000000000000000
+
+COUNT = 18
+KEY = 1c587f1c13924fef
+IV = 305532286d6f295a
+PLAINTEXT = 0000000000000000
+
+
+[DECRYPT]
+COUNT = 0
+KEY = 7ca110454a1a6e57
+IV = 01a1d6d039776742
+CIPHERTEXT = 0000000000000000
+
+COUNT = 1
+KEY = 0131d9619dc1376e
+IV = 5cd54ca83def57da
+CIPHERTEXT = 0000000000000000
+
+COUNT = 2
+KEY = 07a1133e4a0b2686
+IV = 0248d43806f67172
+CIPHERTEXT = 0000000000000000
+
+COUNT = 3
+KEY = 3849674c2602319e
+IV = 51454b582ddf440a
+CIPHERTEXT = 0000000000000000
+
+COUNT = 4
+KEY = 04b915ba43feb5b6
+IV = 42fd443059577fa2
+CIPHERTEXT = 0000000000000000
+
+COUNT = 5
+KEY = 0113b970fd34f2ce
+IV = 059b5e0851cf143a
+CIPHERTEXT = 0000000000000000
+
+COUNT = 6
+KEY = 0170f175468fb5e6
+IV = 0756d8e0774761d2
+CIPHERTEXT = 0000000000000000
+
+COUNT = 7
+KEY = 43297fad38e373fe
+IV = 762514b829bf486a
+CIPHERTEXT = 0000000000000000
+
+COUNT = 8
+KEY = 07a7137045da2a16
+IV = 3bdd119049372802
+CIPHERTEXT = 0000000000000000
+
+COUNT = 9
+KEY = 04689104c2fd3b2f
+IV = 26955f6835af609a
+CIPHERTEXT = 0000000000000000
+
+COUNT = 10
+KEY = 37d06bb516cb7546
+IV = 164d5e404f275232
+CIPHERTEXT = 0000000000000000
+
+COUNT = 11
+KEY = 1f08260d1ac2465e
+IV = 6b056e18759f5cca
+CIPHERTEXT = 0000000000000000
+
+COUNT = 12
+KEY = 584023641aba6176
+IV = 004bd6ef09176062
+CIPHERTEXT = 0000000000000000
+
+COUNT = 13
+KEY = 025816164629b007
+IV = 480d39006ee762f2
+CIPHERTEXT = 0000000000000000
+
+COUNT = 14
+KEY = 49793ebc79b3258f
+IV = 437540c8698f3cfa
+CIPHERTEXT = 0000000000000000
+
+COUNT = 15
+KEY = 4fb05e1515ab73a7
+IV = 072d43a077075292
+CIPHERTEXT = 0000000000000000
+
+COUNT = 16
+KEY = 49e95d6d4ca229bf
+IV = 02fe55778117f12a
+CIPHERTEXT = 0000000000000000
+
+COUNT = 17
+KEY = 018310dc409b26d6
+IV = 1d9d5c5018f728c2
+CIPHERTEXT = 0000000000000000
+
+COUNT = 18
+KEY = 1c587f1c13924fef
+IV = 305532286d6f295a
+CIPHERTEXT = 0000000000000000
diff --git a/fips/testvectors/des/req/OFBvarkey.req b/fips/testvectors/des/req/OFBvarkey.req
new file mode 100644 (file)
index 0000000..f52caf4
--- /dev/null
@@ -0,0 +1,568 @@
+# CAVS 2.0
+# Config Info for : "OpenSSL_DES"
+# VARIABLE KEY - KAT for OFB
+# State : Encrypt and Decrypt
+# Tue Jun 24 03:11:52 PM
+
+[ENCRYPT]
+COUNT = 0
+KEY = 8001010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 1
+KEY = 4001010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 2
+KEY = 2001010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 3
+KEY = 1001010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 4
+KEY = 0801010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 5
+KEY = 0401010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 6
+KEY = 0201010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 7
+KEY = 0180010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 8
+KEY = 0140010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 9
+KEY = 0120010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 10
+KEY = 0110010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 11
+KEY = 0108010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 12
+KEY = 0104010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 13
+KEY = 0102010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 14
+KEY = 0101800101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 15
+KEY = 0101400101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 16
+KEY = 0101200101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 17
+KEY = 0101100101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 18
+KEY = 0101080101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 19
+KEY = 0101040101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 20
+KEY = 0101020101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 21
+KEY = 0101018001010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 22
+KEY = 0101014001010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 23
+KEY = 0101012001010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 24
+KEY = 0101011001010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 25
+KEY = 0101010801010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 26
+KEY = 0101010401010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 27
+KEY = 0101010201010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 28
+KEY = 0101010180010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 29
+KEY = 0101010140010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 30
+KEY = 0101010120010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 31
+KEY = 0101010110010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 32
+KEY = 0101010108010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 33
+KEY = 0101010104010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 34
+KEY = 0101010102010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 35
+KEY = 0101010101800101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 36
+KEY = 0101010101400101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 37
+KEY = 0101010101200101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 38
+KEY = 0101010101100101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 39
+KEY = 0101010101080101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 40
+KEY = 0101010101040101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 41
+KEY = 0101010101020101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 42
+KEY = 0101010101018001
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 43
+KEY = 0101010101014001
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 44
+KEY = 0101010101012001
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 45
+KEY = 0101010101011001
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 46
+KEY = 0101010101010801
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 47
+KEY = 0101010101010401
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 48
+KEY = 0101010101010201
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 49
+KEY = 0101010101010180
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 50
+KEY = 0101010101010140
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 51
+KEY = 0101010101010120
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 52
+KEY = 0101010101010110
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 53
+KEY = 0101010101010108
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 54
+KEY = 0101010101010104
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 55
+KEY = 0101010101010102
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+
+
+[DECRYPT]
+COUNT = 0
+KEY = 8001010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 1
+KEY = 4001010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 2
+KEY = 2001010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 3
+KEY = 1001010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 4
+KEY = 0801010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 5
+KEY = 0401010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 6
+KEY = 0201010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 7
+KEY = 0180010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 8
+KEY = 0140010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 9
+KEY = 0120010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 10
+KEY = 0110010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 11
+KEY = 0108010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 12
+KEY = 0104010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 13
+KEY = 0102010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 14
+KEY = 0101800101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 15
+KEY = 0101400101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 16
+KEY = 0101200101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 17
+KEY = 0101100101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 18
+KEY = 0101080101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 19
+KEY = 0101040101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 20
+KEY = 0101020101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 21
+KEY = 0101018001010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 22
+KEY = 0101014001010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 23
+KEY = 0101012001010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 24
+KEY = 0101011001010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 25
+KEY = 0101010801010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 26
+KEY = 0101010401010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 27
+KEY = 0101010201010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 28
+KEY = 0101010180010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 29
+KEY = 0101010140010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 30
+KEY = 0101010120010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 31
+KEY = 0101010110010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 32
+KEY = 0101010108010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 33
+KEY = 0101010104010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 34
+KEY = 0101010102010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 35
+KEY = 0101010101800101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 36
+KEY = 0101010101400101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 37
+KEY = 0101010101200101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 38
+KEY = 0101010101100101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 39
+KEY = 0101010101080101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 40
+KEY = 0101010101040101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 41
+KEY = 0101010101020101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 42
+KEY = 0101010101018001
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 43
+KEY = 0101010101014001
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 44
+KEY = 0101010101012001
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 45
+KEY = 0101010101011001
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 46
+KEY = 0101010101010801
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 47
+KEY = 0101010101010401
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 48
+KEY = 0101010101010201
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 49
+KEY = 0101010101010180
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 50
+KEY = 0101010101010140
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 51
+KEY = 0101010101010120
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 52
+KEY = 0101010101010110
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 53
+KEY = 0101010101010108
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 54
+KEY = 0101010101010104
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 55
+KEY = 0101010101010102
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
diff --git a/fips/testvectors/des/req/OFBvartext.req b/fips/testvectors/des/req/OFBvartext.req
new file mode 100644 (file)
index 0000000..d9f2466
--- /dev/null
@@ -0,0 +1,648 @@
+# CAVS 2.0
+# Config Info for : "OpenSSL_DES"
+# VARIABLE PLAINTEXT/CIPHERTEXT - KAT for OFB
+# State : Encrypt and Decrypt
+# Tue Jun 24 03:11:52 PM
+
+[ENCRYPT]
+COUNT = 0
+KEY = 0101010101010101
+IV = 8000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 1
+KEY = 0101010101010101
+IV = 4000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 2
+KEY = 0101010101010101
+IV = 2000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 3
+KEY = 0101010101010101
+IV = 1000000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 4
+KEY = 0101010101010101
+IV = 0800000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 5
+KEY = 0101010101010101
+IV = 0400000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 6
+KEY = 0101010101010101
+IV = 0200000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 7
+KEY = 0101010101010101
+IV = 0100000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 8
+KEY = 0101010101010101
+IV = 0080000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 9
+KEY = 0101010101010101
+IV = 0040000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 10
+KEY = 0101010101010101
+IV = 0020000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 11
+KEY = 0101010101010101
+IV = 0010000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 12
+KEY = 0101010101010101
+IV = 0008000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 13
+KEY = 0101010101010101
+IV = 0004000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 14
+KEY = 0101010101010101
+IV = 0002000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 15
+KEY = 0101010101010101
+IV = 0001000000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 16
+KEY = 0101010101010101
+IV = 0000800000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 17
+KEY = 0101010101010101
+IV = 0000400000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 18
+KEY = 0101010101010101
+IV = 0000200000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 19
+KEY = 0101010101010101
+IV = 0000100000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 20
+KEY = 0101010101010101
+IV = 0000080000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 21
+KEY = 0101010101010101
+IV = 0000040000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 22
+KEY = 0101010101010101
+IV = 0000020000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 23
+KEY = 0101010101010101
+IV = 0000010000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 24
+KEY = 0101010101010101
+IV = 0000008000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 25
+KEY = 0101010101010101
+IV = 0000004000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 26
+KEY = 0101010101010101
+IV = 0000002000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 27
+KEY = 0101010101010101
+IV = 0000001000000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 28
+KEY = 0101010101010101
+IV = 0000000800000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 29
+KEY = 0101010101010101
+IV = 0000000400000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 30
+KEY = 0101010101010101
+IV = 0000000200000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 31
+KEY = 0101010101010101
+IV = 0000000100000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 32
+KEY = 0101010101010101
+IV = 0000000080000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 33
+KEY = 0101010101010101
+IV = 0000000040000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 34
+KEY = 0101010101010101
+IV = 0000000020000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 35
+KEY = 0101010101010101
+IV = 0000000010000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 36
+KEY = 0101010101010101
+IV = 0000000008000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 37
+KEY = 0101010101010101
+IV = 0000000004000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 38
+KEY = 0101010101010101
+IV = 0000000002000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 39
+KEY = 0101010101010101
+IV = 0000000001000000
+PLAINTEXT = 0000000000000000
+
+COUNT = 40
+KEY = 0101010101010101
+IV = 0000000000800000
+PLAINTEXT = 0000000000000000
+
+COUNT = 41
+KEY = 0101010101010101
+IV = 0000000000400000
+PLAINTEXT = 0000000000000000
+
+COUNT = 42
+KEY = 0101010101010101
+IV = 0000000000200000
+PLAINTEXT = 0000000000000000
+
+COUNT = 43
+KEY = 0101010101010101
+IV = 0000000000100000
+PLAINTEXT = 0000000000000000
+
+COUNT = 44
+KEY = 0101010101010101
+IV = 0000000000080000
+PLAINTEXT = 0000000000000000
+
+COUNT = 45
+KEY = 0101010101010101
+IV = 0000000000040000
+PLAINTEXT = 0000000000000000
+
+COUNT = 46
+KEY = 0101010101010101
+IV = 0000000000020000
+PLAINTEXT = 0000000000000000
+
+COUNT = 47
+KEY = 0101010101010101
+IV = 0000000000010000
+PLAINTEXT = 0000000000000000
+
+COUNT = 48
+KEY = 0101010101010101
+IV = 0000000000008000
+PLAINTEXT = 0000000000000000
+
+COUNT = 49
+KEY = 0101010101010101
+IV = 0000000000004000
+PLAINTEXT = 0000000000000000
+
+COUNT = 50
+KEY = 0101010101010101
+IV = 0000000000002000
+PLAINTEXT = 0000000000000000
+
+COUNT = 51
+KEY = 0101010101010101
+IV = 0000000000001000
+PLAINTEXT = 0000000000000000
+
+COUNT = 52
+KEY = 0101010101010101
+IV = 0000000000000800
+PLAINTEXT = 0000000000000000
+
+COUNT = 53
+KEY = 0101010101010101
+IV = 0000000000000400
+PLAINTEXT = 0000000000000000
+
+COUNT = 54
+KEY = 0101010101010101
+IV = 0000000000000200
+PLAINTEXT = 0000000000000000
+
+COUNT = 55
+KEY = 0101010101010101
+IV = 0000000000000100
+PLAINTEXT = 0000000000000000
+
+COUNT = 56
+KEY = 0101010101010101
+IV = 0000000000000080
+PLAINTEXT = 0000000000000000
+
+COUNT = 57
+KEY = 0101010101010101
+IV = 0000000000000040
+PLAINTEXT = 0000000000000000
+
+COUNT = 58
+KEY = 0101010101010101
+IV = 0000000000000020
+PLAINTEXT = 0000000000000000
+
+COUNT = 59
+KEY = 0101010101010101
+IV = 0000000000000010
+PLAINTEXT = 0000000000000000
+
+COUNT = 60
+KEY = 0101010101010101
+IV = 0000000000000008
+PLAINTEXT = 0000000000000000
+
+COUNT = 61
+KEY = 0101010101010101
+IV = 0000000000000004
+PLAINTEXT = 0000000000000000
+
+COUNT = 62
+KEY = 0101010101010101
+IV = 0000000000000002
+PLAINTEXT = 0000000000000000
+
+COUNT = 63
+KEY = 0101010101010101
+IV = 0000000000000001
+PLAINTEXT = 0000000000000000
+
+
+[DECRYPT]
+COUNT = 0
+KEY = 0101010101010101
+IV = 8000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 1
+KEY = 0101010101010101
+IV = 4000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 2
+KEY = 0101010101010101
+IV = 2000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 3
+KEY = 0101010101010101
+IV = 1000000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 4
+KEY = 0101010101010101
+IV = 0800000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 5
+KEY = 0101010101010101
+IV = 0400000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 6
+KEY = 0101010101010101
+IV = 0200000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 7
+KEY = 0101010101010101
+IV = 0100000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 8
+KEY = 0101010101010101
+IV = 0080000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 9
+KEY = 0101010101010101
+IV = 0040000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 10
+KEY = 0101010101010101
+IV = 0020000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 11
+KEY = 0101010101010101
+IV = 0010000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 12
+KEY = 0101010101010101
+IV = 0008000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 13
+KEY = 0101010101010101
+IV = 0004000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 14
+KEY = 0101010101010101
+IV = 0002000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 15
+KEY = 0101010101010101
+IV = 0001000000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 16
+KEY = 0101010101010101
+IV = 0000800000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 17
+KEY = 0101010101010101
+IV = 0000400000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 18
+KEY = 0101010101010101
+IV = 0000200000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 19
+KEY = 0101010101010101
+IV = 0000100000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 20
+KEY = 0101010101010101
+IV = 0000080000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 21
+KEY = 0101010101010101
+IV = 0000040000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 22
+KEY = 0101010101010101
+IV = 0000020000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 23
+KEY = 0101010101010101
+IV = 0000010000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 24
+KEY = 0101010101010101
+IV = 0000008000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 25
+KEY = 0101010101010101
+IV = 0000004000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 26
+KEY = 0101010101010101
+IV = 0000002000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 27
+KEY = 0101010101010101
+IV = 0000001000000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 28
+KEY = 0101010101010101
+IV = 0000000800000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 29
+KEY = 0101010101010101
+IV = 0000000400000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 30
+KEY = 0101010101010101
+IV = 0000000200000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 31
+KEY = 0101010101010101
+IV = 0000000100000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 32
+KEY = 0101010101010101
+IV = 0000000080000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 33
+KEY = 0101010101010101
+IV = 0000000040000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 34
+KEY = 0101010101010101
+IV = 0000000020000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 35
+KEY = 0101010101010101
+IV = 0000000010000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 36
+KEY = 0101010101010101
+IV = 0000000008000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 37
+KEY = 0101010101010101
+IV = 0000000004000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 38
+KEY = 0101010101010101
+IV = 0000000002000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 39
+KEY = 0101010101010101
+IV = 0000000001000000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 40
+KEY = 0101010101010101
+IV = 0000000000800000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 41
+KEY = 0101010101010101
+IV = 0000000000400000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 42
+KEY = 0101010101010101
+IV = 0000000000200000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 43
+KEY = 0101010101010101
+IV = 0000000000100000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 44
+KEY = 0101010101010101
+IV = 0000000000080000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 45
+KEY = 0101010101010101
+IV = 0000000000040000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 46
+KEY = 0101010101010101
+IV = 0000000000020000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 47
+KEY = 0101010101010101
+IV = 0000000000010000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 48
+KEY = 0101010101010101
+IV = 0000000000008000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 49
+KEY = 0101010101010101
+IV = 0000000000004000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 50
+KEY = 0101010101010101
+IV = 0000000000002000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 51
+KEY = 0101010101010101
+IV = 0000000000001000
+CIPHERTEXT = 0000000000000000
+
+COUNT = 52
+KEY = 0101010101010101
+IV = 0000000000000800
+CIPHERTEXT = 0000000000000000
+
+COUNT = 53
+KEY = 0101010101010101
+IV = 0000000000000400
+CIPHERTEXT = 0000000000000000
+
+COUNT = 54
+KEY = 0101010101010101
+IV = 0000000000000200
+CIPHERTEXT = 0000000000000000
+
+COUNT = 55
+KEY = 0101010101010101
+IV = 0000000000000100
+CIPHERTEXT = 0000000000000000
+
+COUNT = 56
+KEY = 0101010101010101
+IV = 0000000000000080
+CIPHERTEXT = 0000000000000000
+
+COUNT = 57
+KEY = 0101010101010101
+IV = 0000000000000040
+CIPHERTEXT = 0000000000000000
+
+COUNT = 58
+KEY = 0101010101010101
+IV = 0000000000000020
+CIPHERTEXT = 0000000000000000
+
+COUNT = 59
+KEY = 0101010101010101
+IV = 0000000000000010
+CIPHERTEXT = 0000000000000000
+
+COUNT = 60
+KEY = 0101010101010101
+IV = 0000000000000008
+CIPHERTEXT = 0000000000000000
+
+COUNT = 61
+KEY = 0101010101010101
+IV = 0000000000000004
+CIPHERTEXT = 0000000000000000
+
+COUNT = 62
+KEY = 0101010101010101
+IV = 0000000000000002
+CIPHERTEXT = 0000000000000000
+
+COUNT = 63
+KEY = 0101010101010101
+IV = 0000000000000001
+CIPHERTEXT = 0000000000000000
diff --git a/fips/testvectors/des/sample/CBCMMT.sam b/fips/testvectors/des/sample/CBCMMT.sam
new file mode 100644 (file)
index 0000000..922e19a
--- /dev/null
@@ -0,0 +1,46 @@
+# CAVS 2.0
+# Config Info for : "OpenSSL_DES"
+# DES Multi Block Message Test for CBC
+# State : Encrypt and Decrypt
+# Tue Jun 24 03:12:34 PM
+
+[ENCRYPT]
+
+COUNT = 0
+KEY = 0beaf8ab2f4ab529
+IV = 03c605dd0725e975
+PLAINTEXT = 20979b8b3577e339
+CIPHERTEXT = edef276fb2199246
+
+COUNT = 1
+KEY = 1c232f1acd4562f1
+IV = 553e35e8fb6e859e
+PLAINTEXT = cfd02cea6b26eca97a5e595ea1566d73
+CIPHERTEXT = 44d1f3f0d2aae72dcb82d5ebfcc0c292
+
+COUNT = 2
+KEY = 7f6d13c7e645a210
+IV = 8ec669cf1e5d0bf0
+PLAINTEXT = 93b764fe7b95414457331504a4e66ceb686d9c49c632f872
+CIPHERTEXT = 2d28d9b62c8afc86d7d4bc0a4e7990eeea8401cbfdbdf7a8
+
+[DECRYPT]
+
+COUNT = 0
+KEY = 377679d67f734389
+IV = abb7da496aeb27e8
+CIPHERTEXT = d6652f60526035a4
+PLAINTEXT = 601182ba1bd80741
+
+COUNT = 1
+KEY = 57bf7308d6ad98fb
+IV = cc62620a4c47c7e1
+CIPHERTEXT = 97c29b6f8a657cae625d5cfcf572f103
+PLAINTEXT = e56054c723c7b9bb647cacad6173e957
+
+COUNT = 2
+KEY = 1a4cdf9d3d3d589b
+IV = 681a7773f6fd6429
+CIPHERTEXT = bb7c53b06399f41977a920c3367fac39c5388fa8757045a8
+PLAINTEXT = 750d313b9e8e1491dc03617451ab62708910e9086691de0a
+
diff --git a/fips/testvectors/des/sample/CBCMonte.sam b/fips/testvectors/des/sample/CBCMonte.sam
new file mode 100644 (file)
index 0000000..c6832eb
--- /dev/null
@@ -0,0 +1,58 @@
+# CAVS 2.0
+# Config Info for : "OpenSSL_DES"
+# DES Monte Carlo (Modes) Test for CBC
+# State : Encrypt and Decrypt
+# Tue Jun 24 03:12:34 PM
+
+[ENCRYPT]
+
+COUNT = 0
+KEY = 98a275e5da515da2
+IV = f58d8cada3a4248a
+PLAINTEXT = 96d1169b840e8fdb
+CIPHERTEXT = 1d08db382bc89ef7
+
+COUNT = 1
+KEY = 85abaedcf198c254
+IV = 1d08db382bc89ef7
+PLAINTEXT = 2b4866e04322388f
+CIPHERTEXT = d00a1df6c39fcb5a
+
+COUNT = 2
+KEY = 54a1b32a3207080e
+IV = d00a1df6c39fcb5a
+PLAINTEXT = 174856c0df145232
+CIPHERTEXT = d8acd5efcaf57dd8
+
+COUNT = 3
+KEY = 8c0d67c4f8f275d6
+IV = d8acd5efcaf57dd8
+PLAINTEXT = 39303c314f212bf2
+CIPHERTEXT = 11abe77808e2b5c5
+
+[DECRYPT]
+
+COUNT = 0
+KEY = fde0d679bc5d67fd
+IV = 753ce88d8bfcdc54
+CIPHERTEXT = cacec93587bec613
+PLAINTEXT = 76d509493735a4b7
+
+COUNT = 1
+KEY = 8a34df318a68c24a
+IV = 949e73c7abbc9c23
+CIPHERTEXT = 76d509493735a4b7
+PLAINTEXT = bc2ef270b80bcb38
+
+COUNT = 2
+KEY = 371a2c4032620873
+IV = e4c0ca0136c65d2d
+CIPHERTEXT = bc2ef270b80bcb38
+PLAINTEXT = 697d2230a9611467
+
+COUNT = 3
+KEY = 5e670e709b021c15
+IV = 67699ba46acc8a56
+CIPHERTEXT = 697d2230a9611467
+PLAINTEXT = 87b0a6469ad76952
+
diff --git a/fips/testvectors/des/sample/CBCinvperm.sam b/fips/testvectors/des/sample/CBCinvperm.sam
new file mode 100644 (file)
index 0000000..f434c6c
--- /dev/null
@@ -0,0 +1,776 @@
+# CAVS 2.0
+# Config Info for : "OpenSSL_DES"
+# INVERSE PERMUTATION - KAT for CBC
+# State : Encrypt and Decrypt
+# Tue Jun 24 03:11:51 PM
+
+[ENCRYPT]
+COUNT = 0
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 95f8a5e5dd31d900
+CIPHERTEXT = ?
+
+COUNT = 1
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = dd7f121ca5015619
+CIPHERTEXT = ?
+
+COUNT = 2
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 2e8653104f3834ea
+CIPHERTEXT = ?
+
+COUNT = 3
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 4bd388ff6cd81d4f
+CIPHERTEXT = ?
+
+COUNT = 4
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 20b9e767b2fb1456
+CIPHERTEXT = ?
+
+COUNT = 5
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 55579380d77138ef
+CIPHERTEXT = ?
+
+COUNT = 6
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 6cc5defaaf04512f
+CIPHERTEXT = ?
+
+COUNT = 7
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0d9f279ba5d87260
+CIPHERTEXT = ?
+
+COUNT = 8
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = d9031b0271bd5a0a
+CIPHERTEXT = ?
+
+COUNT = 9
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 424250b37c3dd951
+CIPHERTEXT = ?
+
+COUNT = 10
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = b8061b7ecd9a21e5
+CIPHERTEXT = ?
+
+COUNT = 11
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = f15d0f286b65bd28
+CIPHERTEXT = ?
+
+COUNT = 12
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = add0cc8d6e5deba1
+CIPHERTEXT = ?
+
+COUNT = 13
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = e6d5f82752ad63d1
+CIPHERTEXT = ?
+
+COUNT = 14
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = ecbfe3bd3f591a5e
+CIPHERTEXT = ?
+
+COUNT = 15
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = f356834379d165cd
+CIPHERTEXT = ?
+
+COUNT = 16
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 2b9f982f20037fa9
+CIPHERTEXT = ?
+
+COUNT = 17
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 889de068a16f0be6
+CIPHERTEXT = ?
+
+COUNT = 18
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = e19e275d846a1298
+CIPHERTEXT = ?
+
+COUNT = 19
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 329a8ed523d71aec
+CIPHERTEXT = ?
+
+COUNT = 20
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = e7fce22557d23c97
+CIPHERTEXT = ?
+
+COUNT = 21
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 12a9f5817ff2d65d
+CIPHERTEXT = ?
+
+COUNT = 22
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = a484c3ad38dc9c19
+CIPHERTEXT = ?
+
+COUNT = 23
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = fbe00a8a1ef8ad72
+CIPHERTEXT = ?
+
+COUNT = 24
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 750d079407521363
+CIPHERTEXT = ?
+
+COUNT = 25
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 64feed9c724c2faf
+CIPHERTEXT = ?
+
+COUNT = 26
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = f02b263b328e2b60
+CIPHERTEXT = ?
+
+COUNT = 27
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 9d64555a9a10b852
+CIPHERTEXT = ?
+
+COUNT = 28
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = d106ff0bed5255d7
+CIPHERTEXT = ?
+
+COUNT = 29
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = e1652c6b138c64a5
+CIPHERTEXT = ?
+
+COUNT = 30
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = e428581186ec8f46
+CIPHERTEXT = ?
+
+COUNT = 31
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = aeb5f5ede22d1a36
+CIPHERTEXT = ?
+
+COUNT = 32
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = e943d7568aec0c5c
+CIPHERTEXT = ?
+
+COUNT = 33
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = df98c8276f54b04b
+CIPHERTEXT = ?
+
+COUNT = 34
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = b160e4680f6c696f
+CIPHERTEXT = ?
+
+COUNT = 35
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = fa0752b07d9c4ab8
+CIPHERTEXT = ?
+
+COUNT = 36
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = ca3a2b036dbc8502
+CIPHERTEXT = ?
+
+COUNT = 37
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 5e0905517bb59bcf
+CIPHERTEXT = ?
+
+COUNT = 38
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 814eeb3b91d90726
+CIPHERTEXT = ?
+
+COUNT = 39
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 4d49db1532919c9f
+CIPHERTEXT = ?
+
+COUNT = 40
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 25eb5fc3f8cf0621
+CIPHERTEXT = ?
+
+COUNT = 41
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = ab6a20c0620d1c6f
+CIPHERTEXT = ?
+
+COUNT = 42
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 79e90dbc98f92cca
+CIPHERTEXT = ?
+
+COUNT = 43
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 866ecedd8072bb0e
+CIPHERTEXT = ?
+
+COUNT = 44
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 8b54536f2f3e64a8
+CIPHERTEXT = ?
+
+COUNT = 45
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = ea51d3975595b86b
+CIPHERTEXT = ?
+
+COUNT = 46
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = caffc6ac4542de31
+CIPHERTEXT = ?
+
+COUNT = 47
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 8dd45a2ddf90796c
+CIPHERTEXT = ?
+
+COUNT = 48
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 1029d55e880ec2d0
+CIPHERTEXT = ?
+
+COUNT = 49
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 5d86cb23639dbea9
+CIPHERTEXT = ?
+
+COUNT = 50
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 1d1ca853ae7c0c5f
+CIPHERTEXT = ?
+
+COUNT = 51
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = ce332329248f3228
+CIPHERTEXT = ?
+
+COUNT = 52
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 8405d1abe24fb942
+CIPHERTEXT = ?
+
+COUNT = 53
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = e643d78090ca4207
+CIPHERTEXT = ?
+
+COUNT = 54
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 48221b9937748a23
+CIPHERTEXT = ?
+
+COUNT = 55
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = dd7c0bbd61fafd54
+CIPHERTEXT = ?
+
+COUNT = 56
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 2fbc291a570db5c4
+CIPHERTEXT = ?
+
+COUNT = 57
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = e07c30d7e4e26e12
+CIPHERTEXT = ?
+
+COUNT = 58
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0953e2258e8e90a1
+CIPHERTEXT = ?
+
+COUNT = 59
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 5b711bc4ceebf2ee
+CIPHERTEXT = ?
+
+COUNT = 60
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = cc083f1e6d9e85f6
+CIPHERTEXT = ?
+
+COUNT = 61
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = d2fd8867d50d2dfe
+CIPHERTEXT = ?
+
+COUNT = 62
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 06e7ea22ce92708f
+CIPHERTEXT = ?
+
+COUNT = 63
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 166b40b44aba4bd6
+CIPHERTEXT = ?
+
+
+[DECRYPT]
+COUNT = 0
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 8000000000000000
+PLAINTEXT = ?
+
+COUNT = 1
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 4000000000000000
+PLAINTEXT = ?
+
+COUNT = 2
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 2000000000000000
+PLAINTEXT = ?
+
+COUNT = 3
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 1000000000000000
+PLAINTEXT = ?
+
+COUNT = 4
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0800000000000000
+PLAINTEXT = ?
+
+COUNT = 5
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0400000000000000
+PLAINTEXT = ?
+
+COUNT = 6
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0200000000000000
+PLAINTEXT = ?
+
+COUNT = 7
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0100000000000000
+PLAINTEXT = ?
+
+COUNT = 8
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0080000000000000
+PLAINTEXT = ?
+
+COUNT = 9
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0040000000000000
+PLAINTEXT = ?
+
+COUNT = 10
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0020000000000000
+PLAINTEXT = ?
+
+COUNT = 11
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0010000000000000
+PLAINTEXT = ?
+
+COUNT = 12
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0008000000000000
+PLAINTEXT = ?
+
+COUNT = 13
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0004000000000000
+PLAINTEXT = ?
+
+COUNT = 14
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0002000000000000
+PLAINTEXT = ?
+
+COUNT = 15
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0001000000000000
+PLAINTEXT = ?
+
+COUNT = 16
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000800000000000
+PLAINTEXT = ?
+
+COUNT = 17
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000400000000000
+PLAINTEXT = ?
+
+COUNT = 18
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000200000000000
+PLAINTEXT = ?
+
+COUNT = 19
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000100000000000
+PLAINTEXT = ?
+
+COUNT = 20
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000080000000000
+PLAINTEXT = ?
+
+COUNT = 21
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000040000000000
+PLAINTEXT = ?
+
+COUNT = 22
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000020000000000
+PLAINTEXT = ?
+
+COUNT = 23
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000010000000000
+PLAINTEXT = ?
+
+COUNT = 24
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000008000000000
+PLAINTEXT = ?
+
+COUNT = 25
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000004000000000
+PLAINTEXT = ?
+
+COUNT = 26
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000002000000000
+PLAINTEXT = ?
+
+COUNT = 27
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000001000000000
+PLAINTEXT = ?
+
+COUNT = 28
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000800000000
+PLAINTEXT = ?
+
+COUNT = 29
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000400000000
+PLAINTEXT = ?
+
+COUNT = 30
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000200000000
+PLAINTEXT = ?
+
+COUNT = 31
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000100000000
+PLAINTEXT = ?
+
+COUNT = 32
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000080000000
+PLAINTEXT = ?
+
+COUNT = 33
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000040000000
+PLAINTEXT = ?
+
+COUNT = 34
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000020000000
+PLAINTEXT = ?
+
+COUNT = 35
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000010000000
+PLAINTEXT = ?
+
+COUNT = 36
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000008000000
+PLAINTEXT = ?
+
+COUNT = 37
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000004000000
+PLAINTEXT = ?
+
+COUNT = 38
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000002000000
+PLAINTEXT = ?
+
+COUNT = 39
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000001000000
+PLAINTEXT = ?
+
+COUNT = 40
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000800000
+PLAINTEXT = ?
+
+COUNT = 41
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000400000
+PLAINTEXT = ?
+
+COUNT = 42
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000200000
+PLAINTEXT = ?
+
+COUNT = 43
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000100000
+PLAINTEXT = ?
+
+COUNT = 44
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000080000
+PLAINTEXT = ?
+
+COUNT = 45
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000040000
+PLAINTEXT = ?
+
+COUNT = 46
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000020000
+PLAINTEXT = ?
+
+COUNT = 47
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000010000
+PLAINTEXT = ?
+
+COUNT = 48
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000008000
+PLAINTEXT = ?
+
+COUNT = 49
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000004000
+PLAINTEXT = ?
+
+COUNT = 50
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000002000
+PLAINTEXT = ?
+
+COUNT = 51
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000001000
+PLAINTEXT = ?
+
+COUNT = 52
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000800
+PLAINTEXT = ?
+
+COUNT = 53
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000400
+PLAINTEXT = ?
+
+COUNT = 54
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000200
+PLAINTEXT = ?
+
+COUNT = 55
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000100
+PLAINTEXT = ?
+
+COUNT = 56
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000080
+PLAINTEXT = ?
+
+COUNT = 57
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000040
+PLAINTEXT = ?
+
+COUNT = 58
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000020
+PLAINTEXT = ?
+
+COUNT = 59
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000010
+PLAINTEXT = ?
+
+COUNT = 60
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000008
+PLAINTEXT = ?
+
+COUNT = 61
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000004
+PLAINTEXT = ?
+
+COUNT = 62
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000002
+PLAINTEXT = ?
+
+COUNT = 63
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000001
+PLAINTEXT = ?
diff --git a/fips/testvectors/des/sample/CBCpermop.sam b/fips/testvectors/des/sample/CBCpermop.sam
new file mode 100644 (file)
index 0000000..844fcbc
--- /dev/null
@@ -0,0 +1,392 @@
+# CAVS 2.0
+# Config Info for : "OpenSSL_DES"
+# PERMUTATION OPERATION - KAT for CBC
+# State : Encrypt and Decrypt
+# Tue Jun 24 03:11:51 PM
+
+[ENCRYPT]
+COUNT = 0
+KEY = 1046913489980131
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 1
+KEY = 1007103489988020
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 2
+KEY = 10071034c8980120
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 3
+KEY = 1046103489988020
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 4
+KEY = 1086911519190101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 5
+KEY = 1086911519580101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 6
+KEY = 5107b01519580101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 7
+KEY = 1007b01519190101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 8
+KEY = 3107915498080101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 9
+KEY = 3107919498080101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 10
+KEY = 10079115b9080140
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 11
+KEY = 3107911598080140
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 12
+KEY = 1007d01589980101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 13
+KEY = 9107911589980101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 14
+KEY = 9107d01589190101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 15
+KEY = 1007d01598980120
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 16
+KEY = 1007940498190101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 17
+KEY = 0107910491190401
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 18
+KEY = 0107910491190101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 19
+KEY = 0107940491190401
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 20
+KEY = 19079210981a0101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 21
+KEY = 1007911998190801
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 22
+KEY = 10079119981a0801
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 23
+KEY = 1007921098190101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 24
+KEY = 100791159819010b
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 25
+KEY = 1004801598190101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 26
+KEY = 1004801598190102
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 27
+KEY = 1004801598190108
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 28
+KEY = 1002911598100104
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 29
+KEY = 1002911598190104
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 30
+KEY = 1002911598100201
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 31
+KEY = 1002911698100101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+
+[DECRYPT]
+COUNT = 0
+KEY = 1046913489980131
+IV = 0000000000000000
+CIPHERTEXT = 88d55e54f54c97b4
+PLAINTEXT = ?
+
+COUNT = 1
+KEY = 1007103489988020
+IV = 0000000000000000
+CIPHERTEXT = 0c0cc00c83ea48fd
+PLAINTEXT = ?
+
+COUNT = 2
+KEY = 10071034c8980120
+IV = 0000000000000000
+CIPHERTEXT = 83bc8ef3a6570183
+PLAINTEXT = ?
+
+COUNT = 3
+KEY = 1046103489988020
+IV = 0000000000000000
+CIPHERTEXT = df725dcad94ea2e9
+PLAINTEXT = ?
+
+COUNT = 4
+KEY = 1086911519190101
+IV = 0000000000000000
+CIPHERTEXT = e652b53b550be8b0
+PLAINTEXT = ?
+
+COUNT = 5
+KEY = 1086911519580101
+IV = 0000000000000000
+CIPHERTEXT = af527120c485cbb0
+PLAINTEXT = ?
+
+COUNT = 6
+KEY = 5107b01519580101
+IV = 0000000000000000
+CIPHERTEXT = 0f04ce393db926d5
+PLAINTEXT = ?
+
+COUNT = 7
+KEY = 1007b01519190101
+IV = 0000000000000000
+CIPHERTEXT = c9f00ffc74079067
+PLAINTEXT = ?
+
+COUNT = 8
+KEY = 3107915498080101
+IV = 0000000000000000
+CIPHERTEXT = 7cfd82a593252b4e
+PLAINTEXT = ?
+
+COUNT = 9
+KEY = 3107919498080101
+IV = 0000000000000000
+CIPHERTEXT = cb49a2f9e91363e3
+PLAINTEXT = ?
+
+COUNT = 10
+KEY = 10079115b9080140
+IV = 0000000000000000
+CIPHERTEXT = 00b588be70d23f56
+PLAINTEXT = ?
+
+COUNT = 11
+KEY = 3107911598080140
+IV = 0000000000000000
+CIPHERTEXT = 406a9a6ab43399ae
+PLAINTEXT = ?
+
+COUNT = 12
+KEY = 1007d01589980101
+IV = 0000000000000000
+CIPHERTEXT = 6cb773611dca9ada
+PLAINTEXT = ?
+
+COUNT = 13
+KEY = 9107911589980101
+IV = 0000000000000000
+CIPHERTEXT = 67fd21c17dbb5d70
+PLAINTEXT = ?
+
+COUNT = 14
+KEY = 9107d01589190101
+IV = 0000000000000000
+CIPHERTEXT = 9592cb4110430787
+PLAINTEXT = ?
+
+COUNT = 15
+KEY = 1007d01598980120
+IV = 0000000000000000
+CIPHERTEXT = a6b7ff68a318ddd3
+PLAINTEXT = ?
+
+COUNT = 16
+KEY = 1007940498190101
+IV = 0000000000000000
+CIPHERTEXT = 4d102196c914ca16
+PLAINTEXT = ?
+
+COUNT = 17
+KEY = 0107910491190401
+IV = 0000000000000000
+CIPHERTEXT = 2dfa9f4573594965
+PLAINTEXT = ?
+
+COUNT = 18
+KEY = 0107910491190101
+IV = 0000000000000000
+CIPHERTEXT = b46604816c0e0774
+PLAINTEXT = ?
+
+COUNT = 19
+KEY = 0107940491190401
+IV = 0000000000000000
+CIPHERTEXT = 6e7e6221a4f34e87
+PLAINTEXT = ?
+
+COUNT = 20
+KEY = 19079210981a0101
+IV = 0000000000000000
+CIPHERTEXT = aa85e74643233199
+PLAINTEXT = ?
+
+COUNT = 21
+KEY = 1007911998190801
+IV = 0000000000000000
+CIPHERTEXT = 2e5a19db4d1962d6
+PLAINTEXT = ?
+
+COUNT = 22
+KEY = 10079119981a0801
+IV = 0000000000000000
+CIPHERTEXT = 23a866a809d30894
+PLAINTEXT = ?
+
+COUNT = 23
+KEY = 1007921098190101
+IV = 0000000000000000
+CIPHERTEXT = d812d961f017d320
+PLAINTEXT = ?
+
+COUNT = 24
+KEY = 100791159819010b
+IV = 0000000000000000
+CIPHERTEXT = 055605816e58608f
+PLAINTEXT = ?
+
+COUNT = 25
+KEY = 1004801598190101
+IV = 0000000000000000
+CIPHERTEXT = abd88e8b1b7716f1
+PLAINTEXT = ?
+
+COUNT = 26
+KEY = 1004801598190102
+IV = 0000000000000000
+CIPHERTEXT = 537ac95be69da1e1
+PLAINTEXT = ?
+
+COUNT = 27
+KEY = 1004801598190108
+IV = 0000000000000000
+CIPHERTEXT = aed0f6ae3c25cdd8
+PLAINTEXT = ?
+
+COUNT = 28
+KEY = 1002911598100104
+IV = 0000000000000000
+CIPHERTEXT = b3e35a5ee53e7b8d
+PLAINTEXT = ?
+
+COUNT = 29
+KEY = 1002911598190104
+IV = 0000000000000000
+CIPHERTEXT = 61c79c71921a2ef8
+PLAINTEXT = ?
+
+COUNT = 30
+KEY = 1002911598100201
+IV = 0000000000000000
+CIPHERTEXT = e2f5728f0995013c
+PLAINTEXT = ?
+
+COUNT = 31
+KEY = 1002911698100101
+IV = 0000000000000000
+CIPHERTEXT = 1aeac39a61f0a464
+PLAINTEXT = ?
diff --git a/fips/testvectors/des/sample/CBCsubtab.sam b/fips/testvectors/des/sample/CBCsubtab.sam
new file mode 100644 (file)
index 0000000..4df24c3
--- /dev/null
@@ -0,0 +1,236 @@
+# CAVS 2.0
+# Config Info for : "OpenSSL_DES"
+# SUBSTITUTION TABLE - KAT for CBC
+# State : Encrypt and Decrypt
+# Tue Jun 24 03:11:51 PM
+
+[ENCRYPT]
+COUNT = 0
+KEY = 7ca110454a1a6e57
+IV = 0000000000000000
+PLAINTEXT = 01a1d6d039776742
+CIPHERTEXT = ?
+
+COUNT = 1
+KEY = 0131d9619dc1376e
+IV = 0000000000000000
+PLAINTEXT = 5cd54ca83def57da
+CIPHERTEXT = ?
+
+COUNT = 2
+KEY = 07a1133e4a0b2686
+IV = 0000000000000000
+PLAINTEXT = 0248d43806f67172
+CIPHERTEXT = ?
+
+COUNT = 3
+KEY = 3849674c2602319e
+IV = 0000000000000000
+PLAINTEXT = 51454b582ddf440a
+CIPHERTEXT = ?
+
+COUNT = 4
+KEY = 04b915ba43feb5b6
+IV = 0000000000000000
+PLAINTEXT = 42fd443059577fa2
+CIPHERTEXT = ?
+
+COUNT = 5
+KEY = 0113b970fd34f2ce
+IV = 0000000000000000
+PLAINTEXT = 059b5e0851cf143a
+CIPHERTEXT = ?
+
+COUNT = 6
+KEY = 0170f175468fb5e6
+IV = 0000000000000000
+PLAINTEXT = 0756d8e0774761d2
+CIPHERTEXT = ?
+
+COUNT = 7
+KEY = 43297fad38e373fe
+IV = 0000000000000000
+PLAINTEXT = 762514b829bf486a
+CIPHERTEXT = ?
+
+COUNT = 8
+KEY = 07a7137045da2a16
+IV = 0000000000000000
+PLAINTEXT = 3bdd119049372802
+CIPHERTEXT = ?
+
+COUNT = 9
+KEY = 04689104c2fd3b2f
+IV = 0000000000000000
+PLAINTEXT = 26955f6835af609a
+CIPHERTEXT = ?
+
+COUNT = 10
+KEY = 37d06bb516cb7546
+IV = 0000000000000000
+PLAINTEXT = 164d5e404f275232
+CIPHERTEXT = ?
+
+COUNT = 11
+KEY = 1f08260d1ac2465e
+IV = 0000000000000000
+PLAINTEXT = 6b056e18759f5cca
+CIPHERTEXT = ?
+
+COUNT = 12
+KEY = 584023641aba6176
+IV = 0000000000000000
+PLAINTEXT = 004bd6ef09176062
+CIPHERTEXT = ?
+
+COUNT = 13
+KEY = 025816164629b007
+IV = 0000000000000000
+PLAINTEXT = 480d39006ee762f2
+CIPHERTEXT = ?
+
+COUNT = 14
+KEY = 49793ebc79b3258f
+IV = 0000000000000000
+PLAINTEXT = 437540c8698f3cfa
+CIPHERTEXT = ?
+
+COUNT = 15
+KEY = 4fb05e1515ab73a7
+IV = 0000000000000000
+PLAINTEXT = 072d43a077075292
+CIPHERTEXT = ?
+
+COUNT = 16
+KEY = 49e95d6d4ca229bf
+IV = 0000000000000000
+PLAINTEXT = 02fe55778117f12a
+CIPHERTEXT = ?
+
+COUNT = 17
+KEY = 018310dc409b26d6
+IV = 0000000000000000
+PLAINTEXT = 1d9d5c5018f728c2
+CIPHERTEXT = ?
+
+COUNT = 18
+KEY = 1c587f1c13924fef
+IV = 0000000000000000
+PLAINTEXT = 305532286d6f295a
+CIPHERTEXT = ?
+
+
+[DECRYPT]
+COUNT = 0
+KEY = 7ca110454a1a6e57
+IV = 0000000000000000
+CIPHERTEXT = 690f5b0d9a26939b
+PLAINTEXT = ?
+
+COUNT = 1
+KEY = 0131d9619dc1376e
+IV = 0000000000000000
+CIPHERTEXT = 7a389d10354bd271
+PLAINTEXT = ?
+
+COUNT = 2
+KEY = 07a1133e4a0b2686
+IV = 0000000000000000
+CIPHERTEXT = 868ebb51cab4599a
+PLAINTEXT = ?
+
+COUNT = 3
+KEY = 3849674c2602319e
+IV = 0000000000000000
+CIPHERTEXT = 7178876e01f19b2a
+PLAINTEXT = ?
+
+COUNT = 4
+KEY = 04b915ba43feb5b6
+IV = 0000000000000000
+CIPHERTEXT = af37fb421f8c4095
+PLAINTEXT = ?
+
+COUNT = 5
+KEY = 0113b970fd34f2ce
+IV = 0000000000000000
+CIPHERTEXT = 86a560f10ec6d85b
+PLAINTEXT = ?
+
+COUNT = 6
+KEY = 0170f175468fb5e6
+IV = 0000000000000000
+CIPHERTEXT = 0cd3da020021dc09
+PLAINTEXT = ?
+
+COUNT = 7
+KEY = 43297fad38e373fe
+IV = 0000000000000000
+CIPHERTEXT = ea676b2cb7db2b7a
+PLAINTEXT = ?
+
+COUNT = 8
+KEY = 07a7137045da2a16
+IV = 0000000000000000
+CIPHERTEXT = dfd64a815caf1a0f
+PLAINTEXT = ?
+
+COUNT = 9
+KEY = 04689104c2fd3b2f
+IV = 0000000000000000
+CIPHERTEXT = 5c513c9c4886c088
+PLAINTEXT = ?
+
+COUNT = 10
+KEY = 37d06bb516cb7546
+IV = 0000000000000000
+CIPHERTEXT = 0a2aeeae3ff4ab77
+PLAINTEXT = ?
+
+COUNT = 11
+KEY = 1f08260d1ac2465e
+IV = 0000000000000000
+CIPHERTEXT = ef1bf03e5dfa575a
+PLAINTEXT = ?
+
+COUNT = 12
+KEY = 584023641aba6176
+IV = 0000000000000000
+CIPHERTEXT = 88bf0db6d70dee56
+PLAINTEXT = ?
+
+COUNT = 13
+KEY = 025816164629b007
+IV = 0000000000000000
+CIPHERTEXT = a1f9915541020b56
+PLAINTEXT = ?
+
+COUNT = 14
+KEY = 49793ebc79b3258f
+IV = 0000000000000000
+CIPHERTEXT = 6fbf1cafcffd0556
+PLAINTEXT = ?
+
+COUNT = 15
+KEY = 4fb05e1515ab73a7
+IV = 0000000000000000
+CIPHERTEXT = 2f22e49bab7ca1ac
+PLAINTEXT = ?
+
+COUNT = 16
+KEY = 49e95d6d4ca229bf
+IV = 0000000000000000
+CIPHERTEXT = 5a6b612cc26cce4a
+PLAINTEXT = ?
+
+COUNT = 17
+KEY = 018310dc409b26d6
+IV = 0000000000000000
+CIPHERTEXT = 5f4c038ed12b2e41
+PLAINTEXT = ?
+
+COUNT = 18
+KEY = 1c587f1c13924fef
+IV = 0000000000000000
+CIPHERTEXT = 63fac0d034d9f793
+PLAINTEXT = ?
diff --git a/fips/testvectors/des/sample/CBCvarkey.sam b/fips/testvectors/des/sample/CBCvarkey.sam
new file mode 100644 (file)
index 0000000..f88f06a
--- /dev/null
@@ -0,0 +1,680 @@
+# CAVS 2.0
+# Config Info for : "OpenSSL_DES"
+# VARIABLE KEY - KAT for CBC
+# State : Encrypt and Decrypt
+# Tue Jun 24 03:11:51 PM
+
+[ENCRYPT]
+COUNT = 0
+KEY = 8001010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 1
+KEY = 4001010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 2
+KEY = 2001010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 3
+KEY = 1001010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 4
+KEY = 0801010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 5
+KEY = 0401010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 6
+KEY = 0201010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 7
+KEY = 0180010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 8
+KEY = 0140010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 9
+KEY = 0120010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 10
+KEY = 0110010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 11
+KEY = 0108010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 12
+KEY = 0104010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 13
+KEY = 0102010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 14
+KEY = 0101800101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 15
+KEY = 0101400101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 16
+KEY = 0101200101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 17
+KEY = 0101100101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 18
+KEY = 0101080101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 19
+KEY = 0101040101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 20
+KEY = 0101020101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 21
+KEY = 0101018001010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 22
+KEY = 0101014001010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 23
+KEY = 0101012001010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 24
+KEY = 0101011001010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 25
+KEY = 0101010801010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 26
+KEY = 0101010401010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 27
+KEY = 0101010201010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 28
+KEY = 0101010180010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 29
+KEY = 0101010140010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 30
+KEY = 0101010120010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 31
+KEY = 0101010110010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 32
+KEY = 0101010108010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 33
+KEY = 0101010104010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 34
+KEY = 0101010102010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 35
+KEY = 0101010101800101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 36
+KEY = 0101010101400101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 37
+KEY = 0101010101200101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 38
+KEY = 0101010101100101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 39
+KEY = 0101010101080101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 40
+KEY = 0101010101040101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 41
+KEY = 0101010101020101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 42
+KEY = 0101010101018001
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 43
+KEY = 0101010101014001
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 44
+KEY = 0101010101012001
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 45
+KEY = 0101010101011001
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 46
+KEY = 0101010101010801
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 47
+KEY = 0101010101010401
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 48
+KEY = 0101010101010201
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 49
+KEY = 0101010101010180
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 50
+KEY = 0101010101010140
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 51
+KEY = 0101010101010120
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 52
+KEY = 0101010101010110
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 53
+KEY = 0101010101010108
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 54
+KEY = 0101010101010104
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 55
+KEY = 0101010101010102
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+
+[DECRYPT]
+COUNT = 0
+KEY = 8001010101010101
+IV = 0000000000000000
+CIPHERTEXT = 95a8d72813daa94d
+PLAINTEXT = ?
+
+COUNT = 1
+KEY = 4001010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0eec1487dd8c26d5
+PLAINTEXT = ?
+
+COUNT = 2
+KEY = 2001010101010101
+IV = 0000000000000000
+CIPHERTEXT = 7ad16ffb79c45926
+PLAINTEXT = ?
+
+COUNT = 3
+KEY = 1001010101010101
+IV = 0000000000000000
+CIPHERTEXT = d3746294ca6a6cf3
+PLAINTEXT = ?
+
+COUNT = 4
+KEY = 0801010101010101
+IV = 0000000000000000
+CIPHERTEXT = 809f5f873c1fd761
+PLAINTEXT = ?
+
+COUNT = 5
+KEY = 0401010101010101
+IV = 0000000000000000
+CIPHERTEXT = c02faffec989d1fc
+PLAINTEXT = ?
+
+COUNT = 6
+KEY = 0201010101010101
+IV = 0000000000000000
+CIPHERTEXT = 4615aa1d33e72f10
+PLAINTEXT = ?
+
+COUNT = 7
+KEY = 0180010101010101
+IV = 0000000000000000
+CIPHERTEXT = 2055123350c00858
+PLAINTEXT = ?
+
+COUNT = 8
+KEY = 0140010101010101
+IV = 0000000000000000
+CIPHERTEXT = df3b99d6577397c8
+PLAINTEXT = ?
+
+COUNT = 9
+KEY = 0120010101010101
+IV = 0000000000000000
+CIPHERTEXT = 31fe17369b5288c9
+PLAINTEXT = ?
+
+COUNT = 10
+KEY = 0110010101010101
+IV = 0000000000000000
+CIPHERTEXT = dfdd3cc64dae1642
+PLAINTEXT = ?
+
+COUNT = 11
+KEY = 0108010101010101
+IV = 0000000000000000
+CIPHERTEXT = 178c83ce2b399d94
+PLAINTEXT = ?
+
+COUNT = 12
+KEY = 0104010101010101
+IV = 0000000000000000
+CIPHERTEXT = 50f636324a9b7f80
+PLAINTEXT = ?
+
+COUNT = 13
+KEY = 0102010101010101
+IV = 0000000000000000
+CIPHERTEXT = a8468ee3bc18f06d
+PLAINTEXT = ?
+
+COUNT = 14
+KEY = 0101800101010101
+IV = 0000000000000000
+CIPHERTEXT = a2dc9e92fd3cde92
+PLAINTEXT = ?
+
+COUNT = 15
+KEY = 0101400101010101
+IV = 0000000000000000
+CIPHERTEXT = cac09f797d031287
+PLAINTEXT = ?
+
+COUNT = 16
+KEY = 0101200101010101
+IV = 0000000000000000
+CIPHERTEXT = 90ba680b22aeb525
+PLAINTEXT = ?
+
+COUNT = 17
+KEY = 0101100101010101
+IV = 0000000000000000
+CIPHERTEXT = ce7a24f350e280b6
+PLAINTEXT = ?
+
+COUNT = 18
+KEY = 0101080101010101
+IV = 0000000000000000
+CIPHERTEXT = 882bff0aa01a0b87
+PLAINTEXT = ?
+
+COUNT = 19
+KEY = 0101040101010101
+IV = 0000000000000000
+CIPHERTEXT = 25610288924511c2
+PLAINTEXT = ?
+
+COUNT = 20
+KEY = 0101020101010101
+IV = 0000000000000000
+CIPHERTEXT = c71516c29c75d170
+PLAINTEXT = ?
+
+COUNT = 21
+KEY = 0101018001010101
+IV = 0000000000000000
+CIPHERTEXT = 5199c29a52c9f059
+PLAINTEXT = ?
+
+COUNT = 22
+KEY = 0101014001010101
+IV = 0000000000000000
+CIPHERTEXT = c22f0a294a71f29f
+PLAINTEXT = ?
+
+COUNT = 23
+KEY = 0101012001010101
+IV = 0000000000000000
+CIPHERTEXT = ee371483714c02ea
+PLAINTEXT = ?
+
+COUNT = 24
+KEY = 0101011001010101
+IV = 0000000000000000
+CIPHERTEXT = a81fbd448f9e522f
+PLAINTEXT = ?
+
+COUNT = 25
+KEY = 0101010801010101
+IV = 0000000000000000
+CIPHERTEXT = 4f644c92e192dfed
+PLAINTEXT = ?
+
+COUNT = 26
+KEY = 0101010401010101
+IV = 0000000000000000
+CIPHERTEXT = 1afa9a66a6df92ae
+PLAINTEXT = ?
+
+COUNT = 27
+KEY = 0101010201010101
+IV = 0000000000000000
+CIPHERTEXT = b3c1cc715cb879d8
+PLAINTEXT = ?
+
+COUNT = 28
+KEY = 0101010180010101
+IV = 0000000000000000
+CIPHERTEXT = 19d032e64ab0bd8b
+PLAINTEXT = ?
+
+COUNT = 29
+KEY = 0101010140010101
+IV = 0000000000000000
+CIPHERTEXT = 3cfaa7a7dc8720dc
+PLAINTEXT = ?
+
+COUNT = 30
+KEY = 0101010120010101
+IV = 0000000000000000
+CIPHERTEXT = b7265f7f447ac6f3
+PLAINTEXT = ?
+
+COUNT = 31
+KEY = 0101010110010101
+IV = 0000000000000000
+CIPHERTEXT = 9db73b3c0d163f54
+PLAINTEXT = ?
+
+COUNT = 32
+KEY = 0101010108010101
+IV = 0000000000000000
+CIPHERTEXT = 8181b65babf4a975
+PLAINTEXT = ?
+
+COUNT = 33
+KEY = 0101010104010101
+IV = 0000000000000000
+CIPHERTEXT = 93c9b64042eaa240
+PLAINTEXT = ?
+
+COUNT = 34
+KEY = 0101010102010101
+IV = 0000000000000000
+CIPHERTEXT = 5570530829705592
+PLAINTEXT = ?
+
+COUNT = 35
+KEY = 0101010101800101
+IV = 0000000000000000
+CIPHERTEXT = 8638809e878787a0
+PLAINTEXT = ?
+
+COUNT = 36
+KEY = 0101010101400101
+IV = 0000000000000000
+CIPHERTEXT = 41b9a79af79ac208
+PLAINTEXT = ?
+
+COUNT = 37
+KEY = 0101010101200101
+IV = 0000000000000000
+CIPHERTEXT = 7a9be42f2009a892
+PLAINTEXT = ?
+
+COUNT = 38
+KEY = 0101010101100101
+IV = 0000000000000000
+CIPHERTEXT = 29038d56ba6d2745
+PLAINTEXT = ?
+
+COUNT = 39
+KEY = 0101010101080101
+IV = 0000000000000000
+CIPHERTEXT = 5495c6abf1e5df51
+PLAINTEXT = ?
+
+COUNT = 40
+KEY = 0101010101040101
+IV = 0000000000000000
+CIPHERTEXT = ae13dbd561488933
+PLAINTEXT = ?
+
+COUNT = 41
+KEY = 0101010101020101
+IV = 0000000000000000
+CIPHERTEXT = 024d1ffa8904e389
+PLAINTEXT = ?
+
+COUNT = 42
+KEY = 0101010101018001
+IV = 0000000000000000
+CIPHERTEXT = d1399712f99bf02e
+PLAINTEXT = ?
+
+COUNT = 43
+KEY = 0101010101014001
+IV = 0000000000000000
+CIPHERTEXT = 14c1d7c1cffec79e
+PLAINTEXT = ?
+
+COUNT = 44
+KEY = 0101010101012001
+IV = 0000000000000000
+CIPHERTEXT = 1de5279dae3bed6f
+PLAINTEXT = ?
+
+COUNT = 45
+KEY = 0101010101011001
+IV = 0000000000000000
+CIPHERTEXT = e941a33f85501303
+PLAINTEXT = ?
+
+COUNT = 46
+KEY = 0101010101010801
+IV = 0000000000000000
+CIPHERTEXT = da99dbbc9a03f379
+PLAINTEXT = ?
+
+COUNT = 47
+KEY = 0101010101010401
+IV = 0000000000000000
+CIPHERTEXT = b7fc92f91d8e92e9
+PLAINTEXT = ?
+
+COUNT = 48
+KEY = 0101010101010201
+IV = 0000000000000000
+CIPHERTEXT = ae8e5caa3ca04e85
+PLAINTEXT = ?
+
+COUNT = 49
+KEY = 0101010101010180
+IV = 0000000000000000
+CIPHERTEXT = 9cc62df43b6eed74
+PLAINTEXT = ?
+
+COUNT = 50
+KEY = 0101010101010140
+IV = 0000000000000000
+CIPHERTEXT = d863dbb5c59a91a0
+PLAINTEXT = ?
+
+COUNT = 51
+KEY = 0101010101010120
+IV = 0000000000000000
+CIPHERTEXT = a1ab2190545b91d7
+PLAINTEXT = ?
+
+COUNT = 52
+KEY = 0101010101010110
+IV = 0000000000000000
+CIPHERTEXT = 0875041e64c570f7
+PLAINTEXT = ?
+
+COUNT = 53
+KEY = 0101010101010108
+IV = 0000000000000000
+CIPHERTEXT = 5a594528bebef1cc
+PLAINTEXT = ?
+
+COUNT = 54
+KEY = 0101010101010104
+IV = 0000000000000000
+CIPHERTEXT = fcdb3291de21f0c0
+PLAINTEXT = ?
+
+COUNT = 55
+KEY = 0101010101010102
+IV = 0000000000000000
+CIPHERTEXT = 869efd7f9f265a09
+PLAINTEXT = ?
diff --git a/fips/testvectors/des/sample/CBCvartext.sam b/fips/testvectors/des/sample/CBCvartext.sam
new file mode 100644 (file)
index 0000000..829b4e0
--- /dev/null
@@ -0,0 +1,776 @@
+# CAVS 2.0
+# Config Info for : "OpenSSL_DES"
+# VARIABLE PLAINTEXT/CIPHERTEXT - KAT for CBC
+# State : Encrypt and Decrypt
+# Tue Jun 24 03:11:51 PM
+
+[ENCRYPT]
+COUNT = 0
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 8000000000000000
+CIPHERTEXT = ?
+
+COUNT = 1
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 4000000000000000
+CIPHERTEXT = ?
+
+COUNT = 2
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 2000000000000000
+CIPHERTEXT = ?
+
+COUNT = 3
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 1000000000000000
+CIPHERTEXT = ?
+
+COUNT = 4
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0800000000000000
+CIPHERTEXT = ?
+
+COUNT = 5
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0400000000000000
+CIPHERTEXT = ?
+
+COUNT = 6
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0200000000000000
+CIPHERTEXT = ?
+
+COUNT = 7
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0100000000000000
+CIPHERTEXT = ?
+
+COUNT = 8
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0080000000000000
+CIPHERTEXT = ?
+
+COUNT = 9
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0040000000000000
+CIPHERTEXT = ?
+
+COUNT = 10
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0020000000000000
+CIPHERTEXT = ?
+
+COUNT = 11
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0010000000000000
+CIPHERTEXT = ?
+
+COUNT = 12
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0008000000000000
+CIPHERTEXT = ?
+
+COUNT = 13
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0004000000000000
+CIPHERTEXT = ?
+
+COUNT = 14
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0002000000000000
+CIPHERTEXT = ?
+
+COUNT = 15
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0001000000000000
+CIPHERTEXT = ?
+
+COUNT = 16
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000800000000000
+CIPHERTEXT = ?
+
+COUNT = 17
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000400000000000
+CIPHERTEXT = ?
+
+COUNT = 18
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000200000000000
+CIPHERTEXT = ?
+
+COUNT = 19
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000100000000000
+CIPHERTEXT = ?
+
+COUNT = 20
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000080000000000
+CIPHERTEXT = ?
+
+COUNT = 21
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000040000000000
+CIPHERTEXT = ?
+
+COUNT = 22
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000020000000000
+CIPHERTEXT = ?
+
+COUNT = 23
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000010000000000
+CIPHERTEXT = ?
+
+COUNT = 24
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000008000000000
+CIPHERTEXT = ?
+
+COUNT = 25
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000004000000000
+CIPHERTEXT = ?
+
+COUNT = 26
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000002000000000
+CIPHERTEXT = ?
+
+COUNT = 27
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000001000000000
+CIPHERTEXT = ?
+
+COUNT = 28
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000800000000
+CIPHERTEXT = ?
+
+COUNT = 29
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000400000000
+CIPHERTEXT = ?
+
+COUNT = 30
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000200000000
+CIPHERTEXT = ?
+
+COUNT = 31
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000100000000
+CIPHERTEXT = ?
+
+COUNT = 32
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000080000000
+CIPHERTEXT = ?
+
+COUNT = 33
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000040000000
+CIPHERTEXT = ?
+
+COUNT = 34
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000020000000
+CIPHERTEXT = ?
+
+COUNT = 35
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000010000000
+CIPHERTEXT = ?
+
+COUNT = 36
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000008000000
+CIPHERTEXT = ?
+
+COUNT = 37
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000004000000
+CIPHERTEXT = ?
+
+COUNT = 38
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000002000000
+CIPHERTEXT = ?
+
+COUNT = 39
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000001000000
+CIPHERTEXT = ?
+
+COUNT = 40
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000800000
+CIPHERTEXT = ?
+
+COUNT = 41
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000400000
+CIPHERTEXT = ?
+
+COUNT = 42
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000200000
+CIPHERTEXT = ?
+
+COUNT = 43
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000100000
+CIPHERTEXT = ?
+
+COUNT = 44
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000080000
+CIPHERTEXT = ?
+
+COUNT = 45
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000040000
+CIPHERTEXT = ?
+
+COUNT = 46
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000020000
+CIPHERTEXT = ?
+
+COUNT = 47
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000010000
+CIPHERTEXT = ?
+
+COUNT = 48
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000008000
+CIPHERTEXT = ?
+
+COUNT = 49
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000004000
+CIPHERTEXT = ?
+
+COUNT = 50
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000002000
+CIPHERTEXT = ?
+
+COUNT = 51
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000001000
+CIPHERTEXT = ?
+
+COUNT = 52
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000800
+CIPHERTEXT = ?
+
+COUNT = 53
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000400
+CIPHERTEXT = ?
+
+COUNT = 54
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000200
+CIPHERTEXT = ?
+
+COUNT = 55
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000100
+CIPHERTEXT = ?
+
+COUNT = 56
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000080
+CIPHERTEXT = ?
+
+COUNT = 57
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000040
+CIPHERTEXT = ?
+
+COUNT = 58
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000020
+CIPHERTEXT = ?
+
+COUNT = 59
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000010
+CIPHERTEXT = ?
+
+COUNT = 60
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000008
+CIPHERTEXT = ?
+
+COUNT = 61
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000004
+CIPHERTEXT = ?
+
+COUNT = 62
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000002
+CIPHERTEXT = ?
+
+COUNT = 63
+KEY = 0101010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000001
+CIPHERTEXT = ?
+
+
+[DECRYPT]
+COUNT = 0
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 95f8a5e5dd31d900
+PLAINTEXT = ?
+
+COUNT = 1
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = dd7f121ca5015619
+PLAINTEXT = ?
+
+COUNT = 2
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 2e8653104f3834ea
+PLAINTEXT = ?
+
+COUNT = 3
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 4bd388ff6cd81d4f
+PLAINTEXT = ?
+
+COUNT = 4
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 20b9e767b2fb1456
+PLAINTEXT = ?
+
+COUNT = 5
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 55579380d77138ef
+PLAINTEXT = ?
+
+COUNT = 6
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 6cc5defaaf04512f
+PLAINTEXT = ?
+
+COUNT = 7
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0d9f279ba5d87260
+PLAINTEXT = ?
+
+COUNT = 8
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = d9031b0271bd5a0a
+PLAINTEXT = ?
+
+COUNT = 9
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 424250b37c3dd951
+PLAINTEXT = ?
+
+COUNT = 10
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = b8061b7ecd9a21e5
+PLAINTEXT = ?
+
+COUNT = 11
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = f15d0f286b65bd28
+PLAINTEXT = ?
+
+COUNT = 12
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = add0cc8d6e5deba1
+PLAINTEXT = ?
+
+COUNT = 13
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = e6d5f82752ad63d1
+PLAINTEXT = ?
+
+COUNT = 14
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = ecbfe3bd3f591a5e
+PLAINTEXT = ?
+
+COUNT = 15
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = f356834379d165cd
+PLAINTEXT = ?
+
+COUNT = 16
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 2b9f982f20037fa9
+PLAINTEXT = ?
+
+COUNT = 17
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 889de068a16f0be6
+PLAINTEXT = ?
+
+COUNT = 18
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = e19e275d846a1298
+PLAINTEXT = ?
+
+COUNT = 19
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 329a8ed523d71aec
+PLAINTEXT = ?
+
+COUNT = 20
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = e7fce22557d23c97
+PLAINTEXT = ?
+
+COUNT = 21
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 12a9f5817ff2d65d
+PLAINTEXT = ?
+
+COUNT = 22
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = a484c3ad38dc9c19
+PLAINTEXT = ?
+
+COUNT = 23
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = fbe00a8a1ef8ad72
+PLAINTEXT = ?
+
+COUNT = 24
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 750d079407521363
+PLAINTEXT = ?
+
+COUNT = 25
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 64feed9c724c2faf
+PLAINTEXT = ?
+
+COUNT = 26
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = f02b263b328e2b60
+PLAINTEXT = ?
+
+COUNT = 27
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 9d64555a9a10b852
+PLAINTEXT = ?
+
+COUNT = 28
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = d106ff0bed5255d7
+PLAINTEXT = ?
+
+COUNT = 29
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = e1652c6b138c64a5
+PLAINTEXT = ?
+
+COUNT = 30
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = e428581186ec8f46
+PLAINTEXT = ?
+
+COUNT = 31
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = aeb5f5ede22d1a36
+PLAINTEXT = ?
+
+COUNT = 32
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = e943d7568aec0c5c
+PLAINTEXT = ?
+
+COUNT = 33
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = df98c8276f54b04b
+PLAINTEXT = ?
+
+COUNT = 34
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = b160e4680f6c696f
+PLAINTEXT = ?
+
+COUNT = 35
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = fa0752b07d9c4ab8
+PLAINTEXT = ?
+
+COUNT = 36
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = ca3a2b036dbc8502
+PLAINTEXT = ?
+
+COUNT = 37
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 5e0905517bb59bcf
+PLAINTEXT = ?
+
+COUNT = 38
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 814eeb3b91d90726
+PLAINTEXT = ?
+
+COUNT = 39
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 4d49db1532919c9f
+PLAINTEXT = ?
+
+COUNT = 40
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 25eb5fc3f8cf0621
+PLAINTEXT = ?
+
+COUNT = 41
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = ab6a20c0620d1c6f
+PLAINTEXT = ?
+
+COUNT = 42
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 79e90dbc98f92cca
+PLAINTEXT = ?
+
+COUNT = 43
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 866ecedd8072bb0e
+PLAINTEXT = ?
+
+COUNT = 44
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 8b54536f2f3e64a8
+PLAINTEXT = ?
+
+COUNT = 45
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = ea51d3975595b86b
+PLAINTEXT = ?
+
+COUNT = 46
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = caffc6ac4542de31
+PLAINTEXT = ?
+
+COUNT = 47
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 8dd45a2ddf90796c
+PLAINTEXT = ?
+
+COUNT = 48
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 1029d55e880ec2d0
+PLAINTEXT = ?
+
+COUNT = 49
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 5d86cb23639dbea9
+PLAINTEXT = ?
+
+COUNT = 50
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 1d1ca853ae7c0c5f
+PLAINTEXT = ?
+
+COUNT = 51
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = ce332329248f3228
+PLAINTEXT = ?
+
+COUNT = 52
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 8405d1abe24fb942
+PLAINTEXT = ?
+
+COUNT = 53
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = e643d78090ca4207
+PLAINTEXT = ?
+
+COUNT = 54
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 48221b9937748a23
+PLAINTEXT = ?
+
+COUNT = 55
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = dd7c0bbd61fafd54
+PLAINTEXT = ?
+
+COUNT = 56
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 2fbc291a570db5c4
+PLAINTEXT = ?
+
+COUNT = 57
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = e07c30d7e4e26e12
+PLAINTEXT = ?
+
+COUNT = 58
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0953e2258e8e90a1
+PLAINTEXT = ?
+
+COUNT = 59
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 5b711bc4ceebf2ee
+PLAINTEXT = ?
+
+COUNT = 60
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = cc083f1e6d9e85f6
+PLAINTEXT = ?
+
+COUNT = 61
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = d2fd8867d50d2dfe
+PLAINTEXT = ?
+
+COUNT = 62
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 06e7ea22ce92708f
+PLAINTEXT = ?
+
+COUNT = 63
+KEY = 0101010101010101
+IV = 0000000000000000
+CIPHERTEXT = 166b40b44aba4bd6
+PLAINTEXT = ?
diff --git a/fips/testvectors/des/sample/CFB1MMT.sam b/fips/testvectors/des/sample/CFB1MMT.sam
new file mode 100644 (file)
index 0000000..3bdf9d7
--- /dev/null
@@ -0,0 +1,46 @@
+# CAVS 2.0
+# Config Info for : "OpenSSL_DES"
+# DES Multi Block Message Test for CFB1
+# State : Encrypt and Decrypt
+# Tue Jun 24 03:13:00 PM
+
+[ENCRYPT]
+
+COUNT = 0
+KEY = f43d5ebc3e16ea0e
+IV = 282d971ab9154bfc
+PLAINTEXT = 0
+CIPHERTEXT = 0
+
+COUNT = 1
+KEY = dc8f0897ef167a75
+IV = 1ee325df9c573d77
+PLAINTEXT = 00
+CIPHERTEXT = 11
+
+COUNT = 2
+KEY = 7075571523d902c8
+IV = 9a0ca30a85714205
+PLAINTEXT = 010
+CIPHERTEXT = 001
+
+[DECRYPT]
+
+COUNT = 0
+KEY = 206b37bca2fe68a8
+IV = 7a5e281a43fba6de
+CIPHERTEXT = 0
+PLAINTEXT = 0
+
+COUNT = 1
+KEY = 2c7f2ca464a78a46
+IV = d59d5ffaf74a6212
+CIPHERTEXT = 00
+PLAINTEXT = 11
+
+COUNT = 2
+KEY = ab67ae5ee00b2fcd
+IV = 00c74aaa81068455
+CIPHERTEXT = 110
+PLAINTEXT = 000
+
diff --git a/fips/testvectors/des/sample/CFB1Monte.sam b/fips/testvectors/des/sample/CFB1Monte.sam
new file mode 100644 (file)
index 0000000..94a01c0
--- /dev/null
@@ -0,0 +1,58 @@
+# CAVS 2.0
+# Config Info for : "OpenSSL_DES"
+# DES Monte Carlo (Modes) Test for CFB1
+# State : Encrypt and Decrypt
+# Tue Jun 24 03:13:00 PM
+
+[ENCRYPT]
+
+COUNT = 0
+KEY = 51f146dad579c26b
+IV = 2bba4a92bc69556a
+PLAINTEXT = 0
+CIPHERTEXT = 1
+
+COUNT = 1
+KEY = d5d34f75f8ad9264
+IV = 842309af2cd4510f
+PLAINTEXT = 1
+CIPHERTEXT = 1
+
+COUNT = 2
+KEY = 800edab6ab7f4051
+IV = 54dc94c253d3d235
+PLAINTEXT = 0
+CIPHERTEXT = 1
+
+COUNT = 3
+KEY = 7079fb32e6157ff7
+IV = f17721844c6b3ea7
+PLAINTEXT = 1
+CIPHERTEXT = 1
+
+[DECRYPT]
+
+COUNT = 0
+KEY = c238cda129731cf1
+IV = 3cef8cc26b4042e6
+CIPHERTEXT = 0
+PLAINTEXT = 0
+
+COUNT = 1
+KEY = a80e048aec1c2fdc
+IV = 26edb819bcdaee1b
+CIPHERTEXT = 1
+PLAINTEXT = 0
+
+COUNT = 2
+KEY = f2383b98ad9267cb
+IV = 3612150ec085380d
+CIPHERTEXT = 1
+PLAINTEXT = 1
+
+COUNT = 3
+KEY = 294c8f2f4f76a4e0
+IV = b6d36c6da15c4119
+CIPHERTEXT = 0
+PLAINTEXT = 1
+
diff --git a/fips/testvectors/des/sample/CFB1invperm.sam b/fips/testvectors/des/sample/CFB1invperm.sam
new file mode 100644 (file)
index 0000000..836c288
--- /dev/null
@@ -0,0 +1,776 @@
+# CAVS 2.0
+# Config Info for : "OpenSSL_DES"
+# INVERSE PERMUTATION - KAT for CFB1
+# State : Encrypt and Decrypt
+# Tue Jun 24 03:11:51 PM
+
+[ENCRYPT]
+COUNT = 0
+KEY = 0101010101010101
+IV = 8000000000000000
+PLAINTEXT = 1
+CIPHERTEXT = ?
+
+COUNT = 1
+KEY = 0101010101010101
+IV = 4000000000000000
+PLAINTEXT = 1
+CIPHERTEXT = ?
+
+COUNT = 2
+KEY = 0101010101010101
+IV = 2000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 3
+KEY = 0101010101010101
+IV = 1000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 4
+KEY = 0101010101010101
+IV = 0800000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 5
+KEY = 0101010101010101
+IV = 0400000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 6
+KEY = 0101010101010101
+IV = 0200000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 7
+KEY = 0101010101010101
+IV = 0100000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 8
+KEY = 0101010101010101
+IV = 0080000000000000
+PLAINTEXT = 1
+CIPHERTEXT = ?
+
+COUNT = 9
+KEY = 0101010101010101
+IV = 0040000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 10
+KEY = 0101010101010101
+IV = 0020000000000000
+PLAINTEXT = 1
+CIPHERTEXT = ?
+
+COUNT = 11
+KEY = 0101010101010101
+IV = 0010000000000000
+PLAINTEXT = 1
+CIPHERTEXT = ?
+
+COUNT = 12
+KEY = 0101010101010101
+IV = 0008000000000000
+PLAINTEXT = 1
+CIPHERTEXT = ?
+
+COUNT = 13
+KEY = 0101010101010101
+IV = 0004000000000000
+PLAINTEXT = 1
+CIPHERTEXT = ?
+
+COUNT = 14
+KEY = 0101010101010101
+IV = 0002000000000000
+PLAINTEXT = 1
+CIPHERTEXT = ?
+
+COUNT = 15
+KEY = 0101010101010101
+IV = 0001000000000000
+PLAINTEXT = 1
+CIPHERTEXT = ?
+
+COUNT = 16
+KEY = 0101010101010101
+IV = 0000800000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 17
+KEY = 0101010101010101
+IV = 0000400000000000
+PLAINTEXT = 1
+CIPHERTEXT = ?
+
+COUNT = 18
+KEY = 0101010101010101
+IV = 0000200000000000
+PLAINTEXT = 1
+CIPHERTEXT = ?
+
+COUNT = 19
+KEY = 0101010101010101
+IV = 0000100000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 20
+KEY = 0101010101010101
+IV = 0000080000000000
+PLAINTEXT = 1
+CIPHERTEXT = ?
+
+COUNT = 21
+KEY = 0101010101010101
+IV = 0000040000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 22
+KEY = 0101010101010101
+IV = 0000020000000000
+PLAINTEXT = 1
+CIPHERTEXT = ?
+
+COUNT = 23
+KEY = 0101010101010101
+IV = 0000010000000000
+PLAINTEXT = 1
+CIPHERTEXT = ?
+
+COUNT = 24
+KEY = 0101010101010101
+IV = 0000008000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 25
+KEY = 0101010101010101
+IV = 0000004000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 26
+KEY = 0101010101010101
+IV = 0000002000000000
+PLAINTEXT = 1
+CIPHERTEXT = ?
+
+COUNT = 27
+KEY = 0101010101010101
+IV = 0000001000000000
+PLAINTEXT = 1
+CIPHERTEXT = ?
+
+COUNT = 28
+KEY = 0101010101010101
+IV = 0000000800000000
+PLAINTEXT = 1
+CIPHERTEXT = ?
+
+COUNT = 29
+KEY = 0101010101010101
+IV = 0000000400000000
+PLAINTEXT = 1
+CIPHERTEXT = ?
+
+COUNT = 30
+KEY = 0101010101010101
+IV = 0000000200000000
+PLAINTEXT = 1
+CIPHERTEXT = ?
+
+COUNT = 31
+KEY = 0101010101010101
+IV = 0000000100000000
+PLAINTEXT = 1
+CIPHERTEXT = ?
+
+COUNT = 32
+KEY = 0101010101010101
+IV = 0000000080000000
+PLAINTEXT = 1
+CIPHERTEXT = ?
+
+COUNT = 33
+KEY = 0101010101010101
+IV = 0000000040000000
+PLAINTEXT = 1
+CIPHERTEXT = ?
+
+COUNT = 34
+KEY = 0101010101010101
+IV = 0000000020000000
+PLAINTEXT = 1
+CIPHERTEXT = ?
+
+COUNT = 35
+KEY = 0101010101010101
+IV = 0000000010000000
+PLAINTEXT = 1
+CIPHERTEXT = ?
+
+COUNT = 36
+KEY = 0101010101010101
+IV = 0000000008000000
+PLAINTEXT = 1
+CIPHERTEXT = ?
+
+COUNT = 37
+KEY = 0101010101010101
+IV = 0000000004000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 38
+KEY = 0101010101010101
+IV = 0000000002000000
+PLAINTEXT = 1
+CIPHERTEXT = ?
+
+COUNT = 39
+KEY = 0101010101010101
+IV = 0000000001000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 40
+KEY = 0101010101010101
+IV = 0000000000800000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 41
+KEY = 0101010101010101
+IV = 0000000000400000
+PLAINTEXT = 1
+CIPHERTEXT = ?
+
+COUNT = 42
+KEY = 0101010101010101
+IV = 0000000000200000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 43
+KEY = 0101010101010101
+IV = 0000000000100000
+PLAINTEXT = 1
+CIPHERTEXT = ?
+
+COUNT = 44
+KEY = 0101010101010101
+IV = 0000000000080000
+PLAINTEXT = 1
+CIPHERTEXT = ?
+
+COUNT = 45
+KEY = 0101010101010101
+IV = 0000000000040000
+PLAINTEXT = 1
+CIPHERTEXT = ?
+
+COUNT = 46
+KEY = 0101010101010101
+IV = 0000000000020000
+PLAINTEXT = 1
+CIPHERTEXT = ?
+
+COUNT = 47
+KEY = 0101010101010101
+IV = 0000000000010000
+PLAINTEXT = 1
+CIPHERTEXT = ?
+
+COUNT = 48
+KEY = 0101010101010101
+IV = 0000000000008000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 49
+KEY = 0101010101010101
+IV = 0000000000004000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 50
+KEY = 0101010101010101
+IV = 0000000000002000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 51
+KEY = 0101010101010101
+IV = 0000000000001000
+PLAINTEXT = 1
+CIPHERTEXT = ?
+
+COUNT = 52
+KEY = 0101010101010101
+IV = 0000000000000800
+PLAINTEXT = 1
+CIPHERTEXT = ?
+
+COUNT = 53
+KEY = 0101010101010101
+IV = 0000000000000400
+PLAINTEXT = 1
+CIPHERTEXT = ?
+
+COUNT = 54
+KEY = 0101010101010101
+IV = 0000000000000200
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 55
+KEY = 0101010101010101
+IV = 0000000000000100
+PLAINTEXT = 1
+CIPHERTEXT = ?
+
+COUNT = 56
+KEY = 0101010101010101
+IV = 0000000000000080
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 57
+KEY = 0101010101010101
+IV = 0000000000000040
+PLAINTEXT = 1
+CIPHERTEXT = ?
+
+COUNT = 58
+KEY = 0101010101010101
+IV = 0000000000000020
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 59
+KEY = 0101010101010101
+IV = 0000000000000010
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 60
+KEY = 0101010101010101
+IV = 0000000000000008
+PLAINTEXT = 1
+CIPHERTEXT = ?
+
+COUNT = 61
+KEY = 0101010101010101
+IV = 0000000000000004
+PLAINTEXT = 1
+CIPHERTEXT = ?
+
+COUNT = 62
+KEY = 0101010101010101
+IV = 0000000000000002
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 63
+KEY = 0101010101010101
+IV = 0000000000000001
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+
+[DECRYPT]
+COUNT = 0
+KEY = 0101010101010101
+IV = 8000000000000000
+CIPHERTEXT = 1
+PLAINTEXT = ?
+
+COUNT = 1
+KEY = 0101010101010101
+IV = 4000000000000000
+CIPHERTEXT = 1
+PLAINTEXT = ?
+
+COUNT = 2
+KEY = 0101010101010101
+IV = 2000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 3
+KEY = 0101010101010101
+IV = 1000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 4
+KEY = 0101010101010101
+IV = 0800000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 5
+KEY = 0101010101010101
+IV = 0400000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 6
+KEY = 0101010101010101
+IV = 0200000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 7
+KEY = 0101010101010101
+IV = 0100000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 8
+KEY = 0101010101010101
+IV = 0080000000000000
+CIPHERTEXT = 1
+PLAINTEXT = ?
+
+COUNT = 9
+KEY = 0101010101010101
+IV = 0040000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 10
+KEY = 0101010101010101
+IV = 0020000000000000
+CIPHERTEXT = 1
+PLAINTEXT = ?
+
+COUNT = 11
+KEY = 0101010101010101
+IV = 0010000000000000
+CIPHERTEXT = 1
+PLAINTEXT = ?
+
+COUNT = 12
+KEY = 0101010101010101
+IV = 0008000000000000
+CIPHERTEXT = 1
+PLAINTEXT = ?
+
+COUNT = 13
+KEY = 0101010101010101
+IV = 0004000000000000
+CIPHERTEXT = 1
+PLAINTEXT = ?
+
+COUNT = 14
+KEY = 0101010101010101
+IV = 0002000000000000
+CIPHERTEXT = 1
+PLAINTEXT = ?
+
+COUNT = 15
+KEY = 0101010101010101
+IV = 0001000000000000
+CIPHERTEXT = 1
+PLAINTEXT = ?
+
+COUNT = 16
+KEY = 0101010101010101
+IV = 0000800000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 17
+KEY = 0101010101010101
+IV = 0000400000000000
+CIPHERTEXT = 1
+PLAINTEXT = ?
+
+COUNT = 18
+KEY = 0101010101010101
+IV = 0000200000000000
+CIPHERTEXT = 1
+PLAINTEXT = ?
+
+COUNT = 19
+KEY = 0101010101010101
+IV = 0000100000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 20
+KEY = 0101010101010101
+IV = 0000080000000000
+CIPHERTEXT = 1
+PLAINTEXT = ?
+
+COUNT = 21
+KEY = 0101010101010101
+IV = 0000040000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 22
+KEY = 0101010101010101
+IV = 0000020000000000
+CIPHERTEXT = 1
+PLAINTEXT = ?
+
+COUNT = 23
+KEY = 0101010101010101
+IV = 0000010000000000
+CIPHERTEXT = 1
+PLAINTEXT = ?
+
+COUNT = 24
+KEY = 0101010101010101
+IV = 0000008000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 25
+KEY = 0101010101010101
+IV = 0000004000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 26
+KEY = 0101010101010101
+IV = 0000002000000000
+CIPHERTEXT = 1
+PLAINTEXT = ?
+
+COUNT = 27
+KEY = 0101010101010101
+IV = 0000001000000000
+CIPHERTEXT = 1
+PLAINTEXT = ?
+
+COUNT = 28
+KEY = 0101010101010101
+IV = 0000000800000000
+CIPHERTEXT = 1
+PLAINTEXT = ?
+
+COUNT = 29
+KEY = 0101010101010101
+IV = 0000000400000000
+CIPHERTEXT = 1
+PLAINTEXT = ?
+
+COUNT = 30
+KEY = 0101010101010101
+IV = 0000000200000000
+CIPHERTEXT = 1
+PLAINTEXT = ?
+
+COUNT = 31
+KEY = 0101010101010101
+IV = 0000000100000000
+CIPHERTEXT = 1
+PLAINTEXT = ?
+
+COUNT = 32
+KEY = 0101010101010101
+IV = 0000000080000000
+CIPHERTEXT = 1
+PLAINTEXT = ?
+
+COUNT = 33
+KEY = 0101010101010101
+IV = 0000000040000000
+CIPHERTEXT = 1
+PLAINTEXT = ?
+
+COUNT = 34
+KEY = 0101010101010101
+IV = 0000000020000000
+CIPHERTEXT = 1
+PLAINTEXT = ?
+
+COUNT = 35
+KEY = 0101010101010101
+IV = 0000000010000000
+CIPHERTEXT = 1
+PLAINTEXT = ?
+
+COUNT = 36
+KEY = 0101010101010101
+IV = 0000000008000000
+CIPHERTEXT = 1
+PLAINTEXT = ?
+
+COUNT = 37
+KEY = 0101010101010101
+IV = 0000000004000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 38
+KEY = 0101010101010101
+IV = 0000000002000000
+CIPHERTEXT = 1
+PLAINTEXT = ?
+
+COUNT = 39
+KEY = 0101010101010101
+IV = 0000000001000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 40
+KEY = 0101010101010101
+IV = 0000000000800000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 41
+KEY = 0101010101010101
+IV = 0000000000400000
+CIPHERTEXT = 1
+PLAINTEXT = ?
+
+COUNT = 42
+KEY = 0101010101010101
+IV = 0000000000200000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 43
+KEY = 0101010101010101
+IV = 0000000000100000
+CIPHERTEXT = 1
+PLAINTEXT = ?
+
+COUNT = 44
+KEY = 0101010101010101
+IV = 0000000000080000
+CIPHERTEXT = 1
+PLAINTEXT = ?
+
+COUNT = 45
+KEY = 0101010101010101
+IV = 0000000000040000
+CIPHERTEXT = 1
+PLAINTEXT = ?
+
+COUNT = 46
+KEY = 0101010101010101
+IV = 0000000000020000
+CIPHERTEXT = 1
+PLAINTEXT = ?
+
+COUNT = 47
+KEY = 0101010101010101
+IV = 0000000000010000
+CIPHERTEXT = 1
+PLAINTEXT = ?
+
+COUNT = 48
+KEY = 0101010101010101
+IV = 0000000000008000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 49
+KEY = 0101010101010101
+IV = 0000000000004000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 50
+KEY = 0101010101010101
+IV = 0000000000002000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 51
+KEY = 0101010101010101
+IV = 0000000000001000
+CIPHERTEXT = 1
+PLAINTEXT = ?
+
+COUNT = 52
+KEY = 0101010101010101
+IV = 0000000000000800
+CIPHERTEXT = 1
+PLAINTEXT = ?
+
+COUNT = 53
+KEY = 0101010101010101
+IV = 0000000000000400
+CIPHERTEXT = 1
+PLAINTEXT = ?
+
+COUNT = 54
+KEY = 0101010101010101
+IV = 0000000000000200
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 55
+KEY = 0101010101010101
+IV = 0000000000000100
+CIPHERTEXT = 1
+PLAINTEXT = ?
+
+COUNT = 56
+KEY = 0101010101010101
+IV = 0000000000000080
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 57
+KEY = 0101010101010101
+IV = 0000000000000040
+CIPHERTEXT = 1
+PLAINTEXT = ?
+
+COUNT = 58
+KEY = 0101010101010101
+IV = 0000000000000020
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 59
+KEY = 0101010101010101
+IV = 0000000000000010
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 60
+KEY = 0101010101010101
+IV = 0000000000000008
+CIPHERTEXT = 1
+PLAINTEXT = ?
+
+COUNT = 61
+KEY = 0101010101010101
+IV = 0000000000000004
+CIPHERTEXT = 1
+PLAINTEXT = ?
+
+COUNT = 62
+KEY = 0101010101010101
+IV = 0000000000000002
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 63
+KEY = 0101010101010101
+IV = 0000000000000001
+CIPHERTEXT = 0
+PLAINTEXT = ?
diff --git a/fips/testvectors/des/sample/CFB1permop.sam b/fips/testvectors/des/sample/CFB1permop.sam
new file mode 100644 (file)
index 0000000..f5e9664
--- /dev/null
@@ -0,0 +1,392 @@
+# CAVS 2.0
+# Config Info for : "OpenSSL_DES"
+# PERMUTATION OPERATION - KAT for CFB1
+# State : Encrypt and Decrypt
+# Tue Jun 24 03:11:51 PM
+
+[ENCRYPT]
+COUNT = 0
+KEY = 1046913489980131
+IV = 0000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 1
+KEY = 1007103489988020
+IV = 0000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 2
+KEY = 10071034c8980120
+IV = 0000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 3
+KEY = 1046103489988020
+IV = 0000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 4
+KEY = 1086911519190101
+IV = 0000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 5
+KEY = 1086911519580101
+IV = 0000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 6
+KEY = 5107b01519580101
+IV = 0000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 7
+KEY = 1007b01519190101
+IV = 0000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 8
+KEY = 3107915498080101
+IV = 0000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 9
+KEY = 3107919498080101
+IV = 0000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 10
+KEY = 10079115b9080140
+IV = 0000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 11
+KEY = 3107911598080140
+IV = 0000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 12
+KEY = 1007d01589980101
+IV = 0000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 13
+KEY = 9107911589980101
+IV = 0000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 14
+KEY = 9107d01589190101
+IV = 0000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 15
+KEY = 1007d01598980120
+IV = 0000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 16
+KEY = 1007940498190101
+IV = 0000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 17
+KEY = 0107910491190401
+IV = 0000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 18
+KEY = 0107910491190101
+IV = 0000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 19
+KEY = 0107940491190401
+IV = 0000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 20
+KEY = 19079210981a0101
+IV = 0000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 21
+KEY = 1007911998190801
+IV = 0000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 22
+KEY = 10079119981a0801
+IV = 0000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 23
+KEY = 1007921098190101
+IV = 0000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 24
+KEY = 100791159819010b
+IV = 0000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 25
+KEY = 1004801598190101
+IV = 0000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 26
+KEY = 1004801598190102
+IV = 0000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 27
+KEY = 1004801598190108
+IV = 0000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 28
+KEY = 1002911598100104
+IV = 0000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 29
+KEY = 1002911598190104
+IV = 0000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 30
+KEY = 1002911598100201
+IV = 0000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 31
+KEY = 1002911698100101
+IV = 0000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+
+[DECRYPT]
+COUNT = 0
+KEY = 1046913489980131
+IV = 0000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 1
+KEY = 1007103489988020
+IV = 0000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 2
+KEY = 10071034c8980120
+IV = 0000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 3
+KEY = 1046103489988020
+IV = 0000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 4
+KEY = 1086911519190101
+IV = 0000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 5
+KEY = 1086911519580101
+IV = 0000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 6
+KEY = 5107b01519580101
+IV = 0000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 7
+KEY = 1007b01519190101
+IV = 0000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 8
+KEY = 3107915498080101
+IV = 0000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 9
+KEY = 3107919498080101
+IV = 0000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 10
+KEY = 10079115b9080140
+IV = 0000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 11
+KEY = 3107911598080140
+IV = 0000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 12
+KEY = 1007d01589980101
+IV = 0000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 13
+KEY = 9107911589980101
+IV = 0000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 14
+KEY = 9107d01589190101
+IV = 0000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 15
+KEY = 1007d01598980120
+IV = 0000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 16
+KEY = 1007940498190101
+IV = 0000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 17
+KEY = 0107910491190401
+IV = 0000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 18
+KEY = 0107910491190101
+IV = 0000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 19
+KEY = 0107940491190401
+IV = 0000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 20
+KEY = 19079210981a0101
+IV = 0000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 21
+KEY = 1007911998190801
+IV = 0000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 22
+KEY = 10079119981a0801
+IV = 0000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 23
+KEY = 1007921098190101
+IV = 0000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 24
+KEY = 100791159819010b
+IV = 0000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 25
+KEY = 1004801598190101
+IV = 0000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 26
+KEY = 1004801598190102
+IV = 0000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 27
+KEY = 1004801598190108
+IV = 0000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 28
+KEY = 1002911598100104
+IV = 0000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 29
+KEY = 1002911598190104
+IV = 0000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 30
+KEY = 1002911598100201
+IV = 0000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 31
+KEY = 1002911698100101
+IV = 0000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
diff --git a/fips/testvectors/des/sample/CFB1subtab.sam b/fips/testvectors/des/sample/CFB1subtab.sam
new file mode 100644 (file)
index 0000000..54aff22
--- /dev/null
@@ -0,0 +1,236 @@
+# CAVS 2.0
+# Config Info for : "OpenSSL_DES"
+# SUBSTITUTION TABLE - KAT for CFB1
+# State : Encrypt and Decrypt
+# Tue Jun 24 03:11:51 PM
+
+[ENCRYPT]
+COUNT = 0
+KEY = 7ca110454a1a6e57
+IV = 01a1d6d039776742
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 1
+KEY = 0131d9619dc1376e
+IV = 5cd54ca83def57da
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 2
+KEY = 07a1133e4a0b2686
+IV = 0248d43806f67172
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 3
+KEY = 3849674c2602319e
+IV = 51454b582ddf440a
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 4
+KEY = 04b915ba43feb5b6
+IV = 42fd443059577fa2
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 5
+KEY = 0113b970fd34f2ce
+IV = 059b5e0851cf143a
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 6
+KEY = 0170f175468fb5e6
+IV = 0756d8e0774761d2
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 7
+KEY = 43297fad38e373fe
+IV = 762514b829bf486a
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 8
+KEY = 07a7137045da2a16
+IV = 3bdd119049372802
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 9
+KEY = 04689104c2fd3b2f
+IV = 26955f6835af609a
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 10
+KEY = 37d06bb516cb7546
+IV = 164d5e404f275232
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 11
+KEY = 1f08260d1ac2465e
+IV = 6b056e18759f5cca
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 12
+KEY = 584023641aba6176
+IV = 004bd6ef09176062
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 13
+KEY = 025816164629b007
+IV = 480d39006ee762f2
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 14
+KEY = 49793ebc79b3258f
+IV = 437540c8698f3cfa
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 15
+KEY = 4fb05e1515ab73a7
+IV = 072d43a077075292
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 16
+KEY = 49e95d6d4ca229bf
+IV = 02fe55778117f12a
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 17
+KEY = 018310dc409b26d6
+IV = 1d9d5c5018f728c2
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 18
+KEY = 1c587f1c13924fef
+IV = 305532286d6f295a
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+
+[DECRYPT]
+COUNT = 0
+KEY = 7ca110454a1a6e57
+IV = 01a1d6d039776742
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 1
+KEY = 0131d9619dc1376e
+IV = 5cd54ca83def57da
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 2
+KEY = 07a1133e4a0b2686
+IV = 0248d43806f67172
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 3
+KEY = 3849674c2602319e
+IV = 51454b582ddf440a
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 4
+KEY = 04b915ba43feb5b6
+IV = 42fd443059577fa2
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 5
+KEY = 0113b970fd34f2ce
+IV = 059b5e0851cf143a
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 6
+KEY = 0170f175468fb5e6
+IV = 0756d8e0774761d2
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 7
+KEY = 43297fad38e373fe
+IV = 762514b829bf486a
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 8
+KEY = 07a7137045da2a16
+IV = 3bdd119049372802
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 9
+KEY = 04689104c2fd3b2f
+IV = 26955f6835af609a
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 10
+KEY = 37d06bb516cb7546
+IV = 164d5e404f275232
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 11
+KEY = 1f08260d1ac2465e
+IV = 6b056e18759f5cca
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 12
+KEY = 584023641aba6176
+IV = 004bd6ef09176062
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 13
+KEY = 025816164629b007
+IV = 480d39006ee762f2
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 14
+KEY = 49793ebc79b3258f
+IV = 437540c8698f3cfa
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 15
+KEY = 4fb05e1515ab73a7
+IV = 072d43a077075292
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 16
+KEY = 49e95d6d4ca229bf
+IV = 02fe55778117f12a
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 17
+KEY = 018310dc409b26d6
+IV = 1d9d5c5018f728c2
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 18
+KEY = 1c587f1c13924fef
+IV = 305532286d6f295a
+CIPHERTEXT = 0
+PLAINTEXT = ?
diff --git a/fips/testvectors/des/sample/CFB1varkey.sam b/fips/testvectors/des/sample/CFB1varkey.sam
new file mode 100644 (file)
index 0000000..12897b5
--- /dev/null
@@ -0,0 +1,680 @@
+# CAVS 2.0
+# Config Info for : "OpenSSL_DES"
+# VARIABLE KEY - KAT for CFB1
+# State : Encrypt and Decrypt
+# Tue Jun 24 03:11:51 PM
+
+[ENCRYPT]
+COUNT = 0
+KEY = 8001010101010101
+IV = 0000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 1
+KEY = 4001010101010101
+IV = 0000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 2
+KEY = 2001010101010101
+IV = 0000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 3
+KEY = 1001010101010101
+IV = 0000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 4
+KEY = 0801010101010101
+IV = 0000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 5
+KEY = 0401010101010101
+IV = 0000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 6
+KEY = 0201010101010101
+IV = 0000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 7
+KEY = 0180010101010101
+IV = 0000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 8
+KEY = 0140010101010101
+IV = 0000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 9
+KEY = 0120010101010101
+IV = 0000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 10
+KEY = 0110010101010101
+IV = 0000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 11
+KEY = 0108010101010101
+IV = 0000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 12
+KEY = 0104010101010101
+IV = 0000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 13
+KEY = 0102010101010101
+IV = 0000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 14
+KEY = 0101800101010101
+IV = 0000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 15
+KEY = 0101400101010101
+IV = 0000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 16
+KEY = 0101200101010101
+IV = 0000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 17
+KEY = 0101100101010101
+IV = 0000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 18
+KEY = 0101080101010101
+IV = 0000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 19
+KEY = 0101040101010101
+IV = 0000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 20
+KEY = 0101020101010101
+IV = 0000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 21
+KEY = 0101018001010101
+IV = 0000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 22
+KEY = 0101014001010101
+IV = 0000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 23
+KEY = 0101012001010101
+IV = 0000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 24
+KEY = 0101011001010101
+IV = 0000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 25
+KEY = 0101010801010101
+IV = 0000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 26
+KEY = 0101010401010101
+IV = 0000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 27
+KEY = 0101010201010101
+IV = 0000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 28
+KEY = 0101010180010101
+IV = 0000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 29
+KEY = 0101010140010101
+IV = 0000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 30
+KEY = 0101010120010101
+IV = 0000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 31
+KEY = 0101010110010101
+IV = 0000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 32
+KEY = 0101010108010101
+IV = 0000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 33
+KEY = 0101010104010101
+IV = 0000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 34
+KEY = 0101010102010101
+IV = 0000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 35
+KEY = 0101010101800101
+IV = 0000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 36
+KEY = 0101010101400101
+IV = 0000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 37
+KEY = 0101010101200101
+IV = 0000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 38
+KEY = 0101010101100101
+IV = 0000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 39
+KEY = 0101010101080101
+IV = 0000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 40
+KEY = 0101010101040101
+IV = 0000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 41
+KEY = 0101010101020101
+IV = 0000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 42
+KEY = 0101010101018001
+IV = 0000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 43
+KEY = 0101010101014001
+IV = 0000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 44
+KEY = 0101010101012001
+IV = 0000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 45
+KEY = 0101010101011001
+IV = 0000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 46
+KEY = 0101010101010801
+IV = 0000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 47
+KEY = 0101010101010401
+IV = 0000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 48
+KEY = 0101010101010201
+IV = 0000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 49
+KEY = 0101010101010180
+IV = 0000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 50
+KEY = 0101010101010140
+IV = 0000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 51
+KEY = 0101010101010120
+IV = 0000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 52
+KEY = 0101010101010110
+IV = 0000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 53
+KEY = 0101010101010108
+IV = 0000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 54
+KEY = 0101010101010104
+IV = 0000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 55
+KEY = 0101010101010102
+IV = 0000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+
+[DECRYPT]
+COUNT = 0
+KEY = 8001010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 1
+KEY = 4001010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 2
+KEY = 2001010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 3
+KEY = 1001010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 4
+KEY = 0801010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 5
+KEY = 0401010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 6
+KEY = 0201010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 7
+KEY = 0180010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 8
+KEY = 0140010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 9
+KEY = 0120010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 10
+KEY = 0110010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 11
+KEY = 0108010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 12
+KEY = 0104010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 13
+KEY = 0102010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 14
+KEY = 0101800101010101
+IV = 0000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 15
+KEY = 0101400101010101
+IV = 0000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 16
+KEY = 0101200101010101
+IV = 0000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 17
+KEY = 0101100101010101
+IV = 0000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 18
+KEY = 0101080101010101
+IV = 0000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 19
+KEY = 0101040101010101
+IV = 0000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 20
+KEY = 0101020101010101
+IV = 0000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 21
+KEY = 0101018001010101
+IV = 0000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 22
+KEY = 0101014001010101
+IV = 0000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 23
+KEY = 0101012001010101
+IV = 0000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 24
+KEY = 0101011001010101
+IV = 0000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 25
+KEY = 0101010801010101
+IV = 0000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 26
+KEY = 0101010401010101
+IV = 0000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 27
+KEY = 0101010201010101
+IV = 0000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 28
+KEY = 0101010180010101
+IV = 0000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 29
+KEY = 0101010140010101
+IV = 0000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 30
+KEY = 0101010120010101
+IV = 0000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 31
+KEY = 0101010110010101
+IV = 0000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 32
+KEY = 0101010108010101
+IV = 0000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 33
+KEY = 0101010104010101
+IV = 0000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 34
+KEY = 0101010102010101
+IV = 0000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 35
+KEY = 0101010101800101
+IV = 0000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 36
+KEY = 0101010101400101
+IV = 0000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 37
+KEY = 0101010101200101
+IV = 0000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 38
+KEY = 0101010101100101
+IV = 0000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 39
+KEY = 0101010101080101
+IV = 0000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 40
+KEY = 0101010101040101
+IV = 0000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 41
+KEY = 0101010101020101
+IV = 0000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 42
+KEY = 0101010101018001
+IV = 0000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 43
+KEY = 0101010101014001
+IV = 0000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 44
+KEY = 0101010101012001
+IV = 0000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 45
+KEY = 0101010101011001
+IV = 0000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 46
+KEY = 0101010101010801
+IV = 0000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 47
+KEY = 0101010101010401
+IV = 0000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 48
+KEY = 0101010101010201
+IV = 0000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 49
+KEY = 0101010101010180
+IV = 0000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 50
+KEY = 0101010101010140
+IV = 0000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 51
+KEY = 0101010101010120
+IV = 0000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 52
+KEY = 0101010101010110
+IV = 0000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 53
+KEY = 0101010101010108
+IV = 0000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 54
+KEY = 0101010101010104
+IV = 0000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 55
+KEY = 0101010101010102
+IV = 0000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
diff --git a/fips/testvectors/des/sample/CFB1vartext.sam b/fips/testvectors/des/sample/CFB1vartext.sam
new file mode 100644 (file)
index 0000000..429cf37
--- /dev/null
@@ -0,0 +1,776 @@
+# CAVS 2.0
+# Config Info for : "OpenSSL_DES"
+# VARIABLE PLAINTEXT/CIPHERTEXT - KAT for CFB1
+# State : Encrypt and Decrypt
+# Tue Jun 24 03:11:51 PM
+
+[ENCRYPT]
+COUNT = 0
+KEY = 0101010101010101
+IV = 8000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 1
+KEY = 0101010101010101
+IV = 4000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 2
+KEY = 0101010101010101
+IV = 2000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 3
+KEY = 0101010101010101
+IV = 1000000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 4
+KEY = 0101010101010101
+IV = 0800000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 5
+KEY = 0101010101010101
+IV = 0400000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 6
+KEY = 0101010101010101
+IV = 0200000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 7
+KEY = 0101010101010101
+IV = 0100000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 8
+KEY = 0101010101010101
+IV = 0080000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 9
+KEY = 0101010101010101
+IV = 0040000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 10
+KEY = 0101010101010101
+IV = 0020000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 11
+KEY = 0101010101010101
+IV = 0010000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 12
+KEY = 0101010101010101
+IV = 0008000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 13
+KEY = 0101010101010101
+IV = 0004000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 14
+KEY = 0101010101010101
+IV = 0002000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 15
+KEY = 0101010101010101
+IV = 0001000000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 16
+KEY = 0101010101010101
+IV = 0000800000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 17
+KEY = 0101010101010101
+IV = 0000400000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 18
+KEY = 0101010101010101
+IV = 0000200000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 19
+KEY = 0101010101010101
+IV = 0000100000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 20
+KEY = 0101010101010101
+IV = 0000080000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 21
+KEY = 0101010101010101
+IV = 0000040000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 22
+KEY = 0101010101010101
+IV = 0000020000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 23
+KEY = 0101010101010101
+IV = 0000010000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 24
+KEY = 0101010101010101
+IV = 0000008000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 25
+KEY = 0101010101010101
+IV = 0000004000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 26
+KEY = 0101010101010101
+IV = 0000002000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 27
+KEY = 0101010101010101
+IV = 0000001000000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 28
+KEY = 0101010101010101
+IV = 0000000800000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 29
+KEY = 0101010101010101
+IV = 0000000400000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 30
+KEY = 0101010101010101
+IV = 0000000200000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 31
+KEY = 0101010101010101
+IV = 0000000100000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 32
+KEY = 0101010101010101
+IV = 0000000080000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 33
+KEY = 0101010101010101
+IV = 0000000040000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 34
+KEY = 0101010101010101
+IV = 0000000020000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 35
+KEY = 0101010101010101
+IV = 0000000010000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 36
+KEY = 0101010101010101
+IV = 0000000008000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 37
+KEY = 0101010101010101
+IV = 0000000004000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 38
+KEY = 0101010101010101
+IV = 0000000002000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 39
+KEY = 0101010101010101
+IV = 0000000001000000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 40
+KEY = 0101010101010101
+IV = 0000000000800000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 41
+KEY = 0101010101010101
+IV = 0000000000400000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 42
+KEY = 0101010101010101
+IV = 0000000000200000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 43
+KEY = 0101010101010101
+IV = 0000000000100000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 44
+KEY = 0101010101010101
+IV = 0000000000080000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 45
+KEY = 0101010101010101
+IV = 0000000000040000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 46
+KEY = 0101010101010101
+IV = 0000000000020000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 47
+KEY = 0101010101010101
+IV = 0000000000010000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 48
+KEY = 0101010101010101
+IV = 0000000000008000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 49
+KEY = 0101010101010101
+IV = 0000000000004000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 50
+KEY = 0101010101010101
+IV = 0000000000002000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 51
+KEY = 0101010101010101
+IV = 0000000000001000
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 52
+KEY = 0101010101010101
+IV = 0000000000000800
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 53
+KEY = 0101010101010101
+IV = 0000000000000400
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 54
+KEY = 0101010101010101
+IV = 0000000000000200
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 55
+KEY = 0101010101010101
+IV = 0000000000000100
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 56
+KEY = 0101010101010101
+IV = 0000000000000080
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 57
+KEY = 0101010101010101
+IV = 0000000000000040
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 58
+KEY = 0101010101010101
+IV = 0000000000000020
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 59
+KEY = 0101010101010101
+IV = 0000000000000010
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 60
+KEY = 0101010101010101
+IV = 0000000000000008
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 61
+KEY = 0101010101010101
+IV = 0000000000000004
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 62
+KEY = 0101010101010101
+IV = 0000000000000002
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+COUNT = 63
+KEY = 0101010101010101
+IV = 0000000000000001
+PLAINTEXT = 0
+CIPHERTEXT = ?
+
+
+[DECRYPT]
+COUNT = 0
+KEY = 0101010101010101
+IV = 8000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 1
+KEY = 0101010101010101
+IV = 4000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 2
+KEY = 0101010101010101
+IV = 2000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 3
+KEY = 0101010101010101
+IV = 1000000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 4
+KEY = 0101010101010101
+IV = 0800000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 5
+KEY = 0101010101010101
+IV = 0400000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 6
+KEY = 0101010101010101
+IV = 0200000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 7
+KEY = 0101010101010101
+IV = 0100000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 8
+KEY = 0101010101010101
+IV = 0080000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 9
+KEY = 0101010101010101
+IV = 0040000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 10
+KEY = 0101010101010101
+IV = 0020000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 11
+KEY = 0101010101010101
+IV = 0010000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 12
+KEY = 0101010101010101
+IV = 0008000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 13
+KEY = 0101010101010101
+IV = 0004000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 14
+KEY = 0101010101010101
+IV = 0002000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 15
+KEY = 0101010101010101
+IV = 0001000000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 16
+KEY = 0101010101010101
+IV = 0000800000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 17
+KEY = 0101010101010101
+IV = 0000400000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 18
+KEY = 0101010101010101
+IV = 0000200000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 19
+KEY = 0101010101010101
+IV = 0000100000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 20
+KEY = 0101010101010101
+IV = 0000080000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 21
+KEY = 0101010101010101
+IV = 0000040000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 22
+KEY = 0101010101010101
+IV = 0000020000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 23
+KEY = 0101010101010101
+IV = 0000010000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 24
+KEY = 0101010101010101
+IV = 0000008000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 25
+KEY = 0101010101010101
+IV = 0000004000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 26
+KEY = 0101010101010101
+IV = 0000002000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 27
+KEY = 0101010101010101
+IV = 0000001000000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 28
+KEY = 0101010101010101
+IV = 0000000800000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 29
+KEY = 0101010101010101
+IV = 0000000400000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 30
+KEY = 0101010101010101
+IV = 0000000200000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 31
+KEY = 0101010101010101
+IV = 0000000100000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 32
+KEY = 0101010101010101
+IV = 0000000080000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 33
+KEY = 0101010101010101
+IV = 0000000040000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 34
+KEY = 0101010101010101
+IV = 0000000020000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 35
+KEY = 0101010101010101
+IV = 0000000010000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 36
+KEY = 0101010101010101
+IV = 0000000008000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 37
+KEY = 0101010101010101
+IV = 0000000004000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 38
+KEY = 0101010101010101
+IV = 0000000002000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 39
+KEY = 0101010101010101
+IV = 0000000001000000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 40
+KEY = 0101010101010101
+IV = 0000000000800000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 41
+KEY = 0101010101010101
+IV = 0000000000400000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 42
+KEY = 0101010101010101
+IV = 0000000000200000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 43
+KEY = 0101010101010101
+IV = 0000000000100000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 44
+KEY = 0101010101010101
+IV = 0000000000080000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 45
+KEY = 0101010101010101
+IV = 0000000000040000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 46
+KEY = 0101010101010101
+IV = 0000000000020000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 47
+KEY = 0101010101010101
+IV = 0000000000010000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 48
+KEY = 0101010101010101
+IV = 0000000000008000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 49
+KEY = 0101010101010101
+IV = 0000000000004000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 50
+KEY = 0101010101010101
+IV = 0000000000002000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 51
+KEY = 0101010101010101
+IV = 0000000000001000
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 52
+KEY = 0101010101010101
+IV = 0000000000000800
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 53
+KEY = 0101010101010101
+IV = 0000000000000400
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 54
+KEY = 0101010101010101
+IV = 0000000000000200
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 55
+KEY = 0101010101010101
+IV = 0000000000000100
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 56
+KEY = 0101010101010101
+IV = 0000000000000080
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 57
+KEY = 0101010101010101
+IV = 0000000000000040
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 58
+KEY = 0101010101010101
+IV = 0000000000000020
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 59
+KEY = 0101010101010101
+IV = 0000000000000010
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 60
+KEY = 0101010101010101
+IV = 0000000000000008
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 61
+KEY = 0101010101010101
+IV = 0000000000000004
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 62
+KEY = 0101010101010101
+IV = 0000000000000002
+CIPHERTEXT = 0
+PLAINTEXT = ?
+
+COUNT = 63
+KEY = 0101010101010101
+IV = 0000000000000001
+CIPHERTEXT = 0
+PLAINTEXT = ?
diff --git a/fips/testvectors/des/sample/CFB64MMT.sam b/fips/testvectors/des/sample/CFB64MMT.sam
new file mode 100644 (file)
index 0000000..12c85b0
--- /dev/null
@@ -0,0 +1,46 @@
+# CAVS 2.0
+# Config Info for : "OpenSSL_DES"
+# DES Multi Block Message Test for CFB64
+# State : Encrypt and Decrypt
+# Tue Jun 24 03:13:44 PM
+
+[ENCRYPT]
+
+COUNT = 0
+KEY = fef7df9b403b377c
+IV = 20b77d3db64fe6a6
+PLAINTEXT = 6a0bb874a8c575bd
+CIPHERTEXT = e68af8741b59768a
+
+COUNT = 1
+KEY = 9b162a071f015802
+IV = 2f83cf4060546a84
+PLAINTEXT = 4b45f67cca2d506e2d9a8c7623ccf57f
+CIPHERTEXT = 1b917a00a1ca396fdca8359f1c152784
+
+COUNT = 2
+KEY = 57c258704f3d1319
+IV = ad5be18ff3ed3c90
+PLAINTEXT = 38d9c87916a0900608427eff0f8fb05f53e0adddb8579b58
+CIPHERTEXT = a18dd6783fcfae6aada094a1410981c06bfe701fefefcabd
+
+[DECRYPT]
+
+COUNT = 0
+KEY = 1f51404c46f73dd3
+IV = df2f2488c53ef366
+CIPHERTEXT = fd9938732ea86716
+PLAINTEXT = 09642c008e9c5399
+
+COUNT = 1
+KEY = 64f8e07351a2dcd5
+IV = e1a6cddf44b62d55
+CIPHERTEXT = 2b0883480a8210f83784af6936d12b0f
+PLAINTEXT = 6c369448ce057f653ec8d18a790bbcaf
+
+COUNT = 2
+KEY = e640b6bca27ff16e
+IV = 4bb9f172626c2a0e
+CIPHERTEXT = b27e2115d13ec5ba71f7159a9c5697761ec992ca9741c3ae
+PLAINTEXT = 347889c0b86d54846b63b0dff4fef57cb03472f697bf312a
+
diff --git a/fips/testvectors/des/sample/CFB64Monte.sam b/fips/testvectors/des/sample/CFB64Monte.sam
new file mode 100644 (file)
index 0000000..dcc49ad
--- /dev/null
@@ -0,0 +1,58 @@
+# CAVS 2.0
+# Config Info for : "OpenSSL_DES"
+# DES Monte Carlo (Modes) Test for CFB64
+# State : Encrypt and Decrypt
+# Tue Jun 24 03:13:44 PM
+
+[ENCRYPT]
+
+COUNT = 0
+KEY = 62d65740708019f1
+IV = 14544ea4813c49d9
+PLAINTEXT = c3acc89b9b6037ef
+CIPHERTEXT = 7971feb937b59ea6
+
+COUNT = 1
+KEY = 1aa7a8f846348657
+IV = 7971feb937b59ea6
+PLAINTEXT = 5fef272cad05c503
+CIPHERTEXT = 31a740d9628e6891
+
+COUNT = 2
+KEY = 2a01e92025baefc7
+IV = 31a740d9628e6891
+PLAINTEXT = 30a0cbd9f6ba53c0
+CIPHERTEXT = 2ef096c959e1ce8d
+
+COUNT = 3
+KEY = 04f17fe97c5b204a
+IV = 2ef096c959e1ce8d
+PLAINTEXT = 414deedf626f2c69
+CIPHERTEXT = 743c364c6d0ae969
+
+[DECRYPT]
+
+COUNT = 0
+KEY = 1938ce9d3170e943
+IV = 50da37dea25a9471
+CIPHERTEXT = ac81a4c963661942
+PLAINTEXT = 1fe83b43a29911d7
+
+COUNT = 1
+KEY = 07d0f4df92e9f894
+IV = 244612f97ea1411c
+CIPHERTEXT = 3bae29badc3850cb
+PLAINTEXT = dfa1ee0c6766bd6a
+
+COUNT = 2
+KEY = d9701ad3f48f45fe
+IV = e27febcc6224e3e5
+CIPHERTEXT = 3dde05c005425e8f
+PLAINTEXT = f3298b575c718315
+
+COUNT = 3
+KEY = 2a589185a8fec7ea
+IV = 079aecf37685fa02
+CIPHERTEXT = f4b367a42af47917
+PLAINTEXT = 90409dfa9fff0d6d
+
diff --git a/fips/testvectors/des/sample/CFB64invperm.sam b/fips/testvectors/des/sample/CFB64invperm.sam
new file mode 100644 (file)
index 0000000..3f59175
--- /dev/null
@@ -0,0 +1,776 @@
+# CAVS 2.0
+# Config Info for : "OpenSSL_DES"
+# INVERSE PERMUTATION - KAT for CFB64
+# State : Encrypt and Decrypt
+# Tue Jun 24 03:11:51 PM
+
+[ENCRYPT]
+COUNT = 0
+KEY = 0101010101010101
+IV = 8000000000000000
+PLAINTEXT = 95f8a5e5dd31d900
+CIPHERTEXT = ?
+
+COUNT = 1
+KEY = 0101010101010101
+IV = 4000000000000000
+PLAINTEXT = dd7f121ca5015619
+CIPHERTEXT = ?
+
+COUNT = 2
+KEY = 0101010101010101
+IV = 2000000000000000
+PLAINTEXT = 2e8653104f3834ea
+CIPHERTEXT = ?
+
+COUNT = 3
+KEY = 0101010101010101
+IV = 1000000000000000
+PLAINTEXT = 4bd388ff6cd81d4f
+CIPHERTEXT = ?
+
+COUNT = 4
+KEY = 0101010101010101
+IV = 0800000000000000
+PLAINTEXT = 20b9e767b2fb1456
+CIPHERTEXT = ?
+
+COUNT = 5
+KEY = 0101010101010101
+IV = 0400000000000000
+PLAINTEXT = 55579380d77138ef
+CIPHERTEXT = ?
+
+COUNT = 6
+KEY = 0101010101010101
+IV = 0200000000000000
+PLAINTEXT = 6cc5defaaf04512f
+CIPHERTEXT = ?
+
+COUNT = 7
+KEY = 0101010101010101
+IV = 0100000000000000
+PLAINTEXT = 0d9f279ba5d87260
+CIPHERTEXT = ?
+
+COUNT = 8
+KEY = 0101010101010101
+IV = 0080000000000000
+PLAINTEXT = d9031b0271bd5a0a
+CIPHERTEXT = ?
+
+COUNT = 9
+KEY = 0101010101010101
+IV = 0040000000000000
+PLAINTEXT = 424250b37c3dd951
+CIPHERTEXT = ?
+
+COUNT = 10
+KEY = 0101010101010101
+IV = 0020000000000000
+PLAINTEXT = b8061b7ecd9a21e5
+CIPHERTEXT = ?
+
+COUNT = 11
+KEY = 0101010101010101
+IV = 0010000000000000
+PLAINTEXT = f15d0f286b65bd28
+CIPHERTEXT = ?
+
+COUNT = 12
+KEY = 0101010101010101
+IV = 0008000000000000
+PLAINTEXT = add0cc8d6e5deba1
+CIPHERTEXT = ?
+
+COUNT = 13
+KEY = 0101010101010101
+IV = 0004000000000000
+PLAINTEXT = e6d5f82752ad63d1
+CIPHERTEXT = ?
+
+COUNT = 14
+KEY = 0101010101010101
+IV = 0002000000000000
+PLAINTEXT = ecbfe3bd3f591a5e
+CIPHERTEXT = ?
+
+COUNT = 15
+KEY = 0101010101010101
+IV = 0001000000000000
+PLAINTEXT = f356834379d165cd
+CIPHERTEXT = ?
+
+COUNT = 16
+KEY = 0101010101010101
+IV = 0000800000000000
+PLAINTEXT = 2b9f982f20037fa9
+CIPHERTEXT = ?
+
+COUNT = 17
+KEY = 0101010101010101
+IV = 0000400000000000
+PLAINTEXT = 889de068a16f0be6
+CIPHERTEXT = ?
+
+COUNT = 18
+KEY = 0101010101010101
+IV = 0000200000000000
+PLAINTEXT = e19e275d846a1298
+CIPHERTEXT = ?
+
+COUNT = 19
+KEY = 0101010101010101
+IV = 0000100000000000
+PLAINTEXT = 329a8ed523d71aec
+CIPHERTEXT = ?
+
+COUNT = 20
+KEY = 0101010101010101
+IV = 0000080000000000
+PLAINTEXT = e7fce22557d23c97
+CIPHERTEXT = ?
+
+COUNT = 21
+KEY = 0101010101010101
+IV = 0000040000000000
+PLAINTEXT = 12a9f5817ff2d65d
+CIPHERTEXT = ?
+
+COUNT = 22
+KEY = 0101010101010101
+IV = 0000020000000000
+PLAINTEXT = a484c3ad38dc9c19
+CIPHERTEXT = ?
+
+COUNT = 23
+KEY = 0101010101010101
+IV = 0000010000000000
+PLAINTEXT = fbe00a8a1ef8ad72
+CIPHERTEXT = ?
+
+COUNT = 24
+KEY = 0101010101010101
+IV = 0000008000000000
+PLAINTEXT = 750d079407521363
+CIPHERTEXT = ?
+
+COUNT = 25
+KEY = 0101010101010101
+IV = 0000004000000000
+PLAINTEXT = 64feed9c724c2faf
+CIPHERTEXT = ?
+
+COUNT = 26
+KEY = 0101010101010101
+IV = 0000002000000000
+PLAINTEXT = f02b263b328e2b60
+CIPHERTEXT = ?
+
+COUNT = 27
+KEY = 0101010101010101
+IV = 0000001000000000
+PLAINTEXT = 9d64555a9a10b852
+CIPHERTEXT = ?
+
+COUNT = 28
+KEY = 0101010101010101
+IV = 0000000800000000
+PLAINTEXT = d106ff0bed5255d7
+CIPHERTEXT = ?
+
+COUNT = 29
+KEY = 0101010101010101
+IV = 0000000400000000
+PLAINTEXT = e1652c6b138c64a5
+CIPHERTEXT = ?
+
+COUNT = 30
+KEY = 0101010101010101
+IV = 0000000200000000
+PLAINTEXT = e428581186ec8f46
+CIPHERTEXT = ?
+
+COUNT = 31
+KEY = 0101010101010101
+IV = 0000000100000000
+PLAINTEXT = aeb5f5ede22d1a36
+CIPHERTEXT = ?
+
+COUNT = 32
+KEY = 0101010101010101
+IV = 0000000080000000
+PLAINTEXT = e943d7568aec0c5c
+CIPHERTEXT = ?
+
+COUNT = 33
+KEY = 0101010101010101
+IV = 0000000040000000
+PLAINTEXT = df98c8276f54b04b
+CIPHERTEXT = ?
+
+COUNT = 34
+KEY = 0101010101010101
+IV = 0000000020000000
+PLAINTEXT = b160e4680f6c696f
+CIPHERTEXT = ?
+
+COUNT = 35
+KEY = 0101010101010101
+IV = 0000000010000000
+PLAINTEXT = fa0752b07d9c4ab8
+CIPHERTEXT = ?
+
+COUNT = 36
+KEY = 0101010101010101
+IV = 0000000008000000
+PLAINTEXT = ca3a2b036dbc8502
+CIPHERTEXT = ?
+
+COUNT = 37
+KEY = 0101010101010101
+IV = 0000000004000000
+PLAINTEXT = 5e0905517bb59bcf
+CIPHERTEXT = ?
+
+COUNT = 38
+KEY = 0101010101010101
+IV = 0000000002000000
+PLAINTEXT = 814eeb3b91d90726
+CIPHERTEXT = ?
+
+COUNT = 39
+KEY = 0101010101010101
+IV = 0000000001000000
+PLAINTEXT = 4d49db1532919c9f
+CIPHERTEXT = ?
+
+COUNT = 40
+KEY = 0101010101010101
+IV = 0000000000800000
+PLAINTEXT = 25eb5fc3f8cf0621
+CIPHERTEXT = ?
+
+COUNT = 41
+KEY = 0101010101010101
+IV = 0000000000400000
+PLAINTEXT = ab6a20c0620d1c6f
+CIPHERTEXT = ?
+
+COUNT = 42
+KEY = 0101010101010101
+IV = 0000000000200000
+PLAINTEXT = 79e90dbc98f92cca
+CIPHERTEXT = ?
+
+COUNT = 43
+KEY = 0101010101010101
+IV = 0000000000100000
+PLAINTEXT = 866ecedd8072bb0e
+CIPHERTEXT = ?
+
+COUNT = 44
+KEY = 0101010101010101
+IV = 0000000000080000
+PLAINTEXT = 8b54536f2f3e64a8
+CIPHERTEXT = ?
+
+COUNT = 45
+KEY = 0101010101010101
+IV = 0000000000040000
+PLAINTEXT = ea51d3975595b86b
+CIPHERTEXT = ?
+
+COUNT = 46
+KEY = 0101010101010101
+IV = 0000000000020000
+PLAINTEXT = caffc6ac4542de31
+CIPHERTEXT = ?
+
+COUNT = 47
+KEY = 0101010101010101
+IV = 0000000000010000
+PLAINTEXT = 8dd45a2ddf90796c
+CIPHERTEXT = ?
+
+COUNT = 48
+KEY = 0101010101010101
+IV = 0000000000008000
+PLAINTEXT = 1029d55e880ec2d0
+CIPHERTEXT = ?
+
+COUNT = 49
+KEY = 0101010101010101
+IV = 0000000000004000
+PLAINTEXT = 5d86cb23639dbea9
+CIPHERTEXT = ?
+
+COUNT = 50
+KEY = 0101010101010101
+IV = 0000000000002000
+PLAINTEXT = 1d1ca853ae7c0c5f
+CIPHERTEXT = ?
+
+COUNT = 51
+KEY = 0101010101010101
+IV = 0000000000001000
+PLAINTEXT = ce332329248f3228
+CIPHERTEXT = ?
+
+COUNT = 52
+KEY = 0101010101010101
+IV = 0000000000000800
+PLAINTEXT = 8405d1abe24fb942
+CIPHERTEXT = ?
+
+COUNT = 53
+KEY = 0101010101010101
+IV = 0000000000000400
+PLAINTEXT = e643d78090ca4207
+CIPHERTEXT = ?
+
+COUNT = 54
+KEY = 0101010101010101
+IV = 0000000000000200
+PLAINTEXT = 48221b9937748a23
+CIPHERTEXT = ?
+
+COUNT = 55
+KEY = 0101010101010101
+IV = 0000000000000100
+PLAINTEXT = dd7c0bbd61fafd54
+CIPHERTEXT = ?
+
+COUNT = 56
+KEY = 0101010101010101
+IV = 0000000000000080
+PLAINTEXT = 2fbc291a570db5c4
+CIPHERTEXT = ?
+
+COUNT = 57
+KEY = 0101010101010101
+IV = 0000000000000040
+PLAINTEXT = e07c30d7e4e26e12
+CIPHERTEXT = ?
+
+COUNT = 58
+KEY = 0101010101010101
+IV = 0000000000000020
+PLAINTEXT = 0953e2258e8e90a1
+CIPHERTEXT = ?
+
+COUNT = 59
+KEY = 0101010101010101
+IV = 0000000000000010
+PLAINTEXT = 5b711bc4ceebf2ee
+CIPHERTEXT = ?
+
+COUNT = 60
+KEY = 0101010101010101
+IV = 0000000000000008
+PLAINTEXT = cc083f1e6d9e85f6
+CIPHERTEXT = ?
+
+COUNT = 61
+KEY = 0101010101010101
+IV = 0000000000000004
+PLAINTEXT = d2fd8867d50d2dfe
+CIPHERTEXT = ?
+
+COUNT = 62
+KEY = 0101010101010101
+IV = 0000000000000002
+PLAINTEXT = 06e7ea22ce92708f
+CIPHERTEXT = ?
+
+COUNT = 63
+KEY = 0101010101010101
+IV = 0000000000000001
+PLAINTEXT = 166b40b44aba4bd6
+CIPHERTEXT = ?
+
+
+[DECRYPT]
+COUNT = 0
+KEY = 0101010101010101
+IV = 8000000000000000
+CIPHERTEXT = 95f8a5e5dd31d900
+PLAINTEXT = ?
+
+COUNT = 1
+KEY = 0101010101010101
+IV = 4000000000000000
+CIPHERTEXT = dd7f121ca5015619
+PLAINTEXT = ?
+
+COUNT = 2
+KEY = 0101010101010101
+IV = 2000000000000000
+CIPHERTEXT = 2e8653104f3834ea
+PLAINTEXT = ?
+
+COUNT = 3
+KEY = 0101010101010101
+IV = 1000000000000000
+CIPHERTEXT = 4bd388ff6cd81d4f
+PLAINTEXT = ?
+
+COUNT = 4
+KEY = 0101010101010101
+IV = 0800000000000000
+CIPHERTEXT = 20b9e767b2fb1456
+PLAINTEXT = ?
+
+COUNT = 5
+KEY = 0101010101010101
+IV = 0400000000000000
+CIPHERTEXT = 55579380d77138ef
+PLAINTEXT = ?
+
+COUNT = 6
+KEY = 0101010101010101
+IV = 0200000000000000
+CIPHERTEXT = 6cc5defaaf04512f
+PLAINTEXT = ?
+
+COUNT = 7
+KEY = 0101010101010101
+IV = 0100000000000000
+CIPHERTEXT = 0d9f279ba5d87260
+PLAINTEXT = ?
+
+COUNT = 8
+KEY = 0101010101010101
+IV = 0080000000000000
+CIPHERTEXT = d9031b0271bd5a0a
+PLAINTEXT = ?
+
+COUNT = 9
+KEY = 0101010101010101
+IV = 0040000000000000
+CIPHERTEXT = 424250b37c3dd951
+PLAINTEXT = ?
+
+COUNT = 10
+KEY = 0101010101010101
+IV = 0020000000000000
+CIPHERTEXT = b8061b7ecd9a21e5
+PLAINTEXT = ?
+
+COUNT = 11
+KEY = 0101010101010101
+IV = 0010000000000000
+CIPHERTEXT = f15d0f286b65bd28
+PLAINTEXT = ?
+
+COUNT = 12
+KEY = 0101010101010101
+IV = 0008000000000000
+CIPHERTEXT = add0cc8d6e5deba1
+PLAINTEXT = ?
+
+COUNT = 13
+KEY = 0101010101010101
+IV = 0004000000000000
+CIPHERTEXT = e6d5f82752ad63d1
+PLAINTEXT = ?
+
+COUNT = 14
+KEY = 0101010101010101
+IV = 0002000000000000
+CIPHERTEXT = ecbfe3bd3f591a5e
+PLAINTEXT = ?
+
+COUNT = 15
+KEY = 0101010101010101
+IV = 0001000000000000
+CIPHERTEXT = f356834379d165cd
+PLAINTEXT = ?
+
+COUNT = 16
+KEY = 0101010101010101
+IV = 0000800000000000
+CIPHERTEXT = 2b9f982f20037fa9
+PLAINTEXT = ?
+
+COUNT = 17
+KEY = 0101010101010101
+IV = 0000400000000000
+CIPHERTEXT = 889de068a16f0be6
+PLAINTEXT = ?
+
+COUNT = 18
+KEY = 0101010101010101
+IV = 0000200000000000
+CIPHERTEXT = e19e275d846a1298
+PLAINTEXT = ?
+
+COUNT = 19
+KEY = 0101010101010101
+IV = 0000100000000000
+CIPHERTEXT = 329a8ed523d71aec
+PLAINTEXT = ?
+
+COUNT = 20
+KEY = 0101010101010101
+IV = 0000080000000000
+CIPHERTEXT = e7fce22557d23c97
+PLAINTEXT = ?
+
+COUNT = 21
+KEY = 0101010101010101
+IV = 0000040000000000
+CIPHERTEXT = 12a9f5817ff2d65d
+PLAINTEXT = ?
+
+COUNT = 22
+KEY = 0101010101010101
+IV = 0000020000000000
+CIPHERTEXT = a484c3ad38dc9c19
+PLAINTEXT = ?
+
+COUNT = 23
+KEY = 0101010101010101
+IV = 0000010000000000
+CIPHERTEXT = fbe00a8a1ef8ad72
+PLAINTEXT = ?
+
+COUNT = 24
+KEY = 0101010101010101
+IV = 0000008000000000
+CIPHERTEXT = 750d079407521363
+PLAINTEXT = ?
+
+COUNT = 25
+KEY = 0101010101010101
+IV = 0000004000000000
+CIPHERTEXT = 64feed9c724c2faf
+PLAINTEXT = ?
+
+COUNT = 26
+KEY = 0101010101010101
+IV = 0000002000000000
+CIPHERTEXT = f02b263b328e2b60
+PLAINTEXT = ?
+
+COUNT = 27
+KEY = 0101010101010101
+IV = 0000001000000000
+CIPHERTEXT = 9d64555a9a10b852
+PLAINTEXT = ?
+
+COUNT = 28
+KEY = 0101010101010101
+IV = 0000000800000000
+CIPHERTEXT = d106ff0bed5255d7
+PLAINTEXT = ?
+
+COUNT = 29
+KEY = 0101010101010101
+IV = 0000000400000000
+CIPHERTEXT = e1652c6b138c64a5
+PLAINTEXT = ?
+
+COUNT = 30
+KEY = 0101010101010101
+IV = 0000000200000000
+CIPHERTEXT = e428581186ec8f46
+PLAINTEXT = ?
+
+COUNT = 31
+KEY = 0101010101010101
+IV = 0000000100000000
+CIPHERTEXT = aeb5f5ede22d1a36
+PLAINTEXT = ?
+
+COUNT = 32
+KEY = 0101010101010101
+IV = 0000000080000000
+CIPHERTEXT = e943d7568aec0c5c
+PLAINTEXT = ?
+
+COUNT = 33
+KEY = 0101010101010101
+IV = 0000000040000000
+CIPHERTEXT = df98c8276f54b04b
+PLAINTEXT = ?
+
+COUNT = 34
+KEY = 0101010101010101
+IV = 0000000020000000
+CIPHERTEXT = b160e4680f6c696f
+PLAINTEXT = ?
+
+COUNT = 35
+KEY = 0101010101010101
+IV = 0000000010000000
+CIPHERTEXT = fa0752b07d9c4ab8
+PLAINTEXT = ?
+
+COUNT = 36
+KEY = 0101010101010101
+IV = 0000000008000000
+CIPHERTEXT = ca3a2b036dbc8502
+PLAINTEXT = ?
+
+COUNT = 37
+KEY = 0101010101010101
+IV = 0000000004000000
+CIPHERTEXT = 5e0905517bb59bcf
+PLAINTEXT = ?
+
+COUNT = 38
+KEY = 0101010101010101
+IV = 0000000002000000
+CIPHERTEXT = 814eeb3b91d90726
+PLAINTEXT = ?
+
+COUNT = 39
+KEY = 0101010101010101
+IV = 0000000001000000
+CIPHERTEXT = 4d49db1532919c9f
+PLAINTEXT = ?
+
+COUNT = 40
+KEY = 0101010101010101
+IV = 0000000000800000
+CIPHERTEXT = 25eb5fc3f8cf0621
+PLAINTEXT = ?
+
+COUNT = 41
+KEY = 0101010101010101
+IV = 0000000000400000
+CIPHERTEXT = ab6a20c0620d1c6f
+PLAINTEXT = ?
+
+COUNT = 42
+KEY = 0101010101010101
+IV = 0000000000200000
+CIPHERTEXT = 79e90dbc98f92cca
+PLAINTEXT = ?
+
+COUNT = 43
+KEY = 0101010101010101
+IV = 0000000000100000
+CIPHERTEXT = 866ecedd8072bb0e
+PLAINTEXT = ?
+
+COUNT = 44
+KEY = 0101010101010101
+IV = 0000000000080000
+CIPHERTEXT = 8b54536f2f3e64a8
+PLAINTEXT = ?
+
+COUNT = 45
+KEY = 0101010101010101
+IV = 0000000000040000
+CIPHERTEXT = ea51d3975595b86b
+PLAINTEXT = ?
+
+COUNT = 46
+KEY = 0101010101010101
+IV = 0000000000020000
+CIPHERTEXT = caffc6ac4542de31
+PLAINTEXT = ?
+
+COUNT = 47
+KEY = 0101010101010101
+IV = 0000000000010000
+CIPHERTEXT = 8dd45a2ddf90796c
+PLAINTEXT = ?
+
+COUNT = 48
+KEY = 0101010101010101
+IV = 0000000000008000
+CIPHERTEXT = 1029d55e880ec2d0
+PLAINTEXT = ?
+
+COUNT = 49
+KEY = 0101010101010101
+IV = 0000000000004000
+CIPHERTEXT = 5d86cb23639dbea9
+PLAINTEXT = ?
+
+COUNT = 50
+KEY = 0101010101010101
+IV = 0000000000002000
+CIPHERTEXT = 1d1ca853ae7c0c5f
+PLAINTEXT = ?
+
+COUNT = 51
+KEY = 0101010101010101
+IV = 0000000000001000
+CIPHERTEXT = ce332329248f3228
+PLAINTEXT = ?
+
+COUNT = 52
+KEY = 0101010101010101
+IV = 0000000000000800
+CIPHERTEXT = 8405d1abe24fb942
+PLAINTEXT = ?
+
+COUNT = 53
+KEY = 0101010101010101
+IV = 0000000000000400
+CIPHERTEXT = e643d78090ca4207
+PLAINTEXT = ?
+
+COUNT = 54
+KEY = 0101010101010101
+IV = 0000000000000200
+CIPHERTEXT = 48221b9937748a23
+PLAINTEXT = ?
+
+COUNT = 55
+KEY = 0101010101010101
+IV = 0000000000000100
+CIPHERTEXT = dd7c0bbd61fafd54
+PLAINTEXT = ?
+
+COUNT = 56
+KEY = 0101010101010101
+IV = 0000000000000080
+CIPHERTEXT = 2fbc291a570db5c4
+PLAINTEXT = ?
+
+COUNT = 57
+KEY = 0101010101010101
+IV = 0000000000000040
+CIPHERTEXT = e07c30d7e4e26e12
+PLAINTEXT = ?
+
+COUNT = 58
+KEY = 0101010101010101
+IV = 0000000000000020
+CIPHERTEXT = 0953e2258e8e90a1
+PLAINTEXT = ?
+
+COUNT = 59
+KEY = 0101010101010101
+IV = 0000000000000010
+CIPHERTEXT = 5b711bc4ceebf2ee
+PLAINTEXT = ?
+
+COUNT = 60
+KEY = 0101010101010101
+IV = 0000000000000008
+CIPHERTEXT = cc083f1e6d9e85f6
+PLAINTEXT = ?
+
+COUNT = 61
+KEY = 0101010101010101
+IV = 0000000000000004
+CIPHERTEXT = d2fd8867d50d2dfe
+PLAINTEXT = ?
+
+COUNT = 62
+KEY = 0101010101010101
+IV = 0000000000000002
+CIPHERTEXT = 06e7ea22ce92708f
+PLAINTEXT = ?
+
+COUNT = 63
+KEY = 0101010101010101
+IV = 0000000000000001
+CIPHERTEXT = 166b40b44aba4bd6
+PLAINTEXT = ?
diff --git a/fips/testvectors/des/sample/CFB64permop.sam b/fips/testvectors/des/sample/CFB64permop.sam
new file mode 100644 (file)
index 0000000..08ef179
--- /dev/null
@@ -0,0 +1,392 @@
+# CAVS 2.0
+# Config Info for : "OpenSSL_DES"
+# PERMUTATION OPERATION - KAT for CFB64
+# State : Encrypt and Decrypt
+# Tue Jun 24 03:11:52 PM
+
+[ENCRYPT]
+COUNT = 0
+KEY = 1046913489980131
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 1
+KEY = 1007103489988020
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 2
+KEY = 10071034c8980120
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 3
+KEY = 1046103489988020
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 4
+KEY = 1086911519190101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 5
+KEY = 1086911519580101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 6
+KEY = 5107b01519580101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 7
+KEY = 1007b01519190101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 8
+KEY = 3107915498080101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 9
+KEY = 3107919498080101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 10
+KEY = 10079115b9080140
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 11
+KEY = 3107911598080140
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 12
+KEY = 1007d01589980101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 13
+KEY = 9107911589980101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 14
+KEY = 9107d01589190101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 15
+KEY = 1007d01598980120
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 16
+KEY = 1007940498190101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 17
+KEY = 0107910491190401
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 18
+KEY = 0107910491190101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 19
+KEY = 0107940491190401
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 20
+KEY = 19079210981a0101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 21
+KEY = 1007911998190801
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 22
+KEY = 10079119981a0801
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 23
+KEY = 1007921098190101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 24
+KEY = 100791159819010b
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 25
+KEY = 1004801598190101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 26
+KEY = 1004801598190102
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 27
+KEY = 1004801598190108
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 28
+KEY = 1002911598100104
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 29
+KEY = 1002911598190104
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 30
+KEY = 1002911598100201
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 31
+KEY = 1002911698100101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+
+[DECRYPT]
+COUNT = 0
+KEY = 1046913489980131
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 1
+KEY = 1007103489988020
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 2
+KEY = 10071034c8980120
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 3
+KEY = 1046103489988020
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 4
+KEY = 1086911519190101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 5
+KEY = 1086911519580101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 6
+KEY = 5107b01519580101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 7
+KEY = 1007b01519190101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 8
+KEY = 3107915498080101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 9
+KEY = 3107919498080101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 10
+KEY = 10079115b9080140
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 11
+KEY = 3107911598080140
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 12
+KEY = 1007d01589980101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 13
+KEY = 9107911589980101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 14
+KEY = 9107d01589190101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 15
+KEY = 1007d01598980120
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 16
+KEY = 1007940498190101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 17
+KEY = 0107910491190401
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 18
+KEY = 0107910491190101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 19
+KEY = 0107940491190401
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 20
+KEY = 19079210981a0101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 21
+KEY = 1007911998190801
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 22
+KEY = 10079119981a0801
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 23
+KEY = 1007921098190101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 24
+KEY = 100791159819010b
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 25
+KEY = 1004801598190101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 26
+KEY = 1004801598190102
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 27
+KEY = 1004801598190108
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 28
+KEY = 1002911598100104
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 29
+KEY = 1002911598190104
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 30
+KEY = 1002911598100201
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 31
+KEY = 1002911698100101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
diff --git a/fips/testvectors/des/sample/CFB64subtab.sam b/fips/testvectors/des/sample/CFB64subtab.sam
new file mode 100644 (file)
index 0000000..a76e789
--- /dev/null
@@ -0,0 +1,236 @@
+# CAVS 2.0
+# Config Info for : "OpenSSL_DES"
+# SUBSTITUTION TABLE - KAT for CFB64
+# State : Encrypt and Decrypt
+# Tue Jun 24 03:11:52 PM
+
+[ENCRYPT]
+COUNT = 0
+KEY = 7ca110454a1a6e57
+IV = 01a1d6d039776742
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 1
+KEY = 0131d9619dc1376e
+IV = 5cd54ca83def57da
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 2
+KEY = 07a1133e4a0b2686
+IV = 0248d43806f67172
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 3
+KEY = 3849674c2602319e
+IV = 51454b582ddf440a
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 4
+KEY = 04b915ba43feb5b6
+IV = 42fd443059577fa2
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 5
+KEY = 0113b970fd34f2ce
+IV = 059b5e0851cf143a
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 6
+KEY = 0170f175468fb5e6
+IV = 0756d8e0774761d2
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 7
+KEY = 43297fad38e373fe
+IV = 762514b829bf486a
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 8
+KEY = 07a7137045da2a16
+IV = 3bdd119049372802
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 9
+KEY = 04689104c2fd3b2f
+IV = 26955f6835af609a
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 10
+KEY = 37d06bb516cb7546
+IV = 164d5e404f275232
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 11
+KEY = 1f08260d1ac2465e
+IV = 6b056e18759f5cca
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 12
+KEY = 584023641aba6176
+IV = 004bd6ef09176062
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 13
+KEY = 025816164629b007
+IV = 480d39006ee762f2
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 14
+KEY = 49793ebc79b3258f
+IV = 437540c8698f3cfa
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 15
+KEY = 4fb05e1515ab73a7
+IV = 072d43a077075292
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 16
+KEY = 49e95d6d4ca229bf
+IV = 02fe55778117f12a
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 17
+KEY = 018310dc409b26d6
+IV = 1d9d5c5018f728c2
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 18
+KEY = 1c587f1c13924fef
+IV = 305532286d6f295a
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+
+[DECRYPT]
+COUNT = 0
+KEY = 7ca110454a1a6e57
+IV = 01a1d6d039776742
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 1
+KEY = 0131d9619dc1376e
+IV = 5cd54ca83def57da
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 2
+KEY = 07a1133e4a0b2686
+IV = 0248d43806f67172
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 3
+KEY = 3849674c2602319e
+IV = 51454b582ddf440a
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 4
+KEY = 04b915ba43feb5b6
+IV = 42fd443059577fa2
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 5
+KEY = 0113b970fd34f2ce
+IV = 059b5e0851cf143a
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 6
+KEY = 0170f175468fb5e6
+IV = 0756d8e0774761d2
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 7
+KEY = 43297fad38e373fe
+IV = 762514b829bf486a
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 8
+KEY = 07a7137045da2a16
+IV = 3bdd119049372802
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 9
+KEY = 04689104c2fd3b2f
+IV = 26955f6835af609a
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 10
+KEY = 37d06bb516cb7546
+IV = 164d5e404f275232
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 11
+KEY = 1f08260d1ac2465e
+IV = 6b056e18759f5cca
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 12
+KEY = 584023641aba6176
+IV = 004bd6ef09176062
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 13
+KEY = 025816164629b007
+IV = 480d39006ee762f2
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 14
+KEY = 49793ebc79b3258f
+IV = 437540c8698f3cfa
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 15
+KEY = 4fb05e1515ab73a7
+IV = 072d43a077075292
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 16
+KEY = 49e95d6d4ca229bf
+IV = 02fe55778117f12a
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 17
+KEY = 018310dc409b26d6
+IV = 1d9d5c5018f728c2
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 18
+KEY = 1c587f1c13924fef
+IV = 305532286d6f295a
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
diff --git a/fips/testvectors/des/sample/CFB64varkey.sam b/fips/testvectors/des/sample/CFB64varkey.sam
new file mode 100644 (file)
index 0000000..299e7f5
--- /dev/null
@@ -0,0 +1,680 @@
+# CAVS 2.0
+# Config Info for : "OpenSSL_DES"
+# VARIABLE KEY - KAT for CFB64
+# State : Encrypt and Decrypt
+# Tue Jun 24 03:11:52 PM
+
+[ENCRYPT]
+COUNT = 0
+KEY = 8001010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 1
+KEY = 4001010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 2
+KEY = 2001010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 3
+KEY = 1001010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 4
+KEY = 0801010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 5
+KEY = 0401010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 6
+KEY = 0201010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 7
+KEY = 0180010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 8
+KEY = 0140010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 9
+KEY = 0120010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 10
+KEY = 0110010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 11
+KEY = 0108010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 12
+KEY = 0104010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 13
+KEY = 0102010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 14
+KEY = 0101800101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 15
+KEY = 0101400101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 16
+KEY = 0101200101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 17
+KEY = 0101100101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 18
+KEY = 0101080101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 19
+KEY = 0101040101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 20
+KEY = 0101020101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 21
+KEY = 0101018001010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 22
+KEY = 0101014001010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 23
+KEY = 0101012001010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 24
+KEY = 0101011001010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 25
+KEY = 0101010801010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 26
+KEY = 0101010401010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 27
+KEY = 0101010201010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 28
+KEY = 0101010180010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 29
+KEY = 0101010140010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 30
+KEY = 0101010120010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 31
+KEY = 0101010110010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 32
+KEY = 0101010108010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 33
+KEY = 0101010104010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 34
+KEY = 0101010102010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 35
+KEY = 0101010101800101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 36
+KEY = 0101010101400101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 37
+KEY = 0101010101200101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 38
+KEY = 0101010101100101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 39
+KEY = 0101010101080101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 40
+KEY = 0101010101040101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 41
+KEY = 0101010101020101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 42
+KEY = 0101010101018001
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 43
+KEY = 0101010101014001
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 44
+KEY = 0101010101012001
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 45
+KEY = 0101010101011001
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 46
+KEY = 0101010101010801
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 47
+KEY = 0101010101010401
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 48
+KEY = 0101010101010201
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 49
+KEY = 0101010101010180
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 50
+KEY = 0101010101010140
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 51
+KEY = 0101010101010120
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 52
+KEY = 0101010101010110
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 53
+KEY = 0101010101010108
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 54
+KEY = 0101010101010104
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 55
+KEY = 0101010101010102
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+
+[DECRYPT]
+COUNT = 0
+KEY = 8001010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 1
+KEY = 4001010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 2
+KEY = 2001010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 3
+KEY = 1001010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 4
+KEY = 0801010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 5
+KEY = 0401010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 6
+KEY = 0201010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 7
+KEY = 0180010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 8
+KEY = 0140010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 9
+KEY = 0120010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 10
+KEY = 0110010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 11
+KEY = 0108010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 12
+KEY = 0104010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 13
+KEY = 0102010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 14
+KEY = 0101800101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 15
+KEY = 0101400101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 16
+KEY = 0101200101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 17
+KEY = 0101100101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 18
+KEY = 0101080101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 19
+KEY = 0101040101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 20
+KEY = 0101020101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 21
+KEY = 0101018001010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 22
+KEY = 0101014001010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 23
+KEY = 0101012001010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 24
+KEY = 0101011001010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 25
+KEY = 0101010801010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 26
+KEY = 0101010401010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 27
+KEY = 0101010201010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 28
+KEY = 0101010180010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 29
+KEY = 0101010140010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 30
+KEY = 0101010120010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 31
+KEY = 0101010110010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 32
+KEY = 0101010108010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 33
+KEY = 0101010104010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 34
+KEY = 0101010102010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 35
+KEY = 0101010101800101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 36
+KEY = 0101010101400101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 37
+KEY = 0101010101200101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 38
+KEY = 0101010101100101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 39
+KEY = 0101010101080101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 40
+KEY = 0101010101040101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 41
+KEY = 0101010101020101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 42
+KEY = 0101010101018001
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 43
+KEY = 0101010101014001
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 44
+KEY = 0101010101012001
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 45
+KEY = 0101010101011001
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 46
+KEY = 0101010101010801
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 47
+KEY = 0101010101010401
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 48
+KEY = 0101010101010201
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 49
+KEY = 0101010101010180
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 50
+KEY = 0101010101010140
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 51
+KEY = 0101010101010120
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 52
+KEY = 0101010101010110
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 53
+KEY = 0101010101010108
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 54
+KEY = 0101010101010104
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 55
+KEY = 0101010101010102
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
diff --git a/fips/testvectors/des/sample/CFB64vartext.sam b/fips/testvectors/des/sample/CFB64vartext.sam
new file mode 100644 (file)
index 0000000..c7f4536
--- /dev/null
@@ -0,0 +1,776 @@
+# CAVS 2.0
+# Config Info for : "OpenSSL_DES"
+# VARIABLE PLAINTEXT/CIPHERTEXT - KAT for CFB64
+# State : Encrypt and Decrypt
+# Tue Jun 24 03:11:51 PM
+
+[ENCRYPT]
+COUNT = 0
+KEY = 0101010101010101
+IV = 8000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 1
+KEY = 0101010101010101
+IV = 4000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 2
+KEY = 0101010101010101
+IV = 2000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 3
+KEY = 0101010101010101
+IV = 1000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 4
+KEY = 0101010101010101
+IV = 0800000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 5
+KEY = 0101010101010101
+IV = 0400000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 6
+KEY = 0101010101010101
+IV = 0200000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 7
+KEY = 0101010101010101
+IV = 0100000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 8
+KEY = 0101010101010101
+IV = 0080000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 9
+KEY = 0101010101010101
+IV = 0040000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 10
+KEY = 0101010101010101
+IV = 0020000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 11
+KEY = 0101010101010101
+IV = 0010000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 12
+KEY = 0101010101010101
+IV = 0008000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 13
+KEY = 0101010101010101
+IV = 0004000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 14
+KEY = 0101010101010101
+IV = 0002000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 15
+KEY = 0101010101010101
+IV = 0001000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 16
+KEY = 0101010101010101
+IV = 0000800000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 17
+KEY = 0101010101010101
+IV = 0000400000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 18
+KEY = 0101010101010101
+IV = 0000200000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 19
+KEY = 0101010101010101
+IV = 0000100000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 20
+KEY = 0101010101010101
+IV = 0000080000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 21
+KEY = 0101010101010101
+IV = 0000040000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 22
+KEY = 0101010101010101
+IV = 0000020000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 23
+KEY = 0101010101010101
+IV = 0000010000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 24
+KEY = 0101010101010101
+IV = 0000008000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 25
+KEY = 0101010101010101
+IV = 0000004000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 26
+KEY = 0101010101010101
+IV = 0000002000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 27
+KEY = 0101010101010101
+IV = 0000001000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 28
+KEY = 0101010101010101
+IV = 0000000800000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 29
+KEY = 0101010101010101
+IV = 0000000400000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 30
+KEY = 0101010101010101
+IV = 0000000200000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 31
+KEY = 0101010101010101
+IV = 0000000100000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 32
+KEY = 0101010101010101
+IV = 0000000080000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 33
+KEY = 0101010101010101
+IV = 0000000040000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 34
+KEY = 0101010101010101
+IV = 0000000020000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 35
+KEY = 0101010101010101
+IV = 0000000010000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 36
+KEY = 0101010101010101
+IV = 0000000008000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 37
+KEY = 0101010101010101
+IV = 0000000004000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 38
+KEY = 0101010101010101
+IV = 0000000002000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 39
+KEY = 0101010101010101
+IV = 0000000001000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 40
+KEY = 0101010101010101
+IV = 0000000000800000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 41
+KEY = 0101010101010101
+IV = 0000000000400000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 42
+KEY = 0101010101010101
+IV = 0000000000200000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 43
+KEY = 0101010101010101
+IV = 0000000000100000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 44
+KEY = 0101010101010101
+IV = 0000000000080000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 45
+KEY = 0101010101010101
+IV = 0000000000040000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 46
+KEY = 0101010101010101
+IV = 0000000000020000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 47
+KEY = 0101010101010101
+IV = 0000000000010000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 48
+KEY = 0101010101010101
+IV = 0000000000008000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 49
+KEY = 0101010101010101
+IV = 0000000000004000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 50
+KEY = 0101010101010101
+IV = 0000000000002000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 51
+KEY = 0101010101010101
+IV = 0000000000001000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 52
+KEY = 0101010101010101
+IV = 0000000000000800
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 53
+KEY = 0101010101010101
+IV = 0000000000000400
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 54
+KEY = 0101010101010101
+IV = 0000000000000200
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 55
+KEY = 0101010101010101
+IV = 0000000000000100
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 56
+KEY = 0101010101010101
+IV = 0000000000000080
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 57
+KEY = 0101010101010101
+IV = 0000000000000040
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 58
+KEY = 0101010101010101
+IV = 0000000000000020
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 59
+KEY = 0101010101010101
+IV = 0000000000000010
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 60
+KEY = 0101010101010101
+IV = 0000000000000008
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 61
+KEY = 0101010101010101
+IV = 0000000000000004
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 62
+KEY = 0101010101010101
+IV = 0000000000000002
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 63
+KEY = 0101010101010101
+IV = 0000000000000001
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+
+[DECRYPT]
+COUNT = 0
+KEY = 0101010101010101
+IV = 8000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 1
+KEY = 0101010101010101
+IV = 4000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 2
+KEY = 0101010101010101
+IV = 2000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 3
+KEY = 0101010101010101
+IV = 1000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 4
+KEY = 0101010101010101
+IV = 0800000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 5
+KEY = 0101010101010101
+IV = 0400000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 6
+KEY = 0101010101010101
+IV = 0200000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 7
+KEY = 0101010101010101
+IV = 0100000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 8
+KEY = 0101010101010101
+IV = 0080000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 9
+KEY = 0101010101010101
+IV = 0040000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 10
+KEY = 0101010101010101
+IV = 0020000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 11
+KEY = 0101010101010101
+IV = 0010000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 12
+KEY = 0101010101010101
+IV = 0008000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 13
+KEY = 0101010101010101
+IV = 0004000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 14
+KEY = 0101010101010101
+IV = 0002000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 15
+KEY = 0101010101010101
+IV = 0001000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 16
+KEY = 0101010101010101
+IV = 0000800000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 17
+KEY = 0101010101010101
+IV = 0000400000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 18
+KEY = 0101010101010101
+IV = 0000200000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 19
+KEY = 0101010101010101
+IV = 0000100000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 20
+KEY = 0101010101010101
+IV = 0000080000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 21
+KEY = 0101010101010101
+IV = 0000040000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 22
+KEY = 0101010101010101
+IV = 0000020000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 23
+KEY = 0101010101010101
+IV = 0000010000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 24
+KEY = 0101010101010101
+IV = 0000008000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 25
+KEY = 0101010101010101
+IV = 0000004000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 26
+KEY = 0101010101010101
+IV = 0000002000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 27
+KEY = 0101010101010101
+IV = 0000001000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 28
+KEY = 0101010101010101
+IV = 0000000800000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 29
+KEY = 0101010101010101
+IV = 0000000400000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 30
+KEY = 0101010101010101
+IV = 0000000200000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 31
+KEY = 0101010101010101
+IV = 0000000100000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 32
+KEY = 0101010101010101
+IV = 0000000080000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 33
+KEY = 0101010101010101
+IV = 0000000040000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 34
+KEY = 0101010101010101
+IV = 0000000020000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 35
+KEY = 0101010101010101
+IV = 0000000010000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 36
+KEY = 0101010101010101
+IV = 0000000008000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 37
+KEY = 0101010101010101
+IV = 0000000004000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 38
+KEY = 0101010101010101
+IV = 0000000002000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 39
+KEY = 0101010101010101
+IV = 0000000001000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 40
+KEY = 0101010101010101
+IV = 0000000000800000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 41
+KEY = 0101010101010101
+IV = 0000000000400000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 42
+KEY = 0101010101010101
+IV = 0000000000200000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 43
+KEY = 0101010101010101
+IV = 0000000000100000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 44
+KEY = 0101010101010101
+IV = 0000000000080000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 45
+KEY = 0101010101010101
+IV = 0000000000040000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 46
+KEY = 0101010101010101
+IV = 0000000000020000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 47
+KEY = 0101010101010101
+IV = 0000000000010000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 48
+KEY = 0101010101010101
+IV = 0000000000008000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 49
+KEY = 0101010101010101
+IV = 0000000000004000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 50
+KEY = 0101010101010101
+IV = 0000000000002000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 51
+KEY = 0101010101010101
+IV = 0000000000001000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 52
+KEY = 0101010101010101
+IV = 0000000000000800
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 53
+KEY = 0101010101010101
+IV = 0000000000000400
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 54
+KEY = 0101010101010101
+IV = 0000000000000200
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 55
+KEY = 0101010101010101
+IV = 0000000000000100
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 56
+KEY = 0101010101010101
+IV = 0000000000000080
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 57
+KEY = 0101010101010101
+IV = 0000000000000040
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 58
+KEY = 0101010101010101
+IV = 0000000000000020
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 59
+KEY = 0101010101010101
+IV = 0000000000000010
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 60
+KEY = 0101010101010101
+IV = 0000000000000008
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 61
+KEY = 0101010101010101
+IV = 0000000000000004
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 62
+KEY = 0101010101010101
+IV = 0000000000000002
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 63
+KEY = 0101010101010101
+IV = 0000000000000001
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
diff --git a/fips/testvectors/des/sample/CFB8MMT.sam b/fips/testvectors/des/sample/CFB8MMT.sam
new file mode 100644 (file)
index 0000000..49da98e
--- /dev/null
@@ -0,0 +1,46 @@
+# CAVS 2.0
+# Config Info for : "OpenSSL_DES"
+# DES Multi Block Message Test for CFB8
+# State : Encrypt and Decrypt
+# Tue Jun 24 03:13:22 PM
+
+[ENCRYPT]
+
+COUNT = 0
+KEY = b0ba3719ecb66b46
+IV = dfbf15e1062a751d
+PLAINTEXT = a4
+CIPHERTEXT = df
+
+COUNT = 1
+KEY = 0862e3efa1b5ea1f
+IV = 31c349f7613537a6
+PLAINTEXT = 1102
+CIPHERTEXT = e565
+
+COUNT = 2
+KEY = d6a4f2c254103d80
+IV = f58c9293054006c2
+PLAINTEXT = 9e9376
+CIPHERTEXT = 99b36a
+
+[DECRYPT]
+
+COUNT = 0
+KEY = a225d0ec2315fdb5
+IV = 92ed9b845dc8904a
+CIPHERTEXT = dc
+PLAINTEXT = e2
+
+COUNT = 1
+KEY = 9238e00b4ac751a8
+IV = 681d64c6a9d600df
+CIPHERTEXT = 4135
+PLAINTEXT = 8ebd
+
+COUNT = 2
+KEY = 3eb37ca1d9b63d32
+IV = 0c20eb65969c6a4d
+CIPHERTEXT = 04ed83
+PLAINTEXT = 9b25d5
+
diff --git a/fips/testvectors/des/sample/CFB8Monte.sam b/fips/testvectors/des/sample/CFB8Monte.sam
new file mode 100644 (file)
index 0000000..ce8e81d
--- /dev/null
@@ -0,0 +1,58 @@
+# CAVS 2.0
+# Config Info for : "OpenSSL_DES"
+# DES Monte Carlo (Modes) Test for CFB8
+# State : Encrypt and Decrypt
+# Tue Jun 24 03:13:22 PM
+
+[ENCRYPT]
+
+COUNT = 0
+KEY = 64102f5b75b507d5
+IV = 626e2715ecb2f12d
+PLAINTEXT = fc
+CIPHERTEXT = a1
+
+COUNT = 1
+KEY = 9b02dfef3413e375
+IV = fe12f0b440a7e5a1
+PLAINTEXT = a9
+CIPHERTEXT = 90
+
+COUNT = 2
+KEY = 70cb9113efbccee5
+IV = eac94ffddaaf2d90
+PLAINTEXT = 9d
+CIPHERTEXT = fb
+
+COUNT = 3
+KEY = 136d52b9ae38161f
+IV = 62a7c2aa4084d9fb
+PLAINTEXT = 04
+CIPHERTEXT = 17
+
+[DECRYPT]
+
+COUNT = 0
+KEY = 6bab1f1f3419ab26
+IV = 86e32d9e0f5dc507
+CIPHERTEXT = d9
+PLAINTEXT = 3d
+
+COUNT = 1
+KEY = 7fd07694c13bea1a
+IV = f6e298f17b8eadec
+CIPHERTEXT = d1
+PLAINTEXT = ef
+
+COUNT = 2
+KEY = 4649386eb53b85f4
+IV = f7ce5618e29796f9
+CIPHERTEXT = 16
+PLAINTEXT = 20
+
+COUNT = 3
+KEY = 497fbf13731532d5
+IV = 26291e99e4230cba
+CIPHERTEXT = 9a
+PLAINTEXT = 00
+
diff --git a/fips/testvectors/des/sample/CFB8invperm.sam b/fips/testvectors/des/sample/CFB8invperm.sam
new file mode 100644 (file)
index 0000000..1814241
--- /dev/null
@@ -0,0 +1,776 @@
+# CAVS 2.0
+# Config Info for : "OpenSSL_DES"
+# INVERSE PERMUTATION - KAT for CFB8
+# State : Encrypt and Decrypt
+# Tue Jun 24 03:11:51 PM
+
+[ENCRYPT]
+COUNT = 0
+KEY = 0101010101010101
+IV = 8000000000000000
+PLAINTEXT = 95
+CIPHERTEXT = ?
+
+COUNT = 1
+KEY = 0101010101010101
+IV = 4000000000000000
+PLAINTEXT = dd
+CIPHERTEXT = ?
+
+COUNT = 2
+KEY = 0101010101010101
+IV = 2000000000000000
+PLAINTEXT = 2e
+CIPHERTEXT = ?
+
+COUNT = 3
+KEY = 0101010101010101
+IV = 1000000000000000
+PLAINTEXT = 4b
+CIPHERTEXT = ?
+
+COUNT = 4
+KEY = 0101010101010101
+IV = 0800000000000000
+PLAINTEXT = 20
+CIPHERTEXT = ?
+
+COUNT = 5
+KEY = 0101010101010101
+IV = 0400000000000000
+PLAINTEXT = 55
+CIPHERTEXT = ?
+
+COUNT = 6
+KEY = 0101010101010101
+IV = 0200000000000000
+PLAINTEXT = 6c
+CIPHERTEXT = ?
+
+COUNT = 7
+KEY = 0101010101010101
+IV = 0100000000000000
+PLAINTEXT = 0d
+CIPHERTEXT = ?
+
+COUNT = 8
+KEY = 0101010101010101
+IV = 0080000000000000
+PLAINTEXT = d9
+CIPHERTEXT = ?
+
+COUNT = 9
+KEY = 0101010101010101
+IV = 0040000000000000
+PLAINTEXT = 42
+CIPHERTEXT = ?
+
+COUNT = 10
+KEY = 0101010101010101
+IV = 0020000000000000
+PLAINTEXT = b8
+CIPHERTEXT = ?
+
+COUNT = 11
+KEY = 0101010101010101
+IV = 0010000000000000
+PLAINTEXT = f1
+CIPHERTEXT = ?
+
+COUNT = 12
+KEY = 0101010101010101
+IV = 0008000000000000
+PLAINTEXT = ad
+CIPHERTEXT = ?
+
+COUNT = 13
+KEY = 0101010101010101
+IV = 0004000000000000
+PLAINTEXT = e6
+CIPHERTEXT = ?
+
+COUNT = 14
+KEY = 0101010101010101
+IV = 0002000000000000
+PLAINTEXT = ec
+CIPHERTEXT = ?
+
+COUNT = 15
+KEY = 0101010101010101
+IV = 0001000000000000
+PLAINTEXT = f3
+CIPHERTEXT = ?
+
+COUNT = 16
+KEY = 0101010101010101
+IV = 0000800000000000
+PLAINTEXT = 2b
+CIPHERTEXT = ?
+
+COUNT = 17
+KEY = 0101010101010101
+IV = 0000400000000000
+PLAINTEXT = 88
+CIPHERTEXT = ?
+
+COUNT = 18
+KEY = 0101010101010101
+IV = 0000200000000000
+PLAINTEXT = e1
+CIPHERTEXT = ?
+
+COUNT = 19
+KEY = 0101010101010101
+IV = 0000100000000000
+PLAINTEXT = 32
+CIPHERTEXT = ?
+
+COUNT = 20
+KEY = 0101010101010101
+IV = 0000080000000000
+PLAINTEXT = e7
+CIPHERTEXT = ?
+
+COUNT = 21
+KEY = 0101010101010101
+IV = 0000040000000000
+PLAINTEXT = 12
+CIPHERTEXT = ?
+
+COUNT = 22
+KEY = 0101010101010101
+IV = 0000020000000000
+PLAINTEXT = a4
+CIPHERTEXT = ?
+
+COUNT = 23
+KEY = 0101010101010101
+IV = 0000010000000000
+PLAINTEXT = fb
+CIPHERTEXT = ?
+
+COUNT = 24
+KEY = 0101010101010101
+IV = 0000008000000000
+PLAINTEXT = 75
+CIPHERTEXT = ?
+
+COUNT = 25
+KEY = 0101010101010101
+IV = 0000004000000000
+PLAINTEXT = 64
+CIPHERTEXT = ?
+
+COUNT = 26
+KEY = 0101010101010101
+IV = 0000002000000000
+PLAINTEXT = f0
+CIPHERTEXT = ?
+
+COUNT = 27
+KEY = 0101010101010101
+IV = 0000001000000000
+PLAINTEXT = 9d
+CIPHERTEXT = ?
+
+COUNT = 28
+KEY = 0101010101010101
+IV = 0000000800000000
+PLAINTEXT = d1
+CIPHERTEXT = ?
+
+COUNT = 29
+KEY = 0101010101010101
+IV = 0000000400000000
+PLAINTEXT = e1
+CIPHERTEXT = ?
+
+COUNT = 30
+KEY = 0101010101010101
+IV = 0000000200000000
+PLAINTEXT = e4
+CIPHERTEXT = ?
+
+COUNT = 31
+KEY = 0101010101010101
+IV = 0000000100000000
+PLAINTEXT = ae
+CIPHERTEXT = ?
+
+COUNT = 32
+KEY = 0101010101010101
+IV = 0000000080000000
+PLAINTEXT = e9
+CIPHERTEXT = ?
+
+COUNT = 33
+KEY = 0101010101010101
+IV = 0000000040000000
+PLAINTEXT = df
+CIPHERTEXT = ?
+
+COUNT = 34
+KEY = 0101010101010101
+IV = 0000000020000000
+PLAINTEXT = b1
+CIPHERTEXT = ?
+
+COUNT = 35
+KEY = 0101010101010101
+IV = 0000000010000000
+PLAINTEXT = fa
+CIPHERTEXT = ?
+
+COUNT = 36
+KEY = 0101010101010101
+IV = 0000000008000000
+PLAINTEXT = ca
+CIPHERTEXT = ?
+
+COUNT = 37
+KEY = 0101010101010101
+IV = 0000000004000000
+PLAINTEXT = 5e
+CIPHERTEXT = ?
+
+COUNT = 38
+KEY = 0101010101010101
+IV = 0000000002000000
+PLAINTEXT = 81
+CIPHERTEXT = ?
+
+COUNT = 39
+KEY = 0101010101010101
+IV = 0000000001000000
+PLAINTEXT = 4d
+CIPHERTEXT = ?
+
+COUNT = 40
+KEY = 0101010101010101
+IV = 0000000000800000
+PLAINTEXT = 25
+CIPHERTEXT = ?
+
+COUNT = 41
+KEY = 0101010101010101
+IV = 0000000000400000
+PLAINTEXT = ab
+CIPHERTEXT = ?
+
+COUNT = 42
+KEY = 0101010101010101
+IV = 0000000000200000
+PLAINTEXT = 79
+CIPHERTEXT = ?
+
+COUNT = 43
+KEY = 0101010101010101
+IV = 0000000000100000
+PLAINTEXT = 86
+CIPHERTEXT = ?
+
+COUNT = 44
+KEY = 0101010101010101
+IV = 0000000000080000
+PLAINTEXT = 8b
+CIPHERTEXT = ?
+
+COUNT = 45
+KEY = 0101010101010101
+IV = 0000000000040000
+PLAINTEXT = ea
+CIPHERTEXT = ?
+
+COUNT = 46
+KEY = 0101010101010101
+IV = 0000000000020000
+PLAINTEXT = ca
+CIPHERTEXT = ?
+
+COUNT = 47
+KEY = 0101010101010101
+IV = 0000000000010000
+PLAINTEXT = 8d
+CIPHERTEXT = ?
+
+COUNT = 48
+KEY = 0101010101010101
+IV = 0000000000008000
+PLAINTEXT = 10
+CIPHERTEXT = ?
+
+COUNT = 49
+KEY = 0101010101010101
+IV = 0000000000004000
+PLAINTEXT = 5d
+CIPHERTEXT = ?
+
+COUNT = 50
+KEY = 0101010101010101
+IV = 0000000000002000
+PLAINTEXT = 1d
+CIPHERTEXT = ?
+
+COUNT = 51
+KEY = 0101010101010101
+IV = 0000000000001000
+PLAINTEXT = ce
+CIPHERTEXT = ?
+
+COUNT = 52
+KEY = 0101010101010101
+IV = 0000000000000800
+PLAINTEXT = 84
+CIPHERTEXT = ?
+
+COUNT = 53
+KEY = 0101010101010101
+IV = 0000000000000400
+PLAINTEXT = e6
+CIPHERTEXT = ?
+
+COUNT = 54
+KEY = 0101010101010101
+IV = 0000000000000200
+PLAINTEXT = 48
+CIPHERTEXT = ?
+
+COUNT = 55
+KEY = 0101010101010101
+IV = 0000000000000100
+PLAINTEXT = dd
+CIPHERTEXT = ?
+
+COUNT = 56
+KEY = 0101010101010101
+IV = 0000000000000080
+PLAINTEXT = 2f
+CIPHERTEXT = ?
+
+COUNT = 57
+KEY = 0101010101010101
+IV = 0000000000000040
+PLAINTEXT = e0
+CIPHERTEXT = ?
+
+COUNT = 58
+KEY = 0101010101010101
+IV = 0000000000000020
+PLAINTEXT = 09
+CIPHERTEXT = ?
+
+COUNT = 59
+KEY = 0101010101010101
+IV = 0000000000000010
+PLAINTEXT = 5b
+CIPHERTEXT = ?
+
+COUNT = 60
+KEY = 0101010101010101
+IV = 0000000000000008
+PLAINTEXT = cc
+CIPHERTEXT = ?
+
+COUNT = 61
+KEY = 0101010101010101
+IV = 0000000000000004
+PLAINTEXT = d2
+CIPHERTEXT = ?
+
+COUNT = 62
+KEY = 0101010101010101
+IV = 0000000000000002
+PLAINTEXT = 06
+CIPHERTEXT = ?
+
+COUNT = 63
+KEY = 0101010101010101
+IV = 0000000000000001
+PLAINTEXT = 16
+CIPHERTEXT = ?
+
+
+[DECRYPT]
+COUNT = 0
+KEY = 0101010101010101
+IV = 8000000000000000
+CIPHERTEXT = 95
+PLAINTEXT = ?
+
+COUNT = 1
+KEY = 0101010101010101
+IV = 4000000000000000
+CIPHERTEXT = dd
+PLAINTEXT = ?
+
+COUNT = 2
+KEY = 0101010101010101
+IV = 2000000000000000
+CIPHERTEXT = 2e
+PLAINTEXT = ?
+
+COUNT = 3
+KEY = 0101010101010101
+IV = 1000000000000000
+CIPHERTEXT = 4b
+PLAINTEXT = ?
+
+COUNT = 4
+KEY = 0101010101010101
+IV = 0800000000000000
+CIPHERTEXT = 20
+PLAINTEXT = ?
+
+COUNT = 5
+KEY = 0101010101010101
+IV = 0400000000000000
+CIPHERTEXT = 55
+PLAINTEXT = ?
+
+COUNT = 6
+KEY = 0101010101010101
+IV = 0200000000000000
+CIPHERTEXT = 6c
+PLAINTEXT = ?
+
+COUNT = 7
+KEY = 0101010101010101
+IV = 0100000000000000
+CIPHERTEXT = 0d
+PLAINTEXT = ?
+
+COUNT = 8
+KEY = 0101010101010101
+IV = 0080000000000000
+CIPHERTEXT = d9
+PLAINTEXT = ?
+
+COUNT = 9
+KEY = 0101010101010101
+IV = 0040000000000000
+CIPHERTEXT = 42
+PLAINTEXT = ?
+
+COUNT = 10
+KEY = 0101010101010101
+IV = 0020000000000000
+CIPHERTEXT = b8
+PLAINTEXT = ?
+
+COUNT = 11
+KEY = 0101010101010101
+IV = 0010000000000000
+CIPHERTEXT = f1
+PLAINTEXT = ?
+
+COUNT = 12
+KEY = 0101010101010101
+IV = 0008000000000000
+CIPHERTEXT = ad
+PLAINTEXT = ?
+
+COUNT = 13
+KEY = 0101010101010101
+IV = 0004000000000000
+CIPHERTEXT = e6
+PLAINTEXT = ?
+
+COUNT = 14
+KEY = 0101010101010101
+IV = 0002000000000000
+CIPHERTEXT = ec
+PLAINTEXT = ?
+
+COUNT = 15
+KEY = 0101010101010101
+IV = 0001000000000000
+CIPHERTEXT = f3
+PLAINTEXT = ?
+
+COUNT = 16
+KEY = 0101010101010101
+IV = 0000800000000000
+CIPHERTEXT = 2b
+PLAINTEXT = ?
+
+COUNT = 17
+KEY = 0101010101010101
+IV = 0000400000000000
+CIPHERTEXT = 88
+PLAINTEXT = ?
+
+COUNT = 18
+KEY = 0101010101010101
+IV = 0000200000000000
+CIPHERTEXT = e1
+PLAINTEXT = ?
+
+COUNT = 19
+KEY = 0101010101010101
+IV = 0000100000000000
+CIPHERTEXT = 32
+PLAINTEXT = ?
+
+COUNT = 20
+KEY = 0101010101010101
+IV = 0000080000000000
+CIPHERTEXT = e7
+PLAINTEXT = ?
+
+COUNT = 21
+KEY = 0101010101010101
+IV = 0000040000000000
+CIPHERTEXT = 12
+PLAINTEXT = ?
+
+COUNT = 22
+KEY = 0101010101010101
+IV = 0000020000000000
+CIPHERTEXT = a4
+PLAINTEXT = ?
+
+COUNT = 23
+KEY = 0101010101010101
+IV = 0000010000000000
+CIPHERTEXT = fb
+PLAINTEXT = ?
+
+COUNT = 24
+KEY = 0101010101010101
+IV = 0000008000000000
+CIPHERTEXT = 75
+PLAINTEXT = ?
+
+COUNT = 25
+KEY = 0101010101010101
+IV = 0000004000000000
+CIPHERTEXT = 64
+PLAINTEXT = ?
+
+COUNT = 26
+KEY = 0101010101010101
+IV = 0000002000000000
+CIPHERTEXT = f0
+PLAINTEXT = ?
+
+COUNT = 27
+KEY = 0101010101010101
+IV = 0000001000000000
+CIPHERTEXT = 9d
+PLAINTEXT = ?
+
+COUNT = 28
+KEY = 0101010101010101
+IV = 0000000800000000
+CIPHERTEXT = d1
+PLAINTEXT = ?
+
+COUNT = 29
+KEY = 0101010101010101
+IV = 0000000400000000
+CIPHERTEXT = e1
+PLAINTEXT = ?
+
+COUNT = 30
+KEY = 0101010101010101
+IV = 0000000200000000
+CIPHERTEXT = e4
+PLAINTEXT = ?
+
+COUNT = 31
+KEY = 0101010101010101
+IV = 0000000100000000
+CIPHERTEXT = ae
+PLAINTEXT = ?
+
+COUNT = 32
+KEY = 0101010101010101
+IV = 0000000080000000
+CIPHERTEXT = e9
+PLAINTEXT = ?
+
+COUNT = 33
+KEY = 0101010101010101
+IV = 0000000040000000
+CIPHERTEXT = df
+PLAINTEXT = ?
+
+COUNT = 34
+KEY = 0101010101010101
+IV = 0000000020000000
+CIPHERTEXT = b1
+PLAINTEXT = ?
+
+COUNT = 35
+KEY = 0101010101010101
+IV = 0000000010000000
+CIPHERTEXT = fa
+PLAINTEXT = ?
+
+COUNT = 36
+KEY = 0101010101010101
+IV = 0000000008000000
+CIPHERTEXT = ca
+PLAINTEXT = ?
+
+COUNT = 37
+KEY = 0101010101010101
+IV = 0000000004000000
+CIPHERTEXT = 5e
+PLAINTEXT = ?
+
+COUNT = 38
+KEY = 0101010101010101
+IV = 0000000002000000
+CIPHERTEXT = 81
+PLAINTEXT = ?
+
+COUNT = 39
+KEY = 0101010101010101
+IV = 0000000001000000
+CIPHERTEXT = 4d
+PLAINTEXT = ?
+
+COUNT = 40
+KEY = 0101010101010101
+IV = 0000000000800000
+CIPHERTEXT = 25
+PLAINTEXT = ?
+
+COUNT = 41
+KEY = 0101010101010101
+IV = 0000000000400000
+CIPHERTEXT = ab
+PLAINTEXT = ?
+
+COUNT = 42
+KEY = 0101010101010101
+IV = 0000000000200000
+CIPHERTEXT = 79
+PLAINTEXT = ?
+
+COUNT = 43
+KEY = 0101010101010101
+IV = 0000000000100000
+CIPHERTEXT = 86
+PLAINTEXT = ?
+
+COUNT = 44
+KEY = 0101010101010101
+IV = 0000000000080000
+CIPHERTEXT = 8b
+PLAINTEXT = ?
+
+COUNT = 45
+KEY = 0101010101010101
+IV = 0000000000040000
+CIPHERTEXT = ea
+PLAINTEXT = ?
+
+COUNT = 46
+KEY = 0101010101010101
+IV = 0000000000020000
+CIPHERTEXT = ca
+PLAINTEXT = ?
+
+COUNT = 47
+KEY = 0101010101010101
+IV = 0000000000010000
+CIPHERTEXT = 8d
+PLAINTEXT = ?
+
+COUNT = 48
+KEY = 0101010101010101
+IV = 0000000000008000
+CIPHERTEXT = 10
+PLAINTEXT = ?
+
+COUNT = 49
+KEY = 0101010101010101
+IV = 0000000000004000
+CIPHERTEXT = 5d
+PLAINTEXT = ?
+
+COUNT = 50
+KEY = 0101010101010101
+IV = 0000000000002000
+CIPHERTEXT = 1d
+PLAINTEXT = ?
+
+COUNT = 51
+KEY = 0101010101010101
+IV = 0000000000001000
+CIPHERTEXT = ce
+PLAINTEXT = ?
+
+COUNT = 52
+KEY = 0101010101010101
+IV = 0000000000000800
+CIPHERTEXT = 84
+PLAINTEXT = ?
+
+COUNT = 53
+KEY = 0101010101010101
+IV = 0000000000000400
+CIPHERTEXT = e6
+PLAINTEXT = ?
+
+COUNT = 54
+KEY = 0101010101010101
+IV = 0000000000000200
+CIPHERTEXT = 48
+PLAINTEXT = ?
+
+COUNT = 55
+KEY = 0101010101010101
+IV = 0000000000000100
+CIPHERTEXT = dd
+PLAINTEXT = ?
+
+COUNT = 56
+KEY = 0101010101010101
+IV = 0000000000000080
+CIPHERTEXT = 2f
+PLAINTEXT = ?
+
+COUNT = 57
+KEY = 0101010101010101
+IV = 0000000000000040
+CIPHERTEXT = e0
+PLAINTEXT = ?
+
+COUNT = 58
+KEY = 0101010101010101
+IV = 0000000000000020
+CIPHERTEXT = 09
+PLAINTEXT = ?
+
+COUNT = 59
+KEY = 0101010101010101
+IV = 0000000000000010
+CIPHERTEXT = 5b
+PLAINTEXT = ?
+
+COUNT = 60
+KEY = 0101010101010101
+IV = 0000000000000008
+CIPHERTEXT = cc
+PLAINTEXT = ?
+
+COUNT = 61
+KEY = 0101010101010101
+IV = 0000000000000004
+CIPHERTEXT = d2
+PLAINTEXT = ?
+
+COUNT = 62
+KEY = 0101010101010101
+IV = 0000000000000002
+CIPHERTEXT = 06
+PLAINTEXT = ?
+
+COUNT = 63
+KEY = 0101010101010101
+IV = 0000000000000001
+CIPHERTEXT = 16
+PLAINTEXT = ?
diff --git a/fips/testvectors/des/sample/CFB8permop.sam b/fips/testvectors/des/sample/CFB8permop.sam
new file mode 100644 (file)
index 0000000..e675177
--- /dev/null
@@ -0,0 +1,392 @@
+# CAVS 2.0
+# Config Info for : "OpenSSL_DES"
+# PERMUTATION OPERATION - KAT for CFB8
+# State : Encrypt and Decrypt
+# Tue Jun 24 03:11:51 PM
+
+[ENCRYPT]
+COUNT = 0
+KEY = 1046913489980131
+IV = 0000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 1
+KEY = 1007103489988020
+IV = 0000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 2
+KEY = 10071034c8980120
+IV = 0000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 3
+KEY = 1046103489988020
+IV = 0000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 4
+KEY = 1086911519190101
+IV = 0000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 5
+KEY = 1086911519580101
+IV = 0000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 6
+KEY = 5107b01519580101
+IV = 0000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 7
+KEY = 1007b01519190101
+IV = 0000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 8
+KEY = 3107915498080101
+IV = 0000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 9
+KEY = 3107919498080101
+IV = 0000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 10
+KEY = 10079115b9080140
+IV = 0000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 11
+KEY = 3107911598080140
+IV = 0000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 12
+KEY = 1007d01589980101
+IV = 0000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 13
+KEY = 9107911589980101
+IV = 0000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 14
+KEY = 9107d01589190101
+IV = 0000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 15
+KEY = 1007d01598980120
+IV = 0000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 16
+KEY = 1007940498190101
+IV = 0000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 17
+KEY = 0107910491190401
+IV = 0000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 18
+KEY = 0107910491190101
+IV = 0000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 19
+KEY = 0107940491190401
+IV = 0000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 20
+KEY = 19079210981a0101
+IV = 0000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 21
+KEY = 1007911998190801
+IV = 0000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 22
+KEY = 10079119981a0801
+IV = 0000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 23
+KEY = 1007921098190101
+IV = 0000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 24
+KEY = 100791159819010b
+IV = 0000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 25
+KEY = 1004801598190101
+IV = 0000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 26
+KEY = 1004801598190102
+IV = 0000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 27
+KEY = 1004801598190108
+IV = 0000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 28
+KEY = 1002911598100104
+IV = 0000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 29
+KEY = 1002911598190104
+IV = 0000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 30
+KEY = 1002911598100201
+IV = 0000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 31
+KEY = 1002911698100101
+IV = 0000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+
+[DECRYPT]
+COUNT = 0
+KEY = 1046913489980131
+IV = 0000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 1
+KEY = 1007103489988020
+IV = 0000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 2
+KEY = 10071034c8980120
+IV = 0000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 3
+KEY = 1046103489988020
+IV = 0000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 4
+KEY = 1086911519190101
+IV = 0000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 5
+KEY = 1086911519580101
+IV = 0000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 6
+KEY = 5107b01519580101
+IV = 0000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 7
+KEY = 1007b01519190101
+IV = 0000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 8
+KEY = 3107915498080101
+IV = 0000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 9
+KEY = 3107919498080101
+IV = 0000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 10
+KEY = 10079115b9080140
+IV = 0000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 11
+KEY = 3107911598080140
+IV = 0000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 12
+KEY = 1007d01589980101
+IV = 0000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 13
+KEY = 9107911589980101
+IV = 0000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 14
+KEY = 9107d01589190101
+IV = 0000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 15
+KEY = 1007d01598980120
+IV = 0000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 16
+KEY = 1007940498190101
+IV = 0000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 17
+KEY = 0107910491190401
+IV = 0000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 18
+KEY = 0107910491190101
+IV = 0000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 19
+KEY = 0107940491190401
+IV = 0000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 20
+KEY = 19079210981a0101
+IV = 0000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 21
+KEY = 1007911998190801
+IV = 0000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 22
+KEY = 10079119981a0801
+IV = 0000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 23
+KEY = 1007921098190101
+IV = 0000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 24
+KEY = 100791159819010b
+IV = 0000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 25
+KEY = 1004801598190101
+IV = 0000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 26
+KEY = 1004801598190102
+IV = 0000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 27
+KEY = 1004801598190108
+IV = 0000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 28
+KEY = 1002911598100104
+IV = 0000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 29
+KEY = 1002911598190104
+IV = 0000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 30
+KEY = 1002911598100201
+IV = 0000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 31
+KEY = 1002911698100101
+IV = 0000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
diff --git a/fips/testvectors/des/sample/CFB8subtab.sam b/fips/testvectors/des/sample/CFB8subtab.sam
new file mode 100644 (file)
index 0000000..caf5bba
--- /dev/null
@@ -0,0 +1,236 @@
+# CAVS 2.0
+# Config Info for : "OpenSSL_DES"
+# SUBSTITUTION TABLE - KAT for CFB8
+# State : Encrypt and Decrypt
+# Tue Jun 24 03:11:51 PM
+
+[ENCRYPT]
+COUNT = 0
+KEY = 7ca110454a1a6e57
+IV = 01a1d6d039776742
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 1
+KEY = 0131d9619dc1376e
+IV = 5cd54ca83def57da
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 2
+KEY = 07a1133e4a0b2686
+IV = 0248d43806f67172
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 3
+KEY = 3849674c2602319e
+IV = 51454b582ddf440a
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 4
+KEY = 04b915ba43feb5b6
+IV = 42fd443059577fa2
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 5
+KEY = 0113b970fd34f2ce
+IV = 059b5e0851cf143a
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 6
+KEY = 0170f175468fb5e6
+IV = 0756d8e0774761d2
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 7
+KEY = 43297fad38e373fe
+IV = 762514b829bf486a
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 8
+KEY = 07a7137045da2a16
+IV = 3bdd119049372802
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 9
+KEY = 04689104c2fd3b2f
+IV = 26955f6835af609a
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 10
+KEY = 37d06bb516cb7546
+IV = 164d5e404f275232
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 11
+KEY = 1f08260d1ac2465e
+IV = 6b056e18759f5cca
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 12
+KEY = 584023641aba6176
+IV = 004bd6ef09176062
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 13
+KEY = 025816164629b007
+IV = 480d39006ee762f2
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 14
+KEY = 49793ebc79b3258f
+IV = 437540c8698f3cfa
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 15
+KEY = 4fb05e1515ab73a7
+IV = 072d43a077075292
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 16
+KEY = 49e95d6d4ca229bf
+IV = 02fe55778117f12a
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 17
+KEY = 018310dc409b26d6
+IV = 1d9d5c5018f728c2
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 18
+KEY = 1c587f1c13924fef
+IV = 305532286d6f295a
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+
+[DECRYPT]
+COUNT = 0
+KEY = 7ca110454a1a6e57
+IV = 01a1d6d039776742
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 1
+KEY = 0131d9619dc1376e
+IV = 5cd54ca83def57da
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 2
+KEY = 07a1133e4a0b2686
+IV = 0248d43806f67172
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 3
+KEY = 3849674c2602319e
+IV = 51454b582ddf440a
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 4
+KEY = 04b915ba43feb5b6
+IV = 42fd443059577fa2
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 5
+KEY = 0113b970fd34f2ce
+IV = 059b5e0851cf143a
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 6
+KEY = 0170f175468fb5e6
+IV = 0756d8e0774761d2
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 7
+KEY = 43297fad38e373fe
+IV = 762514b829bf486a
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 8
+KEY = 07a7137045da2a16
+IV = 3bdd119049372802
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 9
+KEY = 04689104c2fd3b2f
+IV = 26955f6835af609a
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 10
+KEY = 37d06bb516cb7546
+IV = 164d5e404f275232
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 11
+KEY = 1f08260d1ac2465e
+IV = 6b056e18759f5cca
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 12
+KEY = 584023641aba6176
+IV = 004bd6ef09176062
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 13
+KEY = 025816164629b007
+IV = 480d39006ee762f2
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 14
+KEY = 49793ebc79b3258f
+IV = 437540c8698f3cfa
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 15
+KEY = 4fb05e1515ab73a7
+IV = 072d43a077075292
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 16
+KEY = 49e95d6d4ca229bf
+IV = 02fe55778117f12a
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 17
+KEY = 018310dc409b26d6
+IV = 1d9d5c5018f728c2
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 18
+KEY = 1c587f1c13924fef
+IV = 305532286d6f295a
+CIPHERTEXT = 00
+PLAINTEXT = ?
diff --git a/fips/testvectors/des/sample/CFB8varkey.sam b/fips/testvectors/des/sample/CFB8varkey.sam
new file mode 100644 (file)
index 0000000..d8fd5f7
--- /dev/null
@@ -0,0 +1,680 @@
+# CAVS 2.0
+# Config Info for : "OpenSSL_DES"
+# VARIABLE KEY - KAT for CFB8
+# State : Encrypt and Decrypt
+# Tue Jun 24 03:11:51 PM
+
+[ENCRYPT]
+COUNT = 0
+KEY = 8001010101010101
+IV = 0000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 1
+KEY = 4001010101010101
+IV = 0000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 2
+KEY = 2001010101010101
+IV = 0000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 3
+KEY = 1001010101010101
+IV = 0000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 4
+KEY = 0801010101010101
+IV = 0000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 5
+KEY = 0401010101010101
+IV = 0000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 6
+KEY = 0201010101010101
+IV = 0000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 7
+KEY = 0180010101010101
+IV = 0000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 8
+KEY = 0140010101010101
+IV = 0000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 9
+KEY = 0120010101010101
+IV = 0000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 10
+KEY = 0110010101010101
+IV = 0000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 11
+KEY = 0108010101010101
+IV = 0000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 12
+KEY = 0104010101010101
+IV = 0000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 13
+KEY = 0102010101010101
+IV = 0000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 14
+KEY = 0101800101010101
+IV = 0000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 15
+KEY = 0101400101010101
+IV = 0000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 16
+KEY = 0101200101010101
+IV = 0000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 17
+KEY = 0101100101010101
+IV = 0000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 18
+KEY = 0101080101010101
+IV = 0000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 19
+KEY = 0101040101010101
+IV = 0000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 20
+KEY = 0101020101010101
+IV = 0000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 21
+KEY = 0101018001010101
+IV = 0000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 22
+KEY = 0101014001010101
+IV = 0000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 23
+KEY = 0101012001010101
+IV = 0000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 24
+KEY = 0101011001010101
+IV = 0000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 25
+KEY = 0101010801010101
+IV = 0000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 26
+KEY = 0101010401010101
+IV = 0000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 27
+KEY = 0101010201010101
+IV = 0000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 28
+KEY = 0101010180010101
+IV = 0000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 29
+KEY = 0101010140010101
+IV = 0000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 30
+KEY = 0101010120010101
+IV = 0000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 31
+KEY = 0101010110010101
+IV = 0000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 32
+KEY = 0101010108010101
+IV = 0000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 33
+KEY = 0101010104010101
+IV = 0000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 34
+KEY = 0101010102010101
+IV = 0000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 35
+KEY = 0101010101800101
+IV = 0000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 36
+KEY = 0101010101400101
+IV = 0000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 37
+KEY = 0101010101200101
+IV = 0000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 38
+KEY = 0101010101100101
+IV = 0000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 39
+KEY = 0101010101080101
+IV = 0000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 40
+KEY = 0101010101040101
+IV = 0000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 41
+KEY = 0101010101020101
+IV = 0000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 42
+KEY = 0101010101018001
+IV = 0000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 43
+KEY = 0101010101014001
+IV = 0000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 44
+KEY = 0101010101012001
+IV = 0000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 45
+KEY = 0101010101011001
+IV = 0000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 46
+KEY = 0101010101010801
+IV = 0000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 47
+KEY = 0101010101010401
+IV = 0000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 48
+KEY = 0101010101010201
+IV = 0000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 49
+KEY = 0101010101010180
+IV = 0000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 50
+KEY = 0101010101010140
+IV = 0000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 51
+KEY = 0101010101010120
+IV = 0000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 52
+KEY = 0101010101010110
+IV = 0000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 53
+KEY = 0101010101010108
+IV = 0000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 54
+KEY = 0101010101010104
+IV = 0000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 55
+KEY = 0101010101010102
+IV = 0000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+
+[DECRYPT]
+COUNT = 0
+KEY = 8001010101010101
+IV = 0000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 1
+KEY = 4001010101010101
+IV = 0000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 2
+KEY = 2001010101010101
+IV = 0000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 3
+KEY = 1001010101010101
+IV = 0000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 4
+KEY = 0801010101010101
+IV = 0000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 5
+KEY = 0401010101010101
+IV = 0000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 6
+KEY = 0201010101010101
+IV = 0000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 7
+KEY = 0180010101010101
+IV = 0000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 8
+KEY = 0140010101010101
+IV = 0000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 9
+KEY = 0120010101010101
+IV = 0000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 10
+KEY = 0110010101010101
+IV = 0000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 11
+KEY = 0108010101010101
+IV = 0000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 12
+KEY = 0104010101010101
+IV = 0000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 13
+KEY = 0102010101010101
+IV = 0000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 14
+KEY = 0101800101010101
+IV = 0000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 15
+KEY = 0101400101010101
+IV = 0000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 16
+KEY = 0101200101010101
+IV = 0000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 17
+KEY = 0101100101010101
+IV = 0000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 18
+KEY = 0101080101010101
+IV = 0000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 19
+KEY = 0101040101010101
+IV = 0000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 20
+KEY = 0101020101010101
+IV = 0000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 21
+KEY = 0101018001010101
+IV = 0000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 22
+KEY = 0101014001010101
+IV = 0000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 23
+KEY = 0101012001010101
+IV = 0000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 24
+KEY = 0101011001010101
+IV = 0000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 25
+KEY = 0101010801010101
+IV = 0000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 26
+KEY = 0101010401010101
+IV = 0000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 27
+KEY = 0101010201010101
+IV = 0000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 28
+KEY = 0101010180010101
+IV = 0000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 29
+KEY = 0101010140010101
+IV = 0000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 30
+KEY = 0101010120010101
+IV = 0000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 31
+KEY = 0101010110010101
+IV = 0000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 32
+KEY = 0101010108010101
+IV = 0000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 33
+KEY = 0101010104010101
+IV = 0000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 34
+KEY = 0101010102010101
+IV = 0000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 35
+KEY = 0101010101800101
+IV = 0000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 36
+KEY = 0101010101400101
+IV = 0000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 37
+KEY = 0101010101200101
+IV = 0000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 38
+KEY = 0101010101100101
+IV = 0000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 39
+KEY = 0101010101080101
+IV = 0000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 40
+KEY = 0101010101040101
+IV = 0000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 41
+KEY = 0101010101020101
+IV = 0000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 42
+KEY = 0101010101018001
+IV = 0000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 43
+KEY = 0101010101014001
+IV = 0000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 44
+KEY = 0101010101012001
+IV = 0000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 45
+KEY = 0101010101011001
+IV = 0000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 46
+KEY = 0101010101010801
+IV = 0000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 47
+KEY = 0101010101010401
+IV = 0000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 48
+KEY = 0101010101010201
+IV = 0000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 49
+KEY = 0101010101010180
+IV = 0000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 50
+KEY = 0101010101010140
+IV = 0000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 51
+KEY = 0101010101010120
+IV = 0000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 52
+KEY = 0101010101010110
+IV = 0000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 53
+KEY = 0101010101010108
+IV = 0000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 54
+KEY = 0101010101010104
+IV = 0000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 55
+KEY = 0101010101010102
+IV = 0000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
diff --git a/fips/testvectors/des/sample/CFB8vartext.sam b/fips/testvectors/des/sample/CFB8vartext.sam
new file mode 100644 (file)
index 0000000..6e807e9
--- /dev/null
@@ -0,0 +1,776 @@
+# CAVS 2.0
+# Config Info for : "OpenSSL_DES"
+# VARIABLE PLAINTEXT/CIPHERTEXT - KAT for CFB8
+# State : Encrypt and Decrypt
+# Tue Jun 24 03:11:51 PM
+
+[ENCRYPT]
+COUNT = 0
+KEY = 0101010101010101
+IV = 8000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 1
+KEY = 0101010101010101
+IV = 4000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 2
+KEY = 0101010101010101
+IV = 2000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 3
+KEY = 0101010101010101
+IV = 1000000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 4
+KEY = 0101010101010101
+IV = 0800000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 5
+KEY = 0101010101010101
+IV = 0400000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 6
+KEY = 0101010101010101
+IV = 0200000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 7
+KEY = 0101010101010101
+IV = 0100000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 8
+KEY = 0101010101010101
+IV = 0080000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 9
+KEY = 0101010101010101
+IV = 0040000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 10
+KEY = 0101010101010101
+IV = 0020000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 11
+KEY = 0101010101010101
+IV = 0010000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 12
+KEY = 0101010101010101
+IV = 0008000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 13
+KEY = 0101010101010101
+IV = 0004000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 14
+KEY = 0101010101010101
+IV = 0002000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 15
+KEY = 0101010101010101
+IV = 0001000000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 16
+KEY = 0101010101010101
+IV = 0000800000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 17
+KEY = 0101010101010101
+IV = 0000400000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 18
+KEY = 0101010101010101
+IV = 0000200000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 19
+KEY = 0101010101010101
+IV = 0000100000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 20
+KEY = 0101010101010101
+IV = 0000080000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 21
+KEY = 0101010101010101
+IV = 0000040000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 22
+KEY = 0101010101010101
+IV = 0000020000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 23
+KEY = 0101010101010101
+IV = 0000010000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 24
+KEY = 0101010101010101
+IV = 0000008000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 25
+KEY = 0101010101010101
+IV = 0000004000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 26
+KEY = 0101010101010101
+IV = 0000002000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 27
+KEY = 0101010101010101
+IV = 0000001000000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 28
+KEY = 0101010101010101
+IV = 0000000800000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 29
+KEY = 0101010101010101
+IV = 0000000400000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 30
+KEY = 0101010101010101
+IV = 0000000200000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 31
+KEY = 0101010101010101
+IV = 0000000100000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 32
+KEY = 0101010101010101
+IV = 0000000080000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 33
+KEY = 0101010101010101
+IV = 0000000040000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 34
+KEY = 0101010101010101
+IV = 0000000020000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 35
+KEY = 0101010101010101
+IV = 0000000010000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 36
+KEY = 0101010101010101
+IV = 0000000008000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 37
+KEY = 0101010101010101
+IV = 0000000004000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 38
+KEY = 0101010101010101
+IV = 0000000002000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 39
+KEY = 0101010101010101
+IV = 0000000001000000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 40
+KEY = 0101010101010101
+IV = 0000000000800000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 41
+KEY = 0101010101010101
+IV = 0000000000400000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 42
+KEY = 0101010101010101
+IV = 0000000000200000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 43
+KEY = 0101010101010101
+IV = 0000000000100000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 44
+KEY = 0101010101010101
+IV = 0000000000080000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 45
+KEY = 0101010101010101
+IV = 0000000000040000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 46
+KEY = 0101010101010101
+IV = 0000000000020000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 47
+KEY = 0101010101010101
+IV = 0000000000010000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 48
+KEY = 0101010101010101
+IV = 0000000000008000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 49
+KEY = 0101010101010101
+IV = 0000000000004000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 50
+KEY = 0101010101010101
+IV = 0000000000002000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 51
+KEY = 0101010101010101
+IV = 0000000000001000
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 52
+KEY = 0101010101010101
+IV = 0000000000000800
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 53
+KEY = 0101010101010101
+IV = 0000000000000400
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 54
+KEY = 0101010101010101
+IV = 0000000000000200
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 55
+KEY = 0101010101010101
+IV = 0000000000000100
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 56
+KEY = 0101010101010101
+IV = 0000000000000080
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 57
+KEY = 0101010101010101
+IV = 0000000000000040
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 58
+KEY = 0101010101010101
+IV = 0000000000000020
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 59
+KEY = 0101010101010101
+IV = 0000000000000010
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 60
+KEY = 0101010101010101
+IV = 0000000000000008
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 61
+KEY = 0101010101010101
+IV = 0000000000000004
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 62
+KEY = 0101010101010101
+IV = 0000000000000002
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+COUNT = 63
+KEY = 0101010101010101
+IV = 0000000000000001
+PLAINTEXT = 00
+CIPHERTEXT = ?
+
+
+[DECRYPT]
+COUNT = 0
+KEY = 0101010101010101
+IV = 8000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 1
+KEY = 0101010101010101
+IV = 4000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 2
+KEY = 0101010101010101
+IV = 2000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 3
+KEY = 0101010101010101
+IV = 1000000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 4
+KEY = 0101010101010101
+IV = 0800000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 5
+KEY = 0101010101010101
+IV = 0400000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 6
+KEY = 0101010101010101
+IV = 0200000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 7
+KEY = 0101010101010101
+IV = 0100000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 8
+KEY = 0101010101010101
+IV = 0080000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 9
+KEY = 0101010101010101
+IV = 0040000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 10
+KEY = 0101010101010101
+IV = 0020000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 11
+KEY = 0101010101010101
+IV = 0010000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 12
+KEY = 0101010101010101
+IV = 0008000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 13
+KEY = 0101010101010101
+IV = 0004000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 14
+KEY = 0101010101010101
+IV = 0002000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 15
+KEY = 0101010101010101
+IV = 0001000000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 16
+KEY = 0101010101010101
+IV = 0000800000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 17
+KEY = 0101010101010101
+IV = 0000400000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 18
+KEY = 0101010101010101
+IV = 0000200000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 19
+KEY = 0101010101010101
+IV = 0000100000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 20
+KEY = 0101010101010101
+IV = 0000080000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 21
+KEY = 0101010101010101
+IV = 0000040000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 22
+KEY = 0101010101010101
+IV = 0000020000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 23
+KEY = 0101010101010101
+IV = 0000010000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 24
+KEY = 0101010101010101
+IV = 0000008000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 25
+KEY = 0101010101010101
+IV = 0000004000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 26
+KEY = 0101010101010101
+IV = 0000002000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 27
+KEY = 0101010101010101
+IV = 0000001000000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 28
+KEY = 0101010101010101
+IV = 0000000800000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 29
+KEY = 0101010101010101
+IV = 0000000400000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 30
+KEY = 0101010101010101
+IV = 0000000200000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 31
+KEY = 0101010101010101
+IV = 0000000100000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 32
+KEY = 0101010101010101
+IV = 0000000080000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 33
+KEY = 0101010101010101
+IV = 0000000040000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 34
+KEY = 0101010101010101
+IV = 0000000020000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 35
+KEY = 0101010101010101
+IV = 0000000010000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 36
+KEY = 0101010101010101
+IV = 0000000008000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 37
+KEY = 0101010101010101
+IV = 0000000004000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 38
+KEY = 0101010101010101
+IV = 0000000002000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 39
+KEY = 0101010101010101
+IV = 0000000001000000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 40
+KEY = 0101010101010101
+IV = 0000000000800000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 41
+KEY = 0101010101010101
+IV = 0000000000400000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 42
+KEY = 0101010101010101
+IV = 0000000000200000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 43
+KEY = 0101010101010101
+IV = 0000000000100000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 44
+KEY = 0101010101010101
+IV = 0000000000080000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 45
+KEY = 0101010101010101
+IV = 0000000000040000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 46
+KEY = 0101010101010101
+IV = 0000000000020000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 47
+KEY = 0101010101010101
+IV = 0000000000010000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 48
+KEY = 0101010101010101
+IV = 0000000000008000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 49
+KEY = 0101010101010101
+IV = 0000000000004000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 50
+KEY = 0101010101010101
+IV = 0000000000002000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 51
+KEY = 0101010101010101
+IV = 0000000000001000
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 52
+KEY = 0101010101010101
+IV = 0000000000000800
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 53
+KEY = 0101010101010101
+IV = 0000000000000400
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 54
+KEY = 0101010101010101
+IV = 0000000000000200
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 55
+KEY = 0101010101010101
+IV = 0000000000000100
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 56
+KEY = 0101010101010101
+IV = 0000000000000080
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 57
+KEY = 0101010101010101
+IV = 0000000000000040
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 58
+KEY = 0101010101010101
+IV = 0000000000000020
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 59
+KEY = 0101010101010101
+IV = 0000000000000010
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 60
+KEY = 0101010101010101
+IV = 0000000000000008
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 61
+KEY = 0101010101010101
+IV = 0000000000000004
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 62
+KEY = 0101010101010101
+IV = 0000000000000002
+CIPHERTEXT = 00
+PLAINTEXT = ?
+
+COUNT = 63
+KEY = 0101010101010101
+IV = 0000000000000001
+CIPHERTEXT = 00
+PLAINTEXT = ?
diff --git a/fips/testvectors/des/sample/ECBMMT.sam b/fips/testvectors/des/sample/ECBMMT.sam
new file mode 100644 (file)
index 0000000..08e4207
--- /dev/null
@@ -0,0 +1,40 @@
+# CAVS 2.0
+# Config Info for : "OpenSSL_DES"
+# DES Multi Block Message Test for ECB
+# State : Encrypt and Decrypt
+# Tue Jun 24 03:12:12 PM
+
+[ENCRYPT]
+
+COUNT = 0
+KEY = 91e601d59d64d5a4
+PLAINTEXT = 078f91710eace1c8
+CIPHERTEXT = 030e4cd29e23e245
+
+COUNT = 1
+KEY = 4997615820ae85f2
+PLAINTEXT = e06afca4c971e04a1605f4e50440740b
+CIPHERTEXT = 91e958cd02b83a7c3f1d00d897d6fdb9
+
+COUNT = 2
+KEY = d3fd4ae6a8108afb
+PLAINTEXT = b577fcc169bc5195b3c9a9545c55aa9eda1212c9723ef81d
+CIPHERTEXT = 2e855dd7652d85c9160eec5502c5950bbbcd176f1a5dcf33
+
+[DECRYPT]
+
+COUNT = 0
+KEY = 9befba6dc84f1a01
+CIPHERTEXT = 7f3cc2a97ba1cc29
+PLAINTEXT = b7be131ea64a161e
+
+COUNT = 1
+KEY = 014abaea8c01d049
+CIPHERTEXT = 7c80b93386ba4cfaf274622757ba6bbf
+PLAINTEXT = 505694144ab787f894eed72e3b9d9b09
+
+COUNT = 2
+KEY = 8c5e32c410a14554
+CIPHERTEXT = 0f9d3071af25a14211c5b47380a9b4b24af9f88722ad69cf
+PLAINTEXT = feb83e9b222813216deb7b750f8d2a19265f5f5d411b8b8f
+
diff --git a/fips/testvectors/des/sample/ECBMonte.sam b/fips/testvectors/des/sample/ECBMonte.sam
new file mode 100644 (file)
index 0000000..ba0ff34
--- /dev/null
@@ -0,0 +1,50 @@
+# CAVS 2.0
+# Config Info for : "OpenSSL_DES"
+# DES Monte Carlo (Modes) Test for ECB
+# State : Encrypt and Decrypt
+# Tue Jun 24 03:12:12 PM
+
+[ENCRYPT]
+
+COUNT = 0
+KEY = 85ec01545e169b7c
+PLAINTEXT = a58819aa56a768fa
+CIPHERTEXT = b92e1cd952dc22cf
+
+COUNT = 1
+KEY = 3dc21c8c0dcbb9b3
+PLAINTEXT = b92e1cd952dc22cf
+CIPHERTEXT = c2d8fa4afcb8e548
+
+COUNT = 2
+KEY = fe1ae6c7f1735dfb
+PLAINTEXT = c2d8fa4afcb8e548
+CIPHERTEXT = c8f24f820dce8c62
+
+COUNT = 3
+KEY = 37e9a845fdbcd098
+PLAINTEXT = c8f24f820dce8c62
+CIPHERTEXT = 4fb549b9a153054d
+
+[DECRYPT]
+
+COUNT = 0
+KEY = 2a4a34049bb9f4e9
+CIPHERTEXT = ccb58233c54a7e4b
+PLAINTEXT = 39e957797c960752
+
+COUNT = 1
+KEY = 13a2627ce62ff2ba
+CIPHERTEXT = 39e957797c960752
+PLAINTEXT = a8bc0caae7b9cc6b
+
+COUNT = 2
+KEY = ba1f6ed601973ed0
+CIPHERTEXT = a8bc0caae7b9cc6b
+PLAINTEXT = a43ec7e5226124d2
+
+COUNT = 3
+KEY = 1f20a83223f71a02
+CIPHERTEXT = a43ec7e5226124d2
+PLAINTEXT = a025a13e84a6770d
+
diff --git a/fips/testvectors/des/sample/ECBinvperm.sam b/fips/testvectors/des/sample/ECBinvperm.sam
new file mode 100644 (file)
index 0000000..435e1b6
--- /dev/null
@@ -0,0 +1,648 @@
+# CAVS 2.0
+# Config Info for : "OpenSSL_DES"
+# INVERSE PERMUTATION - KAT for ECB
+# State : Encrypt and Decrypt
+# Tue Jun 24 03:11:51 PM
+
+[ENCRYPT]
+COUNT = 0
+KEY = 0101010101010101
+PLAINTEXT = 95f8a5e5dd31d900
+CIPHERTEXT = ?
+
+COUNT = 1
+KEY = 0101010101010101
+PLAINTEXT = dd7f121ca5015619
+CIPHERTEXT = ?
+
+COUNT = 2
+KEY = 0101010101010101
+PLAINTEXT = 2e8653104f3834ea
+CIPHERTEXT = ?
+
+COUNT = 3
+KEY = 0101010101010101
+PLAINTEXT = 4bd388ff6cd81d4f
+CIPHERTEXT = ?
+
+COUNT = 4
+KEY = 0101010101010101
+PLAINTEXT = 20b9e767b2fb1456
+CIPHERTEXT = ?
+
+COUNT = 5
+KEY = 0101010101010101
+PLAINTEXT = 55579380d77138ef
+CIPHERTEXT = ?
+
+COUNT = 6
+KEY = 0101010101010101
+PLAINTEXT = 6cc5defaaf04512f
+CIPHERTEXT = ?
+
+COUNT = 7
+KEY = 0101010101010101
+PLAINTEXT = 0d9f279ba5d87260
+CIPHERTEXT = ?
+
+COUNT = 8
+KEY = 0101010101010101
+PLAINTEXT = d9031b0271bd5a0a
+CIPHERTEXT = ?
+
+COUNT = 9
+KEY = 0101010101010101
+PLAINTEXT = 424250b37c3dd951
+CIPHERTEXT = ?
+
+COUNT = 10
+KEY = 0101010101010101
+PLAINTEXT = b8061b7ecd9a21e5
+CIPHERTEXT = ?
+
+COUNT = 11
+KEY = 0101010101010101
+PLAINTEXT = f15d0f286b65bd28
+CIPHERTEXT = ?
+
+COUNT = 12
+KEY = 0101010101010101
+PLAINTEXT = add0cc8d6e5deba1
+CIPHERTEXT = ?
+
+COUNT = 13
+KEY = 0101010101010101
+PLAINTEXT = e6d5f82752ad63d1
+CIPHERTEXT = ?
+
+COUNT = 14
+KEY = 0101010101010101
+PLAINTEXT = ecbfe3bd3f591a5e
+CIPHERTEXT = ?
+
+COUNT = 15
+KEY = 0101010101010101
+PLAINTEXT = f356834379d165cd
+CIPHERTEXT = ?
+
+COUNT = 16
+KEY = 0101010101010101
+PLAINTEXT = 2b9f982f20037fa9
+CIPHERTEXT = ?
+
+COUNT = 17
+KEY = 0101010101010101
+PLAINTEXT = 889de068a16f0be6
+CIPHERTEXT = ?
+
+COUNT = 18
+KEY = 0101010101010101
+PLAINTEXT = e19e275d846a1298
+CIPHERTEXT = ?
+
+COUNT = 19
+KEY = 0101010101010101
+PLAINTEXT = 329a8ed523d71aec
+CIPHERTEXT = ?
+
+COUNT = 20
+KEY = 0101010101010101
+PLAINTEXT = e7fce22557d23c97
+CIPHERTEXT = ?
+
+COUNT = 21
+KEY = 0101010101010101
+PLAINTEXT = 12a9f5817ff2d65d
+CIPHERTEXT = ?
+
+COUNT = 22
+KEY = 0101010101010101
+PLAINTEXT = a484c3ad38dc9c19
+CIPHERTEXT = ?
+
+COUNT = 23
+KEY = 0101010101010101
+PLAINTEXT = fbe00a8a1ef8ad72
+CIPHERTEXT = ?
+
+COUNT = 24
+KEY = 0101010101010101
+PLAINTEXT = 750d079407521363
+CIPHERTEXT = ?
+
+COUNT = 25
+KEY = 0101010101010101
+PLAINTEXT = 64feed9c724c2faf
+CIPHERTEXT = ?
+
+COUNT = 26
+KEY = 0101010101010101
+PLAINTEXT = f02b263b328e2b60
+CIPHERTEXT = ?
+
+COUNT = 27
+KEY = 0101010101010101
+PLAINTEXT = 9d64555a9a10b852
+CIPHERTEXT = ?
+
+COUNT = 28
+KEY = 0101010101010101
+PLAINTEXT = d106ff0bed5255d7
+CIPHERTEXT = ?
+
+COUNT = 29
+KEY = 0101010101010101
+PLAINTEXT = e1652c6b138c64a5
+CIPHERTEXT = ?
+
+COUNT = 30
+KEY = 0101010101010101
+PLAINTEXT = e428581186ec8f46
+CIPHERTEXT = ?
+
+COUNT = 31
+KEY = 0101010101010101
+PLAINTEXT = aeb5f5ede22d1a36
+CIPHERTEXT = ?
+
+COUNT = 32
+KEY = 0101010101010101
+PLAINTEXT = e943d7568aec0c5c
+CIPHERTEXT = ?
+
+COUNT = 33
+KEY = 0101010101010101
+PLAINTEXT = df98c8276f54b04b
+CIPHERTEXT = ?
+
+COUNT = 34
+KEY = 0101010101010101
+PLAINTEXT = b160e4680f6c696f
+CIPHERTEXT = ?
+
+COUNT = 35
+KEY = 0101010101010101
+PLAINTEXT = fa0752b07d9c4ab8
+CIPHERTEXT = ?
+
+COUNT = 36
+KEY = 0101010101010101
+PLAINTEXT = ca3a2b036dbc8502
+CIPHERTEXT = ?
+
+COUNT = 37
+KEY = 0101010101010101
+PLAINTEXT = 5e0905517bb59bcf
+CIPHERTEXT = ?
+
+COUNT = 38
+KEY = 0101010101010101
+PLAINTEXT = 814eeb3b91d90726
+CIPHERTEXT = ?
+
+COUNT = 39
+KEY = 0101010101010101
+PLAINTEXT = 4d49db1532919c9f
+CIPHERTEXT = ?
+
+COUNT = 40
+KEY = 0101010101010101
+PLAINTEXT = 25eb5fc3f8cf0621
+CIPHERTEXT = ?
+
+COUNT = 41
+KEY = 0101010101010101
+PLAINTEXT = ab6a20c0620d1c6f
+CIPHERTEXT = ?
+
+COUNT = 42
+KEY = 0101010101010101
+PLAINTEXT = 79e90dbc98f92cca
+CIPHERTEXT = ?
+
+COUNT = 43
+KEY = 0101010101010101
+PLAINTEXT = 866ecedd8072bb0e
+CIPHERTEXT = ?
+
+COUNT = 44
+KEY = 0101010101010101
+PLAINTEXT = 8b54536f2f3e64a8
+CIPHERTEXT = ?
+
+COUNT = 45
+KEY = 0101010101010101
+PLAINTEXT = ea51d3975595b86b
+CIPHERTEXT = ?
+
+COUNT = 46
+KEY = 0101010101010101
+PLAINTEXT = caffc6ac4542de31
+CIPHERTEXT = ?
+
+COUNT = 47
+KEY = 0101010101010101
+PLAINTEXT = 8dd45a2ddf90796c
+CIPHERTEXT = ?
+
+COUNT = 48
+KEY = 0101010101010101
+PLAINTEXT = 1029d55e880ec2d0
+CIPHERTEXT = ?
+
+COUNT = 49
+KEY = 0101010101010101
+PLAINTEXT = 5d86cb23639dbea9
+CIPHERTEXT = ?
+
+COUNT = 50
+KEY = 0101010101010101
+PLAINTEXT = 1d1ca853ae7c0c5f
+CIPHERTEXT = ?
+
+COUNT = 51
+KEY = 0101010101010101
+PLAINTEXT = ce332329248f3228
+CIPHERTEXT = ?
+
+COUNT = 52
+KEY = 0101010101010101
+PLAINTEXT = 8405d1abe24fb942
+CIPHERTEXT = ?
+
+COUNT = 53
+KEY = 0101010101010101
+PLAINTEXT = e643d78090ca4207
+CIPHERTEXT = ?
+
+COUNT = 54
+KEY = 0101010101010101
+PLAINTEXT = 48221b9937748a23
+CIPHERTEXT = ?
+
+COUNT = 55
+KEY = 0101010101010101
+PLAINTEXT = dd7c0bbd61fafd54
+CIPHERTEXT = ?
+
+COUNT = 56
+KEY = 0101010101010101
+PLAINTEXT = 2fbc291a570db5c4
+CIPHERTEXT = ?
+
+COUNT = 57
+KEY = 0101010101010101
+PLAINTEXT = e07c30d7e4e26e12
+CIPHERTEXT = ?
+
+COUNT = 58
+KEY = 0101010101010101
+PLAINTEXT = 0953e2258e8e90a1
+CIPHERTEXT = ?
+
+COUNT = 59
+KEY = 0101010101010101
+PLAINTEXT = 5b711bc4ceebf2ee
+CIPHERTEXT = ?
+
+COUNT = 60
+KEY = 0101010101010101
+PLAINTEXT = cc083f1e6d9e85f6
+CIPHERTEXT = ?
+
+COUNT = 61
+KEY = 0101010101010101
+PLAINTEXT = d2fd8867d50d2dfe
+CIPHERTEXT = ?
+
+COUNT = 62
+KEY = 0101010101010101
+PLAINTEXT = 06e7ea22ce92708f
+CIPHERTEXT = ?
+
+COUNT = 63
+KEY = 0101010101010101
+PLAINTEXT = 166b40b44aba4bd6
+CIPHERTEXT = ?
+
+
+[DECRYPT]
+COUNT = 0
+KEY = 0101010101010101
+CIPHERTEXT = 8000000000000000
+PLAINTEXT = ?
+
+COUNT = 1
+KEY = 0101010101010101
+CIPHERTEXT = 4000000000000000
+PLAINTEXT = ?
+
+COUNT = 2
+KEY = 0101010101010101
+CIPHERTEXT = 2000000000000000
+PLAINTEXT = ?
+
+COUNT = 3
+KEY = 0101010101010101
+CIPHERTEXT = 1000000000000000
+PLAINTEXT = ?
+
+COUNT = 4
+KEY = 0101010101010101
+CIPHERTEXT = 0800000000000000
+PLAINTEXT = ?
+
+COUNT = 5
+KEY = 0101010101010101
+CIPHERTEXT = 0400000000000000
+PLAINTEXT = ?
+
+COUNT = 6
+KEY = 0101010101010101
+CIPHERTEXT = 0200000000000000
+PLAINTEXT = ?
+
+COUNT = 7
+KEY = 0101010101010101
+CIPHERTEXT = 0100000000000000
+PLAINTEXT = ?
+
+COUNT = 8
+KEY = 0101010101010101
+CIPHERTEXT = 0080000000000000
+PLAINTEXT = ?
+
+COUNT = 9
+KEY = 0101010101010101
+CIPHERTEXT = 0040000000000000
+PLAINTEXT = ?
+
+COUNT = 10
+KEY = 0101010101010101
+CIPHERTEXT = 0020000000000000
+PLAINTEXT = ?
+
+COUNT = 11
+KEY = 0101010101010101
+CIPHERTEXT = 0010000000000000
+PLAINTEXT = ?
+
+COUNT = 12
+KEY = 0101010101010101
+CIPHERTEXT = 0008000000000000
+PLAINTEXT = ?
+
+COUNT = 13
+KEY = 0101010101010101
+CIPHERTEXT = 0004000000000000
+PLAINTEXT = ?
+
+COUNT = 14
+KEY = 0101010101010101
+CIPHERTEXT = 0002000000000000
+PLAINTEXT = ?
+
+COUNT = 15
+KEY = 0101010101010101
+CIPHERTEXT = 0001000000000000
+PLAINTEXT = ?
+
+COUNT = 16
+KEY = 0101010101010101
+CIPHERTEXT = 0000800000000000
+PLAINTEXT = ?
+
+COUNT = 17
+KEY = 0101010101010101
+CIPHERTEXT = 0000400000000000
+PLAINTEXT = ?
+
+COUNT = 18
+KEY = 0101010101010101
+CIPHERTEXT = 0000200000000000
+PLAINTEXT = ?
+
+COUNT = 19
+KEY = 0101010101010101
+CIPHERTEXT = 0000100000000000
+PLAINTEXT = ?
+
+COUNT = 20
+KEY = 0101010101010101
+CIPHERTEXT = 0000080000000000
+PLAINTEXT = ?
+
+COUNT = 21
+KEY = 0101010101010101
+CIPHERTEXT = 0000040000000000
+PLAINTEXT = ?
+
+COUNT = 22
+KEY = 0101010101010101
+CIPHERTEXT = 0000020000000000
+PLAINTEXT = ?
+
+COUNT = 23
+KEY = 0101010101010101
+CIPHERTEXT = 0000010000000000
+PLAINTEXT = ?
+
+COUNT = 24
+KEY = 0101010101010101
+CIPHERTEXT = 0000008000000000
+PLAINTEXT = ?
+
+COUNT = 25
+KEY = 0101010101010101
+CIPHERTEXT = 0000004000000000
+PLAINTEXT = ?
+
+COUNT = 26
+KEY = 0101010101010101
+CIPHERTEXT = 0000002000000000
+PLAINTEXT = ?
+
+COUNT = 27
+KEY = 0101010101010101
+CIPHERTEXT = 0000001000000000
+PLAINTEXT = ?
+
+COUNT = 28
+KEY = 0101010101010101
+CIPHERTEXT = 0000000800000000
+PLAINTEXT = ?
+
+COUNT = 29
+KEY = 0101010101010101
+CIPHERTEXT = 0000000400000000
+PLAINTEXT = ?
+
+COUNT = 30
+KEY = 0101010101010101
+CIPHERTEXT = 0000000200000000
+PLAINTEXT = ?
+
+COUNT = 31
+KEY = 0101010101010101
+CIPHERTEXT = 0000000100000000
+PLAINTEXT = ?
+
+COUNT = 32
+KEY = 0101010101010101
+CIPHERTEXT = 0000000080000000
+PLAINTEXT = ?
+
+COUNT = 33
+KEY = 0101010101010101
+CIPHERTEXT = 0000000040000000
+PLAINTEXT = ?
+
+COUNT = 34
+KEY = 0101010101010101
+CIPHERTEXT = 0000000020000000
+PLAINTEXT = ?
+
+COUNT = 35
+KEY = 0101010101010101
+CIPHERTEXT = 0000000010000000
+PLAINTEXT = ?
+
+COUNT = 36
+KEY = 0101010101010101
+CIPHERTEXT = 0000000008000000
+PLAINTEXT = ?
+
+COUNT = 37
+KEY = 0101010101010101
+CIPHERTEXT = 0000000004000000
+PLAINTEXT = ?
+
+COUNT = 38
+KEY = 0101010101010101
+CIPHERTEXT = 0000000002000000
+PLAINTEXT = ?
+
+COUNT = 39
+KEY = 0101010101010101
+CIPHERTEXT = 0000000001000000
+PLAINTEXT = ?
+
+COUNT = 40
+KEY = 0101010101010101
+CIPHERTEXT = 0000000000800000
+PLAINTEXT = ?
+
+COUNT = 41
+KEY = 0101010101010101
+CIPHERTEXT = 0000000000400000
+PLAINTEXT = ?
+
+COUNT = 42
+KEY = 0101010101010101
+CIPHERTEXT = 0000000000200000
+PLAINTEXT = ?
+
+COUNT = 43
+KEY = 0101010101010101
+CIPHERTEXT = 0000000000100000
+PLAINTEXT = ?
+
+COUNT = 44
+KEY = 0101010101010101
+CIPHERTEXT = 0000000000080000
+PLAINTEXT = ?
+
+COUNT = 45
+KEY = 0101010101010101
+CIPHERTEXT = 0000000000040000
+PLAINTEXT = ?
+
+COUNT = 46
+KEY = 0101010101010101
+CIPHERTEXT = 0000000000020000
+PLAINTEXT = ?
+
+COUNT = 47
+KEY = 0101010101010101
+CIPHERTEXT = 0000000000010000
+PLAINTEXT = ?
+
+COUNT = 48
+KEY = 0101010101010101
+CIPHERTEXT = 0000000000008000
+PLAINTEXT = ?
+
+COUNT = 49
+KEY = 0101010101010101
+CIPHERTEXT = 0000000000004000
+PLAINTEXT = ?
+
+COUNT = 50
+KEY = 0101010101010101
+CIPHERTEXT = 0000000000002000
+PLAINTEXT = ?
+
+COUNT = 51
+KEY = 0101010101010101
+CIPHERTEXT = 0000000000001000
+PLAINTEXT = ?
+
+COUNT = 52
+KEY = 0101010101010101
+CIPHERTEXT = 0000000000000800
+PLAINTEXT = ?
+
+COUNT = 53
+KEY = 0101010101010101
+CIPHERTEXT = 0000000000000400
+PLAINTEXT = ?
+
+COUNT = 54
+KEY = 0101010101010101
+CIPHERTEXT = 0000000000000200
+PLAINTEXT = ?
+
+COUNT = 55
+KEY = 0101010101010101
+CIPHERTEXT = 0000000000000100
+PLAINTEXT = ?
+
+COUNT = 56
+KEY = 0101010101010101
+CIPHERTEXT = 0000000000000080
+PLAINTEXT = ?
+
+COUNT = 57
+KEY = 0101010101010101
+CIPHERTEXT = 0000000000000040
+PLAINTEXT = ?
+
+COUNT = 58
+KEY = 0101010101010101
+CIPHERTEXT = 0000000000000020
+PLAINTEXT = ?
+
+COUNT = 59
+KEY = 0101010101010101
+CIPHERTEXT = 0000000000000010
+PLAINTEXT = ?
+
+COUNT = 60
+KEY = 0101010101010101
+CIPHERTEXT = 0000000000000008
+PLAINTEXT = ?
+
+COUNT = 61
+KEY = 0101010101010101
+CIPHERTEXT = 0000000000000004
+PLAINTEXT = ?
+
+COUNT = 62
+KEY = 0101010101010101
+CIPHERTEXT = 0000000000000002
+PLAINTEXT = ?
+
+COUNT = 63
+KEY = 0101010101010101
+CIPHERTEXT = 0000000000000001
+PLAINTEXT = ?
diff --git a/fips/testvectors/des/sample/ECBpermop.sam b/fips/testvectors/des/sample/ECBpermop.sam
new file mode 100644 (file)
index 0000000..f96613a
--- /dev/null
@@ -0,0 +1,328 @@
+# CAVS 2.0
+# Config Info for : "OpenSSL_DES"
+# PERMUTATION OPERATION - KAT for ECB
+# State : Encrypt and Decrypt
+# Tue Jun 24 03:11:51 PM
+
+[ENCRYPT]
+COUNT = 0
+KEY = 1046913489980131
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 1
+KEY = 1007103489988020
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 2
+KEY = 10071034c8980120
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 3
+KEY = 1046103489988020
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 4
+KEY = 1086911519190101
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 5
+KEY = 1086911519580101
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 6
+KEY = 5107b01519580101
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 7
+KEY = 1007b01519190101
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 8
+KEY = 3107915498080101
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 9
+KEY = 3107919498080101
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 10
+KEY = 10079115b9080140
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 11
+KEY = 3107911598080140
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 12
+KEY = 1007d01589980101
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 13
+KEY = 9107911589980101
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 14
+KEY = 9107d01589190101
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 15
+KEY = 1007d01598980120
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 16
+KEY = 1007940498190101
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 17
+KEY = 0107910491190401
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 18
+KEY = 0107910491190101
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 19
+KEY = 0107940491190401
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 20
+KEY = 19079210981a0101
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 21
+KEY = 1007911998190801
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 22
+KEY = 10079119981a0801
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 23
+KEY = 1007921098190101
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 24
+KEY = 100791159819010b
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 25
+KEY = 1004801598190101
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 26
+KEY = 1004801598190102
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 27
+KEY = 1004801598190108
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 28
+KEY = 1002911598100104
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 29
+KEY = 1002911598190104
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 30
+KEY = 1002911598100201
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 31
+KEY = 1002911698100101
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+
+[DECRYPT]
+COUNT = 0
+KEY = 1046913489980131
+CIPHERTEXT = 88d55e54f54c97b4
+PLAINTEXT = ?
+
+COUNT = 1
+KEY = 1007103489988020
+CIPHERTEXT = 0c0cc00c83ea48fd
+PLAINTEXT = ?
+
+COUNT = 2
+KEY = 10071034c8980120
+CIPHERTEXT = 83bc8ef3a6570183
+PLAINTEXT = ?
+
+COUNT = 3
+KEY = 1046103489988020
+CIPHERTEXT = df725dcad94ea2e9
+PLAINTEXT = ?
+
+COUNT = 4
+KEY = 1086911519190101
+CIPHERTEXT = e652b53b550be8b0
+PLAINTEXT = ?
+
+COUNT = 5
+KEY = 1086911519580101
+CIPHERTEXT = af527120c485cbb0
+PLAINTEXT = ?
+
+COUNT = 6
+KEY = 5107b01519580101
+CIPHERTEXT = 0f04ce393db926d5
+PLAINTEXT = ?
+
+COUNT = 7
+KEY = 1007b01519190101
+CIPHERTEXT = c9f00ffc74079067
+PLAINTEXT = ?
+
+COUNT = 8
+KEY = 3107915498080101
+CIPHERTEXT = 7cfd82a593252b4e
+PLAINTEXT = ?
+
+COUNT = 9
+KEY = 3107919498080101
+CIPHERTEXT = cb49a2f9e91363e3
+PLAINTEXT = ?
+
+COUNT = 10
+KEY = 10079115b9080140
+CIPHERTEXT = 00b588be70d23f56
+PLAINTEXT = ?
+
+COUNT = 11
+KEY = 3107911598080140
+CIPHERTEXT = 406a9a6ab43399ae
+PLAINTEXT = ?
+
+COUNT = 12
+KEY = 1007d01589980101
+CIPHERTEXT = 6cb773611dca9ada
+PLAINTEXT = ?
+
+COUNT = 13
+KEY = 9107911589980101
+CIPHERTEXT = 67fd21c17dbb5d70
+PLAINTEXT = ?
+
+COUNT = 14
+KEY = 9107d01589190101
+CIPHERTEXT = 9592cb4110430787
+PLAINTEXT = ?
+
+COUNT = 15
+KEY = 1007d01598980120
+CIPHERTEXT = a6b7ff68a318ddd3
+PLAINTEXT = ?
+
+COUNT = 16
+KEY = 1007940498190101
+CIPHERTEXT = 4d102196c914ca16
+PLAINTEXT = ?
+
+COUNT = 17
+KEY = 0107910491190401
+CIPHERTEXT = 2dfa9f4573594965
+PLAINTEXT = ?
+
+COUNT = 18
+KEY = 0107910491190101
+CIPHERTEXT = b46604816c0e0774
+PLAINTEXT = ?
+
+COUNT = 19
+KEY = 0107940491190401
+CIPHERTEXT = 6e7e6221a4f34e87
+PLAINTEXT = ?
+
+COUNT = 20
+KEY = 19079210981a0101
+CIPHERTEXT = aa85e74643233199
+PLAINTEXT = ?
+
+COUNT = 21
+KEY = 1007911998190801
+CIPHERTEXT = 2e5a19db4d1962d6
+PLAINTEXT = ?
+
+COUNT = 22
+KEY = 10079119981a0801
+CIPHERTEXT = 23a866a809d30894
+PLAINTEXT = ?
+
+COUNT = 23
+KEY = 1007921098190101
+CIPHERTEXT = d812d961f017d320
+PLAINTEXT = ?
+
+COUNT = 24
+KEY = 100791159819010b
+CIPHERTEXT = 055605816e58608f
+PLAINTEXT = ?
+
+COUNT = 25
+KEY = 1004801598190101
+CIPHERTEXT = abd88e8b1b7716f1
+PLAINTEXT = ?
+
+COUNT = 26
+KEY = 1004801598190102
+CIPHERTEXT = 537ac95be69da1e1
+PLAINTEXT = ?
+
+COUNT = 27
+KEY = 1004801598190108
+CIPHERTEXT = aed0f6ae3c25cdd8
+PLAINTEXT = ?
+
+COUNT = 28
+KEY = 1002911598100104
+CIPHERTEXT = b3e35a5ee53e7b8d
+PLAINTEXT = ?
+
+COUNT = 29
+KEY = 1002911598190104
+CIPHERTEXT = 61c79c71921a2ef8
+PLAINTEXT = ?
+
+COUNT = 30
+KEY = 1002911598100201
+CIPHERTEXT = e2f5728f0995013c
+PLAINTEXT = ?
+
+COUNT = 31
+KEY = 1002911698100101
+CIPHERTEXT = 1aeac39a61f0a464
+PLAINTEXT = ?
diff --git a/fips/testvectors/des/sample/ECBsubtab.sam b/fips/testvectors/des/sample/ECBsubtab.sam
new file mode 100644 (file)
index 0000000..ffab4b0
--- /dev/null
@@ -0,0 +1,198 @@
+# CAVS 2.0
+# Config Info for : "OpenSSL_DES"
+# SUBSTITUTION TABLE - KAT for ECB
+# State : Encrypt and Decrypt
+# Tue Jun 24 03:11:51 PM
+
+[ENCRYPT]
+COUNT = 0
+KEY = 7ca110454a1a6e57
+PLAINTEXT = 01a1d6d039776742
+CIPHERTEXT = ?
+
+COUNT = 1
+KEY = 0131d9619dc1376e
+PLAINTEXT = 5cd54ca83def57da
+CIPHERTEXT = ?
+
+COUNT = 2
+KEY = 07a1133e4a0b2686
+PLAINTEXT = 0248d43806f67172
+CIPHERTEXT = ?
+
+COUNT = 3
+KEY = 3849674c2602319e
+PLAINTEXT = 51454b582ddf440a
+CIPHERTEXT = ?
+
+COUNT = 4
+KEY = 04b915ba43feb5b6
+PLAINTEXT = 42fd443059577fa2
+CIPHERTEXT = ?
+
+COUNT = 5
+KEY = 0113b970fd34f2ce
+PLAINTEXT = 059b5e0851cf143a
+CIPHERTEXT = ?
+
+COUNT = 6
+KEY = 0170f175468fb5e6
+PLAINTEXT = 0756d8e0774761d2
+CIPHERTEXT = ?
+
+COUNT = 7
+KEY = 43297fad38e373fe
+PLAINTEXT = 762514b829bf486a
+CIPHERTEXT = ?
+
+COUNT = 8
+KEY = 07a7137045da2a16
+PLAINTEXT = 3bdd119049372802
+CIPHERTEXT = ?
+
+COUNT = 9
+KEY = 04689104c2fd3b2f
+PLAINTEXT = 26955f6835af609a
+CIPHERTEXT = ?
+
+COUNT = 10
+KEY = 37d06bb516cb7546
+PLAINTEXT = 164d5e404f275232
+CIPHERTEXT = ?
+
+COUNT = 11
+KEY = 1f08260d1ac2465e
+PLAINTEXT = 6b056e18759f5cca
+CIPHERTEXT = ?
+
+COUNT = 12
+KEY = 584023641aba6176
+PLAINTEXT = 004bd6ef09176062
+CIPHERTEXT = ?
+
+COUNT = 13
+KEY = 025816164629b007
+PLAINTEXT = 480d39006ee762f2
+CIPHERTEXT = ?
+
+COUNT = 14
+KEY = 49793ebc79b3258f
+PLAINTEXT = 437540c8698f3cfa
+CIPHERTEXT = ?
+
+COUNT = 15
+KEY = 4fb05e1515ab73a7
+PLAINTEXT = 072d43a077075292
+CIPHERTEXT = ?
+
+COUNT = 16
+KEY = 49e95d6d4ca229bf
+PLAINTEXT = 02fe55778117f12a
+CIPHERTEXT = ?
+
+COUNT = 17
+KEY = 018310dc409b26d6
+PLAINTEXT = 1d9d5c5018f728c2
+CIPHERTEXT = ?
+
+COUNT = 18
+KEY = 1c587f1c13924fef
+PLAINTEXT = 305532286d6f295a
+CIPHERTEXT = ?
+
+
+[DECRYPT]
+COUNT = 0
+KEY = 7ca110454a1a6e57
+CIPHERTEXT = 690f5b0d9a26939b
+PLAINTEXT = ?
+
+COUNT = 1
+KEY = 0131d9619dc1376e
+CIPHERTEXT = 7a389d10354bd271
+PLAINTEXT = ?
+
+COUNT = 2
+KEY = 07a1133e4a0b2686
+CIPHERTEXT = 868ebb51cab4599a
+PLAINTEXT = ?
+
+COUNT = 3
+KEY = 3849674c2602319e
+CIPHERTEXT = 7178876e01f19b2a
+PLAINTEXT = ?
+
+COUNT = 4
+KEY = 04b915ba43feb5b6
+CIPHERTEXT = af37fb421f8c4095
+PLAINTEXT = ?
+
+COUNT = 5
+KEY = 0113b970fd34f2ce
+CIPHERTEXT = 86a560f10ec6d85b
+PLAINTEXT = ?
+
+COUNT = 6
+KEY = 0170f175468fb5e6
+CIPHERTEXT = 0cd3da020021dc09
+PLAINTEXT = ?
+
+COUNT = 7
+KEY = 43297fad38e373fe
+CIPHERTEXT = ea676b2cb7db2b7a
+PLAINTEXT = ?
+
+COUNT = 8
+KEY = 07a7137045da2a16
+CIPHERTEXT = dfd64a815caf1a0f
+PLAINTEXT = ?
+
+COUNT = 9
+KEY = 04689104c2fd3b2f
+CIPHERTEXT = 5c513c9c4886c088
+PLAINTEXT = ?
+
+COUNT = 10
+KEY = 37d06bb516cb7546
+CIPHERTEXT = 0a2aeeae3ff4ab77
+PLAINTEXT = ?
+
+COUNT = 11
+KEY = 1f08260d1ac2465e
+CIPHERTEXT = ef1bf03e5dfa575a
+PLAINTEXT = ?
+
+COUNT = 12
+KEY = 584023641aba6176
+CIPHERTEXT = 88bf0db6d70dee56
+PLAINTEXT = ?
+
+COUNT = 13
+KEY = 025816164629b007
+CIPHERTEXT = a1f9915541020b56
+PLAINTEXT = ?
+
+COUNT = 14
+KEY = 49793ebc79b3258f
+CIPHERTEXT = 6fbf1cafcffd0556
+PLAINTEXT = ?
+
+COUNT = 15
+KEY = 4fb05e1515ab73a7
+CIPHERTEXT = 2f22e49bab7ca1ac
+PLAINTEXT = ?
+
+COUNT = 16
+KEY = 49e95d6d4ca229bf
+CIPHERTEXT = 5a6b612cc26cce4a
+PLAINTEXT = ?
+
+COUNT = 17
+KEY = 018310dc409b26d6
+CIPHERTEXT = 5f4c038ed12b2e41
+PLAINTEXT = ?
+
+COUNT = 18
+KEY = 1c587f1c13924fef
+CIPHERTEXT = 63fac0d034d9f793
+PLAINTEXT = ?
diff --git a/fips/testvectors/des/sample/ECBvarkey.sam b/fips/testvectors/des/sample/ECBvarkey.sam
new file mode 100644 (file)
index 0000000..2abc1c5
--- /dev/null
@@ -0,0 +1,568 @@
+# CAVS 2.0
+# Config Info for : "OpenSSL_DES"
+# VARIABLE KEY - KAT for ECB
+# State : Encrypt and Decrypt
+# Tue Jun 24 03:11:51 PM
+
+[ENCRYPT]
+COUNT = 0
+KEY = 8001010101010101
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 1
+KEY = 4001010101010101
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 2
+KEY = 2001010101010101
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 3
+KEY = 1001010101010101
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 4
+KEY = 0801010101010101
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 5
+KEY = 0401010101010101
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 6
+KEY = 0201010101010101
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 7
+KEY = 0180010101010101
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 8
+KEY = 0140010101010101
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 9
+KEY = 0120010101010101
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 10
+KEY = 0110010101010101
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 11
+KEY = 0108010101010101
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 12
+KEY = 0104010101010101
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 13
+KEY = 0102010101010101
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 14
+KEY = 0101800101010101
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 15
+KEY = 0101400101010101
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 16
+KEY = 0101200101010101
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 17
+KEY = 0101100101010101
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 18
+KEY = 0101080101010101
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 19
+KEY = 0101040101010101
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 20
+KEY = 0101020101010101
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 21
+KEY = 0101018001010101
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 22
+KEY = 0101014001010101
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 23
+KEY = 0101012001010101
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 24
+KEY = 0101011001010101
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 25
+KEY = 0101010801010101
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 26
+KEY = 0101010401010101
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 27
+KEY = 0101010201010101
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 28
+KEY = 0101010180010101
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 29
+KEY = 0101010140010101
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 30
+KEY = 0101010120010101
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 31
+KEY = 0101010110010101
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 32
+KEY = 0101010108010101
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 33
+KEY = 0101010104010101
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 34
+KEY = 0101010102010101
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 35
+KEY = 0101010101800101
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 36
+KEY = 0101010101400101
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 37
+KEY = 0101010101200101
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 38
+KEY = 0101010101100101
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 39
+KEY = 0101010101080101
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 40
+KEY = 0101010101040101
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 41
+KEY = 0101010101020101
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 42
+KEY = 0101010101018001
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 43
+KEY = 0101010101014001
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 44
+KEY = 0101010101012001
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 45
+KEY = 0101010101011001
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 46
+KEY = 0101010101010801
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 47
+KEY = 0101010101010401
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 48
+KEY = 0101010101010201
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 49
+KEY = 0101010101010180
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 50
+KEY = 0101010101010140
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 51
+KEY = 0101010101010120
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 52
+KEY = 0101010101010110
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 53
+KEY = 0101010101010108
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 54
+KEY = 0101010101010104
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 55
+KEY = 0101010101010102
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+
+[DECRYPT]
+COUNT = 0
+KEY = 8001010101010101
+CIPHERTEXT = 95a8d72813daa94d
+PLAINTEXT = ?
+
+COUNT = 1
+KEY = 4001010101010101
+CIPHERTEXT = 0eec1487dd8c26d5
+PLAINTEXT = ?
+
+COUNT = 2
+KEY = 2001010101010101
+CIPHERTEXT = 7ad16ffb79c45926
+PLAINTEXT = ?
+
+COUNT = 3
+KEY = 1001010101010101
+CIPHERTEXT = d3746294ca6a6cf3
+PLAINTEXT = ?
+
+COUNT = 4
+KEY = 0801010101010101
+CIPHERTEXT = 809f5f873c1fd761
+PLAINTEXT = ?
+
+COUNT = 5
+KEY = 0401010101010101
+CIPHERTEXT = c02faffec989d1fc
+PLAINTEXT = ?
+
+COUNT = 6
+KEY = 0201010101010101
+CIPHERTEXT = 4615aa1d33e72f10
+PLAINTEXT = ?
+
+COUNT = 7
+KEY = 0180010101010101
+CIPHERTEXT = 2055123350c00858
+PLAINTEXT = ?
+
+COUNT = 8
+KEY = 0140010101010101
+CIPHERTEXT = df3b99d6577397c8
+PLAINTEXT = ?
+
+COUNT = 9
+KEY = 0120010101010101
+CIPHERTEXT = 31fe17369b5288c9
+PLAINTEXT = ?
+
+COUNT = 10
+KEY = 0110010101010101
+CIPHERTEXT = dfdd3cc64dae1642
+PLAINTEXT = ?
+
+COUNT = 11
+KEY = 0108010101010101
+CIPHERTEXT = 178c83ce2b399d94
+PLAINTEXT = ?
+
+COUNT = 12
+KEY = 0104010101010101
+CIPHERTEXT = 50f636324a9b7f80
+PLAINTEXT = ?
+
+COUNT = 13
+KEY = 0102010101010101
+CIPHERTEXT = a8468ee3bc18f06d
+PLAINTEXT = ?
+
+COUNT = 14
+KEY = 0101800101010101
+CIPHERTEXT = a2dc9e92fd3cde92
+PLAINTEXT = ?
+
+COUNT = 15
+KEY = 0101400101010101
+CIPHERTEXT = cac09f797d031287
+PLAINTEXT = ?
+
+COUNT = 16
+KEY = 0101200101010101
+CIPHERTEXT = 90ba680b22aeb525
+PLAINTEXT = ?
+
+COUNT = 17
+KEY = 0101100101010101
+CIPHERTEXT = ce7a24f350e280b6
+PLAINTEXT = ?
+
+COUNT = 18
+KEY = 0101080101010101
+CIPHERTEXT = 882bff0aa01a0b87
+PLAINTEXT = ?
+
+COUNT = 19
+KEY = 0101040101010101
+CIPHERTEXT = 25610288924511c2
+PLAINTEXT = ?
+
+COUNT = 20
+KEY = 0101020101010101
+CIPHERTEXT = c71516c29c75d170
+PLAINTEXT = ?
+
+COUNT = 21
+KEY = 0101018001010101
+CIPHERTEXT = 5199c29a52c9f059
+PLAINTEXT = ?
+
+COUNT = 22
+KEY = 0101014001010101
+CIPHERTEXT = c22f0a294a71f29f
+PLAINTEXT = ?
+
+COUNT = 23
+KEY = 0101012001010101
+CIPHERTEXT = ee371483714c02ea
+PLAINTEXT = ?
+
+COUNT = 24
+KEY = 0101011001010101
+CIPHERTEXT = a81fbd448f9e522f
+PLAINTEXT = ?
+
+COUNT = 25
+KEY = 0101010801010101
+CIPHERTEXT = 4f644c92e192dfed
+PLAINTEXT = ?
+
+COUNT = 26
+KEY = 0101010401010101
+CIPHERTEXT = 1afa9a66a6df92ae
+PLAINTEXT = ?
+
+COUNT = 27
+KEY = 0101010201010101
+CIPHERTEXT = b3c1cc715cb879d8
+PLAINTEXT = ?
+
+COUNT = 28
+KEY = 0101010180010101
+CIPHERTEXT = 19d032e64ab0bd8b
+PLAINTEXT = ?
+
+COUNT = 29
+KEY = 0101010140010101
+CIPHERTEXT = 3cfaa7a7dc8720dc
+PLAINTEXT = ?
+
+COUNT = 30
+KEY = 0101010120010101
+CIPHERTEXT = b7265f7f447ac6f3
+PLAINTEXT = ?
+
+COUNT = 31
+KEY = 0101010110010101
+CIPHERTEXT = 9db73b3c0d163f54
+PLAINTEXT = ?
+
+COUNT = 32
+KEY = 0101010108010101
+CIPHERTEXT = 8181b65babf4a975
+PLAINTEXT = ?
+
+COUNT = 33
+KEY = 0101010104010101
+CIPHERTEXT = 93c9b64042eaa240
+PLAINTEXT = ?
+
+COUNT = 34
+KEY = 0101010102010101
+CIPHERTEXT = 5570530829705592
+PLAINTEXT = ?
+
+COUNT = 35
+KEY = 0101010101800101
+CIPHERTEXT = 8638809e878787a0
+PLAINTEXT = ?
+
+COUNT = 36
+KEY = 0101010101400101
+CIPHERTEXT = 41b9a79af79ac208
+PLAINTEXT = ?
+
+COUNT = 37
+KEY = 0101010101200101
+CIPHERTEXT = 7a9be42f2009a892
+PLAINTEXT = ?
+
+COUNT = 38
+KEY = 0101010101100101
+CIPHERTEXT = 29038d56ba6d2745
+PLAINTEXT = ?
+
+COUNT = 39
+KEY = 0101010101080101
+CIPHERTEXT = 5495c6abf1e5df51
+PLAINTEXT = ?
+
+COUNT = 40
+KEY = 0101010101040101
+CIPHERTEXT = ae13dbd561488933
+PLAINTEXT = ?
+
+COUNT = 41
+KEY = 0101010101020101
+CIPHERTEXT = 024d1ffa8904e389
+PLAINTEXT = ?
+
+COUNT = 42
+KEY = 0101010101018001
+CIPHERTEXT = d1399712f99bf02e
+PLAINTEXT = ?
+
+COUNT = 43
+KEY = 0101010101014001
+CIPHERTEXT = 14c1d7c1cffec79e
+PLAINTEXT = ?
+
+COUNT = 44
+KEY = 0101010101012001
+CIPHERTEXT = 1de5279dae3bed6f
+PLAINTEXT = ?
+
+COUNT = 45
+KEY = 0101010101011001
+CIPHERTEXT = e941a33f85501303
+PLAINTEXT = ?
+
+COUNT = 46
+KEY = 0101010101010801
+CIPHERTEXT = da99dbbc9a03f379
+PLAINTEXT = ?
+
+COUNT = 47
+KEY = 0101010101010401
+CIPHERTEXT = b7fc92f91d8e92e9
+PLAINTEXT = ?
+
+COUNT = 48
+KEY = 0101010101010201
+CIPHERTEXT = ae8e5caa3ca04e85
+PLAINTEXT = ?
+
+COUNT = 49
+KEY = 0101010101010180
+CIPHERTEXT = 9cc62df43b6eed74
+PLAINTEXT = ?
+
+COUNT = 50
+KEY = 0101010101010140
+CIPHERTEXT = d863dbb5c59a91a0
+PLAINTEXT = ?
+
+COUNT = 51
+KEY = 0101010101010120
+CIPHERTEXT = a1ab2190545b91d7
+PLAINTEXT = ?
+
+COUNT = 52
+KEY = 0101010101010110
+CIPHERTEXT = 0875041e64c570f7
+PLAINTEXT = ?
+
+COUNT = 53
+KEY = 0101010101010108
+CIPHERTEXT = 5a594528bebef1cc
+PLAINTEXT = ?
+
+COUNT = 54
+KEY = 0101010101010104
+CIPHERTEXT = fcdb3291de21f0c0
+PLAINTEXT = ?
+
+COUNT = 55
+KEY = 0101010101010102
+CIPHERTEXT = 869efd7f9f265a09
+PLAINTEXT = ?
diff --git a/fips/testvectors/des/sample/ECBvartext.sam b/fips/testvectors/des/sample/ECBvartext.sam
new file mode 100644 (file)
index 0000000..c8f8ab2
--- /dev/null
@@ -0,0 +1,648 @@
+# CAVS 2.0
+# Config Info for : "OpenSSL_DES"
+# VARIABLE PLAINTEXT/CIPHERTEXT - KAT for ECB
+# State : Encrypt and Decrypt
+# Tue Jun 24 03:11:51 PM
+
+[ENCRYPT]
+COUNT = 0
+KEY = 0101010101010101
+PLAINTEXT = 8000000000000000
+CIPHERTEXT = ?
+
+COUNT = 1
+KEY = 0101010101010101
+PLAINTEXT = 4000000000000000
+CIPHERTEXT = ?
+
+COUNT = 2
+KEY = 0101010101010101
+PLAINTEXT = 2000000000000000
+CIPHERTEXT = ?
+
+COUNT = 3
+KEY = 0101010101010101
+PLAINTEXT = 1000000000000000
+CIPHERTEXT = ?
+
+COUNT = 4
+KEY = 0101010101010101
+PLAINTEXT = 0800000000000000
+CIPHERTEXT = ?
+
+COUNT = 5
+KEY = 0101010101010101
+PLAINTEXT = 0400000000000000
+CIPHERTEXT = ?
+
+COUNT = 6
+KEY = 0101010101010101
+PLAINTEXT = 0200000000000000
+CIPHERTEXT = ?
+
+COUNT = 7
+KEY = 0101010101010101
+PLAINTEXT = 0100000000000000
+CIPHERTEXT = ?
+
+COUNT = 8
+KEY = 0101010101010101
+PLAINTEXT = 0080000000000000
+CIPHERTEXT = ?
+
+COUNT = 9
+KEY = 0101010101010101
+PLAINTEXT = 0040000000000000
+CIPHERTEXT = ?
+
+COUNT = 10
+KEY = 0101010101010101
+PLAINTEXT = 0020000000000000
+CIPHERTEXT = ?
+
+COUNT = 11
+KEY = 0101010101010101
+PLAINTEXT = 0010000000000000
+CIPHERTEXT = ?
+
+COUNT = 12
+KEY = 0101010101010101
+PLAINTEXT = 0008000000000000
+CIPHERTEXT = ?
+
+COUNT = 13
+KEY = 0101010101010101
+PLAINTEXT = 0004000000000000
+CIPHERTEXT = ?
+
+COUNT = 14
+KEY = 0101010101010101
+PLAINTEXT = 0002000000000000
+CIPHERTEXT = ?
+
+COUNT = 15
+KEY = 0101010101010101
+PLAINTEXT = 0001000000000000
+CIPHERTEXT = ?
+
+COUNT = 16
+KEY = 0101010101010101
+PLAINTEXT = 0000800000000000
+CIPHERTEXT = ?
+
+COUNT = 17
+KEY = 0101010101010101
+PLAINTEXT = 0000400000000000
+CIPHERTEXT = ?
+
+COUNT = 18
+KEY = 0101010101010101
+PLAINTEXT = 0000200000000000
+CIPHERTEXT = ?
+
+COUNT = 19
+KEY = 0101010101010101
+PLAINTEXT = 0000100000000000
+CIPHERTEXT = ?
+
+COUNT = 20
+KEY = 0101010101010101
+PLAINTEXT = 0000080000000000
+CIPHERTEXT = ?
+
+COUNT = 21
+KEY = 0101010101010101
+PLAINTEXT = 0000040000000000
+CIPHERTEXT = ?
+
+COUNT = 22
+KEY = 0101010101010101
+PLAINTEXT = 0000020000000000
+CIPHERTEXT = ?
+
+COUNT = 23
+KEY = 0101010101010101
+PLAINTEXT = 0000010000000000
+CIPHERTEXT = ?
+
+COUNT = 24
+KEY = 0101010101010101
+PLAINTEXT = 0000008000000000
+CIPHERTEXT = ?
+
+COUNT = 25
+KEY = 0101010101010101
+PLAINTEXT = 0000004000000000
+CIPHERTEXT = ?
+
+COUNT = 26
+KEY = 0101010101010101
+PLAINTEXT = 0000002000000000
+CIPHERTEXT = ?
+
+COUNT = 27
+KEY = 0101010101010101
+PLAINTEXT = 0000001000000000
+CIPHERTEXT = ?
+
+COUNT = 28
+KEY = 0101010101010101
+PLAINTEXT = 0000000800000000
+CIPHERTEXT = ?
+
+COUNT = 29
+KEY = 0101010101010101
+PLAINTEXT = 0000000400000000
+CIPHERTEXT = ?
+
+COUNT = 30
+KEY = 0101010101010101
+PLAINTEXT = 0000000200000000
+CIPHERTEXT = ?
+
+COUNT = 31
+KEY = 0101010101010101
+PLAINTEXT = 0000000100000000
+CIPHERTEXT = ?
+
+COUNT = 32
+KEY = 0101010101010101
+PLAINTEXT = 0000000080000000
+CIPHERTEXT = ?
+
+COUNT = 33
+KEY = 0101010101010101
+PLAINTEXT = 0000000040000000
+CIPHERTEXT = ?
+
+COUNT = 34
+KEY = 0101010101010101
+PLAINTEXT = 0000000020000000
+CIPHERTEXT = ?
+
+COUNT = 35
+KEY = 0101010101010101
+PLAINTEXT = 0000000010000000
+CIPHERTEXT = ?
+
+COUNT = 36
+KEY = 0101010101010101
+PLAINTEXT = 0000000008000000
+CIPHERTEXT = ?
+
+COUNT = 37
+KEY = 0101010101010101
+PLAINTEXT = 0000000004000000
+CIPHERTEXT = ?
+
+COUNT = 38
+KEY = 0101010101010101
+PLAINTEXT = 0000000002000000
+CIPHERTEXT = ?
+
+COUNT = 39
+KEY = 0101010101010101
+PLAINTEXT = 0000000001000000
+CIPHERTEXT = ?
+
+COUNT = 40
+KEY = 0101010101010101
+PLAINTEXT = 0000000000800000
+CIPHERTEXT = ?
+
+COUNT = 41
+KEY = 0101010101010101
+PLAINTEXT = 0000000000400000
+CIPHERTEXT = ?
+
+COUNT = 42
+KEY = 0101010101010101
+PLAINTEXT = 0000000000200000
+CIPHERTEXT = ?
+
+COUNT = 43
+KEY = 0101010101010101
+PLAINTEXT = 0000000000100000
+CIPHERTEXT = ?
+
+COUNT = 44
+KEY = 0101010101010101
+PLAINTEXT = 0000000000080000
+CIPHERTEXT = ?
+
+COUNT = 45
+KEY = 0101010101010101
+PLAINTEXT = 0000000000040000
+CIPHERTEXT = ?
+
+COUNT = 46
+KEY = 0101010101010101
+PLAINTEXT = 0000000000020000
+CIPHERTEXT = ?
+
+COUNT = 47
+KEY = 0101010101010101
+PLAINTEXT = 0000000000010000
+CIPHERTEXT = ?
+
+COUNT = 48
+KEY = 0101010101010101
+PLAINTEXT = 0000000000008000
+CIPHERTEXT = ?
+
+COUNT = 49
+KEY = 0101010101010101
+PLAINTEXT = 0000000000004000
+CIPHERTEXT = ?
+
+COUNT = 50
+KEY = 0101010101010101
+PLAINTEXT = 0000000000002000
+CIPHERTEXT = ?
+
+COUNT = 51
+KEY = 0101010101010101
+PLAINTEXT = 0000000000001000
+CIPHERTEXT = ?
+
+COUNT = 52
+KEY = 0101010101010101
+PLAINTEXT = 0000000000000800
+CIPHERTEXT = ?
+
+COUNT = 53
+KEY = 0101010101010101
+PLAINTEXT = 0000000000000400
+CIPHERTEXT = ?
+
+COUNT = 54
+KEY = 0101010101010101
+PLAINTEXT = 0000000000000200
+CIPHERTEXT = ?
+
+COUNT = 55
+KEY = 0101010101010101
+PLAINTEXT = 0000000000000100
+CIPHERTEXT = ?
+
+COUNT = 56
+KEY = 0101010101010101
+PLAINTEXT = 0000000000000080
+CIPHERTEXT = ?
+
+COUNT = 57
+KEY = 0101010101010101
+PLAINTEXT = 0000000000000040
+CIPHERTEXT = ?
+
+COUNT = 58
+KEY = 0101010101010101
+PLAINTEXT = 0000000000000020
+CIPHERTEXT = ?
+
+COUNT = 59
+KEY = 0101010101010101
+PLAINTEXT = 0000000000000010
+CIPHERTEXT = ?
+
+COUNT = 60
+KEY = 0101010101010101
+PLAINTEXT = 0000000000000008
+CIPHERTEXT = ?
+
+COUNT = 61
+KEY = 0101010101010101
+PLAINTEXT = 0000000000000004
+CIPHERTEXT = ?
+
+COUNT = 62
+KEY = 0101010101010101
+PLAINTEXT = 0000000000000002
+CIPHERTEXT = ?
+
+COUNT = 63
+KEY = 0101010101010101
+PLAINTEXT = 0000000000000001
+CIPHERTEXT = ?
+
+
+[DECRYPT]
+COUNT = 0
+KEY = 0101010101010101
+CIPHERTEXT = 95f8a5e5dd31d900
+PLAINTEXT = ?
+
+COUNT = 1
+KEY = 0101010101010101
+CIPHERTEXT = dd7f121ca5015619
+PLAINTEXT = ?
+
+COUNT = 2
+KEY = 0101010101010101
+CIPHERTEXT = 2e8653104f3834ea
+PLAINTEXT = ?
+
+COUNT = 3
+KEY = 0101010101010101
+CIPHERTEXT = 4bd388ff6cd81d4f
+PLAINTEXT = ?
+
+COUNT = 4
+KEY = 0101010101010101
+CIPHERTEXT = 20b9e767b2fb1456
+PLAINTEXT = ?
+
+COUNT = 5
+KEY = 0101010101010101
+CIPHERTEXT = 55579380d77138ef
+PLAINTEXT = ?
+
+COUNT = 6
+KEY = 0101010101010101
+CIPHERTEXT = 6cc5defaaf04512f
+PLAINTEXT = ?
+
+COUNT = 7
+KEY = 0101010101010101
+CIPHERTEXT = 0d9f279ba5d87260
+PLAINTEXT = ?
+
+COUNT = 8
+KEY = 0101010101010101
+CIPHERTEXT = d9031b0271bd5a0a
+PLAINTEXT = ?
+
+COUNT = 9
+KEY = 0101010101010101
+CIPHERTEXT = 424250b37c3dd951
+PLAINTEXT = ?
+
+COUNT = 10
+KEY = 0101010101010101
+CIPHERTEXT = b8061b7ecd9a21e5
+PLAINTEXT = ?
+
+COUNT = 11
+KEY = 0101010101010101
+CIPHERTEXT = f15d0f286b65bd28
+PLAINTEXT = ?
+
+COUNT = 12
+KEY = 0101010101010101
+CIPHERTEXT = add0cc8d6e5deba1
+PLAINTEXT = ?
+
+COUNT = 13
+KEY = 0101010101010101
+CIPHERTEXT = e6d5f82752ad63d1
+PLAINTEXT = ?
+
+COUNT = 14
+KEY = 0101010101010101
+CIPHERTEXT = ecbfe3bd3f591a5e
+PLAINTEXT = ?
+
+COUNT = 15
+KEY = 0101010101010101
+CIPHERTEXT = f356834379d165cd
+PLAINTEXT = ?
+
+COUNT = 16
+KEY = 0101010101010101
+CIPHERTEXT = 2b9f982f20037fa9
+PLAINTEXT = ?
+
+COUNT = 17
+KEY = 0101010101010101
+CIPHERTEXT = 889de068a16f0be6
+PLAINTEXT = ?
+
+COUNT = 18
+KEY = 0101010101010101
+CIPHERTEXT = e19e275d846a1298
+PLAINTEXT = ?
+
+COUNT = 19
+KEY = 0101010101010101
+CIPHERTEXT = 329a8ed523d71aec
+PLAINTEXT = ?
+
+COUNT = 20
+KEY = 0101010101010101
+CIPHERTEXT = e7fce22557d23c97
+PLAINTEXT = ?
+
+COUNT = 21
+KEY = 0101010101010101
+CIPHERTEXT = 12a9f5817ff2d65d
+PLAINTEXT = ?
+
+COUNT = 22
+KEY = 0101010101010101
+CIPHERTEXT = a484c3ad38dc9c19
+PLAINTEXT = ?
+
+COUNT = 23
+KEY = 0101010101010101
+CIPHERTEXT = fbe00a8a1ef8ad72
+PLAINTEXT = ?
+
+COUNT = 24
+KEY = 0101010101010101
+CIPHERTEXT = 750d079407521363
+PLAINTEXT = ?
+
+COUNT = 25
+KEY = 0101010101010101
+CIPHERTEXT = 64feed9c724c2faf
+PLAINTEXT = ?
+
+COUNT = 26
+KEY = 0101010101010101
+CIPHERTEXT = f02b263b328e2b60
+PLAINTEXT = ?
+
+COUNT = 27
+KEY = 0101010101010101
+CIPHERTEXT = 9d64555a9a10b852
+PLAINTEXT = ?
+
+COUNT = 28
+KEY = 0101010101010101
+CIPHERTEXT = d106ff0bed5255d7
+PLAINTEXT = ?
+
+COUNT = 29
+KEY = 0101010101010101
+CIPHERTEXT = e1652c6b138c64a5
+PLAINTEXT = ?
+
+COUNT = 30
+KEY = 0101010101010101
+CIPHERTEXT = e428581186ec8f46
+PLAINTEXT = ?
+
+COUNT = 31
+KEY = 0101010101010101
+CIPHERTEXT = aeb5f5ede22d1a36
+PLAINTEXT = ?
+
+COUNT = 32
+KEY = 0101010101010101
+CIPHERTEXT = e943d7568aec0c5c
+PLAINTEXT = ?
+
+COUNT = 33
+KEY = 0101010101010101
+CIPHERTEXT = df98c8276f54b04b
+PLAINTEXT = ?
+
+COUNT = 34
+KEY = 0101010101010101
+CIPHERTEXT = b160e4680f6c696f
+PLAINTEXT = ?
+
+COUNT = 35
+KEY = 0101010101010101
+CIPHERTEXT = fa0752b07d9c4ab8
+PLAINTEXT = ?
+
+COUNT = 36
+KEY = 0101010101010101
+CIPHERTEXT = ca3a2b036dbc8502
+PLAINTEXT = ?
+
+COUNT = 37
+KEY = 0101010101010101
+CIPHERTEXT = 5e0905517bb59bcf
+PLAINTEXT = ?
+
+COUNT = 38
+KEY = 0101010101010101
+CIPHERTEXT = 814eeb3b91d90726
+PLAINTEXT = ?
+
+COUNT = 39
+KEY = 0101010101010101
+CIPHERTEXT = 4d49db1532919c9f
+PLAINTEXT = ?
+
+COUNT = 40
+KEY = 0101010101010101
+CIPHERTEXT = 25eb5fc3f8cf0621
+PLAINTEXT = ?
+
+COUNT = 41
+KEY = 0101010101010101
+CIPHERTEXT = ab6a20c0620d1c6f
+PLAINTEXT = ?
+
+COUNT = 42
+KEY = 0101010101010101
+CIPHERTEXT = 79e90dbc98f92cca
+PLAINTEXT = ?
+
+COUNT = 43
+KEY = 0101010101010101
+CIPHERTEXT = 866ecedd8072bb0e
+PLAINTEXT = ?
+
+COUNT = 44
+KEY = 0101010101010101
+CIPHERTEXT = 8b54536f2f3e64a8
+PLAINTEXT = ?
+
+COUNT = 45
+KEY = 0101010101010101
+CIPHERTEXT = ea51d3975595b86b
+PLAINTEXT = ?
+
+COUNT = 46
+KEY = 0101010101010101
+CIPHERTEXT = caffc6ac4542de31
+PLAINTEXT = ?
+
+COUNT = 47
+KEY = 0101010101010101
+CIPHERTEXT = 8dd45a2ddf90796c
+PLAINTEXT = ?
+
+COUNT = 48
+KEY = 0101010101010101
+CIPHERTEXT = 1029d55e880ec2d0
+PLAINTEXT = ?
+
+COUNT = 49
+KEY = 0101010101010101
+CIPHERTEXT = 5d86cb23639dbea9
+PLAINTEXT = ?
+
+COUNT = 50
+KEY = 0101010101010101
+CIPHERTEXT = 1d1ca853ae7c0c5f
+PLAINTEXT = ?
+
+COUNT = 51
+KEY = 0101010101010101
+CIPHERTEXT = ce332329248f3228
+PLAINTEXT = ?
+
+COUNT = 52
+KEY = 0101010101010101
+CIPHERTEXT = 8405d1abe24fb942
+PLAINTEXT = ?
+
+COUNT = 53
+KEY = 0101010101010101
+CIPHERTEXT = e643d78090ca4207
+PLAINTEXT = ?
+
+COUNT = 54
+KEY = 0101010101010101
+CIPHERTEXT = 48221b9937748a23
+PLAINTEXT = ?
+
+COUNT = 55
+KEY = 0101010101010101
+CIPHERTEXT = dd7c0bbd61fafd54
+PLAINTEXT = ?
+
+COUNT = 56
+KEY = 0101010101010101
+CIPHERTEXT = 2fbc291a570db5c4
+PLAINTEXT = ?
+
+COUNT = 57
+KEY = 0101010101010101
+CIPHERTEXT = e07c30d7e4e26e12
+PLAINTEXT = ?
+
+COUNT = 58
+KEY = 0101010101010101
+CIPHERTEXT = 0953e2258e8e90a1
+PLAINTEXT = ?
+
+COUNT = 59
+KEY = 0101010101010101
+CIPHERTEXT = 5b711bc4ceebf2ee
+PLAINTEXT = ?
+
+COUNT = 60
+KEY = 0101010101010101
+CIPHERTEXT = cc083f1e6d9e85f6
+PLAINTEXT = ?
+
+COUNT = 61
+KEY = 0101010101010101
+CIPHERTEXT = d2fd8867d50d2dfe
+PLAINTEXT = ?
+
+COUNT = 62
+KEY = 0101010101010101
+CIPHERTEXT = 06e7ea22ce92708f
+PLAINTEXT = ?
+
+COUNT = 63
+KEY = 0101010101010101
+CIPHERTEXT = 166b40b44aba4bd6
+PLAINTEXT = ?
diff --git a/fips/testvectors/des/sample/OFBMMT.sam b/fips/testvectors/des/sample/OFBMMT.sam
new file mode 100644 (file)
index 0000000..ab2f6c8
--- /dev/null
@@ -0,0 +1,46 @@
+# CAVS 2.0
+# Config Info for : "OpenSSL_DES"
+# DES Multi Block Message Test for OFB
+# State : Encrypt and Decrypt
+# Tue Jun 24 03:14:06 PM
+
+[ENCRYPT]
+
+COUNT = 0
+KEY = 6198d0bcad68895d
+IV1 = 4114cb436ee58ab1
+PLAINTEXT = ac40e545e9a3b240
+CIPHERTEXT = 5dd8de7915fd6ffd
+
+COUNT = 1
+KEY = cde97acdb58ad54a
+IV1 = 00cb37f85a32dfac
+PLAINTEXT = 76a31e9898b9a3f01bd9927baebe4481
+CIPHERTEXT = b06d54cdaa4a2d36b2726befd6732eab
+
+COUNT = 2
+KEY = 04e0022cec1cb525
+IV1 = 268890da0ac177b4
+PLAINTEXT = 88aa03eacd0f7ad27442ab26fc57a4d279a0c3c8dddc1ae0
+CIPHERTEXT = efc71cd6a9ddb710abb8178ef09ac59d5bf38f9776f2ac36
+
+[DECRYPT]
+
+COUNT = 0
+KEY = d38a43264c98efea
+IV1 = 66a9aea46526037f
+CIPHERTEXT = 044296a2d8d9dee2
+PLAINTEXT = e6d05f68e54cab54
+
+COUNT = 1
+KEY = cdfdd5867680011a
+IV1 = 2c1405661b22871b
+CIPHERTEXT = 6106eb2a560689b8b70762dc7b6d57c7
+PLAINTEXT = d3f7f7c70785d3955f5afb77616f5eb9
+
+COUNT = 2
+KEY = 58d389f14515ea8c
+IV1 = ec5f0fd52e94bf1c
+CIPHERTEXT = bf0226a0784d2543e82f28809b15b750f6e2fcc31a3ec9f2
+PLAINTEXT = a39a79036b7e8047cc34663716987d329b4a1bc397074ff6
+
diff --git a/fips/testvectors/des/sample/OFBMonte.sam b/fips/testvectors/des/sample/OFBMonte.sam
new file mode 100644 (file)
index 0000000..213bc85
--- /dev/null
@@ -0,0 +1,58 @@
+# CAVS 2.0
+# Config Info for : "OpenSSL_DES"
+# DES Monte Carlo (Modes) Test for OFB
+# State : Encrypt and Decrypt
+# Tue Jun 24 03:14:06 PM
+
+[ENCRYPT]
+
+COUNT = 0
+KEY = 04fee5ea234f3b51
+IV = a8766778cda73cff
+PLAINTEXT = 176e051c37f6f7e9
+CIPHERTEXT = a61f28d44467a261
+
+COUNT = 1
+KEY = a2e0cd3e67299831
+IV = 2bc206d1277d04c1
+PLAINTEXT = f5c8047302d22e88
+CIPHERTEXT = a47d3e533d16e261
+
+COUNT = 2
+KEY = 079df26d5b3e7a51
+IV = fc6accb1cf42608a
+PLAINTEXT = d5e28aafd24d2955
+CIPHERTEXT = 101db75f42f22032
+
+COUNT = 3
+KEY = 1680453219cd5b62
+IV = 6e28fc7d640bc842
+PLAINTEXT = 9dc20d70d455c82a
+CIPHERTEXT = 79746cda84976b1d
+
+[DECRYPT]
+
+COUNT = 0
+KEY = 2551b0cdef9726d9
+IV = fdce6ffeea89f87b
+CIPHERTEXT = 726b7e7e4a2f8e7b
+PLAINTEXT = 4ea749b0ce29bfe9
+
+COUNT = 1
+KEY = 6bf7f87c20bf9831
+IV = 5ca35cfe9d321fee
+CIPHERTEXT = 0bcdf75a668c21dc
+PLAINTEXT = 8280e8d0f7cc6e33
+
+COUNT = 2
+KEY = e97610add673f702
+IV = 32020a2c042c3dad
+CIPHERTEXT = b05b45e5e17e6646
+PLAINTEXT = 6d65f9155c0a6ff9
+
+COUNT = 3
+KEY = 8513e9b98a7998fb
+IV = bf3d16fe6f489c62
+CIPHERTEXT = bc995bcd402748b2
+PLAINTEXT = 2cba6c200e7ec1fa
+
diff --git a/fips/testvectors/des/sample/OFBinvperm.sam b/fips/testvectors/des/sample/OFBinvperm.sam
new file mode 100644 (file)
index 0000000..8bf87e8
--- /dev/null
@@ -0,0 +1,776 @@
+# CAVS 2.0
+# Config Info for : "OpenSSL_DES"
+# INVERSE PERMUTATION - KAT for OFB
+# State : Encrypt and Decrypt
+# Tue Jun 24 03:11:52 PM
+
+[ENCRYPT]
+COUNT = 0
+KEY = 0101010101010101
+IV = 8000000000000000
+PLAINTEXT = 95f8a5e5dd31d900
+CIPHERTEXT = ?
+
+COUNT = 1
+KEY = 0101010101010101
+IV = 4000000000000000
+PLAINTEXT = dd7f121ca5015619
+CIPHERTEXT = ?
+
+COUNT = 2
+KEY = 0101010101010101
+IV = 2000000000000000
+PLAINTEXT = 2e8653104f3834ea
+CIPHERTEXT = ?
+
+COUNT = 3
+KEY = 0101010101010101
+IV = 1000000000000000
+PLAINTEXT = 4bd388ff6cd81d4f
+CIPHERTEXT = ?
+
+COUNT = 4
+KEY = 0101010101010101
+IV = 0800000000000000
+PLAINTEXT = 20b9e767b2fb1456
+CIPHERTEXT = ?
+
+COUNT = 5
+KEY = 0101010101010101
+IV = 0400000000000000
+PLAINTEXT = 55579380d77138ef
+CIPHERTEXT = ?
+
+COUNT = 6
+KEY = 0101010101010101
+IV = 0200000000000000
+PLAINTEXT = 6cc5defaaf04512f
+CIPHERTEXT = ?
+
+COUNT = 7
+KEY = 0101010101010101
+IV = 0100000000000000
+PLAINTEXT = 0d9f279ba5d87260
+CIPHERTEXT = ?
+
+COUNT = 8
+KEY = 0101010101010101
+IV = 0080000000000000
+PLAINTEXT = d9031b0271bd5a0a
+CIPHERTEXT = ?
+
+COUNT = 9
+KEY = 0101010101010101
+IV = 0040000000000000
+PLAINTEXT = 424250b37c3dd951
+CIPHERTEXT = ?
+
+COUNT = 10
+KEY = 0101010101010101
+IV = 0020000000000000
+PLAINTEXT = b8061b7ecd9a21e5
+CIPHERTEXT = ?
+
+COUNT = 11
+KEY = 0101010101010101
+IV = 0010000000000000
+PLAINTEXT = f15d0f286b65bd28
+CIPHERTEXT = ?
+
+COUNT = 12
+KEY = 0101010101010101
+IV = 0008000000000000
+PLAINTEXT = add0cc8d6e5deba1
+CIPHERTEXT = ?
+
+COUNT = 13
+KEY = 0101010101010101
+IV = 0004000000000000
+PLAINTEXT = e6d5f82752ad63d1
+CIPHERTEXT = ?
+
+COUNT = 14
+KEY = 0101010101010101
+IV = 0002000000000000
+PLAINTEXT = ecbfe3bd3f591a5e
+CIPHERTEXT = ?
+
+COUNT = 15
+KEY = 0101010101010101
+IV = 0001000000000000
+PLAINTEXT = f356834379d165cd
+CIPHERTEXT = ?
+
+COUNT = 16
+KEY = 0101010101010101
+IV = 0000800000000000
+PLAINTEXT = 2b9f982f20037fa9
+CIPHERTEXT = ?
+
+COUNT = 17
+KEY = 0101010101010101
+IV = 0000400000000000
+PLAINTEXT = 889de068a16f0be6
+CIPHERTEXT = ?
+
+COUNT = 18
+KEY = 0101010101010101
+IV = 0000200000000000
+PLAINTEXT = e19e275d846a1298
+CIPHERTEXT = ?
+
+COUNT = 19
+KEY = 0101010101010101
+IV = 0000100000000000
+PLAINTEXT = 329a8ed523d71aec
+CIPHERTEXT = ?
+
+COUNT = 20
+KEY = 0101010101010101
+IV = 0000080000000000
+PLAINTEXT = e7fce22557d23c97
+CIPHERTEXT = ?
+
+COUNT = 21
+KEY = 0101010101010101
+IV = 0000040000000000
+PLAINTEXT = 12a9f5817ff2d65d
+CIPHERTEXT = ?
+
+COUNT = 22
+KEY = 0101010101010101
+IV = 0000020000000000
+PLAINTEXT = a484c3ad38dc9c19
+CIPHERTEXT = ?
+
+COUNT = 23
+KEY = 0101010101010101
+IV = 0000010000000000
+PLAINTEXT = fbe00a8a1ef8ad72
+CIPHERTEXT = ?
+
+COUNT = 24
+KEY = 0101010101010101
+IV = 0000008000000000
+PLAINTEXT = 750d079407521363
+CIPHERTEXT = ?
+
+COUNT = 25
+KEY = 0101010101010101
+IV = 0000004000000000
+PLAINTEXT = 64feed9c724c2faf
+CIPHERTEXT = ?
+
+COUNT = 26
+KEY = 0101010101010101
+IV = 0000002000000000
+PLAINTEXT = f02b263b328e2b60
+CIPHERTEXT = ?
+
+COUNT = 27
+KEY = 0101010101010101
+IV = 0000001000000000
+PLAINTEXT = 9d64555a9a10b852
+CIPHERTEXT = ?
+
+COUNT = 28
+KEY = 0101010101010101
+IV = 0000000800000000
+PLAINTEXT = d106ff0bed5255d7
+CIPHERTEXT = ?
+
+COUNT = 29
+KEY = 0101010101010101
+IV = 0000000400000000
+PLAINTEXT = e1652c6b138c64a5
+CIPHERTEXT = ?
+
+COUNT = 30
+KEY = 0101010101010101
+IV = 0000000200000000
+PLAINTEXT = e428581186ec8f46
+CIPHERTEXT = ?
+
+COUNT = 31
+KEY = 0101010101010101
+IV = 0000000100000000
+PLAINTEXT = aeb5f5ede22d1a36
+CIPHERTEXT = ?
+
+COUNT = 32
+KEY = 0101010101010101
+IV = 0000000080000000
+PLAINTEXT = e943d7568aec0c5c
+CIPHERTEXT = ?
+
+COUNT = 33
+KEY = 0101010101010101
+IV = 0000000040000000
+PLAINTEXT = df98c8276f54b04b
+CIPHERTEXT = ?
+
+COUNT = 34
+KEY = 0101010101010101
+IV = 0000000020000000
+PLAINTEXT = b160e4680f6c696f
+CIPHERTEXT = ?
+
+COUNT = 35
+KEY = 0101010101010101
+IV = 0000000010000000
+PLAINTEXT = fa0752b07d9c4ab8
+CIPHERTEXT = ?
+
+COUNT = 36
+KEY = 0101010101010101
+IV = 0000000008000000
+PLAINTEXT = ca3a2b036dbc8502
+CIPHERTEXT = ?
+
+COUNT = 37
+KEY = 0101010101010101
+IV = 0000000004000000
+PLAINTEXT = 5e0905517bb59bcf
+CIPHERTEXT = ?
+
+COUNT = 38
+KEY = 0101010101010101
+IV = 0000000002000000
+PLAINTEXT = 814eeb3b91d90726
+CIPHERTEXT = ?
+
+COUNT = 39
+KEY = 0101010101010101
+IV = 0000000001000000
+PLAINTEXT = 4d49db1532919c9f
+CIPHERTEXT = ?
+
+COUNT = 40
+KEY = 0101010101010101
+IV = 0000000000800000
+PLAINTEXT = 25eb5fc3f8cf0621
+CIPHERTEXT = ?
+
+COUNT = 41
+KEY = 0101010101010101
+IV = 0000000000400000
+PLAINTEXT = ab6a20c0620d1c6f
+CIPHERTEXT = ?
+
+COUNT = 42
+KEY = 0101010101010101
+IV = 0000000000200000
+PLAINTEXT = 79e90dbc98f92cca
+CIPHERTEXT = ?
+
+COUNT = 43
+KEY = 0101010101010101
+IV = 0000000000100000
+PLAINTEXT = 866ecedd8072bb0e
+CIPHERTEXT = ?
+
+COUNT = 44
+KEY = 0101010101010101
+IV = 0000000000080000
+PLAINTEXT = 8b54536f2f3e64a8
+CIPHERTEXT = ?
+
+COUNT = 45
+KEY = 0101010101010101
+IV = 0000000000040000
+PLAINTEXT = ea51d3975595b86b
+CIPHERTEXT = ?
+
+COUNT = 46
+KEY = 0101010101010101
+IV = 0000000000020000
+PLAINTEXT = caffc6ac4542de31
+CIPHERTEXT = ?
+
+COUNT = 47
+KEY = 0101010101010101
+IV = 0000000000010000
+PLAINTEXT = 8dd45a2ddf90796c
+CIPHERTEXT = ?
+
+COUNT = 48
+KEY = 0101010101010101
+IV = 0000000000008000
+PLAINTEXT = 1029d55e880ec2d0
+CIPHERTEXT = ?
+
+COUNT = 49
+KEY = 0101010101010101
+IV = 0000000000004000
+PLAINTEXT = 5d86cb23639dbea9
+CIPHERTEXT = ?
+
+COUNT = 50
+KEY = 0101010101010101
+IV = 0000000000002000
+PLAINTEXT = 1d1ca853ae7c0c5f
+CIPHERTEXT = ?
+
+COUNT = 51
+KEY = 0101010101010101
+IV = 0000000000001000
+PLAINTEXT = ce332329248f3228
+CIPHERTEXT = ?
+
+COUNT = 52
+KEY = 0101010101010101
+IV = 0000000000000800
+PLAINTEXT = 8405d1abe24fb942
+CIPHERTEXT = ?
+
+COUNT = 53
+KEY = 0101010101010101
+IV = 0000000000000400
+PLAINTEXT = e643d78090ca4207
+CIPHERTEXT = ?
+
+COUNT = 54
+KEY = 0101010101010101
+IV = 0000000000000200
+PLAINTEXT = 48221b9937748a23
+CIPHERTEXT = ?
+
+COUNT = 55
+KEY = 0101010101010101
+IV = 0000000000000100
+PLAINTEXT = dd7c0bbd61fafd54
+CIPHERTEXT = ?
+
+COUNT = 56
+KEY = 0101010101010101
+IV = 0000000000000080
+PLAINTEXT = 2fbc291a570db5c4
+CIPHERTEXT = ?
+
+COUNT = 57
+KEY = 0101010101010101
+IV = 0000000000000040
+PLAINTEXT = e07c30d7e4e26e12
+CIPHERTEXT = ?
+
+COUNT = 58
+KEY = 0101010101010101
+IV = 0000000000000020
+PLAINTEXT = 0953e2258e8e90a1
+CIPHERTEXT = ?
+
+COUNT = 59
+KEY = 0101010101010101
+IV = 0000000000000010
+PLAINTEXT = 5b711bc4ceebf2ee
+CIPHERTEXT = ?
+
+COUNT = 60
+KEY = 0101010101010101
+IV = 0000000000000008
+PLAINTEXT = cc083f1e6d9e85f6
+CIPHERTEXT = ?
+
+COUNT = 61
+KEY = 0101010101010101
+IV = 0000000000000004
+PLAINTEXT = d2fd8867d50d2dfe
+CIPHERTEXT = ?
+
+COUNT = 62
+KEY = 0101010101010101
+IV = 0000000000000002
+PLAINTEXT = 06e7ea22ce92708f
+CIPHERTEXT = ?
+
+COUNT = 63
+KEY = 0101010101010101
+IV = 0000000000000001
+PLAINTEXT = 166b40b44aba4bd6
+CIPHERTEXT = ?
+
+
+[DECRYPT]
+COUNT = 0
+KEY = 0101010101010101
+IV = 8000000000000000
+CIPHERTEXT = 95f8a5e5dd31d900
+PLAINTEXT = ?
+
+COUNT = 1
+KEY = 0101010101010101
+IV = 4000000000000000
+CIPHERTEXT = dd7f121ca5015619
+PLAINTEXT = ?
+
+COUNT = 2
+KEY = 0101010101010101
+IV = 2000000000000000
+CIPHERTEXT = 2e8653104f3834ea
+PLAINTEXT = ?
+
+COUNT = 3
+KEY = 0101010101010101
+IV = 1000000000000000
+CIPHERTEXT = 4bd388ff6cd81d4f
+PLAINTEXT = ?
+
+COUNT = 4
+KEY = 0101010101010101
+IV = 0800000000000000
+CIPHERTEXT = 20b9e767b2fb1456
+PLAINTEXT = ?
+
+COUNT = 5
+KEY = 0101010101010101
+IV = 0400000000000000
+CIPHERTEXT = 55579380d77138ef
+PLAINTEXT = ?
+
+COUNT = 6
+KEY = 0101010101010101
+IV = 0200000000000000
+CIPHERTEXT = 6cc5defaaf04512f
+PLAINTEXT = ?
+
+COUNT = 7
+KEY = 0101010101010101
+IV = 0100000000000000
+CIPHERTEXT = 0d9f279ba5d87260
+PLAINTEXT = ?
+
+COUNT = 8
+KEY = 0101010101010101
+IV = 0080000000000000
+CIPHERTEXT = d9031b0271bd5a0a
+PLAINTEXT = ?
+
+COUNT = 9
+KEY = 0101010101010101
+IV = 0040000000000000
+CIPHERTEXT = 424250b37c3dd951
+PLAINTEXT = ?
+
+COUNT = 10
+KEY = 0101010101010101
+IV = 0020000000000000
+CIPHERTEXT = b8061b7ecd9a21e5
+PLAINTEXT = ?
+
+COUNT = 11
+KEY = 0101010101010101
+IV = 0010000000000000
+CIPHERTEXT = f15d0f286b65bd28
+PLAINTEXT = ?
+
+COUNT = 12
+KEY = 0101010101010101
+IV = 0008000000000000
+CIPHERTEXT = add0cc8d6e5deba1
+PLAINTEXT = ?
+
+COUNT = 13
+KEY = 0101010101010101
+IV = 0004000000000000
+CIPHERTEXT = e6d5f82752ad63d1
+PLAINTEXT = ?
+
+COUNT = 14
+KEY = 0101010101010101
+IV = 0002000000000000
+CIPHERTEXT = ecbfe3bd3f591a5e
+PLAINTEXT = ?
+
+COUNT = 15
+KEY = 0101010101010101
+IV = 0001000000000000
+CIPHERTEXT = f356834379d165cd
+PLAINTEXT = ?
+
+COUNT = 16
+KEY = 0101010101010101
+IV = 0000800000000000
+CIPHERTEXT = 2b9f982f20037fa9
+PLAINTEXT = ?
+
+COUNT = 17
+KEY = 0101010101010101
+IV = 0000400000000000
+CIPHERTEXT = 889de068a16f0be6
+PLAINTEXT = ?
+
+COUNT = 18
+KEY = 0101010101010101
+IV = 0000200000000000
+CIPHERTEXT = e19e275d846a1298
+PLAINTEXT = ?
+
+COUNT = 19
+KEY = 0101010101010101
+IV = 0000100000000000
+CIPHERTEXT = 329a8ed523d71aec
+PLAINTEXT = ?
+
+COUNT = 20
+KEY = 0101010101010101
+IV = 0000080000000000
+CIPHERTEXT = e7fce22557d23c97
+PLAINTEXT = ?
+
+COUNT = 21
+KEY = 0101010101010101
+IV = 0000040000000000
+CIPHERTEXT = 12a9f5817ff2d65d
+PLAINTEXT = ?
+
+COUNT = 22
+KEY = 0101010101010101
+IV = 0000020000000000
+CIPHERTEXT = a484c3ad38dc9c19
+PLAINTEXT = ?
+
+COUNT = 23
+KEY = 0101010101010101
+IV = 0000010000000000
+CIPHERTEXT = fbe00a8a1ef8ad72
+PLAINTEXT = ?
+
+COUNT = 24
+KEY = 0101010101010101
+IV = 0000008000000000
+CIPHERTEXT = 750d079407521363
+PLAINTEXT = ?
+
+COUNT = 25
+KEY = 0101010101010101
+IV = 0000004000000000
+CIPHERTEXT = 64feed9c724c2faf
+PLAINTEXT = ?
+
+COUNT = 26
+KEY = 0101010101010101
+IV = 0000002000000000
+CIPHERTEXT = f02b263b328e2b60
+PLAINTEXT = ?
+
+COUNT = 27
+KEY = 0101010101010101
+IV = 0000001000000000
+CIPHERTEXT = 9d64555a9a10b852
+PLAINTEXT = ?
+
+COUNT = 28
+KEY = 0101010101010101
+IV = 0000000800000000
+CIPHERTEXT = d106ff0bed5255d7
+PLAINTEXT = ?
+
+COUNT = 29
+KEY = 0101010101010101
+IV = 0000000400000000
+CIPHERTEXT = e1652c6b138c64a5
+PLAINTEXT = ?
+
+COUNT = 30
+KEY = 0101010101010101
+IV = 0000000200000000
+CIPHERTEXT = e428581186ec8f46
+PLAINTEXT = ?
+
+COUNT = 31
+KEY = 0101010101010101
+IV = 0000000100000000
+CIPHERTEXT = aeb5f5ede22d1a36
+PLAINTEXT = ?
+
+COUNT = 32
+KEY = 0101010101010101
+IV = 0000000080000000
+CIPHERTEXT = e943d7568aec0c5c
+PLAINTEXT = ?
+
+COUNT = 33
+KEY = 0101010101010101
+IV = 0000000040000000
+CIPHERTEXT = df98c8276f54b04b
+PLAINTEXT = ?
+
+COUNT = 34
+KEY = 0101010101010101
+IV = 0000000020000000
+CIPHERTEXT = b160e4680f6c696f
+PLAINTEXT = ?
+
+COUNT = 35
+KEY = 0101010101010101
+IV = 0000000010000000
+CIPHERTEXT = fa0752b07d9c4ab8
+PLAINTEXT = ?
+
+COUNT = 36
+KEY = 0101010101010101
+IV = 0000000008000000
+CIPHERTEXT = ca3a2b036dbc8502
+PLAINTEXT = ?
+
+COUNT = 37
+KEY = 0101010101010101
+IV = 0000000004000000
+CIPHERTEXT = 5e0905517bb59bcf
+PLAINTEXT = ?
+
+COUNT = 38
+KEY = 0101010101010101
+IV = 0000000002000000
+CIPHERTEXT = 814eeb3b91d90726
+PLAINTEXT = ?
+
+COUNT = 39
+KEY = 0101010101010101
+IV = 0000000001000000
+CIPHERTEXT = 4d49db1532919c9f
+PLAINTEXT = ?
+
+COUNT = 40
+KEY = 0101010101010101
+IV = 0000000000800000
+CIPHERTEXT = 25eb5fc3f8cf0621
+PLAINTEXT = ?
+
+COUNT = 41
+KEY = 0101010101010101
+IV = 0000000000400000
+CIPHERTEXT = ab6a20c0620d1c6f
+PLAINTEXT = ?
+
+COUNT = 42
+KEY = 0101010101010101
+IV = 0000000000200000
+CIPHERTEXT = 79e90dbc98f92cca
+PLAINTEXT = ?
+
+COUNT = 43
+KEY = 0101010101010101
+IV = 0000000000100000
+CIPHERTEXT = 866ecedd8072bb0e
+PLAINTEXT = ?
+
+COUNT = 44
+KEY = 0101010101010101
+IV = 0000000000080000
+CIPHERTEXT = 8b54536f2f3e64a8
+PLAINTEXT = ?
+
+COUNT = 45
+KEY = 0101010101010101
+IV = 0000000000040000
+CIPHERTEXT = ea51d3975595b86b
+PLAINTEXT = ?
+
+COUNT = 46
+KEY = 0101010101010101
+IV = 0000000000020000
+CIPHERTEXT = caffc6ac4542de31
+PLAINTEXT = ?
+
+COUNT = 47
+KEY = 0101010101010101
+IV = 0000000000010000
+CIPHERTEXT = 8dd45a2ddf90796c
+PLAINTEXT = ?
+
+COUNT = 48
+KEY = 0101010101010101
+IV = 0000000000008000
+CIPHERTEXT = 1029d55e880ec2d0
+PLAINTEXT = ?
+
+COUNT = 49
+KEY = 0101010101010101
+IV = 0000000000004000
+CIPHERTEXT = 5d86cb23639dbea9
+PLAINTEXT = ?
+
+COUNT = 50
+KEY = 0101010101010101
+IV = 0000000000002000
+CIPHERTEXT = 1d1ca853ae7c0c5f
+PLAINTEXT = ?
+
+COUNT = 51
+KEY = 0101010101010101
+IV = 0000000000001000
+CIPHERTEXT = ce332329248f3228
+PLAINTEXT = ?
+
+COUNT = 52
+KEY = 0101010101010101
+IV = 0000000000000800
+CIPHERTEXT = 8405d1abe24fb942
+PLAINTEXT = ?
+
+COUNT = 53
+KEY = 0101010101010101
+IV = 0000000000000400
+CIPHERTEXT = e643d78090ca4207
+PLAINTEXT = ?
+
+COUNT = 54
+KEY = 0101010101010101
+IV = 0000000000000200
+CIPHERTEXT = 48221b9937748a23
+PLAINTEXT = ?
+
+COUNT = 55
+KEY = 0101010101010101
+IV = 0000000000000100
+CIPHERTEXT = dd7c0bbd61fafd54
+PLAINTEXT = ?
+
+COUNT = 56
+KEY = 0101010101010101
+IV = 0000000000000080
+CIPHERTEXT = 2fbc291a570db5c4
+PLAINTEXT = ?
+
+COUNT = 57
+KEY = 0101010101010101
+IV = 0000000000000040
+CIPHERTEXT = e07c30d7e4e26e12
+PLAINTEXT = ?
+
+COUNT = 58
+KEY = 0101010101010101
+IV = 0000000000000020
+CIPHERTEXT = 0953e2258e8e90a1
+PLAINTEXT = ?
+
+COUNT = 59
+KEY = 0101010101010101
+IV = 0000000000000010
+CIPHERTEXT = 5b711bc4ceebf2ee
+PLAINTEXT = ?
+
+COUNT = 60
+KEY = 0101010101010101
+IV = 0000000000000008
+CIPHERTEXT = cc083f1e6d9e85f6
+PLAINTEXT = ?
+
+COUNT = 61
+KEY = 0101010101010101
+IV = 0000000000000004
+CIPHERTEXT = d2fd8867d50d2dfe
+PLAINTEXT = ?
+
+COUNT = 62
+KEY = 0101010101010101
+IV = 0000000000000002
+CIPHERTEXT = 06e7ea22ce92708f
+PLAINTEXT = ?
+
+COUNT = 63
+KEY = 0101010101010101
+IV = 0000000000000001
+CIPHERTEXT = 166b40b44aba4bd6
+PLAINTEXT = ?
diff --git a/fips/testvectors/des/sample/OFBpermop.sam b/fips/testvectors/des/sample/OFBpermop.sam
new file mode 100644 (file)
index 0000000..b20bd4f
--- /dev/null
@@ -0,0 +1,392 @@
+# CAVS 2.0
+# Config Info for : "OpenSSL_DES"
+# PERMUTATION OPERATION - KAT for OFB
+# State : Encrypt and Decrypt
+# Tue Jun 24 03:11:52 PM
+
+[ENCRYPT]
+COUNT = 0
+KEY = 1046913489980131
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 1
+KEY = 1007103489988020
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 2
+KEY = 10071034c8980120
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 3
+KEY = 1046103489988020
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 4
+KEY = 1086911519190101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 5
+KEY = 1086911519580101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 6
+KEY = 5107b01519580101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 7
+KEY = 1007b01519190101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 8
+KEY = 3107915498080101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 9
+KEY = 3107919498080101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 10
+KEY = 10079115b9080140
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 11
+KEY = 3107911598080140
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 12
+KEY = 1007d01589980101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 13
+KEY = 9107911589980101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 14
+KEY = 9107d01589190101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 15
+KEY = 1007d01598980120
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 16
+KEY = 1007940498190101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 17
+KEY = 0107910491190401
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 18
+KEY = 0107910491190101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 19
+KEY = 0107940491190401
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 20
+KEY = 19079210981a0101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 21
+KEY = 1007911998190801
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 22
+KEY = 10079119981a0801
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 23
+KEY = 1007921098190101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 24
+KEY = 100791159819010b
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 25
+KEY = 1004801598190101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 26
+KEY = 1004801598190102
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 27
+KEY = 1004801598190108
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 28
+KEY = 1002911598100104
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 29
+KEY = 1002911598190104
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 30
+KEY = 1002911598100201
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 31
+KEY = 1002911698100101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+
+[DECRYPT]
+COUNT = 0
+KEY = 1046913489980131
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 1
+KEY = 1007103489988020
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 2
+KEY = 10071034c8980120
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 3
+KEY = 1046103489988020
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 4
+KEY = 1086911519190101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 5
+KEY = 1086911519580101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 6
+KEY = 5107b01519580101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 7
+KEY = 1007b01519190101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 8
+KEY = 3107915498080101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 9
+KEY = 3107919498080101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 10
+KEY = 10079115b9080140
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 11
+KEY = 3107911598080140
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 12
+KEY = 1007d01589980101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 13
+KEY = 9107911589980101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 14
+KEY = 9107d01589190101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 15
+KEY = 1007d01598980120
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 16
+KEY = 1007940498190101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 17
+KEY = 0107910491190401
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 18
+KEY = 0107910491190101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 19
+KEY = 0107940491190401
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 20
+KEY = 19079210981a0101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 21
+KEY = 1007911998190801
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 22
+KEY = 10079119981a0801
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 23
+KEY = 1007921098190101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 24
+KEY = 100791159819010b
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 25
+KEY = 1004801598190101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 26
+KEY = 1004801598190102
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 27
+KEY = 1004801598190108
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 28
+KEY = 1002911598100104
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 29
+KEY = 1002911598190104
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 30
+KEY = 1002911598100201
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 31
+KEY = 1002911698100101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
diff --git a/fips/testvectors/des/sample/OFBsubtab.sam b/fips/testvectors/des/sample/OFBsubtab.sam
new file mode 100644 (file)
index 0000000..8cc31a4
--- /dev/null
@@ -0,0 +1,236 @@
+# CAVS 2.0
+# Config Info for : "OpenSSL_DES"
+# SUBSTITUTION TABLE - KAT for OFB
+# State : Encrypt and Decrypt
+# Tue Jun 24 03:11:52 PM
+
+[ENCRYPT]
+COUNT = 0
+KEY = 7ca110454a1a6e57
+IV = 01a1d6d039776742
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 1
+KEY = 0131d9619dc1376e
+IV = 5cd54ca83def57da
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 2
+KEY = 07a1133e4a0b2686
+IV = 0248d43806f67172
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 3
+KEY = 3849674c2602319e
+IV = 51454b582ddf440a
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 4
+KEY = 04b915ba43feb5b6
+IV = 42fd443059577fa2
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 5
+KEY = 0113b970fd34f2ce
+IV = 059b5e0851cf143a
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 6
+KEY = 0170f175468fb5e6
+IV = 0756d8e0774761d2
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 7
+KEY = 43297fad38e373fe
+IV = 762514b829bf486a
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 8
+KEY = 07a7137045da2a16
+IV = 3bdd119049372802
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 9
+KEY = 04689104c2fd3b2f
+IV = 26955f6835af609a
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 10
+KEY = 37d06bb516cb7546
+IV = 164d5e404f275232
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 11
+KEY = 1f08260d1ac2465e
+IV = 6b056e18759f5cca
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 12
+KEY = 584023641aba6176
+IV = 004bd6ef09176062
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 13
+KEY = 025816164629b007
+IV = 480d39006ee762f2
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 14
+KEY = 49793ebc79b3258f
+IV = 437540c8698f3cfa
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 15
+KEY = 4fb05e1515ab73a7
+IV = 072d43a077075292
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 16
+KEY = 49e95d6d4ca229bf
+IV = 02fe55778117f12a
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 17
+KEY = 018310dc409b26d6
+IV = 1d9d5c5018f728c2
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 18
+KEY = 1c587f1c13924fef
+IV = 305532286d6f295a
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+
+[DECRYPT]
+COUNT = 0
+KEY = 7ca110454a1a6e57
+IV = 01a1d6d039776742
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 1
+KEY = 0131d9619dc1376e
+IV = 5cd54ca83def57da
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 2
+KEY = 07a1133e4a0b2686
+IV = 0248d43806f67172
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 3
+KEY = 3849674c2602319e
+IV = 51454b582ddf440a
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 4
+KEY = 04b915ba43feb5b6
+IV = 42fd443059577fa2
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 5
+KEY = 0113b970fd34f2ce
+IV = 059b5e0851cf143a
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 6
+KEY = 0170f175468fb5e6
+IV = 0756d8e0774761d2
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 7
+KEY = 43297fad38e373fe
+IV = 762514b829bf486a
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 8
+KEY = 07a7137045da2a16
+IV = 3bdd119049372802
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 9
+KEY = 04689104c2fd3b2f
+IV = 26955f6835af609a
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 10
+KEY = 37d06bb516cb7546
+IV = 164d5e404f275232
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 11
+KEY = 1f08260d1ac2465e
+IV = 6b056e18759f5cca
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 12
+KEY = 584023641aba6176
+IV = 004bd6ef09176062
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 13
+KEY = 025816164629b007
+IV = 480d39006ee762f2
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 14
+KEY = 49793ebc79b3258f
+IV = 437540c8698f3cfa
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 15
+KEY = 4fb05e1515ab73a7
+IV = 072d43a077075292
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 16
+KEY = 49e95d6d4ca229bf
+IV = 02fe55778117f12a
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 17
+KEY = 018310dc409b26d6
+IV = 1d9d5c5018f728c2
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 18
+KEY = 1c587f1c13924fef
+IV = 305532286d6f295a
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
diff --git a/fips/testvectors/des/sample/OFBvarkey.sam b/fips/testvectors/des/sample/OFBvarkey.sam
new file mode 100644 (file)
index 0000000..12e3464
--- /dev/null
@@ -0,0 +1,680 @@
+# CAVS 2.0
+# Config Info for : "OpenSSL_DES"
+# VARIABLE KEY - KAT for OFB
+# State : Encrypt and Decrypt
+# Tue Jun 24 03:11:52 PM
+
+[ENCRYPT]
+COUNT = 0
+KEY = 8001010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 1
+KEY = 4001010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 2
+KEY = 2001010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 3
+KEY = 1001010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 4
+KEY = 0801010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 5
+KEY = 0401010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 6
+KEY = 0201010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 7
+KEY = 0180010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 8
+KEY = 0140010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 9
+KEY = 0120010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 10
+KEY = 0110010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 11
+KEY = 0108010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 12
+KEY = 0104010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 13
+KEY = 0102010101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 14
+KEY = 0101800101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 15
+KEY = 0101400101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 16
+KEY = 0101200101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 17
+KEY = 0101100101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 18
+KEY = 0101080101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 19
+KEY = 0101040101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 20
+KEY = 0101020101010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 21
+KEY = 0101018001010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 22
+KEY = 0101014001010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 23
+KEY = 0101012001010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 24
+KEY = 0101011001010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 25
+KEY = 0101010801010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 26
+KEY = 0101010401010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 27
+KEY = 0101010201010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 28
+KEY = 0101010180010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 29
+KEY = 0101010140010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 30
+KEY = 0101010120010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 31
+KEY = 0101010110010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 32
+KEY = 0101010108010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 33
+KEY = 0101010104010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 34
+KEY = 0101010102010101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 35
+KEY = 0101010101800101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 36
+KEY = 0101010101400101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 37
+KEY = 0101010101200101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 38
+KEY = 0101010101100101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 39
+KEY = 0101010101080101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 40
+KEY = 0101010101040101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 41
+KEY = 0101010101020101
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 42
+KEY = 0101010101018001
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 43
+KEY = 0101010101014001
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 44
+KEY = 0101010101012001
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 45
+KEY = 0101010101011001
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 46
+KEY = 0101010101010801
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 47
+KEY = 0101010101010401
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 48
+KEY = 0101010101010201
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 49
+KEY = 0101010101010180
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 50
+KEY = 0101010101010140
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 51
+KEY = 0101010101010120
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 52
+KEY = 0101010101010110
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 53
+KEY = 0101010101010108
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 54
+KEY = 0101010101010104
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 55
+KEY = 0101010101010102
+IV = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+
+[DECRYPT]
+COUNT = 0
+KEY = 8001010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 1
+KEY = 4001010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 2
+KEY = 2001010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 3
+KEY = 1001010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 4
+KEY = 0801010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 5
+KEY = 0401010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 6
+KEY = 0201010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 7
+KEY = 0180010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 8
+KEY = 0140010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 9
+KEY = 0120010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 10
+KEY = 0110010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 11
+KEY = 0108010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 12
+KEY = 0104010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 13
+KEY = 0102010101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 14
+KEY = 0101800101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 15
+KEY = 0101400101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 16
+KEY = 0101200101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 17
+KEY = 0101100101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 18
+KEY = 0101080101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 19
+KEY = 0101040101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 20
+KEY = 0101020101010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 21
+KEY = 0101018001010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 22
+KEY = 0101014001010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 23
+KEY = 0101012001010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 24
+KEY = 0101011001010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 25
+KEY = 0101010801010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 26
+KEY = 0101010401010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 27
+KEY = 0101010201010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 28
+KEY = 0101010180010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 29
+KEY = 0101010140010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 30
+KEY = 0101010120010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 31
+KEY = 0101010110010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 32
+KEY = 0101010108010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 33
+KEY = 0101010104010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 34
+KEY = 0101010102010101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 35
+KEY = 0101010101800101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 36
+KEY = 0101010101400101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 37
+KEY = 0101010101200101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 38
+KEY = 0101010101100101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 39
+KEY = 0101010101080101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 40
+KEY = 0101010101040101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 41
+KEY = 0101010101020101
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 42
+KEY = 0101010101018001
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 43
+KEY = 0101010101014001
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 44
+KEY = 0101010101012001
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 45
+KEY = 0101010101011001
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 46
+KEY = 0101010101010801
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 47
+KEY = 0101010101010401
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 48
+KEY = 0101010101010201
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 49
+KEY = 0101010101010180
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 50
+KEY = 0101010101010140
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 51
+KEY = 0101010101010120
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 52
+KEY = 0101010101010110
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 53
+KEY = 0101010101010108
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 54
+KEY = 0101010101010104
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 55
+KEY = 0101010101010102
+IV = 0000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
diff --git a/fips/testvectors/des/sample/OFBvartext.sam b/fips/testvectors/des/sample/OFBvartext.sam
new file mode 100644 (file)
index 0000000..8ea95f9
--- /dev/null
@@ -0,0 +1,776 @@
+# CAVS 2.0
+# Config Info for : "OpenSSL_DES"
+# VARIABLE PLAINTEXT/CIPHERTEXT - KAT for OFB
+# State : Encrypt and Decrypt
+# Tue Jun 24 03:11:52 PM
+
+[ENCRYPT]
+COUNT = 0
+KEY = 0101010101010101
+IV = 8000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 1
+KEY = 0101010101010101
+IV = 4000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 2
+KEY = 0101010101010101
+IV = 2000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 3
+KEY = 0101010101010101
+IV = 1000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 4
+KEY = 0101010101010101
+IV = 0800000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 5
+KEY = 0101010101010101
+IV = 0400000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 6
+KEY = 0101010101010101
+IV = 0200000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 7
+KEY = 0101010101010101
+IV = 0100000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 8
+KEY = 0101010101010101
+IV = 0080000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 9
+KEY = 0101010101010101
+IV = 0040000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 10
+KEY = 0101010101010101
+IV = 0020000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 11
+KEY = 0101010101010101
+IV = 0010000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 12
+KEY = 0101010101010101
+IV = 0008000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 13
+KEY = 0101010101010101
+IV = 0004000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 14
+KEY = 0101010101010101
+IV = 0002000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 15
+KEY = 0101010101010101
+IV = 0001000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 16
+KEY = 0101010101010101
+IV = 0000800000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 17
+KEY = 0101010101010101
+IV = 0000400000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 18
+KEY = 0101010101010101
+IV = 0000200000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 19
+KEY = 0101010101010101
+IV = 0000100000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 20
+KEY = 0101010101010101
+IV = 0000080000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 21
+KEY = 0101010101010101
+IV = 0000040000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 22
+KEY = 0101010101010101
+IV = 0000020000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 23
+KEY = 0101010101010101
+IV = 0000010000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 24
+KEY = 0101010101010101
+IV = 0000008000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 25
+KEY = 0101010101010101
+IV = 0000004000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 26
+KEY = 0101010101010101
+IV = 0000002000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 27
+KEY = 0101010101010101
+IV = 0000001000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 28
+KEY = 0101010101010101
+IV = 0000000800000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 29
+KEY = 0101010101010101
+IV = 0000000400000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 30
+KEY = 0101010101010101
+IV = 0000000200000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 31
+KEY = 0101010101010101
+IV = 0000000100000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 32
+KEY = 0101010101010101
+IV = 0000000080000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 33
+KEY = 0101010101010101
+IV = 0000000040000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 34
+KEY = 0101010101010101
+IV = 0000000020000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 35
+KEY = 0101010101010101
+IV = 0000000010000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 36
+KEY = 0101010101010101
+IV = 0000000008000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 37
+KEY = 0101010101010101
+IV = 0000000004000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 38
+KEY = 0101010101010101
+IV = 0000000002000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 39
+KEY = 0101010101010101
+IV = 0000000001000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 40
+KEY = 0101010101010101
+IV = 0000000000800000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 41
+KEY = 0101010101010101
+IV = 0000000000400000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 42
+KEY = 0101010101010101
+IV = 0000000000200000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 43
+KEY = 0101010101010101
+IV = 0000000000100000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 44
+KEY = 0101010101010101
+IV = 0000000000080000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 45
+KEY = 0101010101010101
+IV = 0000000000040000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 46
+KEY = 0101010101010101
+IV = 0000000000020000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 47
+KEY = 0101010101010101
+IV = 0000000000010000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 48
+KEY = 0101010101010101
+IV = 0000000000008000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 49
+KEY = 0101010101010101
+IV = 0000000000004000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 50
+KEY = 0101010101010101
+IV = 0000000000002000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 51
+KEY = 0101010101010101
+IV = 0000000000001000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 52
+KEY = 0101010101010101
+IV = 0000000000000800
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 53
+KEY = 0101010101010101
+IV = 0000000000000400
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 54
+KEY = 0101010101010101
+IV = 0000000000000200
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 55
+KEY = 0101010101010101
+IV = 0000000000000100
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 56
+KEY = 0101010101010101
+IV = 0000000000000080
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 57
+KEY = 0101010101010101
+IV = 0000000000000040
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 58
+KEY = 0101010101010101
+IV = 0000000000000020
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 59
+KEY = 0101010101010101
+IV = 0000000000000010
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 60
+KEY = 0101010101010101
+IV = 0000000000000008
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 61
+KEY = 0101010101010101
+IV = 0000000000000004
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 62
+KEY = 0101010101010101
+IV = 0000000000000002
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+COUNT = 63
+KEY = 0101010101010101
+IV = 0000000000000001
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = ?
+
+
+[DECRYPT]
+COUNT = 0
+KEY = 0101010101010101
+IV = 8000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 1
+KEY = 0101010101010101
+IV = 4000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 2
+KEY = 0101010101010101
+IV = 2000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 3
+KEY = 0101010101010101
+IV = 1000000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 4
+KEY = 0101010101010101
+IV = 0800000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 5
+KEY = 0101010101010101
+IV = 0400000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 6
+KEY = 0101010101010101
+IV = 0200000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 7
+KEY = 0101010101010101
+IV = 0100000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 8
+KEY = 0101010101010101
+IV = 0080000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 9
+KEY = 0101010101010101
+IV = 0040000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 10
+KEY = 0101010101010101
+IV = 0020000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 11
+KEY = 0101010101010101
+IV = 0010000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 12
+KEY = 0101010101010101
+IV = 0008000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 13
+KEY = 0101010101010101
+IV = 0004000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 14
+KEY = 0101010101010101
+IV = 0002000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 15
+KEY = 0101010101010101
+IV = 0001000000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 16
+KEY = 0101010101010101
+IV = 0000800000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 17
+KEY = 0101010101010101
+IV = 0000400000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 18
+KEY = 0101010101010101
+IV = 0000200000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 19
+KEY = 0101010101010101
+IV = 0000100000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 20
+KEY = 0101010101010101
+IV = 0000080000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 21
+KEY = 0101010101010101
+IV = 0000040000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 22
+KEY = 0101010101010101
+IV = 0000020000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 23
+KEY = 0101010101010101
+IV = 0000010000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 24
+KEY = 0101010101010101
+IV = 0000008000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 25
+KEY = 0101010101010101
+IV = 0000004000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 26
+KEY = 0101010101010101
+IV = 0000002000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 27
+KEY = 0101010101010101
+IV = 0000001000000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 28
+KEY = 0101010101010101
+IV = 0000000800000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 29
+KEY = 0101010101010101
+IV = 0000000400000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 30
+KEY = 0101010101010101
+IV = 0000000200000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 31
+KEY = 0101010101010101
+IV = 0000000100000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 32
+KEY = 0101010101010101
+IV = 0000000080000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 33
+KEY = 0101010101010101
+IV = 0000000040000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 34
+KEY = 0101010101010101
+IV = 0000000020000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 35
+KEY = 0101010101010101
+IV = 0000000010000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 36
+KEY = 0101010101010101
+IV = 0000000008000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 37
+KEY = 0101010101010101
+IV = 0000000004000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 38
+KEY = 0101010101010101
+IV = 0000000002000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 39
+KEY = 0101010101010101
+IV = 0000000001000000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 40
+KEY = 0101010101010101
+IV = 0000000000800000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 41
+KEY = 0101010101010101
+IV = 0000000000400000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 42
+KEY = 0101010101010101
+IV = 0000000000200000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 43
+KEY = 0101010101010101
+IV = 0000000000100000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 44
+KEY = 0101010101010101
+IV = 0000000000080000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 45
+KEY = 0101010101010101
+IV = 0000000000040000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 46
+KEY = 0101010101010101
+IV = 0000000000020000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 47
+KEY = 0101010101010101
+IV = 0000000000010000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 48
+KEY = 0101010101010101
+IV = 0000000000008000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 49
+KEY = 0101010101010101
+IV = 0000000000004000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 50
+KEY = 0101010101010101
+IV = 0000000000002000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 51
+KEY = 0101010101010101
+IV = 0000000000001000
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 52
+KEY = 0101010101010101
+IV = 0000000000000800
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 53
+KEY = 0101010101010101
+IV = 0000000000000400
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 54
+KEY = 0101010101010101
+IV = 0000000000000200
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 55
+KEY = 0101010101010101
+IV = 0000000000000100
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 56
+KEY = 0101010101010101
+IV = 0000000000000080
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 57
+KEY = 0101010101010101
+IV = 0000000000000040
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 58
+KEY = 0101010101010101
+IV = 0000000000000020
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 59
+KEY = 0101010101010101
+IV = 0000000000000010
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 60
+KEY = 0101010101010101
+IV = 0000000000000008
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 61
+KEY = 0101010101010101
+IV = 0000000000000004
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 62
+KEY = 0101010101010101
+IV = 0000000000000002
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?
+
+COUNT = 63
+KEY = 0101010101010101
+IV = 0000000000000001
+CIPHERTEXT = 0000000000000000
+PLAINTEXT = ?