From 31001f813172f73e4a27300ef39fc45e2b372a38 Mon Sep 17 00:00:00 2001 From: Dmitry Belyavsky Date: Mon, 17 Aug 2015 11:22:52 +0100 Subject: [PATCH] Add new GOST OIDs Add new OIDs for latest GOST updates Reviewed-by: Richard Levitte Reviewed-by: Matt Caswell --- crypto/objects/obj_dat.h | 216 +++++++++++++++++++++++++++++++++++- crypto/objects/obj_mac.num | 35 ++++++ crypto/objects/obj_xref.h | 6 + crypto/objects/obj_xref.txt | 2 + crypto/objects/objects.txt | 51 +++++++++ include/openssl/obj_mac.h | 155 ++++++++++++++++++++++++++ 6 files changed, 460 insertions(+), 5 deletions(-) diff --git a/crypto/objects/obj_dat.h b/crypto/objects/obj_dat.h index 1ccbced585..6210784d13 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 974 -#define NUM_SN 967 -#define NUM_LN 967 -#define NUM_OBJ 903 +#define NUM_NID 1009 +#define NUM_SN 1002 +#define NUM_LN 1002 +#define NUM_OBJ 936 -static const unsigned char lvalues[6364]={ +static const unsigned char lvalues[6604]={ 0x2A,0x86,0x48,0x86,0xF7,0x0D, /* [ 0] OBJ_rsadsi */ 0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01, /* [ 6] OBJ_pkcs */ 0x2A,0x86,0x48,0x86,0xF7,0x0D,0x02,0x02, /* [ 13] OBJ_md2 */ @@ -965,6 +965,39 @@ static const unsigned char lvalues[6364]={ 0x03,0xA2,0x31,0x05,0x03,0x01,0x09,0x31, /* [6338] OBJ_camellia_256_ctr */ 0x03,0xA2,0x31,0x05,0x03,0x01,0x09,0x32, /* [6346] OBJ_camellia_256_cmac */ 0x2B,0x06,0x01,0x04,0x01,0xDA,0x47,0x04,0x0B,/* [6354] OBJ_id_scrypt */ +0x2A,0x85,0x03,0x07,0x01, /* [6363] OBJ_id_tc26 */ +0x2A,0x85,0x03,0x07,0x01,0x01, /* [6368] OBJ_id_tc26_algorithms */ +0x2A,0x85,0x03,0x07,0x01,0x01,0x01, /* [6374] OBJ_id_tc26_sign */ +0x2A,0x85,0x03,0x07,0x01,0x01,0x01,0x01, /* [6381] OBJ_id_GostR3410_2012_256 */ +0x2A,0x85,0x03,0x07,0x01,0x01,0x01,0x02, /* [6389] OBJ_id_GostR3410_2012_512 */ +0x2A,0x85,0x03,0x07,0x01,0x01,0x02, /* [6397] OBJ_id_tc26_digest */ +0x2A,0x85,0x03,0x07,0x01,0x01,0x02,0x02, /* [6404] OBJ_id_GostR3411_2012_256 */ +0x2A,0x85,0x03,0x07,0x01,0x01,0x02,0x03, /* [6412] OBJ_id_GostR3411_2012_512 */ +0x2A,0x85,0x03,0x07,0x01,0x01,0x03, /* [6420] OBJ_id_tc26_signwithdigest */ +0x2A,0x85,0x03,0x07,0x01,0x01,0x03,0x02, /* [6427] OBJ_id_tc26_signwithdigest_gost3410_2012_256 */ +0x2A,0x85,0x03,0x07,0x01,0x01,0x03,0x03, /* [6435] OBJ_id_tc26_signwithdigest_gost3410_2012_512 */ +0x2A,0x85,0x03,0x07,0x01,0x01,0x04, /* [6443] OBJ_id_tc26_mac */ +0x2A,0x85,0x03,0x07,0x01,0x01,0x04,0x01, /* [6450] OBJ_id_tc26_hmac_gost_3411_2012_256 */ +0x2A,0x85,0x03,0x07,0x01,0x01,0x04,0x02, /* [6458] OBJ_id_tc26_hmac_gost_3411_2012_512 */ +0x2A,0x85,0x03,0x07,0x01,0x01,0x05, /* [6466] OBJ_id_tc26_cipher */ +0x2A,0x85,0x03,0x07,0x01,0x01,0x06, /* [6473] OBJ_id_tc26_agreement */ +0x2A,0x85,0x03,0x07,0x01,0x01,0x06,0x01, /* [6480] OBJ_id_tc26_agreement_gost_3410_2012_256 */ +0x2A,0x85,0x03,0x07,0x01,0x01,0x06,0x02, /* [6488] OBJ_id_tc26_agreement_gost_3410_2012_512 */ +0x2A,0x85,0x03,0x07,0x01,0x02, /* [6496] OBJ_id_tc26_constants */ +0x2A,0x85,0x03,0x07,0x01,0x02,0x01, /* [6502] OBJ_id_tc26_sign_constants */ +0x2A,0x85,0x03,0x07,0x01,0x02,0x01,0x02, /* [6509] OBJ_id_tc26_gost_3410_2012_512_constants */ +0x2A,0x85,0x03,0x07,0x01,0x02,0x01,0x02,0x00,/* [6517] OBJ_id_tc26_gost_3410_2012_512_paramSetTest */ +0x2A,0x85,0x03,0x07,0x01,0x02,0x01,0x02,0x01,/* [6526] OBJ_id_tc26_gost_3410_2012_512_paramSetA */ +0x2A,0x85,0x03,0x07,0x01,0x02,0x01,0x02,0x02,/* [6535] OBJ_id_tc26_gost_3410_2012_512_paramSetB */ +0x2A,0x85,0x03,0x07,0x01,0x02,0x02, /* [6544] OBJ_id_tc26_digest_constants */ +0x2A,0x85,0x03,0x07,0x01,0x02,0x05, /* [6551] OBJ_id_tc26_cipher_constants */ +0x2A,0x85,0x03,0x07,0x01,0x02,0x05,0x01, /* [6558] OBJ_id_tc26_gost_28147_constants */ +0x2A,0x85,0x03,0x07,0x01,0x02,0x05,0x01,0x01,/* [6566] OBJ_id_tc26_gost_28147_param_Z */ +0x2A,0x85,0x03,0x03,0x81,0x03,0x01,0x01, /* [6575] OBJ_INN */ +0x2A,0x85,0x03,0x64,0x01, /* [6583] OBJ_OGRN */ +0x2A,0x85,0x03,0x64,0x03, /* [6588] OBJ_SNILS */ +0x2A,0x85,0x03,0x64,0x6F, /* [6593] OBJ_subjectSignTool */ +0x2A,0x85,0x03,0x64,0x70, /* [6598] OBJ_issuerSignTool */ }; static const ASN1_OBJECT nid_objs[NUM_NID]={ @@ -2555,6 +2588,76 @@ static const ASN1_OBJECT nid_objs[NUM_NID]={ {"CAMELLIA-256-CMAC","camellia-256-cmac",NID_camellia_256_cmac,8, &(lvalues[6346]),0}, {"id-scrypt","id-scrypt",NID_id_scrypt,9,&(lvalues[6354]),0}, +{"id-tc26","id-tc26",NID_id_tc26,5,&(lvalues[6363]),0}, +{"gost89-cnt-12","gost89-cnt-12",NID_gost89_cnt_12,0,NULL,0}, +{"gost-mac-12","gost-mac-12",NID_gost_mac_12,0,NULL,0}, +{"id-tc26-algorithms","id-tc26-algorithms",NID_id_tc26_algorithms,6, + &(lvalues[6368]),0}, +{"id-tc26-sign","id-tc26-sign",NID_id_tc26_sign,7,&(lvalues[6374]),0}, +{"gost2012_256","GOST R 34.10-2012 with 256 bit modulus", + NID_id_GostR3410_2012_256,8,&(lvalues[6381]),0}, +{"gost2012_512","GOST R 34.10-2012 with 512 bit modulus", + NID_id_GostR3410_2012_512,8,&(lvalues[6389]),0}, +{"id-tc26-digest","id-tc26-digest",NID_id_tc26_digest,7, + &(lvalues[6397]),0}, +{"md_gost12_256","GOST R 34.11-2012 with 256 bit hash", + NID_id_GostR3411_2012_256,8,&(lvalues[6404]),0}, +{"md_gost12_512","GOST R 34.11-2012 with 512 bit hash", + NID_id_GostR3411_2012_512,8,&(lvalues[6412]),0}, +{"id-tc26-signwithdigest","id-tc26-signwithdigest", + NID_id_tc26_signwithdigest,7,&(lvalues[6420]),0}, +{"id-tc26-signwithdigest-gost3410-2012-256", + "GOST R 34.10-2012 with GOST R 34.11-2012 (256 bit)", + NID_id_tc26_signwithdigest_gost3410_2012_256,8,&(lvalues[6427]),0}, +{"id-tc26-signwithdigest-gost3410-2012-512", + "GOST R 34.10-2012 with GOST R 34.11-2012 (512 bit)", + NID_id_tc26_signwithdigest_gost3410_2012_512,8,&(lvalues[6435]),0}, +{"id-tc26-mac","id-tc26-mac",NID_id_tc26_mac,7,&(lvalues[6443]),0}, +{"id-tc26-hmac-gost-3411-2012-256","HMAC GOST 34.11-2012 256 bit", + NID_id_tc26_hmac_gost_3411_2012_256,8,&(lvalues[6450]),0}, +{"id-tc26-hmac-gost-3411-2012-512","HMAC GOST 34.11-2012 512 bit", + NID_id_tc26_hmac_gost_3411_2012_512,8,&(lvalues[6458]),0}, +{"id-tc26-cipher","id-tc26-cipher",NID_id_tc26_cipher,7, + &(lvalues[6466]),0}, +{"id-tc26-agreement","id-tc26-agreement",NID_id_tc26_agreement,7, + &(lvalues[6473]),0}, +{"id-tc26-agreement-gost-3410-2012-256", + "id-tc26-agreement-gost-3410-2012-256", + NID_id_tc26_agreement_gost_3410_2012_256,8,&(lvalues[6480]),0}, +{"id-tc26-agreement-gost-3410-2012-512", + "id-tc26-agreement-gost-3410-2012-512", + NID_id_tc26_agreement_gost_3410_2012_512,8,&(lvalues[6488]),0}, +{"id-tc26-constants","id-tc26-constants",NID_id_tc26_constants,6, + &(lvalues[6496]),0}, +{"id-tc26-sign-constants","id-tc26-sign-constants", + NID_id_tc26_sign_constants,7,&(lvalues[6502]),0}, +{"id-tc26-gost-3410-2012-512-constants", + "id-tc26-gost-3410-2012-512-constants", + NID_id_tc26_gost_3410_2012_512_constants,8,&(lvalues[6509]),0}, +{"id-tc26-gost-3410-2012-512-paramSetTest", + "GOST R 34.10-2012 (512 bit) testing parameter set", + NID_id_tc26_gost_3410_2012_512_paramSetTest,9,&(lvalues[6517]),0}, +{"id-tc26-gost-3410-2012-512-paramSetA", + "GOST R 34.10-2012 (512 bit) ParamSet A", + NID_id_tc26_gost_3410_2012_512_paramSetA,9,&(lvalues[6526]),0}, +{"id-tc26-gost-3410-2012-512-paramSetB", + "GOST R 34.10-2012 (512 bit) ParamSet B", + NID_id_tc26_gost_3410_2012_512_paramSetB,9,&(lvalues[6535]),0}, +{"id-tc26-digest-constants","id-tc26-digest-constants", + NID_id_tc26_digest_constants,7,&(lvalues[6544]),0}, +{"id-tc26-cipher-constants","id-tc26-cipher-constants", + NID_id_tc26_cipher_constants,7,&(lvalues[6551]),0}, +{"id-tc26-gost-28147-constants","id-tc26-gost-28147-constants", + NID_id_tc26_gost_28147_constants,8,&(lvalues[6558]),0}, +{"id-tc26-gost-28147-param-Z","GOST 28147-89 TC26 parameter set", + NID_id_tc26_gost_28147_param_Z,9,&(lvalues[6566]),0}, +{"INN","INN",NID_INN,8,&(lvalues[6575]),0}, +{"OGRN","OGRN",NID_OGRN,5,&(lvalues[6583]),0}, +{"SNILS","SNILS",NID_SNILS,5,&(lvalues[6588]),0}, +{"subjectSignTool","Signing Tool of Subject",NID_subjectSignTool,5, + &(lvalues[6593]),0}, +{"issuerSignTool","Signing Tool of Issuer",NID_issuerSignTool,5, + &(lvalues[6598]),0}, }; static const unsigned int sn_objs[NUM_SN]={ @@ -2670,6 +2773,7 @@ static const unsigned int sn_objs[NUM_SN]={ 35, /* "IDEA-CFB" */ 36, /* "IDEA-ECB" */ 46, /* "IDEA-OFB" */ +1004, /* "INN" */ 181, /* "ISO" */ 183, /* "ISO-US" */ 645, /* "ITU-T" */ @@ -2691,6 +2795,7 @@ static const unsigned int sn_objs[NUM_SN]={ 17, /* "O" */ 178, /* "OCSP" */ 180, /* "OCSPSigning" */ +1005, /* "OGRN" */ 379, /* "ORG" */ 18, /* "OU" */ 749, /* "Oakley-EC2N-3" */ @@ -2755,6 +2860,7 @@ static const unsigned int sn_objs[NUM_SN]={ 188, /* "SMIME" */ 167, /* "SMIME-CAPS" */ 100, /* "SN" */ +1006, /* "SNILS" */ 16, /* "ST" */ 143, /* "SXNetID" */ 458, /* "UID" */ @@ -2913,10 +3019,14 @@ static const unsigned int sn_objs[NUM_SN]={ 156, /* "friendlyName" */ 509, /* "generationQualifier" */ 815, /* "gost-mac" */ +976, /* "gost-mac-12" */ 811, /* "gost2001" */ 851, /* "gost2001cc" */ +979, /* "gost2012_256" */ +980, /* "gost2012_512" */ 813, /* "gost89" */ 814, /* "gost89-cnt" */ +975, /* "gost89-cnt-12" */ 812, /* "gost94" */ 850, /* "gost94cc" */ 797, /* "hmacWithMD5" */ @@ -3171,6 +3281,30 @@ static const unsigned int sn_objs[NUM_SN]={ 194, /* "id-smime-spq" */ 250, /* "id-smime-spq-ets-sqt-unotice" */ 249, /* "id-smime-spq-ets-sqt-uri" */ +974, /* "id-tc26" */ +991, /* "id-tc26-agreement" */ +992, /* "id-tc26-agreement-gost-3410-2012-256" */ +993, /* "id-tc26-agreement-gost-3410-2012-512" */ +977, /* "id-tc26-algorithms" */ +990, /* "id-tc26-cipher" */ +1001, /* "id-tc26-cipher-constants" */ +994, /* "id-tc26-constants" */ +981, /* "id-tc26-digest" */ +1000, /* "id-tc26-digest-constants" */ +1002, /* "id-tc26-gost-28147-constants" */ +1003, /* "id-tc26-gost-28147-param-Z" */ +996, /* "id-tc26-gost-3410-2012-512-constants" */ +998, /* "id-tc26-gost-3410-2012-512-paramSetA" */ +999, /* "id-tc26-gost-3410-2012-512-paramSetB" */ +997, /* "id-tc26-gost-3410-2012-512-paramSetTest" */ +988, /* "id-tc26-hmac-gost-3411-2012-256" */ +989, /* "id-tc26-hmac-gost-3411-2012-512" */ +987, /* "id-tc26-mac" */ +978, /* "id-tc26-sign" */ +995, /* "id-tc26-sign-constants" */ +984, /* "id-tc26-signwithdigest" */ +985, /* "id-tc26-signwithdigest-gost3410-2012-256" */ +986, /* "id-tc26-signwithdigest-gost3410-2012-512" */ 676, /* "identified-organization" */ 461, /* "info" */ 748, /* "inhibitAnyPolicy" */ @@ -3182,6 +3316,7 @@ static const unsigned int sn_objs[NUM_SN]={ 295, /* "ipsecTunnel" */ 296, /* "ipsecUser" */ 86, /* "issuerAltName" */ +1008, /* "issuerSignTool" */ 770, /* "issuingDistributionPoint" */ 492, /* "janetMailbox" */ 957, /* "jurisdictionC" */ @@ -3196,6 +3331,8 @@ static const unsigned int sn_objs[NUM_SN]={ 460, /* "mail" */ 493, /* "mailPreferenceOption" */ 467, /* "manager" */ +982, /* "md_gost12_256" */ +983, /* "md_gost12_512" */ 809, /* "md_gost94" */ 875, /* "member" */ 182, /* "member-body" */ @@ -3484,6 +3621,7 @@ static const unsigned int sn_objs[NUM_SN]={ 769, /* "subjectDirectoryAttributes" */ 398, /* "subjectInfoAccess" */ 82, /* "subjectKeyIdentifier" */ +1007, /* "subjectSignTool" */ 498, /* "subtreeMaximumQuality" */ 497, /* "subtreeMinimumQuality" */ 890, /* "supportedAlgorithms" */ @@ -3554,12 +3692,22 @@ static const unsigned int ln_objs[NUM_LN]={ 813, /* "GOST 28147-89" */ 849, /* "GOST 28147-89 Cryptocom ParamSet" */ 815, /* "GOST 28147-89 MAC" */ +1003, /* "GOST 28147-89 TC26 parameter set" */ 851, /* "GOST 34.10-2001 Cryptocom" */ 850, /* "GOST 34.10-94 Cryptocom" */ 811, /* "GOST R 34.10-2001" */ 817, /* "GOST R 34.10-2001 DH" */ +998, /* "GOST R 34.10-2012 (512 bit) ParamSet A" */ +999, /* "GOST R 34.10-2012 (512 bit) ParamSet B" */ +997, /* "GOST R 34.10-2012 (512 bit) testing parameter set" */ +979, /* "GOST R 34.10-2012 with 256 bit modulus" */ +980, /* "GOST R 34.10-2012 with 512 bit modulus" */ +985, /* "GOST R 34.10-2012 with GOST R 34.11-2012 (256 bit)" */ +986, /* "GOST R 34.10-2012 with GOST R 34.11-2012 (512 bit)" */ 812, /* "GOST R 34.10-94" */ 818, /* "GOST R 34.10-94 DH" */ +982, /* "GOST R 34.11-2012 with 256 bit hash" */ +983, /* "GOST R 34.11-2012 with 512 bit hash" */ 809, /* "GOST R 34.11-94" */ 816, /* "GOST R 34.11-94 PRF" */ 807, /* "GOST R 34.11-94 with GOST R 34.10-2001" */ @@ -3567,12 +3715,15 @@ static const unsigned int ln_objs[NUM_LN]={ 808, /* "GOST R 34.11-94 with GOST R 34.10-94" */ 852, /* "GOST R 34.11-94 with GOST R 34.10-94 Cryptocom" */ 854, /* "GOST R 3410-2001 Parameter Set Cryptocom" */ +988, /* "HMAC GOST 34.11-2012 256 bit" */ +989, /* "HMAC GOST 34.11-2012 512 bit" */ 810, /* "HMAC GOST 34.11-94" */ 432, /* "Hold Instruction Call Issuer" */ 430, /* "Hold Instruction Code" */ 431, /* "Hold Instruction None" */ 433, /* "Hold Instruction Reject" */ 634, /* "ICC or token signature" */ +1004, /* "INN" */ 294, /* "IPSec End System" */ 295, /* "IPSec Tunnel" */ 296, /* "IPSec User" */ @@ -3617,6 +3768,7 @@ static const unsigned int ln_objs[NUM_LN]={ 366, /* "OCSP Nonce" */ 371, /* "OCSP Service Locator" */ 180, /* "OCSP Signing" */ +1005, /* "OGRN" */ 161, /* "PBES2" */ 69, /* "PBKDF2" */ 162, /* "PBMAC1" */ @@ -3630,10 +3782,13 @@ static const unsigned int ln_objs[NUM_LN]={ 2, /* "RSA Data Security, Inc. PKCS" */ 188, /* "S/MIME" */ 167, /* "S/MIME Capabilities" */ +1006, /* "SNILS" */ 387, /* "SNMPv2" */ 512, /* "Secure Electronic Transactions" */ 386, /* "Security" */ 394, /* "Selected Attribute Types" */ +1008, /* "Signing Tool of Issuer" */ +1007, /* "Signing Tool of Subject" */ 143, /* "Strong Extranet ID" */ 398, /* "Subject Information Access" */ 130, /* "TLS Web Client Authentication" */ @@ -3897,7 +4052,9 @@ static const unsigned int ln_objs[NUM_LN]={ 509, /* "generationQualifier" */ 601, /* "generic cryptogram" */ 99, /* "givenName" */ +976, /* "gost-mac-12" */ 814, /* "gost89-cnt" */ +975, /* "gost89-cnt-12" */ 855, /* "hmac" */ 780, /* "hmac-md5" */ 781, /* "hmac-sha1" */ @@ -4126,6 +4283,22 @@ static const unsigned int ln_objs[NUM_LN]={ 194, /* "id-smime-spq" */ 250, /* "id-smime-spq-ets-sqt-unotice" */ 249, /* "id-smime-spq-ets-sqt-uri" */ +974, /* "id-tc26" */ +991, /* "id-tc26-agreement" */ +992, /* "id-tc26-agreement-gost-3410-2012-256" */ +993, /* "id-tc26-agreement-gost-3410-2012-512" */ +977, /* "id-tc26-algorithms" */ +990, /* "id-tc26-cipher" */ +1001, /* "id-tc26-cipher-constants" */ +994, /* "id-tc26-constants" */ +981, /* "id-tc26-digest" */ +1000, /* "id-tc26-digest-constants" */ +1002, /* "id-tc26-gost-28147-constants" */ +996, /* "id-tc26-gost-3410-2012-512-constants" */ +987, /* "id-tc26-mac" */ +978, /* "id-tc26-sign" */ +995, /* "id-tc26-sign-constants" */ +984, /* "id-tc26-signwithdigest" */ 34, /* "idea-cbc" */ 35, /* "idea-cfb" */ 36, /* "idea-ecb" */ @@ -4734,6 +4907,11 @@ static const unsigned int obj_objs[NUM_OBJ]={ 639, /* OBJ_set_brand_JCB 2 23 42 8 35 */ 805, /* OBJ_cryptopro 1 2 643 2 2 */ 806, /* OBJ_cryptocom 1 2 643 2 9 */ +974, /* OBJ_id_tc26 1 2 643 7 1 */ +1005, /* OBJ_OGRN 1 2 643 100 1 */ +1006, /* OBJ_SNILS 1 2 643 100 3 */ +1007, /* OBJ_subjectSignTool 1 2 643 100 111 */ +1008, /* OBJ_issuerSignTool 1 2 643 100 112 */ 184, /* OBJ_X9_57 1 2 840 10040 */ 405, /* OBJ_ansi_X9_62 1 2 840 10045 */ 389, /* OBJ_Enterprises 1 3 6 1 4 1 */ @@ -4817,6 +4995,8 @@ static const unsigned int obj_objs[NUM_OBJ]={ 816, /* OBJ_id_GostR3411_94_prf 1 2 643 2 2 23 */ 817, /* OBJ_id_GostR3410_2001DH 1 2 643 2 2 98 */ 818, /* OBJ_id_GostR3410_94DH 1 2 643 2 2 99 */ +977, /* OBJ_id_tc26_algorithms 1 2 643 7 1 1 */ +994, /* OBJ_id_tc26_constants 1 2 643 7 1 2 */ 1, /* OBJ_rsadsi 1 2 840 113549 */ 185, /* OBJ_X9cm 1 2 840 10040 4 */ 127, /* OBJ_id_pkix 1 3 6 1 5 5 7 */ @@ -4867,6 +5047,15 @@ static const unsigned int obj_objs[NUM_OBJ]={ 842, /* OBJ_id_GostR3410_2001_CryptoPro_C_ParamSet 1 2 643 2 2 35 3 */ 843, /* OBJ_id_GostR3410_2001_CryptoPro_XchA_ParamSet 1 2 643 2 2 36 0 */ 844, /* OBJ_id_GostR3410_2001_CryptoPro_XchB_ParamSet 1 2 643 2 2 36 1 */ +978, /* OBJ_id_tc26_sign 1 2 643 7 1 1 1 */ +981, /* OBJ_id_tc26_digest 1 2 643 7 1 1 2 */ +984, /* OBJ_id_tc26_signwithdigest 1 2 643 7 1 1 3 */ +987, /* OBJ_id_tc26_mac 1 2 643 7 1 1 4 */ +990, /* OBJ_id_tc26_cipher 1 2 643 7 1 1 5 */ +991, /* OBJ_id_tc26_agreement 1 2 643 7 1 1 6 */ +995, /* OBJ_id_tc26_sign_constants 1 2 643 7 1 2 1 */ +1000, /* OBJ_id_tc26_digest_constants 1 2 643 7 1 2 2 */ +1001, /* OBJ_id_tc26_cipher_constants 1 2 643 7 1 2 5 */ 2, /* OBJ_pkcs 1 2 840 113549 1 */ 431, /* OBJ_hold_instruction_none 1 2 840 10040 2 1 */ 432, /* OBJ_hold_instruction_call_issuer 1 2 840 10040 2 2 */ @@ -4930,6 +5119,19 @@ static const unsigned int obj_objs[NUM_OBJ]={ 851, /* OBJ_id_GostR3410_2001_cc 1 2 643 2 9 1 5 4 */ 849, /* OBJ_id_Gost28147_89_cc 1 2 643 2 9 1 6 1 */ 854, /* OBJ_id_GostR3410_2001_ParamSet_cc 1 2 643 2 9 1 8 1 */ +1004, /* OBJ_INN 1 2 643 3 131 1 1 */ +979, /* OBJ_id_GostR3410_2012_256 1 2 643 7 1 1 1 1 */ +980, /* OBJ_id_GostR3410_2012_512 1 2 643 7 1 1 1 2 */ +982, /* OBJ_id_GostR3411_2012_256 1 2 643 7 1 1 2 2 */ +983, /* OBJ_id_GostR3411_2012_512 1 2 643 7 1 1 2 3 */ +985, /* OBJ_id_tc26_signwithdigest_gost3410_2012_256 1 2 643 7 1 1 3 2 */ +986, /* OBJ_id_tc26_signwithdigest_gost3410_2012_512 1 2 643 7 1 1 3 3 */ +988, /* OBJ_id_tc26_hmac_gost_3411_2012_256 1 2 643 7 1 1 4 1 */ +989, /* OBJ_id_tc26_hmac_gost_3411_2012_512 1 2 643 7 1 1 4 2 */ +992, /* OBJ_id_tc26_agreement_gost_3410_2012_256 1 2 643 7 1 1 6 1 */ +993, /* OBJ_id_tc26_agreement_gost_3410_2012_512 1 2 643 7 1 1 6 2 */ +996, /* OBJ_id_tc26_gost_3410_2012_512_constants 1 2 643 7 1 2 1 2 */ +1002, /* OBJ_id_tc26_gost_28147_constants 1 2 643 7 1 2 5 1 */ 186, /* OBJ_pkcs1 1 2 840 113549 1 1 */ 27, /* OBJ_pkcs3 1 2 840 113549 1 3 */ 187, /* OBJ_pkcs5 1 2 840 113549 1 5 */ @@ -5097,6 +5299,10 @@ static const unsigned int obj_objs[NUM_OBJ]={ 439, /* OBJ_pilotAttributeSyntax 0 9 2342 19200300 100 3 */ 440, /* OBJ_pilotObjectClass 0 9 2342 19200300 100 4 */ 441, /* OBJ_pilotGroups 0 9 2342 19200300 100 10 */ +997, /* OBJ_id_tc26_gost_3410_2012_512_paramSetTest 1 2 643 7 1 2 1 2 0 */ +998, /* OBJ_id_tc26_gost_3410_2012_512_paramSetA 1 2 643 7 1 2 1 2 1 */ +999, /* OBJ_id_tc26_gost_3410_2012_512_paramSetB 1 2 643 7 1 2 1 2 2 */ +1003, /* OBJ_id_tc26_gost_28147_param_Z 1 2 643 7 1 2 5 1 1 */ 108, /* OBJ_cast5_cbc 1 2 840 113533 7 66 10 */ 112, /* OBJ_pbeWithMD5AndCast5_CBC 1 2 840 113533 7 66 12 */ 782, /* OBJ_id_PasswordBasedMAC 1 2 840 113533 7 66 13 */ diff --git a/crypto/objects/obj_mac.num b/crypto/objects/obj_mac.num index af57c68451..e813b62f1c 100644 --- a/crypto/objects/obj_mac.num +++ b/crypto/objects/obj_mac.num @@ -971,3 +971,38 @@ camellia_256_ccm 970 camellia_256_ctr 971 camellia_256_cmac 972 id_scrypt 973 +id_tc26 974 +gost89_cnt_12 975 +gost_mac_12 976 +id_tc26_algorithms 977 +id_tc26_sign 978 +id_GostR3410_2012_256 979 +id_GostR3410_2012_512 980 +id_tc26_digest 981 +id_GostR3411_2012_256 982 +id_GostR3411_2012_512 983 +id_tc26_signwithdigest 984 +id_tc26_signwithdigest_gost3410_2012_256 985 +id_tc26_signwithdigest_gost3410_2012_512 986 +id_tc26_mac 987 +id_tc26_hmac_gost_3411_2012_256 988 +id_tc26_hmac_gost_3411_2012_512 989 +id_tc26_cipher 990 +id_tc26_agreement 991 +id_tc26_agreement_gost_3410_2012_256 992 +id_tc26_agreement_gost_3410_2012_512 993 +id_tc26_constants 994 +id_tc26_sign_constants 995 +id_tc26_gost_3410_2012_512_constants 996 +id_tc26_gost_3410_2012_512_paramSetTest 997 +id_tc26_gost_3410_2012_512_paramSetA 998 +id_tc26_gost_3410_2012_512_paramSetB 999 +id_tc26_digest_constants 1000 +id_tc26_cipher_constants 1001 +id_tc26_gost_28147_constants 1002 +id_tc26_gost_28147_param_Z 1003 +INN 1004 +OGRN 1005 +SNILS 1006 +subjectSignTool 1007 +issuerSignTool 1008 diff --git a/crypto/objects/obj_xref.h b/crypto/objects/obj_xref.h index e453e99f83..c07adee4f2 100644 --- a/crypto/objects/obj_xref.h +++ b/crypto/objects/obj_xref.h @@ -56,6 +56,10 @@ static const nid_triple sigoid_srt[] = { NID_dh_cofactor_kdf}, {NID_dhSinglePass_cofactorDH_sha512kdf_scheme, NID_sha512, NID_dh_cofactor_kdf}, + {NID_id_tc26_signwithdigest_gost3410_2012_256, NID_id_GostR3411_2012_256, + NID_id_GostR3410_2012_256}, + {NID_id_tc26_signwithdigest_gost3410_2012_512, NID_id_GostR3411_2012_512, + NID_id_GostR3410_2012_512}, }; static const nid_triple *const sigoid_srt_xref[] = { @@ -96,4 +100,6 @@ static const nid_triple *const sigoid_srt_xref[] = { &sigoid_srt[26], &sigoid_srt[27], &sigoid_srt[28], + &sigoid_srt[40], + &sigoid_srt[41], }; diff --git a/crypto/objects/obj_xref.txt b/crypto/objects/obj_xref.txt index 19c94226b2..981103b36d 100644 --- a/crypto/objects/obj_xref.txt +++ b/crypto/objects/obj_xref.txt @@ -44,6 +44,8 @@ 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 +id_tc26_signwithdigest_gost3410_2012_256 id_GostR3411_2012_256 id_GostR3410_2012_256 +id_tc26_signwithdigest_gost3410_2012_512 id_GostR3411_2012_512 id_GostR3410_2012_512 # ECDH KDFs and their corresponding message digests and schemes dhSinglePass_stdDH_sha1kdf_scheme sha1 dh_std_kdf dhSinglePass_stdDH_sha224kdf_scheme sha224 dh_std_kdf diff --git a/crypto/objects/objects.txt b/crypto/objects/objects.txt index 655f40514b..06928c6c6a 100644 --- a/crypto/objects/objects.txt +++ b/crypto/objects/objects.txt @@ -1156,6 +1156,7 @@ iso 0 10118 3 0 55 : whirlpool member-body 643 2 2 : cryptopro member-body 643 2 9 : cryptocom +member-body 643 7 1 : id-tc26 cryptopro 3 : id-GostR3411-94-with-GostR3410-2001 : GOST R 34.11-94 with GOST R 34.10-2001 cryptopro 4 : id-GostR3411-94-with-GostR3410-94 : GOST R 34.11-94 with GOST R 34.10-94 @@ -1169,8 +1170,10 @@ cryptopro 20 : gost94 : GOST R 34.10-94 !Cname id-Gost28147-89 cryptopro 21 : gost89 : GOST 28147-89 : gost89-cnt + : gost89-cnt-12 !Cname id-Gost28147-89-MAC cryptopro 22 : gost-mac : GOST 28147-89 MAC + : gost-mac-12 !Cname id-GostR3411-94-prf cryptopro 23 : prf-gostr3411-94 : GOST R 34.11-94 PRF cryptopro 98 : id-GostR3410-2001DH : GOST R 34.10-2001 DH @@ -1229,6 +1232,54 @@ cryptocom 1 3 4 : id-GostR3411-94-with-GostR3410-2001-cc : GOST R 34.11-94 with cryptocom 1 8 1 : id-GostR3410-2001-ParamSet-cc : GOST R 3410-2001 Parameter Set Cryptocom +# TC26 GOST OIDs + +id-tc26 1 : id-tc26-algorithms +id-tc26-algorithms 1 : id-tc26-sign +!Cname id-GostR3410-2012-256 +id-tc26-sign 1 : gost2012_256: GOST R 34.10-2012 with 256 bit modulus +!Cname id-GostR3410-2012-512 +id-tc26-sign 2 : gost2012_512: GOST R 34.10-2012 with 512 bit modulus + +id-tc26-algorithms 2 : id-tc26-digest +!Cname id-GostR3411-2012-256 +id-tc26-digest 2 : md_gost12_256: GOST R 34.11-2012 with 256 bit hash +!Cname id-GostR3411-2012-512 +id-tc26-digest 3 : md_gost12_512: GOST R 34.11-2012 with 512 bit hash + +id-tc26-algorithms 3 : id-tc26-signwithdigest +id-tc26-signwithdigest 2: id-tc26-signwithdigest-gost3410-2012-256: GOST R 34.10-2012 with GOST R 34.11-2012 (256 bit) +id-tc26-signwithdigest 3: id-tc26-signwithdigest-gost3410-2012-512: GOST R 34.10-2012 with GOST R 34.11-2012 (512 bit) + +id-tc26-algorithms 4 : id-tc26-mac +id-tc26-mac 1 : id-tc26-hmac-gost-3411-2012-256 : HMAC GOST 34.11-2012 256 bit +id-tc26-mac 2 : id-tc26-hmac-gost-3411-2012-512 : HMAC GOST 34.11-2012 512 bit + +id-tc26-algorithms 5 : id-tc26-cipher + +id-tc26-algorithms 6 : id-tc26-agreement +id-tc26-agreement 1 : id-tc26-agreement-gost-3410-2012-256 +id-tc26-agreement 2 : id-tc26-agreement-gost-3410-2012-512 + +id-tc26 2 : id-tc26-constants + +id-tc26-constants 1 : id-tc26-sign-constants +id-tc26-sign-constants 2: id-tc26-gost-3410-2012-512-constants +id-tc26-gost-3410-2012-512-constants 0 : id-tc26-gost-3410-2012-512-paramSetTest: GOST R 34.10-2012 (512 bit) testing parameter set +id-tc26-gost-3410-2012-512-constants 1 : id-tc26-gost-3410-2012-512-paramSetA: GOST R 34.10-2012 (512 bit) ParamSet A +id-tc26-gost-3410-2012-512-constants 2 : id-tc26-gost-3410-2012-512-paramSetB: GOST R 34.10-2012 (512 bit) ParamSet B + +id-tc26-constants 2 : id-tc26-digest-constants +id-tc26-constants 5 : id-tc26-cipher-constants +id-tc26-cipher-constants 1 : id-tc26-gost-28147-constants +id-tc26-gost-28147-constants 1 : id-tc26-gost-28147-param-Z : GOST 28147-89 TC26 parameter set + +member-body 643 3 131 1 1 : INN : INN +member-body 643 100 1 : OGRN : OGRN +member-body 643 100 3 : SNILS : SNILS +member-body 643 100 111 : subjectSignTool : Signing Tool of Subject +member-body 643 100 112 : issuerSignTool : Signing Tool of Issuer + # Definitions for Camellia cipher - CBC MODE 1 2 392 200011 61 1 1 1 2 : CAMELLIA-128-CBC : camellia-128-cbc diff --git a/include/openssl/obj_mac.h b/include/openssl/obj_mac.h index 0e6a99ee20..fdf5b625c8 100644 --- a/include/openssl/obj_mac.h +++ b/include/openssl/obj_mac.h @@ -3690,6 +3690,10 @@ #define NID_cryptocom 806 #define OBJ_cryptocom OBJ_member_body,643L,2L,9L +#define SN_id_tc26 "id-tc26" +#define NID_id_tc26 974 +#define OBJ_id_tc26 OBJ_member_body,643L,7L,1L + #define SN_id_GostR3411_94_with_GostR3410_2001 "id-GostR3411-94-with-GostR3410-2001" #define LN_id_GostR3411_94_with_GostR3410_2001 "GOST R 34.11-94 with GOST R 34.10-2001" #define NID_id_GostR3411_94_with_GostR3410_2001 807 @@ -3728,11 +3732,17 @@ #define SN_gost89_cnt "gost89-cnt" #define NID_gost89_cnt 814 +#define SN_gost89_cnt_12 "gost89-cnt-12" +#define NID_gost89_cnt_12 975 + #define SN_id_Gost28147_89_MAC "gost-mac" #define LN_id_Gost28147_89_MAC "GOST 28147-89 MAC" #define NID_id_Gost28147_89_MAC 815 #define OBJ_id_Gost28147_89_MAC OBJ_cryptopro,22L +#define SN_gost_mac_12 "gost-mac-12" +#define NID_gost_mac_12 976 + #define SN_id_GostR3411_94_prf "prf-gostr3411-94" #define LN_id_GostR3411_94_prf "GOST R 34.11-94 PRF" #define NID_id_GostR3411_94_prf 816 @@ -3898,6 +3908,151 @@ #define NID_id_GostR3410_2001_ParamSet_cc 854 #define OBJ_id_GostR3410_2001_ParamSet_cc OBJ_cryptocom,1L,8L,1L +#define SN_id_tc26_algorithms "id-tc26-algorithms" +#define NID_id_tc26_algorithms 977 +#define OBJ_id_tc26_algorithms OBJ_id_tc26,1L + +#define SN_id_tc26_sign "id-tc26-sign" +#define NID_id_tc26_sign 978 +#define OBJ_id_tc26_sign OBJ_id_tc26_algorithms,1L + +#define SN_id_GostR3410_2012_256 "gost2012_256" +#define LN_id_GostR3410_2012_256 "GOST R 34.10-2012 with 256 bit modulus" +#define NID_id_GostR3410_2012_256 979 +#define OBJ_id_GostR3410_2012_256 OBJ_id_tc26_sign,1L + +#define SN_id_GostR3410_2012_512 "gost2012_512" +#define LN_id_GostR3410_2012_512 "GOST R 34.10-2012 with 512 bit modulus" +#define NID_id_GostR3410_2012_512 980 +#define OBJ_id_GostR3410_2012_512 OBJ_id_tc26_sign,2L + +#define SN_id_tc26_digest "id-tc26-digest" +#define NID_id_tc26_digest 981 +#define OBJ_id_tc26_digest OBJ_id_tc26_algorithms,2L + +#define SN_id_GostR3411_2012_256 "md_gost12_256" +#define LN_id_GostR3411_2012_256 "GOST R 34.11-2012 with 256 bit hash" +#define NID_id_GostR3411_2012_256 982 +#define OBJ_id_GostR3411_2012_256 OBJ_id_tc26_digest,2L + +#define SN_id_GostR3411_2012_512 "md_gost12_512" +#define LN_id_GostR3411_2012_512 "GOST R 34.11-2012 with 512 bit hash" +#define NID_id_GostR3411_2012_512 983 +#define OBJ_id_GostR3411_2012_512 OBJ_id_tc26_digest,3L + +#define SN_id_tc26_signwithdigest "id-tc26-signwithdigest" +#define NID_id_tc26_signwithdigest 984 +#define OBJ_id_tc26_signwithdigest OBJ_id_tc26_algorithms,3L + +#define SN_id_tc26_signwithdigest_gost3410_2012_256 "id-tc26-signwithdigest-gost3410-2012-256" +#define LN_id_tc26_signwithdigest_gost3410_2012_256 "GOST R 34.10-2012 with GOST R 34.11-2012 (256 bit)" +#define NID_id_tc26_signwithdigest_gost3410_2012_256 985 +#define OBJ_id_tc26_signwithdigest_gost3410_2012_256 OBJ_id_tc26_signwithdigest,2L + +#define SN_id_tc26_signwithdigest_gost3410_2012_512 "id-tc26-signwithdigest-gost3410-2012-512" +#define LN_id_tc26_signwithdigest_gost3410_2012_512 "GOST R 34.10-2012 with GOST R 34.11-2012 (512 bit)" +#define NID_id_tc26_signwithdigest_gost3410_2012_512 986 +#define OBJ_id_tc26_signwithdigest_gost3410_2012_512 OBJ_id_tc26_signwithdigest,3L + +#define SN_id_tc26_mac "id-tc26-mac" +#define NID_id_tc26_mac 987 +#define OBJ_id_tc26_mac OBJ_id_tc26_algorithms,4L + +#define SN_id_tc26_hmac_gost_3411_2012_256 "id-tc26-hmac-gost-3411-2012-256" +#define LN_id_tc26_hmac_gost_3411_2012_256 "HMAC GOST 34.11-2012 256 bit" +#define NID_id_tc26_hmac_gost_3411_2012_256 988 +#define OBJ_id_tc26_hmac_gost_3411_2012_256 OBJ_id_tc26_mac,1L + +#define SN_id_tc26_hmac_gost_3411_2012_512 "id-tc26-hmac-gost-3411-2012-512" +#define LN_id_tc26_hmac_gost_3411_2012_512 "HMAC GOST 34.11-2012 512 bit" +#define NID_id_tc26_hmac_gost_3411_2012_512 989 +#define OBJ_id_tc26_hmac_gost_3411_2012_512 OBJ_id_tc26_mac,2L + +#define SN_id_tc26_cipher "id-tc26-cipher" +#define NID_id_tc26_cipher 990 +#define OBJ_id_tc26_cipher OBJ_id_tc26_algorithms,5L + +#define SN_id_tc26_agreement "id-tc26-agreement" +#define NID_id_tc26_agreement 991 +#define OBJ_id_tc26_agreement OBJ_id_tc26_algorithms,6L + +#define SN_id_tc26_agreement_gost_3410_2012_256 "id-tc26-agreement-gost-3410-2012-256" +#define NID_id_tc26_agreement_gost_3410_2012_256 992 +#define OBJ_id_tc26_agreement_gost_3410_2012_256 OBJ_id_tc26_agreement,1L + +#define SN_id_tc26_agreement_gost_3410_2012_512 "id-tc26-agreement-gost-3410-2012-512" +#define NID_id_tc26_agreement_gost_3410_2012_512 993 +#define OBJ_id_tc26_agreement_gost_3410_2012_512 OBJ_id_tc26_agreement,2L + +#define SN_id_tc26_constants "id-tc26-constants" +#define NID_id_tc26_constants 994 +#define OBJ_id_tc26_constants OBJ_id_tc26,2L + +#define SN_id_tc26_sign_constants "id-tc26-sign-constants" +#define NID_id_tc26_sign_constants 995 +#define OBJ_id_tc26_sign_constants OBJ_id_tc26_constants,1L + +#define SN_id_tc26_gost_3410_2012_512_constants "id-tc26-gost-3410-2012-512-constants" +#define NID_id_tc26_gost_3410_2012_512_constants 996 +#define OBJ_id_tc26_gost_3410_2012_512_constants OBJ_id_tc26_sign_constants,2L + +#define SN_id_tc26_gost_3410_2012_512_paramSetTest "id-tc26-gost-3410-2012-512-paramSetTest" +#define LN_id_tc26_gost_3410_2012_512_paramSetTest "GOST R 34.10-2012 (512 bit) testing parameter set" +#define NID_id_tc26_gost_3410_2012_512_paramSetTest 997 +#define OBJ_id_tc26_gost_3410_2012_512_paramSetTest OBJ_id_tc26_gost_3410_2012_512_constants,0L + +#define SN_id_tc26_gost_3410_2012_512_paramSetA "id-tc26-gost-3410-2012-512-paramSetA" +#define LN_id_tc26_gost_3410_2012_512_paramSetA "GOST R 34.10-2012 (512 bit) ParamSet A" +#define NID_id_tc26_gost_3410_2012_512_paramSetA 998 +#define OBJ_id_tc26_gost_3410_2012_512_paramSetA OBJ_id_tc26_gost_3410_2012_512_constants,1L + +#define SN_id_tc26_gost_3410_2012_512_paramSetB "id-tc26-gost-3410-2012-512-paramSetB" +#define LN_id_tc26_gost_3410_2012_512_paramSetB "GOST R 34.10-2012 (512 bit) ParamSet B" +#define NID_id_tc26_gost_3410_2012_512_paramSetB 999 +#define OBJ_id_tc26_gost_3410_2012_512_paramSetB OBJ_id_tc26_gost_3410_2012_512_constants,2L + +#define SN_id_tc26_digest_constants "id-tc26-digest-constants" +#define NID_id_tc26_digest_constants 1000 +#define OBJ_id_tc26_digest_constants OBJ_id_tc26_constants,2L + +#define SN_id_tc26_cipher_constants "id-tc26-cipher-constants" +#define NID_id_tc26_cipher_constants 1001 +#define OBJ_id_tc26_cipher_constants OBJ_id_tc26_constants,5L + +#define SN_id_tc26_gost_28147_constants "id-tc26-gost-28147-constants" +#define NID_id_tc26_gost_28147_constants 1002 +#define OBJ_id_tc26_gost_28147_constants OBJ_id_tc26_cipher_constants,1L + +#define SN_id_tc26_gost_28147_param_Z "id-tc26-gost-28147-param-Z" +#define LN_id_tc26_gost_28147_param_Z "GOST 28147-89 TC26 parameter set" +#define NID_id_tc26_gost_28147_param_Z 1003 +#define OBJ_id_tc26_gost_28147_param_Z OBJ_id_tc26_gost_28147_constants,1L + +#define SN_INN "INN" +#define LN_INN "INN" +#define NID_INN 1004 +#define OBJ_INN OBJ_member_body,643L,3L,131L,1L,1L + +#define SN_OGRN "OGRN" +#define LN_OGRN "OGRN" +#define NID_OGRN 1005 +#define OBJ_OGRN OBJ_member_body,643L,100L,1L + +#define SN_SNILS "SNILS" +#define LN_SNILS "SNILS" +#define NID_SNILS 1006 +#define OBJ_SNILS OBJ_member_body,643L,100L,3L + +#define SN_subjectSignTool "subjectSignTool" +#define LN_subjectSignTool "Signing Tool of Subject" +#define NID_subjectSignTool 1007 +#define OBJ_subjectSignTool OBJ_member_body,643L,100L,111L + +#define SN_issuerSignTool "issuerSignTool" +#define LN_issuerSignTool "Signing Tool of Issuer" +#define NID_issuerSignTool 1008 +#define OBJ_issuerSignTool OBJ_member_body,643L,100L,112L + #define SN_camellia_128_cbc "CAMELLIA-128-CBC" #define LN_camellia_128_cbc "camellia-128-cbc" #define NID_camellia_128_cbc 751 -- 2.25.1