提交 c518ade1 编写于 作者: B Ben Laurie

Clean up EVP macros, rename DES EDE3 modes correctly, temporary support for

OpenBSD /dev/crypto (this will be revamped later when the appropriate machinery
is available).
上级 acdf4afb
...@@ -12,6 +12,13 @@ ...@@ -12,6 +12,13 @@
*) applies to 0.9.6a/0.9.6b and 0.9.7 *) applies to 0.9.6a/0.9.6b and 0.9.7
+) applies to 0.9.7 only +) applies to 0.9.7 only
+) Cleanup of EVP macros.
[Ben Laurie]
+) Change historical references to {NID,SN,LN}_des_ede and ede3 to add the
correct _ecb suffix.
[Ben Laurie]
+) Add initial OCSP responder support to ocsp application. The +) Add initial OCSP responder support to ocsp application. The
revocation information is handled using the text based index revocation information is handled using the text based index
use by the ca application. The responder can either handle use by the ca application. The responder can either handle
......
...@@ -133,6 +133,7 @@ my %table=( ...@@ -133,6 +133,7 @@ my %table=(
"purify", "purify gcc:-g -DPURIFY -Wall::(unknown)::-lsocket -lnsl::::", "purify", "purify gcc:-g -DPURIFY -Wall::(unknown)::-lsocket -lnsl::::",
"debug", "gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -ggdb -g2 -Wformat -Wshadow -Wmissing-prototypes -Wmissing-declarations -Werror::(unknown)::-lefence::::", "debug", "gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -ggdb -g2 -Wformat -Wshadow -Wmissing-prototypes -Wmissing-declarations -Werror::(unknown)::-lefence::::",
"debug-ben", "gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DPEDANTIC -DDEBUG_SAFESTACK -O2 -pedantic -Wall -Wshadow -Werror -pipe::(unknown)::::asm/bn86-elf.o asm/co86-elf.o", "debug-ben", "gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DPEDANTIC -DDEBUG_SAFESTACK -O2 -pedantic -Wall -Wshadow -Werror -pipe::(unknown)::::asm/bn86-elf.o asm/co86-elf.o",
"debug-ben-openbsd","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DPEDANTIC -DDEBUG_SAFESTACK -DOPENSSL_OPENBSD_DEV_CRYPTO -DOPENSSL_NO_ASM -O2 -pedantic -Wall -Wshadow -Werror -pipe::(unknown)::::",
"debug-ben-debug", "gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DPEDANTIC -DDEBUG_SAFESTACK -g3 -O2 -pedantic -Wall -Wshadow -Werror -pipe::(unknown)::::::", "debug-ben-debug", "gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DPEDANTIC -DDEBUG_SAFESTACK -g3 -O2 -pedantic -Wall -Wshadow -Werror -pipe::(unknown)::::::",
"debug-ben-strict", "gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DCONST_STRICT -O2 -Wall -Wshadow -Werror -Wpointer-arith -Wcast-qual -Wwrite-strings -pipe::(unknown)::::::", "debug-ben-strict", "gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DCONST_STRICT -O2 -Wall -Wshadow -Werror -Wpointer-arith -Wcast-qual -Wwrite-strings -pipe::(unknown)::::::",
"debug-rse","cc:-DTERMIOS -DL_ENDIAN -pipe -O -g -ggdb3 -Wall::(unknown):::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}", "debug-rse","cc:-DTERMIOS -DL_ENDIAN -pipe -O -g -ggdb3 -Wall::(unknown):::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}",
......
...@@ -32,7 +32,7 @@ LIBSRC= encode.c digest.c evp_enc.c evp_key.c \ ...@@ -32,7 +32,7 @@ LIBSRC= encode.c digest.c evp_enc.c evp_key.c \
p_open.c p_seal.c p_sign.c p_verify.c p_lib.c p_enc.c p_dec.c \ p_open.c p_seal.c p_sign.c p_verify.c p_lib.c p_enc.c p_dec.c \
bio_md.c bio_b64.c bio_enc.c evp_err.c e_null.c \ bio_md.c bio_b64.c bio_enc.c evp_err.c e_null.c \
c_all.c c_allc.c c_alld.c evp_lib.c bio_ok.c \ c_all.c c_allc.c c_alld.c evp_lib.c bio_ok.c \
evp_pkey.c evp_pbe.c p5_crpt.c p5_crpt2.c evp_pkey.c evp_pbe.c p5_crpt.c p5_crpt2.c openbsd_hw.c
LIBOBJ= encode.o digest.o evp_enc.o evp_key.o \ LIBOBJ= encode.o digest.o evp_enc.o evp_key.o \
e_des.o e_bf.o e_idea.o e_des3.o \ e_des.o e_bf.o e_idea.o e_des3.o \
...@@ -43,7 +43,7 @@ LIBOBJ= encode.o digest.o evp_enc.o evp_key.o \ ...@@ -43,7 +43,7 @@ LIBOBJ= encode.o digest.o evp_enc.o evp_key.o \
p_open.o p_seal.o p_sign.o p_verify.o p_lib.o p_enc.o p_dec.o \ p_open.o p_seal.o p_sign.o p_verify.o p_lib.o p_enc.o p_dec.o \
bio_md.o bio_b64.o bio_enc.o evp_err.o e_null.o \ bio_md.o bio_b64.o bio_enc.o evp_err.o e_null.o \
c_all.o c_allc.o c_alld.o evp_lib.o bio_ok.o \ c_all.o c_allc.o c_alld.o evp_lib.o bio_ok.o \
evp_pkey.o evp_pbe.o p5_crpt.o p5_crpt2.o evp_pkey.o evp_pbe.o p5_crpt.o p5_crpt2.o openbsd_hw.o
SRC= $(LIBSRC) SRC= $(LIBSRC)
......
...@@ -82,7 +82,11 @@ void OpenSSL_add_all_ciphers(void) ...@@ -82,7 +82,11 @@ void OpenSSL_add_all_ciphers(void)
EVP_add_cipher_alias(SN_des_cbc,"DES"); EVP_add_cipher_alias(SN_des_cbc,"DES");
EVP_add_cipher_alias(SN_des_cbc,"des"); EVP_add_cipher_alias(SN_des_cbc,"des");
EVP_add_cipher(EVP_des_ede_cbc()); EVP_add_cipher(EVP_des_ede_cbc());
# ifdef OPENSSL_OPENBSD_DEV_CRYPTO
EVP_add_cipher(EVP_dev_crypto_des_ede3_cbc());
# else
EVP_add_cipher(EVP_des_ede3_cbc()); EVP_add_cipher(EVP_des_ede3_cbc());
# endif
EVP_add_cipher_alias(SN_des_ede3_cbc,"DES3"); EVP_add_cipher_alias(SN_des_ede3_cbc,"DES3");
EVP_add_cipher_alias(SN_des_ede3_cbc,"des3"); EVP_add_cipher_alias(SN_des_ede3_cbc,"des3");
......
...@@ -119,15 +119,12 @@ static int des_ede_cfb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, ...@@ -119,15 +119,12 @@ static int des_ede_cfb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
return 1; return 1;
} }
#define NID_des_ede_ecb NID_des_ede
BLOCK_CIPHER_defs(des_ede, des_ede, NID_des_ede, 8, 16, 8, BLOCK_CIPHER_defs(des_ede, des_ede, NID_des_ede, 8, 16, 8,
0, des_ede_init_key, NULL, 0, des_ede_init_key, NULL,
EVP_CIPHER_set_asn1_iv, EVP_CIPHER_set_asn1_iv,
EVP_CIPHER_get_asn1_iv, EVP_CIPHER_get_asn1_iv,
NULL) NULL)
#define NID_des_ede3_ecb NID_des_ede3
#define des_ede3_cfb_cipher des_ede_cfb_cipher #define des_ede3_cfb_cipher des_ede_cfb_cipher
#define des_ede3_ofb_cipher des_ede_ofb_cipher #define des_ede3_ofb_cipher des_ede_ofb_cipher
#define des_ede3_cbc_cipher des_ede_cbc_cipher #define des_ede3_cbc_cipher des_ede_cbc_cipher
......
...@@ -453,6 +453,9 @@ struct evp_cipher_ctx_st ...@@ -453,6 +453,9 @@ struct evp_cipher_ctx_st
#endif #endif
#ifndef OPENSSL_NO_AES #ifndef OPENSSL_NO_AES
RIJNDAEL_KEY rijndael; RIJNDAEL_KEY rijndael;
#endif
#ifdef OPENSSL_OPENBSD_DEV_CRYPTO
struct session_op *dev_crypto;
#endif #endif
} c; } c;
int final_used; int final_used;
...@@ -674,6 +677,9 @@ const EVP_CIPHER *EVP_des_cbc(void); ...@@ -674,6 +677,9 @@ const EVP_CIPHER *EVP_des_cbc(void);
const EVP_CIPHER *EVP_des_ede_cbc(void); const EVP_CIPHER *EVP_des_ede_cbc(void);
const EVP_CIPHER *EVP_des_ede3_cbc(void); const EVP_CIPHER *EVP_des_ede3_cbc(void);
const EVP_CIPHER *EVP_desx_cbc(void); const EVP_CIPHER *EVP_desx_cbc(void);
# ifdef OPENSSL_OPENBSD_DEV_CRYPTO
const EVP_CIPHER *EVP_dev_crypto_des_ede3_cbc(void);
# endif
#endif #endif
#ifndef OPENSSL_NO_RC4 #ifndef OPENSSL_NO_RC4
const EVP_CIPHER *EVP_rc4(void); const EVP_CIPHER *EVP_rc4(void);
......
...@@ -101,6 +101,61 @@ static int cname##_cfb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, const uns ...@@ -101,6 +101,61 @@ static int cname##_cfb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, const uns
BLOCK_CIPHER_func_ecb(cname, cprefix, kname) \ BLOCK_CIPHER_func_ecb(cname, cprefix, kname) \
BLOCK_CIPHER_func_ofb(cname, cprefix, kname) BLOCK_CIPHER_func_ofb(cname, cprefix, kname)
#define BLOCK_CIPHER_def1(cname, nmode, mode, MODE, kstruct, nid, block_size, \
key_len, iv_len, flags, init_key, cleanup, \
set_asn1, get_asn1, ctrl) \
static const EVP_CIPHER cname##_##mode = { \
nid##_##nmode, block_size, key_len, iv_len, \
flags | EVP_CIPH_##MODE##_MODE, \
init_key, \
cname##_##mode##_cipher, \
cleanup, \
sizeof(EVP_CIPHER_CTX)-sizeof((((EVP_CIPHER_CTX *)NULL)->c))+\
sizeof((((EVP_CIPHER_CTX *)NULL)->c.kstruct)),\
set_asn1, get_asn1,\
ctrl, \
NULL \
}; \
const EVP_CIPHER *EVP_##cname##_##mode(void) { return &cname##_##mode; }
#define BLOCK_CIPHER_def_cbc(cname, kstruct, nid, block_size, key_len, \
iv_len, flags, init_key, cleanup, set_asn1, \
get_asn1, ctrl) \
BLOCK_CIPHER_def1(cname, cbc, cbc, CBC, kstruct, nid, block_size, key_len, \
iv_len, flags, init_key, cleanup, set_asn1, get_asn1, ctrl)
#define BLOCK_CIPHER_def_cfb(cname, kstruct, nid, block_size, key_len, \
iv_len, flags, init_key, cleanup, set_asn1, \
get_asn1, ctrl) \
BLOCK_CIPHER_def1(cname, cfb64, cfb, CFB, kstruct, nid, block_size, key_len, \
iv_len, flags, init_key, cleanup, set_asn1, get_asn1, ctrl)
#define BLOCK_CIPHER_def_ofb(cname, kstruct, nid, block_size, key_len, \
iv_len, flags, init_key, cleanup, set_asn1, \
get_asn1, ctrl) \
BLOCK_CIPHER_def1(cname, ofb64, ofb, OFB, kstruct, nid, block_size, key_len, \
iv_len, flags, init_key, cleanup, set_asn1, get_asn1, ctrl)
#define BLOCK_CIPHER_def_ecb(cname, kstruct, nid, block_size, key_len, \
iv_len, flags, init_key, cleanup, set_asn1, \
get_asn1, ctrl) \
BLOCK_CIPHER_def1(cname, ecb, ecb, ECB, kstruct, nid, block_size, key_len, \
iv_len, flags, init_key, cleanup, set_asn1, get_asn1, ctrl)
#define BLOCK_CIPHER_defs(cname, kstruct, \
nid, block_size, key_len, iv_len, flags, \
init_key, cleanup, set_asn1, get_asn1, ctrl) \
BLOCK_CIPHER_def_cbc(cname, kstruct, nid, block_size, key_len, iv_len, flags, \
init_key, cleanup, set_asn1, get_asn1, ctrl) \
BLOCK_CIPHER_def_cfb(cname, kstruct, nid, block_size, key_len, iv_len, flags, \
init_key, cleanup, set_asn1, get_asn1, ctrl) \
BLOCK_CIPHER_def_ofb(cname, kstruct, nid, block_size, key_len, iv_len, flags, \
init_key, cleanup, set_asn1, get_asn1, ctrl) \
BLOCK_CIPHER_def_ecb(cname, kstruct, nid, block_size, key_len, iv_len, flags, \
init_key, cleanup, set_asn1, get_asn1, ctrl)
/*
#define BLOCK_CIPHER_defs(cname, kstruct, \ #define BLOCK_CIPHER_defs(cname, kstruct, \
nid, block_size, key_len, iv_len, flags,\ nid, block_size, key_len, iv_len, flags,\
init_key, cleanup, set_asn1, get_asn1, ctrl)\ init_key, cleanup, set_asn1, get_asn1, ctrl)\
...@@ -156,7 +211,7 @@ static const EVP_CIPHER cname##_ecb = {\ ...@@ -156,7 +211,7 @@ static const EVP_CIPHER cname##_ecb = {\
NULL \ NULL \
};\ };\
const EVP_CIPHER *EVP_##cname##_ecb(void) { return &cname##_ecb; } const EVP_CIPHER *EVP_##cname##_ecb(void) { return &cname##_ecb; }
*/
#define IMPLEMENT_BLOCK_CIPHER(cname, kname, cprefix, kstruct, \ #define IMPLEMENT_BLOCK_CIPHER(cname, kname, cprefix, kstruct, \
......
/*
* Copyright (c) 1998-2001 The OpenSSL Project. All rights reserved.
*
* 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 above 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 acknowledgment:
* "This product includes software developed by the OpenSSL Project
* for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
*
* 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
* endorse or promote products derived from this software without
* prior written permission. For written permission, please contact
* openssl-core@openssl.org.
*
* 5. Products derived from this software may not be called "OpenSSL"
* nor may "OpenSSL" appear in their names without prior written
* permission of the OpenSSL Project.
*
* 6. Redistributions of any form whatsoever must retain the following
* acknowledgment:
* "This product includes software developed by the OpenSSL Project
* for use in the OpenSSL Toolkit (http://www.openssl.org/)"
*
* THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
* EXPRESSED 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 OpenSSL PROJECT OR
* ITS 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.
*/
#include <fcntl.h>
#include <stdio.h>
#include <errno.h>
#include <sys/ioctl.h>
#include <crypto/cryptodev.h>
#include <unistd.h>
#include <openssl/evp.h>
#include <openssl/objects.h>
#include "evp_locl.h"
#include <assert.h>
// longest key supported in hardware
#define MAX_HW_KEY 24
static int fd;
static int dev_failed;
static void err(const char *str)
{
fprintf(stderr,"%s: errno %d\n",str,errno);
}
static int dev_crypto_init(EVP_CIPHER_CTX *ctx)
{
if(dev_failed)
return 0;
if(!fd)
{
int cryptodev_fd;
if ((cryptodev_fd=open("/dev/crypto",O_RDWR,0)) < 0)
{
err("/dev/crypto");
dev_failed=1;
return 0;
}
if (ioctl(cryptodev_fd,CRIOGET,&fd) == -1)
{
err("CRIOGET failed");
close(cryptodev_fd);
dev_failed=1;
return 0;
}
close(cryptodev_fd);
}
if(!ctx->c.dev_crypto)
{
ctx->c.dev_crypto=OPENSSL_malloc(sizeof *ctx->c.dev_crypto);
memset(ctx->c.dev_crypto,'\0',sizeof *ctx->c.dev_crypto);
ctx->c.dev_crypto->key=OPENSSL_malloc(MAX_HW_KEY);
}
return 1;
}
static int dev_crypto_cleanup(EVP_CIPHER_CTX *ctx)
{
if(ioctl(fd,CIOCFSESSION,ctx->c.dev_crypto->ses) == -1)
err("CIOCFSESSION failed");
OPENSSL_free(ctx->c.dev_crypto->key);
OPENSSL_free(ctx->c.dev_crypto);
ctx->c.dev_crypto=NULL;
return 1;
}
// FIXME: there should be some non-fatal way to report we fell back to s/w?
static int dev_crypto_des_ede3_init_key(EVP_CIPHER_CTX *ctx,
const unsigned char *key,
const unsigned char *iv, int enc)
{
if(!dev_crypto_init(ctx))
{
// fall back to using software...
ctx->cipher=EVP_des_ede3_cbc();
return ctx->cipher->init(ctx,key,iv,enc);
}
memcpy(ctx->c.dev_crypto->key,key,24);
ctx->c.dev_crypto->cipher=CRYPTO_3DES_CBC;
ctx->c.dev_crypto->mac=0;
ctx->c.dev_crypto->keylen=24;
if (ioctl(fd,CIOCGSESSION,ctx->c.dev_crypto) == -1)
{
err("CIOCGSESSION failed");
// fall back to using software...
dev_crypto_cleanup(ctx);
ctx->cipher=EVP_des_ede3_cbc();
return ctx->cipher->init(ctx,key,iv,enc);
}
return 1;
}
static int dev_crypto_des_ede3_cbc_cipher(EVP_CIPHER_CTX *ctx,
unsigned char *out,
const unsigned char *in,
unsigned int inl)
{
struct crypt_op cryp;
unsigned char lb[8];
assert(ctx->c.dev_crypto);
assert(!dev_failed);
memset(&cryp,'\0',sizeof cryp);
cryp.ses=ctx->c.dev_crypto->ses;
cryp.op=ctx->encrypt ? COP_ENCRYPT : COP_DECRYPT;
cryp.flags=0;
// cryp.len=((inl+7)/8)*8;
cryp.len=inl;
assert((inl&7) == 0);
cryp.src=(caddr_t)in;
cryp.dst=(caddr_t)out;
cryp.mac=0;
cryp.iv=(caddr_t)ctx->iv;
if(!ctx->encrypt)
memcpy(lb,&in[cryp.len-8],8);
if (ioctl(fd, CIOCCRYPT, &cryp) == -1)
{
err("CIOCCRYPT failed");
abort();
return 0;
}
if(ctx->encrypt)
memcpy(ctx->iv,&out[cryp.len-8],8);
else
memcpy(ctx->iv,lb,8);
return 1;
}
BLOCK_CIPHER_def_cbc(dev_crypto_des_ede3, des_ede,NID_des_ede3, 8, 24, 8,
0, dev_crypto_des_ede3_init_key,
dev_crypto_cleanup,
EVP_CIPHER_set_asn1_iv,
EVP_CIPHER_get_asn1_iv,
NULL)
...@@ -99,7 +99,7 @@ static unsigned char lvalues[3792]={ ...@@ -99,7 +99,7 @@ static unsigned char lvalues[3792]={
0x2B,0x0E,0x03,0x02,0x06, /* [187] OBJ_des_ecb */ 0x2B,0x0E,0x03,0x02,0x06, /* [187] OBJ_des_ecb */
0x2B,0x0E,0x03,0x02,0x09, /* [192] OBJ_des_cfb64 */ 0x2B,0x0E,0x03,0x02,0x09, /* [192] OBJ_des_cfb64 */
0x2B,0x0E,0x03,0x02,0x07, /* [197] OBJ_des_cbc */ 0x2B,0x0E,0x03,0x02,0x07, /* [197] OBJ_des_cbc */
0x2B,0x0E,0x03,0x02,0x11, /* [202] OBJ_des_ede */ 0x2B,0x0E,0x03,0x02,0x11, /* [202] OBJ_des_ede_ecb */
0x2B,0x06,0x01,0x04,0x01,0x81,0x3C,0x07,0x01,0x01,0x02,/* [207] OBJ_idea_cbc */ 0x2B,0x06,0x01,0x04,0x01,0x81,0x3C,0x07,0x01,0x01,0x02,/* [207] OBJ_idea_cbc */
0x2A,0x86,0x48,0x86,0xF7,0x0D,0x03,0x02, /* [218] OBJ_rc2_cbc */ 0x2A,0x86,0x48,0x86,0xF7,0x0D,0x03,0x02, /* [218] OBJ_rc2_cbc */
0x2B,0x0E,0x03,0x02,0x12, /* [226] OBJ_sha */ 0x2B,0x0E,0x03,0x02,0x12, /* [226] OBJ_sha */
...@@ -578,8 +578,8 @@ static ASN1_OBJECT nid_objs[NUM_NID]={ ...@@ -578,8 +578,8 @@ static ASN1_OBJECT nid_objs[NUM_NID]={
{"DES-ECB","des-ecb",NID_des_ecb,5,&(lvalues[187]),0}, {"DES-ECB","des-ecb",NID_des_ecb,5,&(lvalues[187]),0},
{"DES-CFB","des-cfb",NID_des_cfb64,5,&(lvalues[192]),0}, {"DES-CFB","des-cfb",NID_des_cfb64,5,&(lvalues[192]),0},
{"DES-CBC","des-cbc",NID_des_cbc,5,&(lvalues[197]),0}, {"DES-CBC","des-cbc",NID_des_cbc,5,&(lvalues[197]),0},
{"DES-EDE","des-ede",NID_des_ede,5,&(lvalues[202]),0}, {"DES-EDE","des-ede",NID_des_ede_ecb,5,&(lvalues[202]),0},
{"DES-EDE3","des-ede3",NID_des_ede3,0,NULL}, {"DES-EDE3","des-ede3",NID_des_ede3_ecb,0,NULL},
{"IDEA-CBC","idea-cbc",NID_idea_cbc,11,&(lvalues[207]),0}, {"IDEA-CBC","idea-cbc",NID_idea_cbc,11,&(lvalues[207]),0},
{"IDEA-CFB","idea-cfb",NID_idea_cfb64,0,NULL}, {"IDEA-CFB","idea-cfb",NID_idea_cfb64,0,NULL},
{"IDEA-ECB","idea-ecb",NID_idea_ecb,0,NULL}, {"IDEA-ECB","idea-ecb",NID_idea_ecb,0,NULL},
...@@ -2345,7 +2345,7 @@ static ASN1_OBJECT *obj_objs[NUM_OBJ]={ ...@@ -2345,7 +2345,7 @@ static ASN1_OBJECT *obj_objs[NUM_OBJ]={
&(nid_objs[67]),/* OBJ_dsa_2 1 3 14 3 2 12 */ &(nid_objs[67]),/* OBJ_dsa_2 1 3 14 3 2 12 */
&(nid_objs[66]),/* OBJ_dsaWithSHA 1 3 14 3 2 13 */ &(nid_objs[66]),/* OBJ_dsaWithSHA 1 3 14 3 2 13 */
&(nid_objs[42]),/* OBJ_shaWithRSAEncryption 1 3 14 3 2 15 */ &(nid_objs[42]),/* OBJ_shaWithRSAEncryption 1 3 14 3 2 15 */
&(nid_objs[32]),/* OBJ_des_ede 1 3 14 3 2 17 */ &(nid_objs[32]),/* OBJ_des_ede_ecb 1 3 14 3 2 17 */
&(nid_objs[41]),/* OBJ_sha 1 3 14 3 2 18 */ &(nid_objs[41]),/* OBJ_sha 1 3 14 3 2 18 */
&(nid_objs[64]),/* OBJ_sha1 1 3 14 3 2 26 */ &(nid_objs[64]),/* OBJ_sha1 1 3 14 3 2 26 */
&(nid_objs[70]),/* OBJ_dsaWithSHA1_2 1 3 14 3 2 27 */ &(nid_objs[70]),/* OBJ_dsaWithSHA1_2 1 3 14 3 2 27 */
......
...@@ -1475,14 +1475,14 @@ ...@@ -1475,14 +1475,14 @@
#define NID_shaWithRSAEncryption 42 #define NID_shaWithRSAEncryption 42
#define OBJ_shaWithRSAEncryption OBJ_algorithm,15L #define OBJ_shaWithRSAEncryption OBJ_algorithm,15L
#define SN_des_ede "DES-EDE" #define SN_des_ede_ecb "DES-EDE"
#define LN_des_ede "des-ede" #define LN_des_ede_ecb "des-ede"
#define NID_des_ede 32 #define NID_des_ede_ecb 32
#define OBJ_des_ede OBJ_algorithm,17L #define OBJ_des_ede_ecb OBJ_algorithm,17L
#define SN_des_ede3 "DES-EDE3" #define SN_des_ede3_ecb "DES-EDE3"
#define LN_des_ede3 "des-ede3" #define LN_des_ede3_ecb "des-ede3"
#define NID_des_ede3 33 #define NID_des_ede3_ecb 33
#define SN_des_ede_cbc "DES-EDE-CBC" #define SN_des_ede_cbc "DES-EDE-CBC"
#define LN_des_ede_cbc "des-ede-cbc" #define LN_des_ede_cbc "des-ede-cbc"
......
...@@ -30,8 +30,8 @@ dhKeyAgreement 28 ...@@ -30,8 +30,8 @@ dhKeyAgreement 28
des_ecb 29 des_ecb 29
des_cfb64 30 des_cfb64 30
des_cbc 31 des_cbc 31
des_ede 32 des_ede_ecb 32
des_ede3 33 des_ede3_ecb 33
idea_cbc 34 idea_cbc 34
idea_cfb64 35 idea_cfb64 35
idea_ecb 36 idea_ecb 36
......
...@@ -486,7 +486,9 @@ algorithm 11 : rsaSignature ...@@ -486,7 +486,9 @@ algorithm 11 : rsaSignature
algorithm 12 : DSA-old : dsaEncryption-old algorithm 12 : DSA-old : dsaEncryption-old
algorithm 13 : DSA-SHA : dsaWithSHA algorithm 13 : DSA-SHA : dsaWithSHA
algorithm 15 : RSA-SHA : shaWithRSAEncryption algorithm 15 : RSA-SHA : shaWithRSAEncryption
!Cname des-ede-ecb
algorithm 17 : DES-EDE : des-ede algorithm 17 : DES-EDE : des-ede
!Cname des-ede3-ecb
: DES-EDE3 : des-ede3 : DES-EDE3 : des-ede3
: DES-EDE-CBC : des-ede-cbc : DES-EDE-CBC : des-ede-cbc
!Cname des-ede-cfb64 !Cname des-ede-cfb64
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册