From: Dmitry Belyavskiy Date: Sat, 19 Nov 2016 19:04:55 +0000 (+0300) Subject: Merge remote-tracking branch 'origin/openssl_1_1_0' X-Git-Tag: v1.1.0.2~22 X-Git-Url: http://www.wagner.pp.ru/gitweb/?p=openssl-gost%2Fengine.git;a=commitdiff_plain;h=868ae7a730a86f9c1021ea766cd714f817cb934d Merge remote-tracking branch 'origin/openssl_1_1_0' Conflicts: gost_asn1.c gost_crypt.c --- 868ae7a730a86f9c1021ea766cd714f817cb934d diff --cc gost_asn1.c index bcfe73f,3a106c2..0a1c05a --- a/gost_asn1.c +++ b/gost_asn1.c @@@ -13,57 -13,51 +13,49 @@@ ASN1_NDEF_SEQUENCE(GOST_KEY_TRANSPORT) = { ASN1_SIMPLE(GOST_KEY_TRANSPORT, key_info, GOST_KEY_INFO), - ASN1_IMP(GOST_KEY_TRANSPORT, key_agreement_info, - GOST_KEY_AGREEMENT_INFO, 0) + ASN1_IMP(GOST_KEY_TRANSPORT, key_agreement_info, + GOST_KEY_AGREEMENT_INFO, 0) } - ASN1_NDEF_SEQUENCE_END(GOST_KEY_TRANSPORT) +IMPLEMENT_ASN1_FUNCTIONS(GOST_KEY_TRANSPORT) - IMPLEMENT_ASN1_FUNCTIONS(GOST_KEY_TRANSPORT) - - ASN1_NDEF_SEQUENCE(GOST_KEY_INFO) = +ASN1_NDEF_SEQUENCE(GOST_KEY_INFO) = { ASN1_SIMPLE(GOST_KEY_INFO, encrypted_key, ASN1_OCTET_STRING), - ASN1_SIMPLE(GOST_KEY_INFO, imit, ASN1_OCTET_STRING) - } - ASN1_NDEF_SEQUENCE_END(GOST_KEY_INFO) + ASN1_SIMPLE(GOST_KEY_INFO, imit, ASN1_OCTET_STRING) + } ASN1_NDEF_SEQUENCE_END(GOST_KEY_INFO) IMPLEMENT_ASN1_FUNCTIONS(GOST_KEY_INFO) - ASN1_NDEF_SEQUENCE(GOST_KEY_AGREEMENT_INFO) = { ASN1_SIMPLE(GOST_KEY_AGREEMENT_INFO, cipher, ASN1_OBJECT), - ASN1_IMP_OPT(GOST_KEY_AGREEMENT_INFO, ephem_key, X509_PUBKEY, 0), - ASN1_SIMPLE(GOST_KEY_AGREEMENT_INFO, eph_iv, ASN1_OCTET_STRING) - } - ASN1_NDEF_SEQUENCE_END(GOST_KEY_AGREEMENT_INFO) + ASN1_IMP_OPT(GOST_KEY_AGREEMENT_INFO, ephem_key, X509_PUBKEY, 0), + ASN1_SIMPLE(GOST_KEY_AGREEMENT_INFO, eph_iv, ASN1_OCTET_STRING) + } ASN1_NDEF_SEQUENCE_END(GOST_KEY_AGREEMENT_INFO) IMPLEMENT_ASN1_FUNCTIONS(GOST_KEY_AGREEMENT_INFO) - ASN1_NDEF_SEQUENCE(GOST_KEY_PARAMS) = { - ASN1_SIMPLE(GOST_KEY_PARAMS, key_params, ASN1_OBJECT), - ASN1_SIMPLE(GOST_KEY_PARAMS, hash_params, ASN1_OBJECT), - ASN1_OPT(GOST_KEY_PARAMS, cipher_params, ASN1_OBJECT), - } - ASN1_NDEF_SEQUENCE_END(GOST_KEY_PARAMS) + ASN1_SIMPLE(GOST_KEY_PARAMS, key_params, ASN1_OBJECT), + ASN1_SIMPLE(GOST_KEY_PARAMS, hash_params, ASN1_OBJECT), + ASN1_OPT(GOST_KEY_PARAMS, cipher_params, + ASN1_OBJECT),} ASN1_NDEF_SEQUENCE_END(GOST_KEY_PARAMS) IMPLEMENT_ASN1_FUNCTIONS(GOST_KEY_PARAMS) - ASN1_NDEF_SEQUENCE(GOST_CIPHER_PARAMS) = { -ASN1_SIMPLE(GOST_CIPHER_PARAMS, iv, ASN1_OCTET_STRING), - ASN1_SIMPLE(GOST_CIPHER_PARAMS, enc_param_set, - ASN1_OBJECT),} + ASN1_SIMPLE(GOST_CIPHER_PARAMS, iv, ASN1_OCTET_STRING), + ASN1_SIMPLE(GOST_CIPHER_PARAMS, enc_param_set, ASN1_OBJECT), +} ASN1_NDEF_SEQUENCE_END(GOST_CIPHER_PARAMS) IMPLEMENT_ASN1_FUNCTIONS(GOST_CIPHER_PARAMS) - ASN1_NDEF_SEQUENCE(GOST_CLIENT_KEY_EXCHANGE_PARAMS) = { /* FIXME incomplete */ ASN1_SIMPLE(GOST_CLIENT_KEY_EXCHANGE_PARAMS, gkt, GOST_KEY_TRANSPORT) -} ASN1_NDEF_SEQUENCE_END(GOST_CLIENT_KEY_EXCHANGE_PARAMS) - - IMPLEMENT_ASN1_FUNCTIONS(GOST_CLIENT_KEY_EXCHANGE_PARAMS) +} +ASN1_NDEF_SEQUENCE_END(GOST_CLIENT_KEY_EXCHANGE_PARAMS) +IMPLEMENT_ASN1_FUNCTIONS(GOST_CLIENT_KEY_EXCHANGE_PARAMS) - ASN1_NDEF_SEQUENCE(MASKED_GOST_KEY) = +ASN1_NDEF_SEQUENCE(MASKED_GOST_KEY) = { ASN1_SIMPLE(MASKED_GOST_KEY, masked_priv_key, ASN1_OCTET_STRING), - ASN1_SIMPLE(MASKED_GOST_KEY, public_key, ASN1_OCTET_STRING) - } - ASN1_NDEF_SEQUENCE_END(MASKED_GOST_KEY) + ASN1_SIMPLE(MASKED_GOST_KEY, public_key, ASN1_OCTET_STRING) + } ASN1_NDEF_SEQUENCE_END(MASKED_GOST_KEY) IMPLEMENT_ASN1_FUNCTIONS(MASKED_GOST_KEY) diff --cc gost_crypt.c index 59d75d7,f9ed2cf..a153171 --- a/gost_crypt.c +++ b/gost_crypt.c @@@ -558,14 -692,15 +691,21 @@@ int gost_cipher_ctl(EVP_CIPHER_CTX *ctx } else { return 0; } - #ifdef EVP_CTRL_SET_SBOX + case EVP_CTRL_SET_SBOX: + if (ptr) { + struct ossl_gost_cipher_ctx *c = ctx->cipher_data; + int nid; + int cur_meshing; + int ret; + case EVP_CTRL_SET_SBOX: + if (ptr) { + struct ossl_gost_cipher_ctx *c = + EVP_CIPHER_CTX_get_cipher_data(ctx); + int nid; + int cur_meshing; + int ret; + if (c == NULL) { return -1; }