Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/openssl/openssl.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/crypto
diff options
context:
space:
mode:
authorBen Laurie <ben@openssl.org>2003-07-30 22:30:18 +0400
committerBen Laurie <ben@openssl.org>2003-07-30 22:30:18 +0400
commitc5f070d5d583e2c95fe0107cbe3dd6dad14bb66c (patch)
tree0e5d8f03792e8b47f5f54d52eaae17ee34607221 /crypto
parent1b9e855744bd029f1541c48b0161c9f98a294609 (diff)
Whoops, forgot FIPS DES, also add EVPs for DES CFB1 and 8.
Diffstat (limited to 'crypto')
-rw-r--r--crypto/des/cfb_enc.c3
-rw-r--r--crypto/des/des_enc.c4
-rw-r--r--crypto/evp/e_aes.c21
-rw-r--r--crypto/evp/e_des.c38
-rw-r--r--crypto/evp/evp.h6
-rw-r--r--crypto/evp/evp_locl.h9
-rw-r--r--crypto/objects/obj_dat.h71
-rw-r--r--crypto/objects/obj_mac.h37
-rw-r--r--crypto/objects/obj_mac.num5
-rw-r--r--crypto/objects/objects.txt18
10 files changed, 161 insertions, 51 deletions
diff --git a/crypto/des/cfb_enc.c b/crypto/des/cfb_enc.c
index 17bf77ca9e..185a63ea04 100644
--- a/crypto/des/cfb_enc.c
+++ b/crypto/des/cfb_enc.c
@@ -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;
diff --git a/crypto/des/des_enc.c b/crypto/des/des_enc.c
index 1c37ab96d3..3ad3c9bc75 100644
--- a/crypto/des/des_enc.c
+++ b/crypto/des/des_enc.c
@@ -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
diff --git a/crypto/evp/e_aes.c b/crypto/evp/e_aes.c
index e45b6b3268..9844d7f9bc 100644
--- a/crypto/evp/e_aes.c
+++ b/crypto/evp/e_aes.c
@@ -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)
diff --git a/crypto/evp/e_des.c b/crypto/evp/e_des.c
index f7d4d619bc..0b05c11611 100644
--- a/crypto/evp/e_des.c
+++ b/crypto/evp/e_des.c
@@ -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)
diff --git a/crypto/evp/evp.h b/crypto/evp/evp.h
index 2f482a4e30..10e68f010f 100644
--- a/crypto/evp/evp.h
+++ b/crypto/evp/evp.h
@@ -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);
diff --git a/crypto/evp/evp_locl.h b/crypto/evp/evp_locl.h
index e4981d401b..2204e345ad 100644
--- a/crypto/evp/evp_locl.h
+++ b/crypto/evp/evp_locl.h
@@ -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)
diff --git a/crypto/objects/obj_dat.h b/crypto/objects/obj_dat.h
index 91f59da366..d85c2fe779 100644
--- a/crypto/objects/obj_dat.h
+++ b/crypto/objects/obj_dat.h
@@ -62,12 +62,12 @@
* [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 */
diff --git a/crypto/objects/obj_mac.h b/crypto/objects/obj_mac.h
index 0dc69f910e..84b4fb196b 100644
--- a/crypto/objects/obj_mac.h
+++ b/crypto/objects/obj_mac.h
@@ -2009,35 +2009,60 @@
#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"
diff --git a/crypto/objects/obj_mac.num b/crypto/objects/obj_mac.num
index c675abaa60..82d261d1b3 100644
--- a/crypto/objects/obj_mac.num
+++ b/crypto/objects/obj_mac.num
@@ -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
diff --git a/crypto/objects/objects.txt b/crypto/objects/objects.txt
index 44ceace090..b981ba7b11 100644
--- a/crypto/objects/objects.txt
+++ b/crypto/objects/objects.txt
@@ -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