--- /dev/null
+diff --git crypto/objects/obj_compat.h crypto/objects/obj_compat.h
+new file mode 100644
+index 00000000..68d1d733
+--- /dev/null
++++ crypto/objects/obj_compat.h
+@@ -0,0 +1,46 @@
++
++#ifndef OPENSSL_NO_DEPRECATED_3_0
++
++#define SN_id_tc26_cipher_gostr3412_2015_magma_ctracpkm SN_magma_ctr_acpkm
++#define NID_id_tc26_cipher_gostr3412_2015_magma_ctracpkm NID_magma_ctr_acpkm
++#define OBJ_id_tc26_cipher_gostr3412_2015_magma_ctracpkm OBJ_magma_ctr_acpkm
++
++#define SN_id_tc26_cipher_gostr3412_2015_magma_ctracpkm_omac SN_magma_ctr_acpkm_omac
++#define NID_id_tc26_cipher_gostr3412_2015_magma_ctracpkm_omac NID_magma_ctr_acpkm_omac
++#define OBJ_id_tc26_cipher_gostr3412_2015_magma_ctracpkm_omac OBJ_magma_ctr_acpkm_omac
++
++#define SN_id_tc26_cipher_gostr3412_2015_kuznyechik_ctracpkm SN_kuznyechik_ctr_acpkm
++#define NID_id_tc26_cipher_gostr3412_2015_kuznyechik_ctracpkm NID_kuznyechik_ctr_acpkm
++#define OBJ_id_tc26_cipher_gostr3412_2015_kuznyechik_ctracpkm OBJ_kuznyechik_ctr_acpkm
++
++#define SN_id_tc26_cipher_gostr3412_2015_kuznyechik_ctracpkm_omac SN_kuznyechik_ctr_acpkm_omac
++#define NID_id_tc26_cipher_gostr3412_2015_kuznyechik_ctracpkm_omac NID_kuznyechik_ctr_acpkm_omac
++#define OBJ_id_tc26_cipher_gostr3412_2015_kuznyechik_ctracpkm_omac OBJ_kuznyechik_ctr_acpkm_omac
++
++#define SN_id_tc26_wrap_gostr3412_2015_magma_kexp15 SN_magma_kexp15
++#define NID_id_tc26_wrap_gostr3412_2015_magma_kexp15 NID_magma_kexp15
++#define OBJ_id_tc26_wrap_gostr3412_2015_magma_kexp15 OBJ_magma_kexp15
++
++#define SN_id_tc26_wrap_gostr3412_2015_kuznyechik_kexp15 SN_kuznyechik_kexp15
++#define NID_id_tc26_wrap_gostr3412_2015_kuznyechik_kexp15 NID_kuznyechik_kexp15
++#define OBJ_id_tc26_wrap_gostr3412_2015_kuznyechik_kexp15 OBJ_kuznyechik_kexp15
++
++#define SN_grasshopper_ecb SN_kuznyechik_ecb
++#define NID_grasshopper_ecb NID_kuznyechik_ecb
++
++#define SN_grasshopper_ctr SN_kuznyechik_ctr
++#define NID_grasshopper_ctr NID_kuznyechik_ctr
++
++#define SN_grasshopper_ofb SN_kuznyechik_ofb
++#define NID_grasshopper_ofb NID_kuznyechik_ofb
++
++#define SN_grasshopper_cbc SN_kuznyechik_cbc
++#define NID_grasshopper_cbc NID_kuznyechik_cbc
++
++#define SN_grasshopper_cfb SN_kuznyechik_cfb
++#define NID_grasshopper_cfb NID_kuznyechik_cfb
++
++#define SN_grasshopper_mac SN_kuznyechik_mac
++#define NID_grasshopper_mac NID_kuznyechik_mac
++
++#endif
+diff --git crypto/objects/obj_dat.h crypto/objects/obj_dat.h
+index d1b1bc7f..d8082b59 100644
+--- crypto/objects/obj_dat.h
++++ crypto/objects/obj_dat.h
+@@ -2,7 +2,7 @@
+ * WARNING: do not edit!
+ * Generated by crypto/objects/obj_dat.pl
+ *
+- * Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved.
++ * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved.
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+@@ -10,7 +10,7 @@
+ */
+
+ /* Serialized OID's */
+-static const unsigned char so[7762] = {
++static const unsigned char so[7838] = {
+ 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 */
+@@ -1061,24 +1061,36 @@ static const unsigned char so[7762] = {
+ 0x2B,0x6F,0x02,0x8C,0x53, /* [ 7612] OBJ_ieee_siswg */
+ 0x2A,0x81,0x1C,0xCF,0x55,0x01,0x82,0x2D, /* [ 7617] OBJ_sm2 */
+ 0x2A,0x85,0x03,0x07,0x01,0x01,0x05,0x01, /* [ 7625] OBJ_id_tc26_cipher_gostr3412_2015_magma */
+- 0x2A,0x85,0x03,0x07,0x01,0x01,0x05,0x01,0x01, /* [ 7633] OBJ_id_tc26_cipher_gostr3412_2015_magma_ctracpkm */
+- 0x2A,0x85,0x03,0x07,0x01,0x01,0x05,0x01,0x02, /* [ 7642] OBJ_id_tc26_cipher_gostr3412_2015_magma_ctracpkm_omac */
+- 0x2A,0x85,0x03,0x07,0x01,0x01,0x05,0x02, /* [ 7651] OBJ_id_tc26_cipher_gostr3412_2015_kuznyechik */
+- 0x2A,0x85,0x03,0x07,0x01,0x01,0x05,0x02,0x01, /* [ 7659] OBJ_id_tc26_cipher_gostr3412_2015_kuznyechik_ctracpkm */
+- 0x2A,0x85,0x03,0x07,0x01,0x01,0x05,0x02,0x02, /* [ 7668] OBJ_id_tc26_cipher_gostr3412_2015_kuznyechik_ctracpkm_omac */
+- 0x2A,0x85,0x03,0x07,0x01,0x01,0x07, /* [ 7677] OBJ_id_tc26_wrap */
+- 0x2A,0x85,0x03,0x07,0x01,0x01,0x07,0x01, /* [ 7684] OBJ_id_tc26_wrap_gostr3412_2015_magma */
+- 0x2A,0x85,0x03,0x07,0x01,0x01,0x07,0x01,0x01, /* [ 7692] OBJ_id_tc26_wrap_gostr3412_2015_magma_kexp15 */
+- 0x2A,0x85,0x03,0x07,0x01,0x01,0x07,0x02, /* [ 7701] OBJ_id_tc26_wrap_gostr3412_2015_kuznyechik */
+- 0x2A,0x85,0x03,0x07,0x01,0x01,0x07,0x02,0x01, /* [ 7709] OBJ_id_tc26_wrap_gostr3412_2015_kuznyechik_kexp15 */
+- 0x2A,0x85,0x03,0x07,0x01,0x02,0x01,0x01,0x02, /* [ 7718] OBJ_id_tc26_gost_3410_2012_256_paramSetB */
+- 0x2A,0x85,0x03,0x07,0x01,0x02,0x01,0x01,0x03, /* [ 7727] OBJ_id_tc26_gost_3410_2012_256_paramSetC */
+- 0x2A,0x85,0x03,0x07,0x01,0x02,0x01,0x01,0x04, /* [ 7736] OBJ_id_tc26_gost_3410_2012_256_paramSetD */
+- 0x2A,0x86,0x48,0x86,0xF7,0x0D,0x02,0x0C, /* [ 7745] OBJ_hmacWithSHA512_224 */
+- 0x2A,0x86,0x48,0x86,0xF7,0x0D,0x02,0x0D, /* [ 7753] OBJ_hmacWithSHA512_256 */
++ 0x2A,0x85,0x03,0x07,0x01,0x01,0x05,0x02, /* [ 7633] OBJ_id_tc26_cipher_gostr3412_2015_kuznyechik */
++ 0x2A,0x85,0x03,0x07,0x01,0x01,0x07, /* [ 7641] OBJ_id_tc26_wrap */
++ 0x2A,0x85,0x03,0x07,0x01,0x01,0x07,0x01, /* [ 7648] OBJ_id_tc26_wrap_gostr3412_2015_magma */
++ 0x2A,0x85,0x03,0x07,0x01,0x01,0x07,0x02, /* [ 7656] OBJ_id_tc26_wrap_gostr3412_2015_kuznyechik */
++ 0x2A,0x85,0x03,0x07,0x01,0x02,0x01,0x01,0x02, /* [ 7664] OBJ_id_tc26_gost_3410_2012_256_paramSetB */
++ 0x2A,0x85,0x03,0x07,0x01,0x02,0x01,0x01,0x03, /* [ 7673] OBJ_id_tc26_gost_3410_2012_256_paramSetC */
++ 0x2A,0x85,0x03,0x07,0x01,0x02,0x01,0x01,0x04, /* [ 7682] OBJ_id_tc26_gost_3410_2012_256_paramSetD */
++ 0x2A,0x86,0x48,0x86,0xF7,0x0D,0x02,0x0C, /* [ 7691] OBJ_hmacWithSHA512_224 */
++ 0x2A,0x86,0x48,0x86,0xF7,0x0D,0x02,0x0D, /* [ 7699] OBJ_hmacWithSHA512_256 */
++ 0x2A,0x85,0x03,0x07,0x01,0x00, /* [ 7707] OBJ_id_tc26_modules */
++ 0x2A,0x85,0x03,0x07,0x01,0x00,0x06, /* [ 7713] OBJ_id_tc26_cms */
++ 0x2A,0x85,0x03,0x07,0x01,0x00,0x06,0x01, /* [ 7720] OBJ_id_tc26_cms_attrs */
++ 0x2A,0x85,0x03,0x07,0x01,0x00,0x06,0x01,0x01, /* [ 7728] OBJ_id_tc26_mac_attr */
++ 0x2A,0x85,0x03,0x07,0x01,0x01,0x05,0x01,0x01, /* [ 7737] OBJ_magma_ctr_acpkm */
++ 0x2A,0x85,0x03,0x07,0x01,0x01,0x05,0x01,0x02, /* [ 7746] OBJ_magma_ctr_acpkm_omac */
++ 0x2A,0x85,0x03,0x07,0x01,0x01,0x05,0x02,0x01, /* [ 7755] OBJ_kuznyechik_ctr_acpkm */
++ 0x2A,0x85,0x03,0x07,0x01,0x01,0x05,0x02,0x02, /* [ 7764] OBJ_kuznyechik_ctr_acpkm_omac */
++ 0x2A,0x85,0x03,0x07,0x01,0x01,0x07,0x01,0x01, /* [ 7773] OBJ_magma_kexp15 */
++ 0x2A,0x85,0x03,0x07,0x01,0x01,0x07,0x02,0x01, /* [ 7782] OBJ_kuznyechik_kexp15 */
++ 0x2A,0x85,0x03,0x64,0x05, /* [ 7791] OBJ_OGRNIP */
++ 0x2A,0x85,0x03,0x64,0x71, /* [ 7796] OBJ_classSignTool */
++ 0x2A,0x85,0x03,0x64,0x71,0x01, /* [ 7801] OBJ_classSignToolKC1 */
++ 0x2A,0x85,0x03,0x64,0x71,0x02, /* [ 7807] OBJ_classSignToolKC2 */
++ 0x2A,0x85,0x03,0x64,0x71,0x03, /* [ 7813] OBJ_classSignToolKC3 */
++ 0x2A,0x85,0x03,0x64,0x71,0x04, /* [ 7819] OBJ_classSignToolKB1 */
++ 0x2A,0x85,0x03,0x64,0x71,0x05, /* [ 7825] OBJ_classSignToolKB2 */
++ 0x2A,0x85,0x03,0x64,0x71,0x06, /* [ 7831] OBJ_classSignToolKA1 */
+ };
+
+-#define NUM_NID 1195
++#define NUM_NID 1221
+ static const ASN1_OBJECT nid_objs[NUM_NID] = {
+ {"UNDEF", "undefined", NID_undef},
+ {"rsadsi", "RSA Data Security, Inc.", NID_rsadsi, 6, &so[0]},
+@@ -2092,12 +2104,12 @@ static const ASN1_OBJECT nid_objs[NUM_NID] = {
+ {"gost89-cbc", "gost89-cbc", NID_gost89_cbc},
+ {"gost89-ecb", "gost89-ecb", NID_gost89_ecb},
+ {"gost89-ctr", "gost89-ctr", NID_gost89_ctr},
+- {"grasshopper-ecb", "grasshopper-ecb", NID_grasshopper_ecb},
+- {"grasshopper-ctr", "grasshopper-ctr", NID_grasshopper_ctr},
+- {"grasshopper-ofb", "grasshopper-ofb", NID_grasshopper_ofb},
+- {"grasshopper-cbc", "grasshopper-cbc", NID_grasshopper_cbc},
+- {"grasshopper-cfb", "grasshopper-cfb", NID_grasshopper_cfb},
+- {"grasshopper-mac", "grasshopper-mac", NID_grasshopper_mac},
++ { NULL, NULL, NID_undef },
++ { NULL, NULL, NID_undef },
++ { NULL, NULL, NID_undef },
++ { NULL, NULL, NID_undef },
++ { NULL, NULL, NID_undef },
++ { NULL, NULL, NID_undef },
+ {"ChaCha20-Poly1305", "chacha20-poly1305", NID_chacha20_poly1305},
+ {"ChaCha20", "chacha20", NID_chacha20},
+ {"tlsfeature", "TLS Feature", NID_tlsfeature, 8, &so[6619]},
+@@ -2254,30 +2266,56 @@ static const ASN1_OBJECT nid_objs[NUM_NID] = {
+ {"ieee-siswg", "IEEE Security in Storage Working Group", NID_ieee_siswg, 5, &so[7612]},
+ {"SM2", "sm2", NID_sm2, 8, &so[7617]},
+ {"id-tc26-cipher-gostr3412-2015-magma", "id-tc26-cipher-gostr3412-2015-magma", NID_id_tc26_cipher_gostr3412_2015_magma, 8, &so[7625]},
+- {"id-tc26-cipher-gostr3412-2015-magma-ctracpkm", "id-tc26-cipher-gostr3412-2015-magma-ctracpkm", NID_id_tc26_cipher_gostr3412_2015_magma_ctracpkm, 9, &so[7633]},
+- {"id-tc26-cipher-gostr3412-2015-magma-ctracpkm-omac", "id-tc26-cipher-gostr3412-2015-magma-ctracpkm-omac", NID_id_tc26_cipher_gostr3412_2015_magma_ctracpkm_omac, 9, &so[7642]},
+- {"id-tc26-cipher-gostr3412-2015-kuznyechik", "id-tc26-cipher-gostr3412-2015-kuznyechik", NID_id_tc26_cipher_gostr3412_2015_kuznyechik, 8, &so[7651]},
+- {"id-tc26-cipher-gostr3412-2015-kuznyechik-ctracpkm", "id-tc26-cipher-gostr3412-2015-kuznyechik-ctracpkm", NID_id_tc26_cipher_gostr3412_2015_kuznyechik_ctracpkm, 9, &so[7659]},
+- {"id-tc26-cipher-gostr3412-2015-kuznyechik-ctracpkm-omac", "id-tc26-cipher-gostr3412-2015-kuznyechik-ctracpkm-omac", NID_id_tc26_cipher_gostr3412_2015_kuznyechik_ctracpkm_omac, 9, &so[7668]},
+- {"id-tc26-wrap", "id-tc26-wrap", NID_id_tc26_wrap, 7, &so[7677]},
+- {"id-tc26-wrap-gostr3412-2015-magma", "id-tc26-wrap-gostr3412-2015-magma", NID_id_tc26_wrap_gostr3412_2015_magma, 8, &so[7684]},
+- {"id-tc26-wrap-gostr3412-2015-magma-kexp15", "id-tc26-wrap-gostr3412-2015-magma-kexp15", NID_id_tc26_wrap_gostr3412_2015_magma_kexp15, 9, &so[7692]},
+- {"id-tc26-wrap-gostr3412-2015-kuznyechik", "id-tc26-wrap-gostr3412-2015-kuznyechik", NID_id_tc26_wrap_gostr3412_2015_kuznyechik, 8, &so[7701]},
+- {"id-tc26-wrap-gostr3412-2015-kuznyechik-kexp15", "id-tc26-wrap-gostr3412-2015-kuznyechik-kexp15", NID_id_tc26_wrap_gostr3412_2015_kuznyechik_kexp15, 9, &so[7709]},
+- {"id-tc26-gost-3410-2012-256-paramSetB", "GOST R 34.10-2012 (256 bit) ParamSet B", NID_id_tc26_gost_3410_2012_256_paramSetB, 9, &so[7718]},
+- {"id-tc26-gost-3410-2012-256-paramSetC", "GOST R 34.10-2012 (256 bit) ParamSet C", NID_id_tc26_gost_3410_2012_256_paramSetC, 9, &so[7727]},
+- {"id-tc26-gost-3410-2012-256-paramSetD", "GOST R 34.10-2012 (256 bit) ParamSet D", NID_id_tc26_gost_3410_2012_256_paramSetD, 9, &so[7736]},
++ { NULL, NULL, NID_undef },
++ { NULL, NULL, NID_undef },
++ {"id-tc26-cipher-gostr3412-2015-kuznyechik", "id-tc26-cipher-gostr3412-2015-kuznyechik", NID_id_tc26_cipher_gostr3412_2015_kuznyechik, 8, &so[7633]},
++ { NULL, NULL, NID_undef },
++ { NULL, NULL, NID_undef },
++ {"id-tc26-wrap", "id-tc26-wrap", NID_id_tc26_wrap, 7, &so[7641]},
++ {"id-tc26-wrap-gostr3412-2015-magma", "id-tc26-wrap-gostr3412-2015-magma", NID_id_tc26_wrap_gostr3412_2015_magma, 8, &so[7648]},
++ { NULL, NULL, NID_undef },
++ {"id-tc26-wrap-gostr3412-2015-kuznyechik", "id-tc26-wrap-gostr3412-2015-kuznyechik", NID_id_tc26_wrap_gostr3412_2015_kuznyechik, 8, &so[7656]},
++ { NULL, NULL, NID_undef },
++ {"id-tc26-gost-3410-2012-256-paramSetB", "GOST R 34.10-2012 (256 bit) ParamSet B", NID_id_tc26_gost_3410_2012_256_paramSetB, 9, &so[7664]},
++ {"id-tc26-gost-3410-2012-256-paramSetC", "GOST R 34.10-2012 (256 bit) ParamSet C", NID_id_tc26_gost_3410_2012_256_paramSetC, 9, &so[7673]},
++ {"id-tc26-gost-3410-2012-256-paramSetD", "GOST R 34.10-2012 (256 bit) ParamSet D", NID_id_tc26_gost_3410_2012_256_paramSetD, 9, &so[7682]},
+ {"magma-ecb", "magma-ecb", NID_magma_ecb},
+ {"magma-ctr", "magma-ctr", NID_magma_ctr},
+ {"magma-ofb", "magma-ofb", NID_magma_ofb},
+ {"magma-cbc", "magma-cbc", NID_magma_cbc},
+ {"magma-cfb", "magma-cfb", NID_magma_cfb},
+ {"magma-mac", "magma-mac", NID_magma_mac},
+- {"hmacWithSHA512-224", "hmacWithSHA512-224", NID_hmacWithSHA512_224, 8, &so[7745]},
+- {"hmacWithSHA512-256", "hmacWithSHA512-256", NID_hmacWithSHA512_256, 8, &so[7753]},
++ {"hmacWithSHA512-224", "hmacWithSHA512-224", NID_hmacWithSHA512_224, 8, &so[7691]},
++ {"hmacWithSHA512-256", "hmacWithSHA512-256", NID_hmacWithSHA512_256, 8, &so[7699]},
++ {"id-tc26-modules", "GOST TC26 ASN.1 modules", NID_id_tc26_modules, 6, &so[7707]},
++ {"id-tc26-cms", "GOST TC26 SMS", NID_id_tc26_cms, 7, &so[7713]},
++ {"id-tc26-cms-attrs", "GOST TC26 SMS attributes", NID_id_tc26_cms_attrs, 8, &so[7720]},
++ {"id-tc26-mac-attr", "GOST TC26 SMS content-mac attribute", NID_id_tc26_mac_attr, 9, &so[7728]},
++ {"magma-ctr-acpkm", "magma-ctr-acpkm", NID_magma_ctr_acpkm, 9, &so[7737]},
++ {"magma-ctr-acpkm-omac", "magma-ctr-acpkm-omac", NID_magma_ctr_acpkm_omac, 9, &so[7746]},
++ {"kuznyechik-ctr-acpkm", "kuznyechik-ctr-acpkm", NID_kuznyechik_ctr_acpkm, 9, &so[7755]},
++ {"kuznyechik-ctr-acpkm-omac", "kuznyechik-ctr-acpkm-omac", NID_kuznyechik_ctr_acpkm_omac, 9, &so[7764]},
++ {"magma-kexp15", "magma-kexp15", NID_magma_kexp15, 9, &so[7773]},
++ {"kuznyechik-kexp15", "kuznyechik-kexp15", NID_kuznyechik_kexp15, 9, &so[7782]},
++ {"OGRNIP", "OGRNIP", NID_OGRNIP, 5, &so[7791]},
++ {"classSignTool", "Class of Signing Tool", NID_classSignTool, 5, &so[7796]},
++ {"classSignToolKC1", "Class of Signing Tool KC1", NID_classSignToolKC1, 6, &so[7801]},
++ {"classSignToolKC2", "Class of Signing Tool KC2", NID_classSignToolKC2, 6, &so[7807]},
++ {"classSignToolKC3", "Class of Signing Tool KC3", NID_classSignToolKC3, 6, &so[7813]},
++ {"classSignToolKB1", "Class of Signing Tool KB1", NID_classSignToolKB1, 6, &so[7819]},
++ {"classSignToolKB2", "Class of Signing Tool KB2", NID_classSignToolKB2, 6, &so[7825]},
++ {"classSignToolKA1", "Class of Signing Tool KA1", NID_classSignToolKA1, 6, &so[7831]},
++ {"kuznyechik-ecb", "kuznyechik-ecb", NID_kuznyechik_ecb},
++ {"kuznyechik-ctr", "kuznyechik-ctr", NID_kuznyechik_ctr},
++ {"kuznyechik-ofb", "kuznyechik-ofb", NID_kuznyechik_ofb},
++ {"kuznyechik-cbc", "kuznyechik-cbc", NID_kuznyechik_cbc},
++ {"kuznyechik-cfb", "kuznyechik-cfb", NID_kuznyechik_cfb},
++ {"kuznyechik-mac", "kuznyechik-mac", NID_kuznyechik_mac},
++ {"kuznyechik-mgm", "kuznyechik-mgm", NID_kuznyechik_mgm},
++ {"magma-mgm", "magma-mgm", NID_magma_mgm},
+ };
+
+-#define NUM_SN 1186
++#define NUM_SN 1200
+ static const unsigned int sn_objs[NUM_SN] = {
+ 364, /* "AD_DVCS" */
+ 419, /* "AES-128-CBC" */
+@@ -2469,6 +2507,7 @@ static const unsigned int sn_objs[NUM_SN] = {
+ 178, /* "OCSP" */
+ 180, /* "OCSPSigning" */
+ 1005, /* "OGRN" */
++ 1205, /* "OGRNIP" */
+ 379, /* "ORG" */
+ 18, /* "OU" */
+ 749, /* "Oakley-EC2N-3" */
+@@ -2642,6 +2681,13 @@ static const unsigned int sn_objs[NUM_SN] = {
+ 883, /* "certificateRevocationList" */
+ 54, /* "challengePassword" */
+ 407, /* "characteristic-two-field" */
++ 1206, /* "classSignTool" */
++ 1212, /* "classSignToolKA1" */
++ 1210, /* "classSignToolKB1" */
++ 1211, /* "classSignToolKB2" */
++ 1207, /* "classSignToolKC1" */
++ 1208, /* "classSignToolKC2" */
++ 1209, /* "classSignToolKC3" */
+ 395, /* "clearance" */
+ 130, /* "clientAuth" */
+ 1131, /* "cmcCA" */
+@@ -2748,12 +2794,6 @@ static const unsigned int sn_objs[NUM_SN] = {
+ 1010, /* "gost89-ecb" */
+ 812, /* "gost94" */
+ 850, /* "gost94cc" */
+- 1015, /* "grasshopper-cbc" */
+- 1016, /* "grasshopper-cfb" */
+- 1013, /* "grasshopper-ctr" */
+- 1012, /* "grasshopper-ecb" */
+- 1017, /* "grasshopper-mac" */
+- 1014, /* "grasshopper-ofb" */
+ 1156, /* "hmacWithDstu34311" */
+ 797, /* "hmacWithMD5" */
+ 163, /* "hmacWithSHA1" */
+@@ -3040,11 +3080,9 @@ static const unsigned int sn_objs[NUM_SN] = {
+ 990, /* "id-tc26-cipher" */
+ 1001, /* "id-tc26-cipher-constants" */
+ 1176, /* "id-tc26-cipher-gostr3412-2015-kuznyechik" */
+- 1177, /* "id-tc26-cipher-gostr3412-2015-kuznyechik-ctracpkm" */
+- 1178, /* "id-tc26-cipher-gostr3412-2015-kuznyechik-ctracpkm-omac" */
+ 1173, /* "id-tc26-cipher-gostr3412-2015-magma" */
+- 1174, /* "id-tc26-cipher-gostr3412-2015-magma-ctracpkm" */
+- 1175, /* "id-tc26-cipher-gostr3412-2015-magma-ctracpkm-omac" */
++ 1196, /* "id-tc26-cms" */
++ 1197, /* "id-tc26-cms-attrs" */
+ 994, /* "id-tc26-constants" */
+ 981, /* "id-tc26-digest" */
+ 1000, /* "id-tc26-digest-constants" */
+@@ -3063,6 +3101,8 @@ static const unsigned int sn_objs[NUM_SN] = {
+ 988, /* "id-tc26-hmac-gost-3411-2012-256" */
+ 989, /* "id-tc26-hmac-gost-3411-2012-512" */
+ 987, /* "id-tc26-mac" */
++ 1198, /* "id-tc26-mac-attr" */
++ 1195, /* "id-tc26-modules" */
+ 978, /* "id-tc26-sign" */
+ 995, /* "id-tc26-sign-constants" */
+ 984, /* "id-tc26-signwithdigest" */
+@@ -3070,9 +3110,7 @@ static const unsigned int sn_objs[NUM_SN] = {
+ 986, /* "id-tc26-signwithdigest-gost3410-2012-512" */
+ 1179, /* "id-tc26-wrap" */
+ 1182, /* "id-tc26-wrap-gostr3412-2015-kuznyechik" */
+- 1183, /* "id-tc26-wrap-gostr3412-2015-kuznyechik-kexp15" */
+ 1180, /* "id-tc26-wrap-gostr3412-2015-magma" */
+- 1181, /* "id-tc26-wrap-gostr3412-2015-magma-kexp15" */
+ 676, /* "identified-organization" */
+ 1170, /* "ieee" */
+ 1171, /* "ieee-siswg" */
+@@ -3095,6 +3133,16 @@ static const unsigned int sn_objs[NUM_SN] = {
+ 956, /* "jurisdictionST" */
+ 150, /* "keyBag" */
+ 83, /* "keyUsage" */
++ 1216, /* "kuznyechik-cbc" */
++ 1217, /* "kuznyechik-cfb" */
++ 1214, /* "kuznyechik-ctr" */
++ 1201, /* "kuznyechik-ctr-acpkm" */
++ 1202, /* "kuznyechik-ctr-acpkm-omac" */
++ 1213, /* "kuznyechik-ecb" */
++ 1204, /* "kuznyechik-kexp15" */
++ 1218, /* "kuznyechik-mac" */
++ 1219, /* "kuznyechik-mgm" */
++ 1215, /* "kuznyechik-ofb" */
+ 477, /* "lastModifiedBy" */
+ 476, /* "lastModifiedTime" */
+ 157, /* "localKeyID" */
+@@ -3102,8 +3150,12 @@ static const unsigned int sn_objs[NUM_SN] = {
+ 1190, /* "magma-cbc" */
+ 1191, /* "magma-cfb" */
+ 1188, /* "magma-ctr" */
++ 1199, /* "magma-ctr-acpkm" */
++ 1200, /* "magma-ctr-acpkm-omac" */
+ 1187, /* "magma-ecb" */
++ 1203, /* "magma-kexp15" */
+ 1192, /* "magma-mac" */
++ 1220, /* "magma-mgm" */
+ 1189, /* "magma-ofb" */
+ 460, /* "mail" */
+ 493, /* "mailPreferenceOption" */
+@@ -3467,7 +3519,7 @@ static const unsigned int sn_objs[NUM_SN] = {
+ 1093, /* "x509ExtAdmission" */
+ };
+
+-#define NUM_LN 1186
++#define NUM_LN 1200
+ static const unsigned int ln_objs[NUM_LN] = {
+ 363, /* "AD Time Stamping" */
+ 405, /* "ANSI X9.62" */
+@@ -3485,6 +3537,13 @@ static const unsigned int ln_objs[NUM_LN] = {
+ 952, /* "CT Precertificate Poison" */
+ 951, /* "CT Precertificate SCTs" */
+ 953, /* "CT Precertificate Signer" */
++ 1206, /* "Class of Signing Tool" */
++ 1212, /* "Class of Signing Tool KA1" */
++ 1210, /* "Class of Signing Tool KB1" */
++ 1211, /* "Class of Signing Tool KB2" */
++ 1207, /* "Class of Signing Tool KC1" */
++ 1208, /* "Class of Signing Tool KC2" */
++ 1209, /* "Class of Signing Tool KC3" */
+ 131, /* "Code Signing" */
+ 1024, /* "Ctrl/Provision WAP Termination" */
+ 1023, /* "Ctrl/provision WAP Access" */
+@@ -3546,6 +3605,10 @@ 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" */
++ 1195, /* "GOST TC26 ASN.1 modules" */
++ 1196, /* "GOST TC26 SMS" */
++ 1197, /* "GOST TC26 SMS attributes" */
++ 1198, /* "GOST TC26 SMS content-mac attribute" */
+ 1156, /* "HMAC DSTU Gost 34311-95" */
+ 988, /* "HMAC GOST 34.11-2012 256 bit" */
+ 989, /* "HMAC GOST 34.11-2012 512 bit" */
+@@ -3604,6 +3667,7 @@ static const unsigned int ln_objs[NUM_LN] = {
+ 371, /* "OCSP Service Locator" */
+ 180, /* "OCSP Signing" */
+ 1005, /* "OGRN" */
++ 1205, /* "OGRNIP" */
+ 161, /* "PBES2" */
+ 69, /* "PBKDF2" */
+ 162, /* "PBMAC1" */
+@@ -3967,12 +4031,6 @@ static const unsigned int ln_objs[NUM_LN] = {
+ 975, /* "gost89-cnt-12" */
+ 1011, /* "gost89-ctr" */
+ 1010, /* "gost89-ecb" */
+- 1015, /* "grasshopper-cbc" */
+- 1016, /* "grasshopper-cfb" */
+- 1013, /* "grasshopper-ctr" */
+- 1012, /* "grasshopper-ecb" */
+- 1017, /* "grasshopper-mac" */
+- 1014, /* "grasshopper-ofb" */
+ 1036, /* "hkdf" */
+ 855, /* "hmac" */
+ 780, /* "hmac-md5" */
+@@ -4220,11 +4278,7 @@ static const unsigned int ln_objs[NUM_LN] = {
+ 990, /* "id-tc26-cipher" */
+ 1001, /* "id-tc26-cipher-constants" */
+ 1176, /* "id-tc26-cipher-gostr3412-2015-kuznyechik" */
+- 1177, /* "id-tc26-cipher-gostr3412-2015-kuznyechik-ctracpkm" */
+- 1178, /* "id-tc26-cipher-gostr3412-2015-kuznyechik-ctracpkm-omac" */
+ 1173, /* "id-tc26-cipher-gostr3412-2015-magma" */
+- 1174, /* "id-tc26-cipher-gostr3412-2015-magma-ctracpkm" */
+- 1175, /* "id-tc26-cipher-gostr3412-2015-magma-ctracpkm-omac" */
+ 994, /* "id-tc26-constants" */
+ 981, /* "id-tc26-digest" */
+ 1000, /* "id-tc26-digest-constants" */
+@@ -4237,9 +4291,7 @@ static const unsigned int ln_objs[NUM_LN] = {
+ 984, /* "id-tc26-signwithdigest" */
+ 1179, /* "id-tc26-wrap" */
+ 1182, /* "id-tc26-wrap-gostr3412-2015-kuznyechik" */
+- 1183, /* "id-tc26-wrap-gostr3412-2015-kuznyechik-kexp15" */
+ 1180, /* "id-tc26-wrap-gostr3412-2015-magma" */
+- 1181, /* "id-tc26-wrap-gostr3412-2015-magma-kexp15" */
+ 34, /* "idea-cbc" */
+ 35, /* "idea-cfb" */
+ 36, /* "idea-ecb" */
+@@ -4262,6 +4314,16 @@ static const unsigned int ln_objs[NUM_LN] = {
+ 956, /* "jurisdictionStateOrProvinceName" */
+ 150, /* "keyBag" */
+ 773, /* "kisa" */
++ 1216, /* "kuznyechik-cbc" */
++ 1217, /* "kuznyechik-cfb" */
++ 1214, /* "kuznyechik-ctr" */
++ 1201, /* "kuznyechik-ctr-acpkm" */
++ 1202, /* "kuznyechik-ctr-acpkm-omac" */
++ 1213, /* "kuznyechik-ecb" */
++ 1204, /* "kuznyechik-kexp15" */
++ 1218, /* "kuznyechik-mac" */
++ 1219, /* "kuznyechik-mgm" */
++ 1215, /* "kuznyechik-ofb" */
+ 1063, /* "kx-any" */
+ 1039, /* "kx-dhe" */
+ 1041, /* "kx-dhe-psk" */
+@@ -4280,8 +4342,12 @@ static const unsigned int ln_objs[NUM_LN] = {
+ 1190, /* "magma-cbc" */
+ 1191, /* "magma-cfb" */
+ 1188, /* "magma-ctr" */
++ 1199, /* "magma-ctr-acpkm" */
++ 1200, /* "magma-ctr-acpkm-omac" */
+ 1187, /* "magma-ecb" */
++ 1203, /* "magma-kexp15" */
+ 1192, /* "magma-mac" */
++ 1220, /* "magma-mgm" */
+ 1189, /* "magma-ofb" */
+ 493, /* "mailPreferenceOption" */
+ 467, /* "manager" */
+@@ -4657,7 +4723,7 @@ static const unsigned int ln_objs[NUM_LN] = {
+ 125, /* "zlib compression" */
+ };
+
+-#define NUM_OBJ 1071
++#define NUM_OBJ 1083
+ static const unsigned int obj_objs[NUM_OBJ] = {
+ 0, /* OBJ_undef 0 */
+ 181, /* OBJ_iso 1 */
+@@ -4910,8 +4976,10 @@ static const unsigned int obj_objs[NUM_OBJ] = {
+ 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 */
++ 1205, /* OBJ_OGRNIP 1 2 643 100 5 */
+ 1007, /* OBJ_subjectSignTool 1 2 643 100 111 */
+ 1008, /* OBJ_issuerSignTool 1 2 643 100 112 */
++ 1206, /* OBJ_classSignTool 1 2 643 100 113 */
+ 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 */
+@@ -4998,8 +5066,15 @@ 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 */
++ 1195, /* OBJ_id_tc26_modules 1 2 643 7 1 0 */
+ 977, /* OBJ_id_tc26_algorithms 1 2 643 7 1 1 */
+ 994, /* OBJ_id_tc26_constants 1 2 643 7 1 2 */
++ 1207, /* OBJ_classSignToolKC1 1 2 643 100 113 1 */
++ 1208, /* OBJ_classSignToolKC2 1 2 643 100 113 2 */
++ 1209, /* OBJ_classSignToolKC3 1 2 643 100 113 3 */
++ 1210, /* OBJ_classSignToolKB1 1 2 643 100 113 4 */
++ 1211, /* OBJ_classSignToolKB2 1 2 643 100 113 5 */
++ 1212, /* OBJ_classSignToolKA1 1 2 643 100 113 6 */
+ 1, /* OBJ_rsadsi 1 2 840 113549 */
+ 185, /* OBJ_X9cm 1 2 840 10040 4 */
+ 1031, /* OBJ_id_pkinit 1 3 6 1 5 2 3 */
+@@ -5051,6 +5126,7 @@ 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 */
++ 1196, /* OBJ_id_tc26_cms 1 2 643 7 1 0 6 */
+ 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 */
+@@ -5138,6 +5214,7 @@ static const unsigned int obj_objs[NUM_OBJ] = {
+ 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 */
++ 1197, /* OBJ_id_tc26_cms_attrs 1 2 643 7 1 0 6 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 */
+@@ -5359,12 +5436,13 @@ static const unsigned int obj_objs[NUM_OBJ] = {
+ 1120, /* OBJ_aria_128_ccm 1 2 410 200046 1 1 37 */
+ 1121, /* OBJ_aria_192_ccm 1 2 410 200046 1 1 38 */
+ 1122, /* OBJ_aria_256_ccm 1 2 410 200046 1 1 39 */
+- 1174, /* OBJ_id_tc26_cipher_gostr3412_2015_magma_ctracpkm 1 2 643 7 1 1 5 1 1 */
+- 1175, /* OBJ_id_tc26_cipher_gostr3412_2015_magma_ctracpkm_omac 1 2 643 7 1 1 5 1 2 */
+- 1177, /* OBJ_id_tc26_cipher_gostr3412_2015_kuznyechik_ctracpkm 1 2 643 7 1 1 5 2 1 */
+- 1178, /* OBJ_id_tc26_cipher_gostr3412_2015_kuznyechik_ctracpkm_omac 1 2 643 7 1 1 5 2 2 */
+- 1181, /* OBJ_id_tc26_wrap_gostr3412_2015_magma_kexp15 1 2 643 7 1 1 7 1 1 */
+- 1183, /* OBJ_id_tc26_wrap_gostr3412_2015_kuznyechik_kexp15 1 2 643 7 1 1 7 2 1 */
++ 1198, /* OBJ_id_tc26_mac_attr 1 2 643 7 1 0 6 1 1 */
++ 1199, /* OBJ_magma_ctr_acpkm 1 2 643 7 1 1 5 1 1 */
++ 1200, /* OBJ_magma_ctr_acpkm_omac 1 2 643 7 1 1 5 1 2 */
++ 1201, /* OBJ_kuznyechik_ctr_acpkm 1 2 643 7 1 1 5 2 1 */
++ 1202, /* OBJ_kuznyechik_ctr_acpkm_omac 1 2 643 7 1 1 5 2 2 */
++ 1203, /* OBJ_magma_kexp15 1 2 643 7 1 1 7 1 1 */
++ 1204, /* OBJ_kuznyechik_kexp15 1 2 643 7 1 1 7 2 1 */
+ 1148, /* OBJ_id_tc26_gost_3410_2012_256_paramSetA 1 2 643 7 1 2 1 1 1 */
+ 1184, /* OBJ_id_tc26_gost_3410_2012_256_paramSetB 1 2 643 7 1 2 1 1 2 */
+ 1185, /* OBJ_id_tc26_gost_3410_2012_256_paramSetC 1 2 643 7 1 2 1 1 3 */
+diff --git crypto/objects/obj_mac.num crypto/objects/obj_mac.num
+index 1b6a9c61..6d70d8c0 100644
+--- crypto/objects/obj_mac.num
++++ crypto/objects/obj_mac.num
+@@ -1192,3 +1192,29 @@ magma_cfb 1191
+ magma_mac 1192
+ hmacWithSHA512_224 1193
+ hmacWithSHA512_256 1194
++id_tc26_modules 1195
++id_tc26_cms 1196
++id_tc26_cms_attrs 1197
++id_tc26_mac_attr 1198
++magma_ctr_acpkm 1199
++magma_ctr_acpkm_omac 1200
++kuznyechik_ctr_acpkm 1201
++kuznyechik_ctr_acpkm_omac 1202
++magma_kexp15 1203
++kuznyechik_kexp15 1204
++OGRNIP 1205
++classSignTool 1206
++classSignToolKC1 1207
++classSignToolKC2 1208
++classSignToolKC3 1209
++classSignToolKB1 1210
++classSignToolKB2 1211
++classSignToolKA1 1212
++kuznyechik_ecb 1213
++kuznyechik_ctr 1214
++kuznyechik_ofb 1215
++kuznyechik_cbc 1216
++kuznyechik_cfb 1217
++kuznyechik_mac 1218
++kuznyechik_mgm 1219
++magma_mgm 1220
+diff --git fuzz/oids.txt fuzz/oids.txt
+index eda55e4e..5c81d68a 100644
+--- fuzz/oids.txt
++++ fuzz/oids.txt
+@@ -1048,18 +1048,30 @@ OBJ_ieee="\x2B\x6F"
+ OBJ_ieee_siswg="\x2B\x6F\x02\x8C\x53"
+ OBJ_sm2="\x2A\x81\x1C\xCF\x55\x01\x82\x2D"
+ OBJ_id_tc26_cipher_gostr3412_2015_magma="\x2A\x85\x03\x07\x01\x01\x05\x01"
+-OBJ_id_tc26_cipher_gostr3412_2015_magma_ctracpkm="\x2A\x85\x03\x07\x01\x01\x05\x01\x01"
+-OBJ_id_tc26_cipher_gostr3412_2015_magma_ctracpkm_omac="\x2A\x85\x03\x07\x01\x01\x05\x01\x02"
+ OBJ_id_tc26_cipher_gostr3412_2015_kuznyechik="\x2A\x85\x03\x07\x01\x01\x05\x02"
+-OBJ_id_tc26_cipher_gostr3412_2015_kuznyechik_ctracpkm="\x2A\x85\x03\x07\x01\x01\x05\x02\x01"
+-OBJ_id_tc26_cipher_gostr3412_2015_kuznyechik_ctracpkm_omac="\x2A\x85\x03\x07\x01\x01\x05\x02\x02"
+ OBJ_id_tc26_wrap="\x2A\x85\x03\x07\x01\x01\x07"
+ OBJ_id_tc26_wrap_gostr3412_2015_magma="\x2A\x85\x03\x07\x01\x01\x07\x01"
+-OBJ_id_tc26_wrap_gostr3412_2015_magma_kexp15="\x2A\x85\x03\x07\x01\x01\x07\x01\x01"
+ OBJ_id_tc26_wrap_gostr3412_2015_kuznyechik="\x2A\x85\x03\x07\x01\x01\x07\x02"
+-OBJ_id_tc26_wrap_gostr3412_2015_kuznyechik_kexp15="\x2A\x85\x03\x07\x01\x01\x07\x02\x01"
+ OBJ_id_tc26_gost_3410_2012_256_paramSetB="\x2A\x85\x03\x07\x01\x02\x01\x01\x02"
+ OBJ_id_tc26_gost_3410_2012_256_paramSetC="\x2A\x85\x03\x07\x01\x02\x01\x01\x03"
+ OBJ_id_tc26_gost_3410_2012_256_paramSetD="\x2A\x85\x03\x07\x01\x02\x01\x01\x04"
+ OBJ_hmacWithSHA512_224="\x2A\x86\x48\x86\xF7\x0D\x02\x0C"
+ OBJ_hmacWithSHA512_256="\x2A\x86\x48\x86\xF7\x0D\x02\x0D"
++OBJ_id_tc26_modules="\x2A\x85\x03\x07\x01\x00"
++OBJ_id_tc26_cms="\x2A\x85\x03\x07\x01\x00\x06"
++OBJ_id_tc26_cms_attrs="\x2A\x85\x03\x07\x01\x00\x06\x01"
++OBJ_id_tc26_mac_attr="\x2A\x85\x03\x07\x01\x00\x06\x01\x01"
++OBJ_magma_ctr_acpkm="\x2A\x85\x03\x07\x01\x01\x05\x01\x01"
++OBJ_magma_ctr_acpkm_omac="\x2A\x85\x03\x07\x01\x01\x05\x01\x02"
++OBJ_kuznyechik_ctr_acpkm="\x2A\x85\x03\x07\x01\x01\x05\x02\x01"
++OBJ_kuznyechik_ctr_acpkm_omac="\x2A\x85\x03\x07\x01\x01\x05\x02\x02"
++OBJ_magma_kexp15="\x2A\x85\x03\x07\x01\x01\x07\x01\x01"
++OBJ_kuznyechik_kexp15="\x2A\x85\x03\x07\x01\x01\x07\x02\x01"
++OBJ_OGRNIP="\x2A\x85\x03\x64\x05"
++OBJ_classSignTool="\x2A\x85\x03\x64\x71"
++OBJ_classSignToolKC1="\x2A\x85\x03\x64\x71\x01"
++OBJ_classSignToolKC2="\x2A\x85\x03\x64\x71\x02"
++OBJ_classSignToolKC3="\x2A\x85\x03\x64\x71\x03"
++OBJ_classSignToolKB1="\x2A\x85\x03\x64\x71\x04"
++OBJ_classSignToolKB2="\x2A\x85\x03\x64\x71\x05"
++OBJ_classSignToolKA1="\x2A\x85\x03\x64\x71\x06"
+diff --git include/openssl/obj_mac.h include/openssl/obj_mac.h
+index 8795a5e3..90b5de76 100644
+--- include/openssl/obj_mac.h
++++ include/openssl/obj_mac.h
+@@ -2,7 +2,7 @@
+ * WARNING: do not edit!
+ * Generated by crypto/objects/objects.pl
+ *
+- * Copyright 2000-2020 The OpenSSL Project Authors. All Rights Reserved.
++ * Copyright 2000-2021 The OpenSSL Project Authors. All Rights Reserved.
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+@@ -4164,22 +4164,22 @@
+
+ #define SN_id_tc26_modules "id-tc26-modules"
+ #define LN_id_tc26_modules "GOST TC26 ASN.1 modules"
+-#define NID_id_tc26_modules 1203
++#define NID_id_tc26_modules 1195
+ #define OBJ_id_tc26_modules OBJ_id_tc26,0L
+
+ #define SN_id_tc26_cms "id-tc26-cms"
+ #define LN_id_tc26_cms "GOST TC26 SMS"
+-#define NID_id_tc26_cms 1204
++#define NID_id_tc26_cms 1196
+ #define OBJ_id_tc26_cms OBJ_id_tc26_modules,6L
+
+ #define SN_id_tc26_cms_attrs "id-tc26-cms-attrs"
+ #define LN_id_tc26_cms_attrs "GOST TC26 SMS attributes"
+-#define NID_id_tc26_cms_attrs 1205
++#define NID_id_tc26_cms_attrs 1197
+ #define OBJ_id_tc26_cms_attrs OBJ_id_tc26_cms,1L
+
+ #define SN_id_tc26_mac_attr "id-tc26-mac-attr"
+ #define LN_id_tc26_mac_attr "GOST TC26 SMS content-mac attribute"
+-#define NID_id_tc26_mac_attr 1206
++#define NID_id_tc26_mac_attr 1198
+ #define OBJ_id_tc26_mac_attr OBJ_id_tc26_cms_attrs,1L
+
+ #define SN_id_tc26_algorithms "id-tc26-algorithms"
+@@ -4251,11 +4251,11 @@
+ #define OBJ_id_tc26_cipher_gostr3412_2015_magma OBJ_id_tc26_cipher,1L
+
+ #define SN_magma_ctr_acpkm "magma-ctr-acpkm"
+-#define NID_magma_ctr_acpkm 1174
++#define NID_magma_ctr_acpkm 1199
+ #define OBJ_magma_ctr_acpkm OBJ_id_tc26_cipher_gostr3412_2015_magma,1L
+
+ #define SN_magma_ctr_acpkm_omac "magma-ctr-acpkm-omac"
+-#define NID_magma_ctr_acpkm_omac 1175
++#define NID_magma_ctr_acpkm_omac 1200
+ #define OBJ_magma_ctr_acpkm_omac OBJ_id_tc26_cipher_gostr3412_2015_magma,2L
+
+ #define SN_id_tc26_cipher_gostr3412_2015_kuznyechik "id-tc26-cipher-gostr3412-2015-kuznyechik"
+@@ -4263,11 +4263,11 @@
+ #define OBJ_id_tc26_cipher_gostr3412_2015_kuznyechik OBJ_id_tc26_cipher,2L
+
+ #define SN_kuznyechik_ctr_acpkm "kuznyechik-ctr-acpkm"
+-#define NID_kuznyechik_ctr_acpkm 1177
++#define NID_kuznyechik_ctr_acpkm 1201
+ #define OBJ_kuznyechik_ctr_acpkm OBJ_id_tc26_cipher_gostr3412_2015_kuznyechik,1L
+
+ #define SN_kuznyechik_ctr_acpkm_omac "kuznyechik-ctr-acpkm-omac"
+-#define NID_kuznyechik_ctr_acpkm_omac 1178
++#define NID_kuznyechik_ctr_acpkm_omac 1202
+ #define OBJ_kuznyechik_ctr_acpkm_omac OBJ_id_tc26_cipher_gostr3412_2015_kuznyechik,2L
+
+ #define SN_id_tc26_agreement "id-tc26-agreement"
+@@ -4291,7 +4291,7 @@
+ #define OBJ_id_tc26_wrap_gostr3412_2015_magma OBJ_id_tc26_wrap,1L
+
+ #define SN_magma_kexp15 "magma-kexp15"
+-#define NID_magma_kexp15 1181
++#define NID_magma_kexp15 1203
+ #define OBJ_magma_kexp15 OBJ_id_tc26_wrap_gostr3412_2015_magma,1L
+
+ #define SN_id_tc26_wrap_gostr3412_2015_kuznyechik "id-tc26-wrap-gostr3412-2015-kuznyechik"
+@@ -4299,7 +4299,7 @@
+ #define OBJ_id_tc26_wrap_gostr3412_2015_kuznyechik OBJ_id_tc26_wrap,2L
+
+ #define SN_kuznyechik_kexp15 "kuznyechik-kexp15"
+-#define NID_kuznyechik_kexp15 1183
++#define NID_kuznyechik_kexp15 1204
+ #define OBJ_kuznyechik_kexp15 OBJ_id_tc26_wrap_gostr3412_2015_kuznyechik,1L
+
+ #define SN_id_tc26_constants "id-tc26-constants"
+@@ -4392,7 +4392,7 @@
+
+ #define SN_OGRNIP "OGRNIP"
+ #define LN_OGRNIP "OGRNIP"
+-#define NID_OGRNIP 1195
++#define NID_OGRNIP 1205
+ #define OBJ_OGRNIP OBJ_member_body,643L,100L,5L
+
+ #define SN_subjectSignTool "subjectSignTool"
+@@ -4407,59 +4407,59 @@
+
+ #define SN_classSignTool "classSignTool"
+ #define LN_classSignTool "Class of Signing Tool"
+-#define NID_classSignTool 1196
++#define NID_classSignTool 1206
+ #define OBJ_classSignTool OBJ_member_body,643L,100L,113L
+
+ #define SN_classSignToolKC1 "classSignToolKC1"
+ #define LN_classSignToolKC1 "Class of Signing Tool KC1"
+-#define NID_classSignToolKC1 1197
++#define NID_classSignToolKC1 1207
+ #define OBJ_classSignToolKC1 OBJ_member_body,643L,100L,113L,1L
+
+ #define SN_classSignToolKC2 "classSignToolKC2"
+ #define LN_classSignToolKC2 "Class of Signing Tool KC2"
+-#define NID_classSignToolKC2 1198
++#define NID_classSignToolKC2 1208
+ #define OBJ_classSignToolKC2 OBJ_member_body,643L,100L,113L,2L
+
+ #define SN_classSignToolKC3 "classSignToolKC3"
+ #define LN_classSignToolKC3 "Class of Signing Tool KC3"
+-#define NID_classSignToolKC3 1199
++#define NID_classSignToolKC3 1209
+ #define OBJ_classSignToolKC3 OBJ_member_body,643L,100L,113L,3L
+
+ #define SN_classSignToolKB1 "classSignToolKB1"
+ #define LN_classSignToolKB1 "Class of Signing Tool KB1"
+-#define NID_classSignToolKB1 1200
++#define NID_classSignToolKB1 1210
+ #define OBJ_classSignToolKB1 OBJ_member_body,643L,100L,113L,4L
+
+ #define SN_classSignToolKB2 "classSignToolKB2"
+ #define LN_classSignToolKB2 "Class of Signing Tool KB2"
+-#define NID_classSignToolKB2 1201
++#define NID_classSignToolKB2 1211
+ #define OBJ_classSignToolKB2 OBJ_member_body,643L,100L,113L,5L
+
+ #define SN_classSignToolKA1 "classSignToolKA1"
+ #define LN_classSignToolKA1 "Class of Signing Tool KA1"
+-#define NID_classSignToolKA1 1202
++#define NID_classSignToolKA1 1212
+ #define OBJ_classSignToolKA1 OBJ_member_body,643L,100L,113L,6L
+
+ #define SN_kuznyechik_ecb "kuznyechik-ecb"
+-#define NID_kuznyechik_ecb 1012
++#define NID_kuznyechik_ecb 1213
+
+ #define SN_kuznyechik_ctr "kuznyechik-ctr"
+-#define NID_kuznyechik_ctr 1013
++#define NID_kuznyechik_ctr 1214
+
+ #define SN_kuznyechik_ofb "kuznyechik-ofb"
+-#define NID_kuznyechik_ofb 1014
++#define NID_kuznyechik_ofb 1215
+
+ #define SN_kuznyechik_cbc "kuznyechik-cbc"
+-#define NID_kuznyechik_cbc 1015
++#define NID_kuznyechik_cbc 1216
+
+ #define SN_kuznyechik_cfb "kuznyechik-cfb"
+-#define NID_kuznyechik_cfb 1016
++#define NID_kuznyechik_cfb 1217
+
+ #define SN_kuznyechik_mac "kuznyechik-mac"
+-#define NID_kuznyechik_mac 1017
++#define NID_kuznyechik_mac 1218
+
+ #define SN_kuznyechik_mgm "kuznyechik-mgm"
+-#define NID_kuznyechik_mgm 1207
++#define NID_kuznyechik_mgm 1219
+
+ #define SN_magma_ecb "magma-ecb"
+ #define NID_magma_ecb 1187
+@@ -4480,7 +4480,7 @@
+ #define NID_magma_mac 1192
+
+ #define SN_magma_mgm "magma-mgm"
+-#define NID_magma_mgm 1208
++#define NID_magma_mgm 1220
+
+ #define SN_camellia_128_cbc "CAMELLIA-128-CBC"
+ #define LN_camellia_128_cbc "camellia-128-cbc"