diff options
author | Dr. Stephen Henson <steve@openssl.org> | 2009-04-18 22:41:17 +0000 |
---|---|---|
committer | Dr. Stephen Henson <steve@openssl.org> | 2009-04-18 22:41:17 +0000 |
commit | 374941f727a1192685f66f347313bf89311cb65d (patch) | |
tree | 9e443d91acc6741ace463557490d98da96a7fa9a /fips | |
parent | caeb429055ad84c236e05018824d448b6377b78e (diff) |
Fixes to make DES3 cfb1 work.
Diffstat (limited to 'fips')
-rw-r--r-- | fips/des/fips_desmovs.c | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/fips/des/fips_desmovs.c b/fips/des/fips_desmovs.c index 2d3424cf9f..24d3035337 100644 --- a/fips/des/fips_desmovs.c +++ b/fips/des/fips_desmovs.c @@ -110,15 +110,10 @@ int DESTest(EVP_CIPHER_CTX *ctx, cipher = EVP_des_ede3_cfb64(); else if (strncasecmp(amode, "OFB", 3) == 0) cipher = EVP_des_ede3_ofb(); -#if 0 - else if(!strcasecmp(amode,"CFB1")) - { - ctx->cbits = 1; - ctx->cmode = EVP_CIPH_CFB_MODE; - } -#endif else if(!strcasecmp(amode,"CFB8")) cipher = EVP_des_ede3_cfb8(); + else if(!strcasecmp(amode,"CFB1")) + cipher = EVP_des_ede3_cfb1(); else { printf("Unknown mode: %s\n", amode); @@ -127,6 +122,8 @@ int DESTest(EVP_CIPHER_CTX *ctx, if (EVP_CipherInit_ex(ctx, cipher, NULL, aKey, iVec, dir) <= 0) return 0; + if(!strcasecmp(amode,"CFB1")) + M_EVP_CIPHER_CTX_set_flags(ctx, EVP_CIPH_FLAG_LENGTH_BITS); EVP_Cipher(ctx, out, in, len); return 1; @@ -200,11 +197,11 @@ void do_mct(char *amode, if(imode != ECB) OutputValue("IV",ivec,8,rfp,0); OutputValue(t_tag[dir^1],text,len,rfp,imode == CFB1); - +#if 0 /* compensate for endianness */ if(imode == CFB1) text[0]<<=7; - +#endif memcpy(text0,text,8); for(j=0 ; j < 10000 ; ++j) |