From a66a6917e0076bca819461d1cf18ed29aa3f7447 Mon Sep 17 00:00:00 2001 From: igrkir Date: Mon, 7 Jun 2021 11:44:13 +0300 Subject: [PATCH] CI: set OpenSSL branch v.1.1.1g, apply new patch add new patch to update OpenSSL objects database --- .cirrus.yml | 4 +- .github/before_script.sh | 2 + .github/workflows/ci.yml | 49 +- .github/workflows/codeql-analysis.yml | 8 +- patches/openssl_111g_obj.diff | 749 ++++++++++++++++++++++++++ 5 files changed, 765 insertions(+), 47 deletions(-) create mode 100644 patches/openssl_111g_obj.diff diff --git a/.cirrus.yml b/.cirrus.yml index 6e04657..936ecd1 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -4,13 +4,15 @@ FreeBSD_task: env: PREFIX: ${HOME}/opt PATH: ${PREFIX}/bin:${PATH} - OPENSSL_BRANCH: master + OPENSSL_BRANCH: OpenSSL_1_1_1g install_script: - pkg install -y git cmake p5-App-cpanminus gdb pkgconf - sudo cpanm --notest Test2::V0 script: - git clone --depth 1 -b ${OPENSSL_BRANCH} https://github.com/openssl/openssl.git - cd openssl + - patch -p0 < ../patches/openssl_111g.diff + - patch -p0 < ../patches/openssl_111g_obj.diff - ./config shared -d --prefix=${PREFIX} --openssldir=${PREFIX} -Wl,-rpath=${PREFIX}/lib && make all install_sw > build.log 2>&1 || (cat build.log && exit 1) - cd .. - mkdir build diff --git a/.github/before_script.sh b/.github/before_script.sh index 7a86543..388a8ae 100755 --- a/.github/before_script.sh +++ b/.github/before_script.sh @@ -9,6 +9,8 @@ fi git clone --depth 1 -b $OPENSSL_BRANCH https://github.com/openssl/openssl.git cd openssl +patch -p0 < ../patches/openssl_111g.diff +patch -p0 < ../patches/openssl_111g_obj.diff git describe --always --long PREFIX=$HOME/opt diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2974062..e039bac 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -2,17 +2,17 @@ name: CI on: [push, pull_request] env: - OPENSSL_BRANCH: openssl-3.0.0-alpha17 + OPENSSL_BRANCH: OpenSSL_1_1_1g jobs: - gcc-openssl-stable: + gcc-openssl-111g: runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v2 - run: .github/before_script.sh - run: .github/script.sh - clang-openssl-stable: + clang-openssl-111g: runs-on: ubuntu-20.04 env: CC: clang @@ -21,54 +21,17 @@ jobs: - run: .github/before_script.sh - run: .github/script.sh - gcc-openssl-master: + gcc-asan-openssl-111g: runs-on: ubuntu-20.04 env: - OPENSSL_BRANCH: master - steps: - - uses: actions/checkout@v2 - - run: .github/before_script.sh - - run: .github/script.sh - - gcc-asan-openssl-master: - runs-on: ubuntu-20.04 - env: - OPENSSL_BRANCH: master + OPENSSL_BRANCH: OpenSSL_1_1_1g ASAN: -DASAN=1 steps: - uses: actions/checkout@v2 - run: .github/before_script.sh - run: .github/script.sh - macos-asan-openssl-master: - runs-on: macos-latest - env: - OPENSSL_BRANCH: master - ASAN: -DASAN=1 - steps: - - name: install cpanm and Test2::V0 - uses: perl-actions/install-with-cpanm@v1 - with: - install: Test2::V0 - - name: Checkout gost-engine - uses: actions/checkout@v2 - - name: checkout OpenSSL - uses: actions/checkout@v2 - with: - repository: openssl/openssl - ref: master - path: openssl - - name: configure OpenSSL - run: | - mkdir $HOME/opt - ./Configure --prefix=$HOME/opt - working-directory: openssl - - name: build+install OpenSSL - run: make -s install_sw - working-directory: openssl - - run: .github/script.sh - - gcc-openssl-stable-x86: + gcc-openssl-111g-x86: runs-on: ubuntu-20.04 env: CFLAGS: -m32 diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index dcefc07..1eea4f7 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -1,7 +1,7 @@ name: "CodeQL" env: - OPENSSL_BRANCH: openssl-3.0.0-alpha17 + OPENSSL_BRANCH: OpenSSL_1_1_1g #RPATH: "-Wl,-rpath=${PREFIX}/lib" #PREFIX: ${HOME}/opt #PATH: ${PREFIX}/bin:${PATH} @@ -36,13 +36,13 @@ jobs: # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL uses: github/codeql-action/init@v1 - # languages: cpp # Override language selection by uncommenting this and choosing your languages # with: + # languages: go, javascript, csharp, python, cpp, java # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). # If this step fails, then you should remove it and run the build manually (see below) - #- name: Autobuild + # - name: Autobuild # uses: github/codeql-action/autobuild@v1 # ℹ️ Command-line programs to run using the OS shell. @@ -60,6 +60,8 @@ jobs: export PREFIX=`pwd`/opt export RPATH="-Wl,-rpath=${PREFIX}/lib" cd openssl + patch -p0 < ../patches/openssl_111g.diff + patch -p0 < ../patches/openssl_111g_obj.diff git describe --always --long ./config shared -d --prefix=${PREFIX} --openssldir=${PREFIX} ${RPATH} make -s build_libs diff --git a/patches/openssl_111g_obj.diff b/patches/openssl_111g_obj.diff new file mode 100644 index 0000000..cf32bd6 --- /dev/null +++ b/patches/openssl_111g_obj.diff @@ -0,0 +1,749 @@ +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" -- 2.39.2