Add new GOST OIDs
authorDmitry Belyavsky <beldmit@gmail.com>
Mon, 17 Aug 2015 10:22:52 +0000 (11:22 +0100)
committerMatt Caswell <matt@openssl.org>
Mon, 17 Aug 2015 14:34:30 +0000 (15:34 +0100)
Add new OIDs for latest GOST updates

Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
crypto/objects/obj_dat.h
crypto/objects/obj_mac.num
crypto/objects/obj_xref.h
crypto/objects/obj_xref.txt
crypto/objects/objects.txt
include/openssl/obj_mac.h

index 1ccbced..6210784 100644 (file)
  * [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 */
index af57c68..e813b62 100644 (file)
@@ -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
index e453e99..c07adee 100644 (file)
@@ -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],
 };
index 19c9422..981103b 100644 (file)
@@ -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
index 655f405..06928c6 100644 (file)
@@ -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
index 0e6a99e..fdf5b62 100644 (file)
 #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
 #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
 #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