提交 d2027098 编写于 作者: D Dr. Stephen Henson

Add OID cross reference table.

Fix some typos in GOST OIDs.

Update dependencies.
上级 51ff0abb
......@@ -4,6 +4,12 @@
Changes between 0.9.8a and 0.9.9 [xx XXX xxxx]
*) Add an OID cross reference table and utility functions. Its purpose is to
translate between signature OIDs such as SHA1WithrsaEncryption and SHA1,
rsaEncryption. This will allow some of the algorithm specific hackery
needed to use the correct OID to be removed.
[Steve Henson]
*) Remove algorithm specific dependencies when setting PKCS7_SIGNER_INFO
structures for PKCS7_sign(). They are now set up by the relevant public
key ASN1 method.
......
......@@ -173,6 +173,20 @@ ec_mult.o: ../../include/openssl/obj_mac.h ../../include/openssl/opensslconf.h
ec_mult.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
ec_mult.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
ec_mult.o: ../../include/openssl/symhacks.h ec_lcl.h ec_mult.c
ec_pmeth.o: ../../e_os.h ../../include/openssl/asn1.h
ec_pmeth.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
ec_pmeth.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
ec_pmeth.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
ec_pmeth.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
ec_pmeth.o: ../../include/openssl/err.h ../../include/openssl/evp.h
ec_pmeth.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
ec_pmeth.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
ec_pmeth.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
ec_pmeth.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
ec_pmeth.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
ec_pmeth.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
ec_pmeth.o: ../../include/openssl/x509_vfy.h ../cryptlib.h ../evp/evp_locl.h
ec_pmeth.o: ec_pmeth.c
ec_print.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
ec_print.o: ../../include/openssl/bn.h ../../include/openssl/crypto.h
ec_print.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
......
......@@ -18,20 +18,20 @@ TEST=
APPS=
LIB=$(TOP)/libcrypto.a
LIBSRC= o_names.c obj_dat.c obj_lib.c obj_err.c
LIBOBJ= o_names.o obj_dat.o obj_lib.o obj_err.o
LIBSRC= o_names.c obj_dat.c obj_lib.c obj_err.c obj_xref.c
LIBOBJ= o_names.o obj_dat.o obj_lib.o obj_err.o obj_xref.o
SRC= $(LIBSRC)
EXHEADER= objects.h obj_mac.h
HEADER= $(EXHEADER) obj_dat.h
HEADER= $(EXHEADER) obj_dat.h obj_xref.h
ALL= $(GENERAL) $(SRC) $(HEADER)
top:
(cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
all: obj_dat.h lib
all: obj_dat.h obj_xref.h lib
lib: $(LIBOBJ)
$(AR) $(LIB) $(LIBOBJ)
......@@ -46,6 +46,10 @@ obj_mac.h: objects.pl objects.txt obj_mac.num
$(PERL) objects.pl objects.txt obj_mac.num obj_mac.h
@sleep 1; touch obj_mac.h; sleep 1
obj_xref.h: objxref.pl obj_xref.txt obj_mac.num
$(PERL) objxref.pl > obj_xref.h
@sleep 1; touch obj_xref.h; sleep 1
files:
$(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
......
......@@ -825,8 +825,8 @@ static unsigned char lvalues[5345]={
0x2A,0x85,0x03,0x02,0x02,0x17, /* [5298] OBJ_id_GostR3411_94_prf */
0x2A,0x85,0x03,0x02,0x09,0x01,0x05,0x03, /* [5304] OBJ_id_GostR3410_94_cc */
0x2A,0x85,0x03,0x02,0x09,0x01,0x05,0x04, /* [5312] OBJ_id_GostR3410_2001_cc */
0x2A,0x85,0x03,0x02,0x09,0x01,0x03,0x03, /* [5320] OBJ_id_GostR3410_11_94_with_GostR3411_94_cc */
0x2A,0x85,0x03,0x02,0x09,0x01,0x03,0x04, /* [5328] OBJ_id_GostR3410_2001_with_GostR3411_94_cc */
0x2A,0x85,0x03,0x02,0x09,0x01,0x03,0x03, /* [5320] OBJ_id_GostR3411_94_with_GostR3410_94_cc */
0x2A,0x85,0x03,0x02,0x09,0x01,0x03,0x04, /* [5328] OBJ_id_GostR3411_94_with_GostR3410_2001_cc */
0x2A,0x85,0x03,0x02,0x09,0x01,0x08,0x01, /* [5336] OBJ_id_GostR3410_2001_ParamSet_cc */
};
......@@ -2113,12 +2113,12 @@ static ASN1_OBJECT nid_objs[NUM_NID]={
&(lvalues[5304]),0},
{"gost2001cc","GOST 34.10-2001 Cryptocom",NID_id_GostR3410_2001_cc,8,
&(lvalues[5312]),0},
{"id-GostR3410-11-94-with-GostR3411-94-cc",
"GOST R 34.10 with GOST R 34.11-94 Cryptocom",
NID_id_GostR3410_11_94_with_GostR3411_94_cc,8,&(lvalues[5320]),0},
{"id-GostR3410-2001-with-GostR3411-94-cc",
"GOST R 34.10-2001 with GOST R 34.10-94 Cryptocom",
NID_id_GostR3410_2001_with_GostR3411_94_cc,8,&(lvalues[5328]),0},
{"id-GostR3411-94-with-GostR3410-94-cc",
"GOST R 34.11-94 with GOST R 34.10-94 Cryptocom",
NID_id_GostR3411_94_with_GostR3410_94_cc,8,&(lvalues[5320]),0},
{"id-GostR3411-94-with-GostR3410-2001-cc",
"GOST R 34.11-94 with GOST R 34.10-2001 Cryptocom",
NID_id_GostR3411_94_with_GostR3410_2001_cc,8,&(lvalues[5328]),0},
{"id-GostR3410-2001-ParamSet-cc",
"GOST R 3410-2001 Parameter Set Cryptocom",
NID_id_GostR3410_2001_ParamSet_cc,8,&(lvalues[5336]),0},
......@@ -2393,7 +2393,6 @@ static ASN1_OBJECT *sn_objs[NUM_SN]={
&(nid_objs[789]),/* "id-Gost28147-89-None-KeyMeshing" */
&(nid_objs[760]),/* "id-Gost28147-89-TestParamSet" */
&(nid_objs[794]),/* "id-Gost28147-89-cc" */
&(nid_objs[799]),/* "id-GostR3410-11-94-with-GostR3411-94-cc" */
&(nid_objs[777]),/* "id-GostR3410-2001-CryptoPro-A-ParamSet" */
&(nid_objs[778]),/* "id-GostR3410-2001-CryptoPro-B-ParamSet" */
&(nid_objs[779]),/* "id-GostR3410-2001-CryptoPro-C-ParamSet" */
......@@ -2401,7 +2400,6 @@ static ASN1_OBJECT *sn_objs[NUM_SN]={
&(nid_objs[781]),/* "id-GostR3410-2001-CryptoPro-XchB-ParamSet" */
&(nid_objs[801]),/* "id-GostR3410-2001-ParamSet-cc" */
&(nid_objs[776]),/* "id-GostR3410-2001-TestParamSet" */
&(nid_objs[800]),/* "id-GostR3410-2001-with-GostR3411-94-cc" */
&(nid_objs[786]),/* "id-GostR3410-2001DH" */
&(nid_objs[769]),/* "id-GostR3410-94-CryptoPro-A-ParamSet" */
&(nid_objs[770]),/* "id-GostR3410-94-CryptoPro-B-ParamSet" */
......@@ -2419,7 +2417,9 @@ static ASN1_OBJECT *sn_objs[NUM_SN]={
&(nid_objs[759]),/* "id-GostR3411-94-CryptoProParamSet" */
&(nid_objs[758]),/* "id-GostR3411-94-TestParamSet" */
&(nid_objs[754]),/* "id-GostR3411-94-with-GostR3410-2001" */
&(nid_objs[800]),/* "id-GostR3411-94-with-GostR3410-2001-cc" */
&(nid_objs[755]),/* "id-GostR3411-94-with-GostR3410-94" */
&(nid_objs[799]),/* "id-GostR3411-94-with-GostR3410-94-cc" */
&(nid_objs[783]),/* "id-HMACGostR3411-94" */
&(nid_objs[266]),/* "id-aca" */
&(nid_objs[355]),/* "id-aca-accessIdentity" */
......@@ -2947,16 +2947,16 @@ static ASN1_OBJECT *ln_objs[NUM_LN]={
&(nid_objs[785]),/* "GOST 28147-89 MAC" */
&(nid_objs[798]),/* "GOST 34.10-2001 Cryptocom" */
&(nid_objs[797]),/* "GOST 34.10-94 Cryptocom" */
&(nid_objs[799]),/* "GOST R 34.10 with GOST R 34.11-94 Cryptocom" */
&(nid_objs[756]),/* "GOST R 34.10-2001" */
&(nid_objs[786]),/* "GOST R 34.10-2001 DH" */
&(nid_objs[800]),/* "GOST R 34.10-2001 with GOST R 34.10-94 Cryptocom" */
&(nid_objs[757]),/* "GOST R 34.10-94" */
&(nid_objs[787]),/* "GOST R 34.10-94 DH" */
&(nid_objs[795]),/* "GOST R 34.11-94" */
&(nid_objs[796]),/* "GOST R 34.11-94 PRF" */
&(nid_objs[754]),/* "GOST R 34.11-94 with GOST R 34.10-2001" */
&(nid_objs[800]),/* "GOST R 34.11-94 with GOST R 34.10-2001 Cryptocom" */
&(nid_objs[755]),/* "GOST R 34.11-94 with GOST R 34.10-94" */
&(nid_objs[799]),/* "GOST R 34.11-94 with GOST R 34.10-94 Cryptocom" */
&(nid_objs[801]),/* "GOST R 3410-2001 Parameter Set Cryptocom" */
&(nid_objs[783]),/* "HMAC GOST 34.11-94" */
&(nid_objs[432]),/* "Hold Instruction Call Issuer" */
......@@ -4080,8 +4080,8 @@ static ASN1_OBJECT *obj_objs[NUM_OBJ]={
&(nid_objs[508]),/* OBJ_id_hex_multipart_message 1 3 6 1 7 1 1 2 */
&(nid_objs[57]),/* OBJ_netscape 2 16 840 1 113730 */
&(nid_objs[437]),/* OBJ_pilot 0 9 2342 19200300 100 */
&(nid_objs[799]),/* OBJ_id_GostR3410_11_94_with_GostR3411_94_cc 1 2 643 2 9 1 3 3 */
&(nid_objs[800]),/* OBJ_id_GostR3410_2001_with_GostR3411_94_cc 1 2 643 2 9 1 3 4 */
&(nid_objs[799]),/* OBJ_id_GostR3411_94_with_GostR3410_94_cc 1 2 643 2 9 1 3 3 */
&(nid_objs[800]),/* OBJ_id_GostR3411_94_with_GostR3410_2001_cc 1 2 643 2 9 1 3 4 */
&(nid_objs[797]),/* OBJ_id_GostR3410_94_cc 1 2 643 2 9 1 5 3 */
&(nid_objs[798]),/* OBJ_id_GostR3410_2001_cc 1 2 643 2 9 1 5 4 */
&(nid_objs[794]),/* OBJ_id_Gost28147_89_cc 1 2 643 2 9 1 6 1 */
......
......@@ -3510,15 +3510,15 @@
#define NID_id_GostR3410_2001_cc 798
#define OBJ_id_GostR3410_2001_cc OBJ_cryptocom,1L,5L,4L
#define SN_id_GostR3410_11_94_with_GostR3411_94_cc "id-GostR3410-11-94-with-GostR3411-94-cc"
#define LN_id_GostR3410_11_94_with_GostR3411_94_cc "GOST R 34.10 with GOST R 34.11-94 Cryptocom"
#define NID_id_GostR3410_11_94_with_GostR3411_94_cc 799
#define OBJ_id_GostR3410_11_94_with_GostR3411_94_cc OBJ_cryptocom,1L,3L,3L
#define SN_id_GostR3410_2001_with_GostR3411_94_cc "id-GostR3410-2001-with-GostR3411-94-cc"
#define LN_id_GostR3410_2001_with_GostR3411_94_cc "GOST R 34.10-2001 with GOST R 34.10-94 Cryptocom"
#define NID_id_GostR3410_2001_with_GostR3411_94_cc 800
#define OBJ_id_GostR3410_2001_with_GostR3411_94_cc OBJ_cryptocom,1L,3L,4L
#define SN_id_GostR3411_94_with_GostR3410_94_cc "id-GostR3411-94-with-GostR3410-94-cc"
#define LN_id_GostR3411_94_with_GostR3410_94_cc "GOST R 34.11-94 with GOST R 34.10-94 Cryptocom"
#define NID_id_GostR3411_94_with_GostR3410_94_cc 799
#define OBJ_id_GostR3411_94_with_GostR3410_94_cc OBJ_cryptocom,1L,3L,3L
#define SN_id_GostR3411_94_with_GostR3410_2001_cc "id-GostR3411-94-with-GostR3410-2001-cc"
#define LN_id_GostR3411_94_with_GostR3410_2001_cc "GOST R 34.11-94 with GOST R 34.10-2001 Cryptocom"
#define NID_id_GostR3411_94_with_GostR3410_2001_cc 800
#define OBJ_id_GostR3411_94_with_GostR3410_2001_cc OBJ_cryptocom,1L,3L,4L
#define SN_id_GostR3410_2001_ParamSet_cc "id-GostR3410-2001-ParamSet-cc"
#define LN_id_GostR3410_2001_ParamSet_cc "GOST R 3410-2001 Parameter Set Cryptocom"
......
......@@ -796,6 +796,6 @@ id_GostR3411_94 795
id_GostR3411_94_prf 796
id_GostR3410_94_cc 797
id_GostR3410_2001_cc 798
id_GostR3410_11_94_with_GostR3411_94_cc 799
id_GostR3410_2001_with_GostR3411_94_cc 800
id_GostR3411_94_with_GostR3410_94_cc 799
id_GostR3411_94_with_GostR3410_2001_cc 800
id_GostR3410_2001_ParamSet_cc 801
/* crypto/objects/obj_xref.c */
/* Written by Dr Stephen N Henson (shenson@bigfoot.com) for the OpenSSL
* project 2006.
*/
/* ====================================================================
* Copyright (c) 2006 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
* licensing@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.
* ====================================================================
*
* This product includes cryptographic software written by Eric Young
* (eay@cryptsoft.com). This product includes software written by Tim
* Hudson (tjh@cryptsoft.com).
*
*/
#include <openssl/objects.h>
#include "obj_xref.h"
static int cmp_sig(const nid_triple *a, const nid_triple *b)
{
return **a - **b;
}
static int cmp_sigx(const nid_triple **a, const nid_triple **b)
{
int ret;
ret = (**a)[1] - (**b)[1];
if (ret)
return ret;
return (**a)[2] - (**b)[2];
}
int OBJ_find_sigid_algs(int signid, int *pdig_nid, int *ppkey_nid)
{
nid_triple tmp, *rv;
tmp[0] = signid;
rv = (nid_triple *)OBJ_bsearch((char *)&tmp,
(char *)sigoid_srt,
sizeof(sigoid_srt) / sizeof(nid_triple),
sizeof(nid_triple),
(int (*)(const void *, const void *))cmp_sig);
if (rv == NULL)
return 0;
*pdig_nid = (*rv)[1];
*ppkey_nid = (*rv)[2];
return 1;
}
int OBJ_find_sigid_by_algs(int *psignid, int dig_nid, int pkey_nid)
{
nid_triple tmp, *t=&tmp, **rv;
tmp[1] = dig_nid;
tmp[2] = pkey_nid;
rv = (nid_triple **)OBJ_bsearch((char *)&t,
(char *)sigoid_srt_xref,
sizeof(sigoid_srt_xref) / sizeof(nid_triple *),
sizeof(nid_triple *),
(int (*)(const void *, const void *))cmp_sigx);
if (rv == NULL)
return 0;
*psignid = (**rv)[0];
return 1;
}
#ifdef OBJ_XREF_TEST
main()
{
int n1, n2, n3;
int i, rv;
for (i = 0; i < sizeof(sigoid_srt) / sizeof(nid_triple); i++)
{
n1 = sigoid_srt[i][0];
rv = OBJ_find_sigid_algs(n1, &n2, &n3);
printf("Forward: %d, %s %s %s\n", rv,
OBJ_nid2ln(n1), OBJ_nid2ln(n2), OBJ_nid2ln(n3));
n1=0;
rv = OBJ_find_sigid_by_algs(&n1, n2, n3);
printf("Reverse: %d, %s %s %s\n", rv,
OBJ_nid2ln(n1), OBJ_nid2ln(n2), OBJ_nid2ln(n3));
}
}
#endif
typedef int nid_triple[3];
static const nid_triple sigoid_srt[] =
{
{NID_md2WithRSAEncryption, NID_md2, NID_rsaEncryption},
{NID_md5WithRSAEncryption, NID_md5, NID_rsaEncryption},
{NID_shaWithRSAEncryption, NID_sha, NID_rsaEncryption},
{NID_sha1WithRSAEncryption, NID_sha1, NID_rsaEncryption},
{NID_dsaWithSHA, NID_sha, NID_dsa},
{NID_dsaWithSHA1_2, NID_sha1, NID_dsa_2},
{NID_mdc2WithRSA, NID_mdc2, NID_rsaEncryption},
{NID_md5WithRSA, NID_md5, NID_rsa},
{NID_dsaWithSHA1, NID_sha1, NID_dsa},
{NID_sha1WithRSA, NID_sha1, NID_rsa},
{NID_ripemd160WithRSA, NID_ripemd160, NID_rsaEncryption},
{NID_md4WithRSAEncryption, NID_md4, NID_rsaEncryption},
{NID_ecdsa_with_SHA1, NID_sha1, NID_X9_62_id_ecPublicKey},
{NID_sha256WithRSAEncryption, NID_sha256, NID_rsaEncryption},
{NID_sha384WithRSAEncryption, NID_sha384, NID_rsaEncryption},
{NID_sha512WithRSAEncryption, NID_sha512, NID_rsaEncryption},
{NID_sha224WithRSAEncryption, NID_sha224, NID_rsaEncryption},
{NID_id_GostR3411_94_with_GostR3410_2001, NID_id_GostR3411_94, NID_id_GostR3410_2001},
{NID_id_GostR3411_94_with_GostR3410_94, NID_id_GostR3411_94, NID_id_GostR3410_94},
{NID_id_GostR3411_94_with_GostR3410_94_cc, NID_id_GostR3411_94, NID_id_GostR3410_94_cc},
{NID_id_GostR3411_94_with_GostR3410_2001_cc, NID_id_GostR3411_94, NID_id_GostR3410_2001_cc},
};
static const nid_triple * const sigoid_srt_xref[] =
{
&sigoid_srt[0],
&sigoid_srt[1],
&sigoid_srt[7],
&sigoid_srt[2],
&sigoid_srt[4],
&sigoid_srt[3],
&sigoid_srt[9],
&sigoid_srt[5],
&sigoid_srt[8],
&sigoid_srt[12],
&sigoid_srt[6],
&sigoid_srt[10],
&sigoid_srt[11],
&sigoid_srt[13],
&sigoid_srt[14],
&sigoid_srt[15],
&sigoid_srt[16],
&sigoid_srt[17],
&sigoid_srt[18],
&sigoid_srt[19],
&sigoid_srt[20],
};
# OID cross reference table.
# Links signatures OIDs to their corresponding public key algorithms
# and digests.
md2WithRSAEncryption md2 rsaEncryption
md5WithRSAEncryption md5 rsaEncryption
shaWithRSAEncryption sha rsaEncryption
sha1WithRSAEncryption sha1 rsaEncryption
md4WithRSAEncryption md4 rsaEncryption
sha256WithRSAEncryption sha256 rsaEncryption
sha384WithRSAEncryption sha384 rsaEncryption
sha512WithRSAEncryption sha512 rsaEncryption
sha224WithRSAEncryption sha224 rsaEncryption
mdc2WithRSA mdc2 rsaEncryption
ripemd160WithRSA ripemd160 rsaEncryption
# Alternative deprecated OIDs. By using the older "rsa" OID this
# type will be recognized by not normally used.
md5WithRSA md5 rsa
sha1WithRSA sha1 rsa
dsaWithSHA sha dsa
dsaWithSHA1 sha1 dsa
dsaWithSHA1_2 sha1 dsa_2
ecdsa_with_SHA1 sha1 X9_62_id_ecPublicKey
id_GostR3411_94_with_GostR3410_2001 id_GostR3411_94 id_GostR3410_2001
id_GostR3411_94_with_GostR3410_94 id_GostR3411_94 id_GostR3410_94
id_GostR3411_94_with_GostR3410_94_cc id_GostR3411_94 id_GostR3410_94_cc
id_GostR3411_94_with_GostR3410_2001_cc id_GostR3411_94 id_GostR3410_2001_cc
......@@ -1022,6 +1022,9 @@ int OBJ_create(const char *oid,const char *sn,const char *ln);
void OBJ_cleanup(void );
int OBJ_create_objects(BIO *in);
int OBJ_find_sigid_algs(int signid, int *pdig_nid, int *ppkey_nid);
int OBJ_find_sigid_by_algs(int *psignid, int dig_nid, int pkey_nid);
/* BEGIN ERROR CODES */
/* The following lines are auto generated by the script mkerr.pl. Any changes
* made after this point may be overwritten when the script is next run.
......
......@@ -1122,7 +1122,7 @@ cryptocom 1 5 3 : gost94cc : GOST 34.10-94 Cryptocom
!Cname id-GostR3410-2001-cc
cryptocom 1 5 4 : gost2001cc : GOST 34.10-2001 Cryptocom
cryptocom 1 3 3 : id-GostR3410-11-94-with-GostR3411-94-cc : GOST R 34.10 with GOST R 34.11-94 Cryptocom
cryptocom 1 3 4 : id-GostR3410-2001-with-GostR3411-94-cc : GOST R 34.10-2001 with GOST R 34.10-94 Cryptocom
cryptocom 1 3 3 : id-GostR3411-94-with-GostR3410-94-cc : GOST R 34.11-94 with GOST R 34.10-94 Cryptocom
cryptocom 1 3 4 : id-GostR3411-94-with-GostR3410-2001-cc : GOST R 34.11-94 with GOST R 34.10-2001 Cryptocom
cryptocom 1 8 1 : id-GostR3410-2001-ParamSet-cc : GOST R 3410-2001 Parameter Set Cryptocom
#!/usr/local/bin/perl
open IN, "obj_mac.num";
# Read in OID nid values for a lookup table.
while (<IN>)
{
chomp;
my ($name, $num) = /^(\S+)\s+(\S+)$/;
$oid_tbl{$name} = $num;
}
close IN;
open IN, "obj_xref.txt";
my $ln = 1;
while (<IN>)
{
chomp;
s/#.*$//;
next if (/^\S*$/);
my ($xr, $p1, $p2) = /^(\S+)\s+(\S+)\s+(\S+)/;
check_oid($xr);
check_oid($p1);
check_oid($p2);
$xref_tbl{$xr} = [$p1, $p2, $ln];
}
my @xrkeys = keys %xref_tbl;
my @srt1 = sort { $oid_tbl{$a} <=> $oid_tbl{$b}} @xrkeys;
for(my $i = 0; $i <= $#srt1; $i++)
{
$xref_tbl{$srt1[$i]}[2] = $i;
}
my @srt2 = sort
{
my$ap1 = $oid_tbl{$xref_tbl{$a}[0]};
my$bp1 = $oid_tbl{$xref_tbl{$b}[0]};
return $ap1 - $bp1 if ($ap1 != $bp1);
my$ap2 = $oid_tbl{$xref_tbl{$a}[1]};
my$bp2 = $oid_tbl{$xref_tbl{$b}[1]};
return $ap2 - $bp2;
} @xrkeys;
print <<EOF;
typedef int nid_triple[3];
static const nid_triple sigoid_srt[] =
{
EOF
foreach (@srt1)
{
my $xr = $_;
my ($p1, $p2) = @{$xref_tbl{$_}};
print "\t{NID_$xr, NID_$p1, NID_$p2},\n";
}
print "\t};";
print <<EOF;
static const nid_triple * const sigoid_srt_xref[] =
{
EOF
foreach (@srt2)
{
my $x = $xref_tbl{$_}[2];
print "\t\&sigoid_srt\[$x\],\n";
}
print "\t};\n\n";
sub check_oid
{
my ($chk) = @_;
if (!exists $oid_tbl{$chk})
{
die "Not Found \"$chk\"\n";
}
}
......@@ -147,7 +147,7 @@ pk7_lib.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
pk7_lib.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
pk7_lib.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
pk7_lib.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
pk7_lib.o: ../cryptlib.h pk7_lib.c
pk7_lib.o: ../asn1/asn1_locl.h ../cryptlib.h pk7_lib.c
pk7_mime.o: ../../e_os.h ../../include/openssl/asn1.h
pk7_mime.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
pk7_mime.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册