]> www.wagner.pp.ru Git - openssl-gost/engine.git/commitdiff
Merge remote-tracking branch 'origin/openssl_1_1_0'
authorDmitry Belyavskiy <beldmit@gmail.com>
Sat, 19 Nov 2016 19:04:55 +0000 (22:04 +0300)
committerDmitry Belyavskiy <beldmit@gmail.com>
Sat, 19 Nov 2016 19:04:55 +0000 (22:04 +0300)
Conflicts:
gost_asn1.c
gost_crypt.c

gost_ameth.c
gost_asn1.c
gost_crypt.c
gost_eng.c
gost_pmeth.c

index 8c2645061fa3fd6b195600447314305297265204..8e7d8d58a83c8849254357687d2025a43f068c3b 100644 (file)
@@ -415,10 +415,10 @@ static int priv_encode_gost(PKCS8_PRIV_KEY_INFO *p8, const EVP_PKEY *pk)
 {
     ASN1_OBJECT *algobj = OBJ_nid2obj(EVP_PKEY_base_id(pk));
     ASN1_STRING *params = encode_gost_algor_params(pk);
-    unsigned char *priv_buf = NULL, *buf = NULL;
-    int key_len = pkey_bits_gost(pk), priv_len = 0, i = 0;
+    unsigned char /**priv_buf = NULL,*/ *buf = NULL;
+    int key_len = pkey_bits_gost(pk), /*priv_len = 0,*/ i = 0;
 
-    ASN1_STRING *octet = NULL;
+    /*ASN1_STRING *octet = NULL;*/
     if (!params) {
         return 0;
     }
@@ -440,6 +440,7 @@ static int priv_encode_gost(PKCS8_PRIV_KEY_INFO *p8, const EVP_PKEY *pk)
         buf[key_len - 1 - i] = tmp;
     }
 
+/*
     octet = ASN1_STRING_new();
     ASN1_OCTET_STRING_set(octet, buf, key_len);
 
@@ -448,7 +449,9 @@ static int priv_encode_gost(PKCS8_PRIV_KEY_INFO *p8, const EVP_PKEY *pk)
     OPENSSL_free(buf);
 
     return PKCS8_pkey_set0(p8, algobj, 0, V_ASN1_SEQUENCE, params,
-                           priv_buf, priv_len);
+                           priv_buf, priv_len); */
+    return PKCS8_pkey_set0(p8, algobj, 0, V_ASN1_SEQUENCE, params,
+                           buf, key_len); 
 }
 
 /* --------- printing keys --------------------------------*/
index 3a106c2fc675409e7d5939a34ca30d956e4b2a24..0a1c05a8afd0dd11fdf073d458e43d8c3bba66aa 100644 (file)
 
 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)
@@ -43,19 +41,19 @@ ASN1_SIMPLE(GOST_KEY_PARAMS, key_params, ASN1_OBJECT),
 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)
index f9ed2cf22b0c8125252ef354b653e096476b0251..a15317127f94acab9b852fcc927b5642876ebba3 100644 (file)
@@ -487,7 +487,6 @@ static void gost_cnt_next(void *ctx, unsigned char *iv, unsigned char *buf)
 int gost_cipher_do_cbc(EVP_CIPHER_CTX *ctx, unsigned char *out,
                        const unsigned char *in, size_t inl)
 {
-    OPENSSL_assert(inl % 8 == 0);
     unsigned char b[8];
     const unsigned char *in_ptr = in;
     unsigned char *out_ptr = out;
@@ -692,6 +691,12 @@ int gost_cipher_ctl(EVP_CIPHER_CTX *ctx, int type, int arg, void *ptr)
         } else {
             return 0;
         }
+    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) {
index 472ba82573f0964a593374f8fb5eeb44a5b07eab..16316a16949db7de9b6c4acf7bb4bc2566821cb4 100644 (file)
@@ -125,6 +125,8 @@ static int gost_engine_destroy(ENGINE* e) {
     ameth_GostR3410_2012_512 = NULL;
     ameth_Gost28147_MAC_12 = NULL;
 
+       ERR_unload_GOST_strings();
+       
     return 1;
 }
 
index 2ef949d2da79b3d1da1c6be2f42c44166fc76cfd..9a01822fdd818ada12b85b491819b11d1b4b4cdb 100644 (file)
@@ -638,11 +638,13 @@ static int pkey_gost_mac_ctrl_str(EVP_PKEY_CTX *ctx,
         }
 
         param = get_encryption_params(obj);
+                               ASN1_OBJECT_free(obj);
         if (param == NULL) {
             GOSTerr(GOST_F_PKEY_GOST_MAC_CTRL_STR, GOST_R_INVALID_MAC_PARAMS);
             return 0;
         }
 
+
         return pkey_gost_mac_ctrl(ctx, EVP_PKEY_CTRL_GOST_PARAMSET, 0,
                                   (void *)param);
     }