some bug fix

This commit is contained in:
Zhi Guan
2018-12-06 22:12:05 +08:00
parent bc2bb8a335
commit 9b5eaab86a
19 changed files with 184 additions and 5640 deletions

View File

@@ -483,6 +483,8 @@ our %disabled = ( # "what" => "comment"
"skfeng" => "default", "skfeng" => "default",
"sdfeng" => "default", "sdfeng" => "default",
"gmieng" => "default", "gmieng" => "default",
"cpk" => "default",
"speck" => "default",
); );
# Note: => pair form used for aesthetics, not to truly make a hash table # Note: => pair form used for aesthetics, not to truly make a hash table

View File

@@ -703,10 +703,8 @@ int ECIES_encrypt(int type, const unsigned char *in, size_t inlen,
*outlen = (size_t)len; *outlen = (size_t)len;
ret = 1; ret = 1;
goto end; goto end;
} } else if (*outlen < len) {
ECerr(EC_F_ECIES_ENCRYPT, EC_R_BUFFER_TOO_SMALL);
if (*outlen < len) {
ECerr(EC_F_ECIES_ENCRYPT, EC_R_ENCRYPT_FAILED);
*outlen = (size_t)len; *outlen = (size_t)len;
goto end; goto end;
} }

View File

@@ -68,14 +68,14 @@ static const EVP_PBE_CTL builtin_pbe[] = {
{EVP_PBE_TYPE_PRF, NID_hmacWithSHA256, -1, NID_sha256, 0}, {EVP_PBE_TYPE_PRF, NID_hmacWithSHA256, -1, NID_sha256, 0},
{EVP_PBE_TYPE_PRF, NID_hmacWithSHA384, -1, NID_sha384, 0}, {EVP_PBE_TYPE_PRF, NID_hmacWithSHA384, -1, NID_sha384, 0},
{EVP_PBE_TYPE_PRF, NID_hmacWithSHA512, -1, NID_sha512, 0}, {EVP_PBE_TYPE_PRF, NID_hmacWithSHA512, -1, NID_sha512, 0},
#ifndef OPENSSL_NO_SM3
{EVP_PBE_TYPE_PRF, NID_hmac_sm3, -1, NID_sm3, 0},
#endif
{EVP_PBE_TYPE_PRF, NID_id_HMACGostR3411_94, -1, NID_id_GostR3411_94, 0}, {EVP_PBE_TYPE_PRF, NID_id_HMACGostR3411_94, -1, NID_id_GostR3411_94, 0},
{EVP_PBE_TYPE_PRF, NID_id_tc26_hmac_gost_3411_2012_256, -1, {EVP_PBE_TYPE_PRF, NID_id_tc26_hmac_gost_3411_2012_256, -1,
NID_id_GostR3411_2012_256, 0}, NID_id_GostR3411_2012_256, 0},
{EVP_PBE_TYPE_PRF, NID_id_tc26_hmac_gost_3411_2012_512, -1, {EVP_PBE_TYPE_PRF, NID_id_tc26_hmac_gost_3411_2012_512, -1,
NID_id_GostR3411_2012_512, 0}, NID_id_GostR3411_2012_512, 0},
#ifndef OPENSSL_NO_SM3
{EVP_PBE_TYPE_PRF, NID_hmac_sm3, -1, NID_sm3, 0},
#endif
{EVP_PBE_TYPE_KDF, NID_id_pbkdf2, -1, -1, PKCS5_v2_PBKDF2_keyivgen}, {EVP_PBE_TYPE_KDF, NID_id_pbkdf2, -1, -1, PKCS5_v2_PBKDF2_keyivgen},
#ifndef OPENSSL_NO_SCRYPT #ifndef OPENSSL_NO_SCRYPT
{EVP_PBE_TYPE_KDF, NID_id_scrypt, -1, -1, PKCS5_v2_scrypt_keyivgen} {EVP_PBE_TYPE_KDF, NID_id_scrypt, -1, -1, PKCS5_v2_scrypt_keyivgen}

View File

@@ -10,7 +10,7 @@
*/ */
/* Serialized OID's */ /* Serialized OID's */
static const unsigned char so[7886] = { static const unsigned char so[7915] = {
0x2A,0x86,0x48,0x86,0xF7,0x0D, /* [ 0] OBJ_rsadsi */ 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,0x01, /* [ 6] OBJ_pkcs */
0x2A,0x86,0x48,0x86,0xF7,0x0D,0x02,0x02, /* [ 13] OBJ_md2 */ 0x2A,0x86,0x48,0x86,0xF7,0x0D,0x02,0x02, /* [ 13] OBJ_md2 */
@@ -1101,9 +1101,12 @@ static const unsigned char so[7886] = {
0x2B,0x06,0x01,0x04,0x01,0x83,0x83,0x0D,0x01,0x01,0x04, /* [ 7854] OBJ_cpk_map_sha384 */ 0x2B,0x06,0x01,0x04,0x01,0x83,0x83,0x0D,0x01,0x01,0x04, /* [ 7854] OBJ_cpk_map_sha384 */
0x2B,0x06,0x01,0x04,0x01,0x83,0x83,0x0D,0x01,0x01,0x05, /* [ 7865] OBJ_cpk_map_sha512 */ 0x2B,0x06,0x01,0x04,0x01,0x83,0x83,0x0D,0x01,0x01,0x05, /* [ 7865] OBJ_cpk_map_sha512 */
0x2B,0x06,0x01,0x04,0x01,0x83,0x83,0x0D,0x15, /* [ 7876] OBJ_paillier */ 0x2B,0x06,0x01,0x04,0x01,0x83,0x83,0x0D,0x15, /* [ 7876] OBJ_paillier */
0x2A,0x81,0x1C,0xCF,0x55,0x01,0x82,0x2F,0x07, /* [ 7885] OBJ_sm9hash2 */
0x2A,0x81,0x1C,0xCF,0x55,0x01,0x82,0x2F,0x07,0x01, /* [ 7894] OBJ_sm9hash2_with_sm3 */
0x2A,0x81,0x1C,0xCF,0x55,0x01,0x82,0x2F,0x07,0x02, /* [ 7904] OBJ_sm9hash2_with_sha256 */
}; };
#define NUM_NID 1209 #define NUM_NID 1212
static const ASN1_OBJECT nid_objs[NUM_NID] = { static const ASN1_OBJECT nid_objs[NUM_NID] = {
{"UNDEF", "undefined", NID_undef}, {"UNDEF", "undefined", NID_undef},
{"rsadsi", "RSA Data Security, Inc.", NID_rsadsi, 6, &so[0]}, {"rsadsi", "RSA Data Security, Inc.", NID_rsadsi, 6, &so[0]},
@@ -2314,9 +2317,12 @@ static const ASN1_OBJECT nid_objs[NUM_NID] = {
{"cpk-map-sha384", "cpk-map-sha384", NID_cpk_map_sha384, 11, &so[7854]}, {"cpk-map-sha384", "cpk-map-sha384", NID_cpk_map_sha384, 11, &so[7854]},
{"cpk-map-sha512", "cpk-map-sha512", NID_cpk_map_sha512, 11, &so[7865]}, {"cpk-map-sha512", "cpk-map-sha512", NID_cpk_map_sha512, 11, &so[7865]},
{"paillier", "paillier", NID_paillier, 9, &so[7876]}, {"paillier", "paillier", NID_paillier, 9, &so[7876]},
{"sm9hash2", "sm9hash2", NID_sm9hash2, 9, &so[7885]},
{"sm9hash2-with-sm3", "sm9hash2-with-sm3", NID_sm9hash2_with_sm3, 10, &so[7894]},
{"sm9hash2-with-sha256", "sm9hash2-with-sha256", NID_sm9hash2_with_sha256, 10, &so[7904]},
}; };
#define NUM_SN 1199 #define NUM_SN 1202
static const unsigned int sn_objs[NUM_SN] = { static const unsigned int sn_objs[NUM_SN] = {
364, /* "AD_DVCS" */ 364, /* "AD_DVCS" */
419, /* "AES-128-CBC" */ 419, /* "AES-128-CBC" */
@@ -3450,6 +3456,9 @@ static const unsigned int sn_objs[NUM_SN] = {
1172, /* "sm9hash1" */ 1172, /* "sm9hash1" */
1182, /* "sm9hash1-with-sha256" */ 1182, /* "sm9hash1-with-sha256" */
1181, /* "sm9hash1-with-sm3" */ 1181, /* "sm9hash1-with-sm3" */
1209, /* "sm9hash2" */
1211, /* "sm9hash2-with-sha256" */
1210, /* "sm9hash2-with-sm3" */
1173, /* "sm9kdf" */ 1173, /* "sm9kdf" */
1184, /* "sm9kdf-with-sha256" */ 1184, /* "sm9kdf-with-sha256" */
1183, /* "sm9kdf-with-sm3" */ 1183, /* "sm9kdf-with-sm3" */
@@ -3519,7 +3528,7 @@ static const unsigned int sn_objs[NUM_SN] = {
1187, /* "zuc-128eia3" */ 1187, /* "zuc-128eia3" */
}; };
#define NUM_LN 1199 #define NUM_LN 1202
static const unsigned int ln_objs[NUM_LN] = { static const unsigned int ln_objs[NUM_LN] = {
363, /* "AD Time Stamping" */ 363, /* "AD Time Stamping" */
405, /* "ANSI X9.62" */ 405, /* "ANSI X9.62" */
@@ -4636,6 +4645,9 @@ static const unsigned int ln_objs[NUM_LN] = {
1172, /* "sm9hash1" */ 1172, /* "sm9hash1" */
1182, /* "sm9hash1-with-sha256" */ 1182, /* "sm9hash1-with-sha256" */
1181, /* "sm9hash1-with-sm3" */ 1181, /* "sm9hash1-with-sm3" */
1209, /* "sm9hash2" */
1211, /* "sm9hash2-with-sha256" */
1210, /* "sm9hash2-with-sm3" */
1173, /* "sm9kdf" */ 1173, /* "sm9kdf" */
1184, /* "sm9kdf-with-sha256" */ 1184, /* "sm9kdf-with-sha256" */
1183, /* "sm9kdf-with-sm3" */ 1183, /* "sm9kdf-with-sm3" */
@@ -4722,7 +4734,7 @@ static const unsigned int ln_objs[NUM_LN] = {
1187, /* "zuc-128eia3" */ 1187, /* "zuc-128eia3" */
}; };
#define NUM_OBJ 1096 #define NUM_OBJ 1099
static const unsigned int obj_objs[NUM_OBJ] = { static const unsigned int obj_objs[NUM_OBJ] = {
0, /* OBJ_undef 0 */ 0, /* OBJ_undef 0 */
181, /* OBJ_iso 1 */ 181, /* OBJ_iso 1 */
@@ -5467,6 +5479,7 @@ static const unsigned int obj_objs[NUM_OBJ] = {
1172, /* OBJ_sm9hash1 1 2 156 10197 1 302 4 */ 1172, /* OBJ_sm9hash1 1 2 156 10197 1 302 4 */
1173, /* OBJ_sm9kdf 1 2 156 10197 1 302 5 */ 1173, /* OBJ_sm9kdf 1 2 156 10197 1 302 5 */
1174, /* OBJ_id_sm9MasterSecret 1 2 156 10197 1 302 6 */ 1174, /* OBJ_id_sm9MasterSecret 1 2 156 10197 1 302 6 */
1209, /* OBJ_sm9hash2 1 2 156 10197 1 303 7 */
1149, /* OBJ_hmac_sm3 1 2 156 10197 1 401 2 */ 1149, /* OBJ_hmac_sm3 1 2 156 10197 1 401 2 */
1186, /* OBJ_zuc_128eea3 1 2 156 10197 1 800 1 */ 1186, /* OBJ_zuc_128eea3 1 2 156 10197 1 800 1 */
1187, /* OBJ_zuc_128eia3 1 2 156 10197 1 800 2 */ 1187, /* OBJ_zuc_128eia3 1 2 156 10197 1 800 2 */
@@ -5685,6 +5698,8 @@ static const unsigned int obj_objs[NUM_OBJ] = {
1183, /* OBJ_sm9kdf_with_sm3 1 2 156 10197 1 302 5 1 */ 1183, /* OBJ_sm9kdf_with_sm3 1 2 156 10197 1 302 5 1 */
1184, /* OBJ_sm9kdf_with_sha256 1 2 156 10197 1 302 5 2 */ 1184, /* OBJ_sm9kdf_with_sha256 1 2 156 10197 1 302 5 2 */
1175, /* OBJ_sm9bn256v1 1 2 156 10197 1 302 6 1 */ 1175, /* OBJ_sm9bn256v1 1 2 156 10197 1 302 6 1 */
1210, /* OBJ_sm9hash2_with_sm3 1 2 156 10197 1 303 7 1 */
1211, /* OBJ_sm9hash2_with_sha256 1 2 156 10197 1 303 7 2 */
189, /* OBJ_id_smime_mod 1 2 840 113549 1 9 16 0 */ 189, /* OBJ_id_smime_mod 1 2 840 113549 1 9 16 0 */
190, /* OBJ_id_smime_ct 1 2 840 113549 1 9 16 1 */ 190, /* OBJ_id_smime_ct 1 2 840 113549 1 9 16 1 */
191, /* OBJ_id_smime_aa 1 2 840 113549 1 9 16 2 */ 191, /* OBJ_id_smime_aa 1 2 840 113549 1 9 16 2 */

View File

@@ -1206,3 +1206,6 @@ cpk_map_sm3 1205
cpk_map_sha384 1206 cpk_map_sha384 1206
cpk_map_sha512 1207 cpk_map_sha512 1207
paillier 1208 paillier 1208
sm9hash2 1209
sm9hash2_with_sm3 1210
sm9hash2_with_sha256 1211

View File

@@ -1630,6 +1630,7 @@ sm-scheme 302 1 : sm9sign
sm-scheme 302 2 : sm9keyagreement sm-scheme 302 2 : sm9keyagreement
sm-scheme 302 3 : sm9encrypt sm-scheme 302 3 : sm9encrypt
sm-scheme 302 4 : sm9hash1 sm-scheme 302 4 : sm9hash1
sm-scheme 303 7 : sm9hash2
sm-scheme 302 5 : sm9kdf sm-scheme 302 5 : sm9kdf
sm-scheme 302 6 : id-sm9MasterSecret sm-scheme 302 6 : id-sm9MasterSecret
sm-scheme 302 6 1 : sm9bn256v1 sm-scheme 302 6 1 : sm9bn256v1
@@ -1640,6 +1641,8 @@ sm9encrypt 2 : sm9encrypt-with-sm3-sms4-cbc
sm9encrypt 3 : sm9encrypt-with-sm3-sms4-ctr sm9encrypt 3 : sm9encrypt-with-sm3-sms4-ctr
sm9hash1 1 : sm9hash1-with-sm3 sm9hash1 1 : sm9hash1-with-sm3
sm9hash1 2 : sm9hash1-with-sha256 sm9hash1 2 : sm9hash1-with-sha256
sm9hash2 1 : sm9hash2-with-sm3
sm9hash2 2 : sm9hash2-with-sha256
sm9kdf 1 : sm9kdf-with-sm3 sm9kdf 1 : sm9kdf-with-sm3
sm9kdf 2 : sm9kdf-with-sha256 sm9kdf 2 : sm9kdf-with-sha256

View File

@@ -67,9 +67,10 @@ ASN1_SEQUENCE(SM2CiphertextValue) = {
IMPLEMENT_ASN1_FUNCTIONS(SM2CiphertextValue) IMPLEMENT_ASN1_FUNCTIONS(SM2CiphertextValue)
IMPLEMENT_ASN1_DUP_FUNCTION(SM2CiphertextValue) IMPLEMENT_ASN1_DUP_FUNCTION(SM2CiphertextValue)
int SM2CiphertextValue_size(const EC_GROUP *group, size_t inlen) int SM2_ciphertext_size(const EC_KEY *ec_key, size_t inlen)
{ {
int ret; int ret;
const EC_GROUP *group = NULL;
ASN1_OCTET_STRING s; ASN1_OCTET_STRING s;
int len = 0, i; int len = 0, i;
@@ -78,6 +79,10 @@ int SM2CiphertextValue_size(const EC_GROUP *group, size_t inlen)
return 0; return 0;
} }
if (ec_key) {
group = EC_KEY_get0_group(ec_key);
}
if (group) { if (group) {
ASN1_INTEGER a; ASN1_INTEGER a;
unsigned char buf[4] = {0xff}; unsigned char buf[4] = {0xff};

View File

@@ -84,7 +84,7 @@ SM2CiphertextValue *SM2_do_encrypt(const EVP_MD *md,
return 0; return 0;
} }
if (inlen < SM2_MIN_PLAINTEXT_LENGTH || inlen > SM2_MAX_PLAINTEXT_LENGTH) { if (inlen <= 0 || inlen > SM2_MAX_PLAINTEXT_LENGTH) {
SM2err(SM2_F_SM2_DO_ENCRYPT, SM2_R_INVALID_PLAINTEXT_LENGTH); SM2err(SM2_F_SM2_DO_ENCRYPT, SM2_R_INVALID_PLAINTEXT_LENGTH);
return 0; return 0;
} }
@@ -230,24 +230,47 @@ end:
int SM2_encrypt(int type, const unsigned char *in, size_t inlen, int SM2_encrypt(int type, const unsigned char *in, size_t inlen,
unsigned char *out, size_t *outlen, EC_KEY *ec_key) unsigned char *out, size_t *outlen, EC_KEY *ec_key)
{ {
int ret = 0;
const EVP_MD *md; const EVP_MD *md;
SM2CiphertextValue *cv; SM2CiphertextValue *cv = NULL;
int clen;
// check type
if (!(md = EVP_get_digestbynid(type))) { if (!(md = EVP_get_digestbynid(type))) {
SM2err(SM2_F_SM2_ENCRYPT, SM2_R_INVALID_DIGEST_ALGOR); SM2err(SM2_F_SM2_ENCRYPT, SM2_R_INVALID_DIGEST_ALGOR);
*outlen = 0; return 0;
}
if (!(clen = SM2_ciphertext_size(ec_key, inlen))) {
SM2err(SM2_F_SM2_ENCRYPT, ERR_R_SM2_LIB);
return 0;
}
if (!out) {
*outlen = clen;
return 1;
} else if (*outlen < clen) {
SM2err(SM2_F_SM2_ENCRYPT, SM2_R_BUFFER_TOO_SMALL);
return 0; return 0;
} }
RAND_seed(in, inlen); RAND_seed(in, inlen);
if (!(cv = SM2_do_encrypt(md, in, inlen, ec_key))) { if (!(cv = SM2_do_encrypt(md, in, inlen, ec_key))) {
SM2err(SM2_F_SM2_ENCRYPT, ERR_R_SM2_LIB);
*outlen = 0; *outlen = 0;
return 0; return 0;
} }
*outlen = i2d_SM2CiphertextValue(cv, &out); if ((clen = i2d_SM2CiphertextValue(cv, &out)) <= 0) {
SM2err(SM2_F_SM2_ENCRYPT, ERR_R_SM2_LIB);
goto end;
}
*outlen = clen;
ret = 1;
end:
SM2CiphertextValue_free(cv); SM2CiphertextValue_free(cv);
return 1; return ret;
} }
int SM2_decrypt(int type, const unsigned char *in, size_t inlen, int SM2_decrypt(int type, const unsigned char *in, size_t inlen,
@@ -353,7 +376,7 @@ int SM2_do_decrypt(const EVP_MD *md, const SM2CiphertextValue *cv,
return 0; return 0;
} }
if (cv->ciphertext->length < SM2_MIN_PLAINTEXT_LENGTH if (cv->ciphertext->length <= 0
|| cv->ciphertext->length > SM2_MAX_PLAINTEXT_LENGTH) { || cv->ciphertext->length > SM2_MAX_PLAINTEXT_LENGTH) {
SM2err(SM2_F_SM2_DO_DECRYPT, SM2_R_INVALID_CIPHERTEXT); SM2err(SM2_F_SM2_DO_DECRYPT, SM2_R_INVALID_CIPHERTEXT);
return 0; return 0;

View File

@@ -52,6 +52,10 @@
#define SM2_MAX_PKEY_DATA_LENGTH ((EC_MAX_NBYTES + 1) * 6) #define SM2_MAX_PKEY_DATA_LENGTH ((EC_MAX_NBYTES + 1) * 6)
#define SM2_MAX_PLAINTEXT_LENGTH 65535
#define SM2_MAX_CIPHERTEXT_LENGTH (SM2_MAX_PLAINTEXT_LENGTH + 2048)
int SM2_get_public_key_data(EC_KEY *ec_key, unsigned char *out, size_t *outlen); int SM2_get_public_key_data(EC_KEY *ec_key, unsigned char *out, size_t *outlen);
struct SM2CiphertextValue_st { struct SM2CiphertextValue_st {
@@ -92,5 +96,5 @@ struct sm2_kap_ctx_st {
}; };
int SM2_ciphertext_size(const EC_KEY *ec_key, size_t inlen);

View File

@@ -1,151 +0,0 @@
/* ====================================================================
* Copyright (c) 2016 The GmSSL Project. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. All advertising materials mentioning features or use of this
* software must display the following acknowledgment:
* "This product includes software developed by the GmSSL Project.
* (http://gmssl.org/)"
*
* 4. The name "GmSSL Project" must not be used to endorse or promote
* products derived from this software without prior written
* permission. For written permission, please contact
* guanzhi1980@gmail.com.
*
* 5. Products derived from this software may not be called "GmSSL"
* nor may "GmSSL" appear in their names without prior written
* permission of the GmSSL Project.
*
* 6. Redistributions of any form whatsoever must retain the following
* acknowledgment:
* "This product includes software developed by the GmSSL Project
* (http://gmssl.org/)"
*
* THIS SOFTWARE IS PROVIDED BY THE GmSSL PROJECT ``AS IS'' AND ANY
* EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE GmSSL PROJECT OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
* OF THE POSSIBILITY OF SUCH DAMAGE.
* ====================================================================
*/
#include <string.h>
#include <openssl/err.h>
#include <openssl/sm9.h>
#include <openssl/bn_hash.h>
#include "sm9_lcl.h"
int SM9PrivateKey_get_gmtls_public_key(SM9PublicParameters *mpk,
SM9PrivateKey *sk, unsigned char pub_key[1024])
{
return 0;
}
int SM9PublicKey_get_gmtls_encoded(SM9PublicParameters *mpk,
SM9PublicKey *pk, unsigned char encoded[1024])
{
return 0;
}
int SM9_hash2(const EVP_MD *md, BIGNUM **r,
const unsigned char *data, size_t datalen,
const unsigned char *elem, size_t elemlen,
const BIGNUM *range, BN_CTX *ctx)
{
unsigned char *buf;
if (!(buf = OPENSSL_malloc(datalen + elemlen))) {
return 0;
}
memcpy(buf, data, datalen);
memcpy(buf + datalen, elem, elemlen);
if (!BN_hash_to_range(md, r, buf, datalen + elemlen, range, ctx)) {
OPENSSL_free(buf);
return 0;
}
OPENSSL_free(buf);
return 1;
}
int SM9_DigestInit(EVP_MD_CTX *ctx, unsigned char prefix,
const EVP_MD *md, ENGINE *impl)
{
if (!EVP_DigestInit_ex(ctx, md, impl)
|| !EVP_DigestUpdate(ctx, &prefix, 1)) {
ERR_print_errors_fp(stderr);
return 0;
}
return 1;
}
//FIXME: implement this !!!
int SM9MasterSecret_up_ref(SM9MasterSecret *msk)
{
return 1;
}
int SM9PublicParameters_up_ref(SM9PublicParameters *mpk)
{
return 1;
}
int SM9PrivateKey_up_ref(SM9PrivateKey *sk)
{
return 1;
}
int SM9PublicKey_up_ref(SM9PublicKey *pk)
{
return 1;
}
#if 0
int SM9_DigestFinal(EVP_MD_CTX *ctx1, BIGNUM *h, const BIGNUM *n_1)
{
int ret = 0;
EVP_MD_CTX *ctx2 = NULL;
const unsigned char ct1[4] = {0x00, 0x00, 0x00, 0x01};
const unsigned char ct2[4] = {0x00, 0x00, 0x00, 0x02};
unsigned char Ha[EVP_MAX_MD_SIZE * 2];
unsigned int len = 0;
if (!(ctx2 = EVP_MD_CTX_new())
|| !EVP_MD_CTX_copy(ctx2, ctx1)
|| !EVP_DigestUpdate(ctx1, ct1, sizeof(ct))
|| !EVP_DigestUpdate(ctx2, ct2, sizeof(ct2))
|| !EVP_DigestFinal_ex(ctx1, Ha, &len)
|| !EVP_DigestFinal_ex(ctx2, Ha + len, &len)
|| !BN_bin2bn(Ha, 40, h)
|| !BN_mod(h, h, n_1, bn_ctx)
|| !BN_add_word(h, 1)) {
ERR_print_errors_fp(stderr);
goto end;
}
ret = 1;
end:
EVP_MD_CTX_free(ctx2);
return ret;
}
#endif

View File

@@ -1,5 +1,5 @@
/* ==================================================================== /* ====================================================================
* Copyright (c) 2014 - 2017 The GmSSL Project. All rights reserved. * Copyright (c) 2014 - 2018 The GmSSL Project. All rights reserved.
* *
* Redistribution and use in source and binary forms, with or without * Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions * modification, are permitted provided that the following conditions
@@ -70,71 +70,69 @@ extern "C" {
# define GMTLS_CK_SM2_WITH_SM1_SM3 0x0300E003 # define GMTLS_CK_SM2_WITH_SM1_SM3 0x0300E003
# define GMTLS_CK_SM9DHE_WITH_SM1_SM3 0x0300E005 # define GMTLS_CK_SM9DHE_WITH_SM1_SM3 0x0300E005
# define GMTLS_CK_SM9_WITH_SM1_SM3 0x0300E007 # define GMTLS_CK_SM9_WITH_SM1_SM3 0x0300E007
# define GMTLS_CK_RSA_WITH_SM1_SM3 0x0300E009 # define GMTLS_CK_RSA_WITH_SM1_SM3 0x0300E009 /* reserved */
# define GMTLS_CK_RSA_WITH_SM1_SHA1 0x0300E00A # define GMTLS_CK_RSA_WITH_SM1_SHA1 0x0300E00A /* reserved */
# define GMTLS_CK_SM2DHE_WITH_SMS4_SM3 0x0300E011 # define GMTLS_CK_SM2DHE_WITH_SMS4_SM3 0x0300E011
# define GMTLS_CK_SM2_WITH_SMS4_SM3 0x0300E013 # define GMTLS_CK_SM2_WITH_SMS4_SM3 0x0300E013 /* reserved */
# define GMTLS_CK_SM9DHE_WITH_SMS4_SM3 0x0300E015 # define GMTLS_CK_SM9DHE_WITH_SMS4_SM3 0x0300E015 /* reserved */
# define GMTLS_CK_SM9_WITH_SMS4_SM3 0x0300E017 # define GMTLS_CK_SM9_WITH_SMS4_SM3 0x0300E017 /* reserved */
# define GMTLS_CK_RSA_WITH_SMS4_SM3 0x0300E019 # define GMTLS_CK_RSA_WITH_SMS4_SM3 0x0300E019 /* reserved */
# define GMTLS_CK_RSA_WITH_SMS4_SHA1 0x0300E01A # define GMTLS_CK_RSA_WITH_SMS4_SHA1 0x0300E01A
/* ECDHE-SM2-WITH-[SM1|SMS4|SSF33]-[SM3|SHA256] */ /* ECDHE-SM2-WITH-[SM1|SMS4|SSF33]-[SM3|SHA256] */
# define GMTLS_CK_ECDHE_SM2_WITH_SM1_SM3 0x0300E101 # define GMTLS_CK_ECDHE_SM2_WITH_SM1_SM3 0x0300E101
# define GMTLS_CK_ECDHE_SM2_WITH_SMS4_SM3 0x0300E102 # define GMTLS_CK_ECDHE_SM2_WITH_SMS4_SM3 0x0300E102
# define GMTLS_CK_ECDHE_SM2_WITH_SSF33_SM3 0x0300E103 # define GMTLS_CK_ECDHE_SM2_WITH_SSF33_SM3 0x0300E103
# define GMTLS_CK_ECDHE_SM2_WITH_SM1_SHA256 0x0300E104 # define GMTLS_CK_ECDHE_SM2_WITH_SM1_SHA256 0x0300E104 /* reserved */
# define GMTLS_CK_ECDHE_SM2_WITH_SMS4_SHA256 0x0300E105 # define GMTLS_CK_ECDHE_SM2_WITH_SMS4_SHA256 0x0300E105
# define GMTLS_CK_ECDHE_SM2_WITH_SSF33_SHA256 0x0300E106 # define GMTLS_CK_ECDHE_SM2_WITH_SSF33_SHA256 0x0300E106 /* reserved */
/* ECDHE-SM2-WITH-SMS4-[GCM|CCM|CCM-8]-[SM3|SHA256] */ /* ECDHE-SM2-WITH-SMS4-[GCM|CCM|CCM-8]-[SM3|SHA256] */
# define GMTLS_CK_ECDHE_SM2_WITH_SMS4_GCM_SM3 0x0300E107 # define GMTLS_CK_ECDHE_SM2_WITH_SMS4_GCM_SM3 0x0300E107
# define GMTLS_CK_ECDHE_SM2_WITH_SMS4_CCM_SM3 0x0300E108 # define GMTLS_CK_ECDHE_SM2_WITH_SMS4_CCM_SM3 0x0300E108
# define GMTLS_CK_ECDHE_SM2_WITH_SMS4_CCM_8_SM3 0x0300E109 # define GMTLS_CK_ECDHE_SM2_WITH_SMS4_CCM_8_SM3 0x0300E109
# define GMTLS_CK_ECDHE_SM2_WITH_SMS4_GCM_SHA256 0x0300E10A # define GMTLS_CK_ECDHE_SM2_WITH_SMS4_GCM_SHA256 0x0300E10A /* reserved */
# define GMTLS_CK_ECDHE_SM2_WITH_SMS4_CCM_SHA256 0x0300E10B # define GMTLS_CK_ECDHE_SM2_WITH_SMS4_CCM_SHA256 0x0300E10B /* reserved */
# define GMTLS_CK_ECDHE_SM2_WITH_SMS4_CCM_8_SHA256 0x0300E10C # define GMTLS_CK_ECDHE_SM2_WITH_SMS4_CCM_8_SHA256 0x0300E10C /* reserved */
/* SM2DHE-SM2-WITH-[SM1|SMS4|SSF33|ZUC]-[GCM|CCM|CCM-8|EIA]-SM3 */
# define GMTLS_CK_SM2DHE_SM2_WITH_SM1_SM3 0x0300E201
# define GMTLS_CK_SM2DHE_SM2_WITH_SMS4_SM3 0x0300E202
# define GMTLS_CK_SM2DHE_SM2_WITH_SSF33_SM3 0x0300E203
# define GMTLS_CK_SM2DHE_SM2_WITH_ZUC_SM3 0X0300E204
# define GMTLS_CK_SM2DHE_SM2_WITH_SMS4_GCM_SM3 0x0300E205
# define GMTLS_CK_SM2DHE_SM2_WITH_SMS4_CCM_SM3 0x0300E206
# define GMTLS_CK_SM2DHE_SM2_WITH_SMS4_CCM_8_SM3 0x0300E207
# define GMTLS_CK_SM2DHE_SM2_WITH_ZUC_EIA_SM3 0X0300E208
/* PSK ciphersuites with NULL cipher */ /* PSK ciphersuites with NULL cipher */
# define GMTLS_CK_PSK_WITH_NULL_SM3 0x0300F001 # define GMTLS_CK_PSK_WITH_NULL_SM3 0x0300F001 /* reserved */
# define GMTLS_CK_DHE_PSK_WITH_NULL_SM3 0x0300F002 # define GMTLS_CK_DHE_PSK_WITH_NULL_SM3 0x0300F002 /* reserved */
# define GMTLS_CK_RSA_PSK_WITH_NULL_SM3 0x0300F003 # define GMTLS_CK_RSA_PSK_WITH_NULL_SM3 0x0300F003 /* reserved */
# define GMTLS_CK_SM2_PSK_WITH_NULL_SM3 0x0300F004 # define GMTLS_CK_SM2_PSK_WITH_NULL_SM3 0x0300F004 /* reserved */
# define GMTLS_CK_ECDHE_PSK_WITH_NULL_SM3 0x0300F005 # define GMTLS_CK_ECDHE_PSK_WITH_NULL_SM3 0x0300F005 /* reserved */
/* PSK ciphersuits with SMS4 */ /* PSK ciphersuits with SMS4 */
# define GMTLS_CK_PSK_WITH_SMS4_CBC_SM3 0x0300F101 # define GMTLS_CK_PSK_WITH_SMS4_CBC_SM3 0x0300F101
# define GMTLS_CK_PSK_WITH_SMS4_GCM_SM3 0x0300F102 # define GMTLS_CK_PSK_WITH_SMS4_GCM_SM3 0x0300F102
# define GMTLS_CK_PSK_WITH_SMS4_CCM_SM3 0x0300F103 # define GMTLS_CK_PSK_WITH_SMS4_CCM_SM3 0x0300F103
# define GMTLS_CK_DHE_PSK_WITH_SMS4_CBC_SM3 0x0300F105 # define GMTLS_CK_SM2_PSK_WITH_SMS4_CBC_SM3 0x0300F10B
# define GMTLS_CK_DHE_PSK_WITH_SMS4_GCM_SM3 0x0300F106 # define GMTLS_CK_SM2_PSK_WITH_SMS4_GCM_SM3 0x0300F10C
# define GMTLS_CK_DHE_PSK_WITH_SMS4_CCM_SM3 0x0300F107 # define GMTLS_CK_SM2_PSK_WITH_SMS4_CCM_SM3 0x0300F10D
# define GMTLS_CK_RSA_PSK_WITH_SMS4_CBC_SM3 0x0300F108
# define GMTLS_CK_RSA_PSK_WITH_SMS4_GCM_SM3 0x0300F109
# define GMTLS_CK_RSA_PSK_WITH_SMS4_CCM_SM3 0x0300F10A
# define GMTLS_CK_ECC_PSK_WITH_SMS4_CBC_SM3 0x0300F10B
# define GMTLS_CK_ECC_PSK_WITH_SMS4_GCM_SM3 0x0300F10C
# define GMTLS_CK_ECC_PSK_WITH_SMS4_CCM_SM3 0x0300F10D
# define GMTLS_CK_PSK_WITH_SM1_CBC_SM3 0x0300F10E # define GMTLS_CK_PSK_WITH_SM1_CBC_SM3 0x0300F10E
# define GMTLS_CK_PSK_WITH_SM1_GCM_SM3 0x0300F10F # define GMTLS_CK_PSK_WITH_SM1_GCM_SM3 0x0300F10F /* reserved */
# define GMTLS_CK_PSK_WITH_SM1_CCM_SM3 0x0300F110 # define GMTLS_CK_PSK_WITH_SM1_CCM_SM3 0x0300F110 /* reserved */
# define GMTLS_CK_DHE_PSK_WITH_SM1_CBC_SM3 0x0300F111
# define GMTLS_CK_DHE_PSK_WITH_SM1_GCM_SM3 0x0300F112
# define GMTLS_CK_DHE_PSK_WITH_SM1_CCM_SM3 0x0300F113
# define GMTLS_CK_RSA_PSK_WITH_SM1_CBC_SM3 0x0300F114
# define GMTLS_CK_RSA_PSK_WITH_SM1_GCM_SM3 0x0300F115
# define GMTLS_CK_RSA_PSK_WITH_SM1_CCM_SM3 0x0300F116
# define GMTLS_CK_PSK_WITH_SSF33_CBC_SM3 0x0300F117 # define GMTLS_CK_PSK_WITH_SSF33_CBC_SM3 0x0300F117
# define GMTLS_CK_PSK_WITH_SSF33_GCM_SM3 0x0300F118 # define GMTLS_CK_PSK_WITH_SSF33_GCM_SM3 0x0300F118 /* reserved */
# define GMTLS_CK_PSK_WITH_SSF33_CCM_SM3 0x0300F119 # define GMTLS_CK_PSK_WITH_SSF33_CCM_SM3 0x0300F119 /* reserved */
# define GMTLS_CK_DHE_PSK_WITH_SSF33_CBC_SM3 0x0300F11A # define GMTLS_CK_DHE_PSK_WITH_SSF33_CBC_SM3 0x0300F11A /* reserved */
# define GMTLS_CK_DHE_PSK_WITH_SSF33_GCM_SM3 0x0300F11B # define GMTLS_CK_DHE_PSK_WITH_SSF33_GCM_SM3 0x0300F11B /* reserved */
# define GMTLS_CK_DHE_PSK_WITH_SSF33_CCM_SM3 0x0300F11C # define GMTLS_CK_DHE_PSK_WITH_SSF33_CCM_SM3 0x0300F11C /* reserved */
# define GMTLS_CK_RSA_PSK_WITH_SSF33_CBC_SM3 0x0300F11D # define GMTLS_CK_RSA_PSK_WITH_SSF33_CBC_SM3 0x0300F11D /* reserved */
# define GMTLS_CK_RSA_PSK_WITH_SSF33_GCM_SM3 0x0300F11E # define GMTLS_CK_RSA_PSK_WITH_SSF33_GCM_SM3 0x0300F11E /* reserved */
# define GMTLS_CK_RSA_PSK_WITH_SSF33_CCM_SM3 0x0300F11F # define GMTLS_CK_RSA_PSK_WITH_SSF33_CCM_SM3 0x0300F11F /* reserved */
/* SRP ciphersuites */ /* SRP ciphersuites */
# define GMTLS_CK_SRP_SM3_WITH_SMS4_CBC_SM3 0x0300F201 # define GMTLS_CK_SRP_SM3_WITH_SMS4_CBC_SM3 0x0300F201
@@ -173,6 +171,16 @@ extern "C" {
# define GMTLS_TXT_ECDHE_SM2_WITH_SMS4_CCM_SHA256 "ECDHE-SM2-WITH-SMS4-CCM-SHA256" # define GMTLS_TXT_ECDHE_SM2_WITH_SMS4_CCM_SHA256 "ECDHE-SM2-WITH-SMS4-CCM-SHA256"
# define GMTLS_TXT_ECDHE_SM2_WITH_SMS4_CCM_8_SHA256 "ECDHE-SM2-WITH-SMS4-CCM-8-SHA256" # define GMTLS_TXT_ECDHE_SM2_WITH_SMS4_CCM_8_SHA256 "ECDHE-SM2-WITH-SMS4-CCM-8-SHA256"
/* SM2DHE-SM2-WITH-[SM1|SMS4|SSF33|ZUC]-[GCM|CCM|CCM-8|EIA]-SM3 */
# define GMTLS_TXT_SM2DHE_SM2_WITH_SM1_SM3 "SM2DHE-SM2-WITH-SM1-SM3"
# define GMTLS_TXT_SM2DHE_SM2_WITH_SMS4_SM3 "SM2DHE-SM2-WITH-SMS4-SM3"
# define GMTLS_TXT_SM2DHE_SM2_WITH_SSF33_SM3 "SM2DHE-SM2-WITH-SSF33-SM3"
# define GMTLS_TXT_SM2DHE_SM2_WITH_ZUC_SM3 "SM2DHE-SM2-WITH-ZUC-SM3"
# define GMTLS_TXT_SM2DHE_SM2_WITH_SMS4_GCM_SM3 "SM2DHE-SM2-WITH-SMS4-GCM-SM3"
# define GMTLS_TXT_SM2DHE_SM2_WITH_SMS4_CCM_SM3 "SM2DHE-SM2-WITH-SMS4-CCM-SM3"
# define GMTLS_TXT_SM2DHE_SM2_WITH_SMS4_CCM_8_SM3 "SM2DHE-SM2-WITH-SMS4-CCM-8-SM3"
# define GMTLS_TXT_SM2DHE_SM2_WITH_ZUC_EIA_SM3 "SM2DHE-SM2-WITH-ZUC-EIA-SM3"
/* PSK ciphersuites with NULL cipher */ /* PSK ciphersuites with NULL cipher */
# define GMTLS_TXT_PSK_WITH_NULL_SM3 "PSK-WITH-NULL-SM3" # define GMTLS_TXT_PSK_WITH_NULL_SM3 "PSK-WITH-NULL-SM3"
# define GMTLS_TXT_DHE_PSK_WITH_NULL_SM3 "DHE-PSK-WITH-NULL-SM3" # define GMTLS_TXT_DHE_PSK_WITH_NULL_SM3 "DHE-PSK-WITH-NULL-SM3"

View File

@@ -5067,6 +5067,10 @@
#define NID_sm9hash1 1172 #define NID_sm9hash1 1172
#define OBJ_sm9hash1 OBJ_sm_scheme,302L,4L #define OBJ_sm9hash1 OBJ_sm_scheme,302L,4L
#define SN_sm9hash2 "sm9hash2"
#define NID_sm9hash2 1209
#define OBJ_sm9hash2 OBJ_sm_scheme,303L,7L
#define SN_sm9kdf "sm9kdf" #define SN_sm9kdf "sm9kdf"
#define NID_sm9kdf 1173 #define NID_sm9kdf 1173
#define OBJ_sm9kdf OBJ_sm_scheme,302L,5L #define OBJ_sm9kdf OBJ_sm_scheme,302L,5L
@@ -5107,6 +5111,14 @@
#define NID_sm9hash1_with_sha256 1182 #define NID_sm9hash1_with_sha256 1182
#define OBJ_sm9hash1_with_sha256 OBJ_sm9hash1,2L #define OBJ_sm9hash1_with_sha256 OBJ_sm9hash1,2L
#define SN_sm9hash2_with_sm3 "sm9hash2-with-sm3"
#define NID_sm9hash2_with_sm3 1210
#define OBJ_sm9hash2_with_sm3 OBJ_sm9hash2,1L
#define SN_sm9hash2_with_sha256 "sm9hash2-with-sha256"
#define NID_sm9hash2_with_sha256 1211
#define OBJ_sm9hash2_with_sha256 OBJ_sm9hash2,2L
#define SN_sm9kdf_with_sm3 "sm9kdf-with-sm3" #define SN_sm9kdf_with_sm3 "sm9kdf-with-sm3"
#define NID_sm9kdf_with_sm3 1183 #define NID_sm9kdf_with_sm3 1183
#define OBJ_sm9kdf_with_sm3 OBJ_sm9kdf,1L #define OBJ_sm9kdf_with_sm3 OBJ_sm9kdf,1L

View File

@@ -41,9 +41,9 @@ extern "C" {
*/ */
# define OPENSSL_VERSION_NUMBER 0x1010004fL # define OPENSSL_VERSION_NUMBER 0x1010004fL
# ifdef OPENSSL_FIPS # ifdef OPENSSL_FIPS
# define OPENSSL_VERSION_TEXT "GmSSL 2.4.2 - OpenSSL 1.1.0d-fips 3 Dec 2018" # define OPENSSL_VERSION_TEXT "GmSSL 2.4.2 - OpenSSL 1.1.0d-fips 6 Dec 2018"
# else # else
# define OPENSSL_VERSION_TEXT "GmSSL 2.4.2 - OpenSSL 1.1.0d 3 Dec 2018" # define OPENSSL_VERSION_TEXT "GmSSL 2.4.2 - OpenSSL 1.1.0d 6 Dec 2018"
# endif # endif
/*- /*-

View File

@@ -106,10 +106,6 @@ int SM2_verify(int type, const unsigned char *dgst, int dgstlen,
/* SM2 Public Key Encryption */ /* SM2 Public Key Encryption */
#define SM2_MIN_PLAINTEXT_LENGTH 0
#define SM2_MAX_PLAINTEXT_LENGTH 1024
#define SM2_CIPHERTEXT_LENGTH(len) ((len)+256)
typedef struct SM2CiphertextValue_st SM2CiphertextValue; typedef struct SM2CiphertextValue_st SM2CiphertextValue;
DECLARE_ASN1_FUNCTIONS(SM2CiphertextValue) DECLARE_ASN1_FUNCTIONS(SM2CiphertextValue)
@@ -131,7 +127,6 @@ int SM2_decrypt(int type, const unsigned char *in, size_t inlen,
#define SM2_decrypt_with_recommended(in,inlen,out,outlen,ec_key) \ #define SM2_decrypt_with_recommended(in,inlen,out,outlen,ec_key) \
SM2_decrypt(NID_sm3,in,inlen,out,outlen,ec_key) SM2_decrypt(NID_sm3,in,inlen,out,outlen,ec_key)
int SM2CiphertextValue_size(const EC_GROUP *group, size_t inlen);
/* SM2 Key Exchange */ /* SM2 Key Exchange */

View File

@@ -1088,7 +1088,9 @@ void SSL_free(SSL *s)
SSL_CTX_free(s->ctx); SSL_CTX_free(s->ctx);
#ifndef OPENSSL_NO_ASYNC
ASYNC_WAIT_CTX_free(s->waitctx); ASYNC_WAIT_CTX_free(s->waitctx);
#endif
#if !defined(OPENSSL_NO_NEXTPROTONEG) #if !defined(OPENSSL_NO_NEXTPROTONEG)
OPENSSL_free(s->next_proto_negotiated); OPENSSL_free(s->next_proto_negotiated);
@@ -1481,6 +1483,7 @@ int SSL_check_private_key(const SSL *ssl)
ssl->cert->key->privatekey)); ssl->cert->key->privatekey));
} }
#ifndef OPENSSL_NO_ASYNC
int SSL_waiting_for_async(SSL *s) int SSL_waiting_for_async(SSL *s)
{ {
if (s->job) if (s->job)
@@ -1508,6 +1511,7 @@ int SSL_get_changed_async_fds(SSL *s, OSSL_ASYNC_FD *addfd, size_t *numaddfds,
return ASYNC_WAIT_CTX_get_changed_fds(ctx, addfd, numaddfds, delfd, return ASYNC_WAIT_CTX_get_changed_fds(ctx, addfd, numaddfds, delfd,
numdelfds); numdelfds);
} }
#endif
int SSL_accept(SSL *s) int SSL_accept(SSL *s)
{ {
@@ -1534,6 +1538,7 @@ long SSL_get_default_timeout(const SSL *s)
return (s->method->get_timeout()); return (s->method->get_timeout());
} }
#ifndef OPENSSL_NO_ASYNC
static int ssl_start_async_job(SSL *s, struct ssl_async_args *args, static int ssl_start_async_job(SSL *s, struct ssl_async_args *args,
int (*func) (void *)) int (*func) (void *))
{ {
@@ -1565,6 +1570,7 @@ static int ssl_start_async_job(SSL *s, struct ssl_async_args *args,
return -1; return -1;
} }
} }
#endif
static int ssl_io_intern(void *vargs) static int ssl_io_intern(void *vargs)
{ {
@@ -1600,6 +1606,7 @@ int SSL_read(SSL *s, void *buf, int num)
return (0); return (0);
} }
#ifndef OPENSSL_NO_ASYNC
if ((s->mode & SSL_MODE_ASYNC) && ASYNC_get_current_job() == NULL) { if ((s->mode & SSL_MODE_ASYNC) && ASYNC_get_current_job() == NULL) {
struct ssl_async_args args; struct ssl_async_args args;
@@ -1610,9 +1617,9 @@ int SSL_read(SSL *s, void *buf, int num)
args.f.func_read = s->method->ssl_read; args.f.func_read = s->method->ssl_read;
return ssl_start_async_job(s, &args, ssl_io_intern); return ssl_start_async_job(s, &args, ssl_io_intern);
} else { } else
#endif
return s->method->ssl_read(s, buf, num); return s->method->ssl_read(s, buf, num);
}
} }
int SSL_peek(SSL *s, void *buf, int num) int SSL_peek(SSL *s, void *buf, int num)
@@ -1625,6 +1632,7 @@ int SSL_peek(SSL *s, void *buf, int num)
if (s->shutdown & SSL_RECEIVED_SHUTDOWN) { if (s->shutdown & SSL_RECEIVED_SHUTDOWN) {
return (0); return (0);
} }
#ifndef OPENSSL_NO_ASYNC
if ((s->mode & SSL_MODE_ASYNC) && ASYNC_get_current_job() == NULL) { if ((s->mode & SSL_MODE_ASYNC) && ASYNC_get_current_job() == NULL) {
struct ssl_async_args args; struct ssl_async_args args;
@@ -1635,9 +1643,9 @@ int SSL_peek(SSL *s, void *buf, int num)
args.f.func_read = s->method->ssl_peek; args.f.func_read = s->method->ssl_peek;
return ssl_start_async_job(s, &args, ssl_io_intern); return ssl_start_async_job(s, &args, ssl_io_intern);
} else { } else
#endif
return s->method->ssl_peek(s, buf, num); return s->method->ssl_peek(s, buf, num);
}
} }
int SSL_write(SSL *s, const void *buf, int num) int SSL_write(SSL *s, const void *buf, int num)
@@ -1653,6 +1661,7 @@ int SSL_write(SSL *s, const void *buf, int num)
return (-1); return (-1);
} }
#ifndef OPENSSL_NO_ASYNC
if ((s->mode & SSL_MODE_ASYNC) && ASYNC_get_current_job() == NULL) { if ((s->mode & SSL_MODE_ASYNC) && ASYNC_get_current_job() == NULL) {
struct ssl_async_args args; struct ssl_async_args args;
@@ -1663,9 +1672,9 @@ int SSL_write(SSL *s, const void *buf, int num)
args.f.func_write = s->method->ssl_write; args.f.func_write = s->method->ssl_write;
return ssl_start_async_job(s, &args, ssl_io_intern); return ssl_start_async_job(s, &args, ssl_io_intern);
} else { } else
#endif
return s->method->ssl_write(s, buf, num); return s->method->ssl_write(s, buf, num);
}
} }
int SSL_shutdown(SSL *s) int SSL_shutdown(SSL *s)
@@ -1683,6 +1692,7 @@ int SSL_shutdown(SSL *s)
} }
if (!SSL_in_init(s)) { if (!SSL_in_init(s)) {
#ifndef OPENSSL_NO_ASYNC
if ((s->mode & SSL_MODE_ASYNC) && ASYNC_get_current_job() == NULL) { if ((s->mode & SSL_MODE_ASYNC) && ASYNC_get_current_job() == NULL) {
struct ssl_async_args args; struct ssl_async_args args;
@@ -1691,9 +1701,10 @@ int SSL_shutdown(SSL *s)
args.f.func_other = s->method->ssl_shutdown; args.f.func_other = s->method->ssl_shutdown;
return ssl_start_async_job(s, &args, ssl_io_intern); return ssl_start_async_job(s, &args, ssl_io_intern);
} else { } else
#endif
return s->method->ssl_shutdown(s); return s->method->ssl_shutdown(s);
}
} else { } else {
SSLerr(SSL_F_SSL_SHUTDOWN, SSL_R_SHUTDOWN_WHILE_IN_INIT); SSLerr(SSL_F_SSL_SHUTDOWN, SSL_R_SHUTDOWN_WHILE_IN_INIT);
return -1; return -1;
@@ -2778,7 +2789,6 @@ void ssl_set_masks(SSL *s)
if (!(pvalid[SSL_PKEY_ECC] & CERT_PKEY_SIGN)) if (!(pvalid[SSL_PKEY_ECC] & CERT_PKEY_SIGN))
ecdsa_ok = 0; ecdsa_ok = 0;
if (ecdsa_ok) { if (ecdsa_ok) {
fprintf(stderr, "%s %d\n", __FILE__, __LINE__);
mask_a |= SSL_aECDSA; mask_a |= SSL_aECDSA;
mask_a |= SSL_aSM2; mask_a |= SSL_aSM2;
} }
@@ -3149,16 +3159,17 @@ int SSL_do_handshake(SSL *s)
s->method->ssl_renegotiate_check(s); s->method->ssl_renegotiate_check(s);
if (SSL_in_init(s) || SSL_in_before(s)) { if (SSL_in_init(s) || SSL_in_before(s)) {
#ifndef OPENSSL_NO_ASYNC
if ((s->mode & SSL_MODE_ASYNC) && ASYNC_get_current_job() == NULL) { if ((s->mode & SSL_MODE_ASYNC) && ASYNC_get_current_job() == NULL) {
struct ssl_async_args args; struct ssl_async_args args;
args.s = s; args.s = s;
ret = ssl_start_async_job(s, &args, ssl_do_handshake_intern); ret = ssl_start_async_job(s, &args, ssl_do_handshake_intern);
} else { } else
#endif
ret = s->handshake_func(s); ret = s->handshake_func(s);
} }
}
return ret; return ret;
} }

View File

@@ -724,15 +724,15 @@ static const version_info tls_version_table[] = {
#else #else
{TLS1_VERSION, NULL, NULL}, {TLS1_VERSION, NULL, NULL},
#endif #endif
#ifndef OPENSSL_NO_SSL3
{SSL3_VERSION, sslv3_client_method, sslv3_server_method},
#else
{SSL3_VERSION, NULL, NULL},
#endif
#ifndef OPENSSL_NO_GMTLS #ifndef OPENSSL_NO_GMTLS
{GMTLS_VERSION, gmtls_client_method, gmtls_server_method}, {GMTLS_VERSION, gmtls_client_method, gmtls_server_method},
#else #else
{GMTLS_VERSION, NULL, NULL}, {GMTLS_VERSION, NULL, NULL},
#endif
#ifndef OPENSSL_NO_SSL3
{SSL3_VERSION, sslv3_client_method, sslv3_server_method},
#else
{SSL3_VERSION, NULL, NULL},
#endif #endif
{0, NULL, NULL}, {0, NULL, NULL},
}; };

View File

@@ -89,6 +89,11 @@ static const uint32_t default_ciphers_in_order[] = {
# endif # endif
#endif /* !OPENSSL_NO_TLS1_2 */ #endif /* !OPENSSL_NO_TLS1_2 */
#ifndef OPENSSL_NO_GMTLS
GMTLS_CK_ECDHE_SM2_WITH_SMS4_SHA256,
GMTLS_CK_ECDHE_SM2_WITH_SMS4_SM3,
#endif
#ifndef OPENSSL_NO_EC #ifndef OPENSSL_NO_EC
TLS1_CK_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, TLS1_CK_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,
TLS1_CK_ECDHE_RSA_WITH_AES_256_CBC_SHA, TLS1_CK_ECDHE_RSA_WITH_AES_256_CBC_SHA,
@@ -111,8 +116,23 @@ static const uint32_t default_ciphers_in_order[] = {
TLS1_CK_RSA_WITH_AES_128_SHA256, TLS1_CK_RSA_WITH_AES_128_SHA256,
#endif #endif
/* FIXME: the order shuold be reconsidered */
TLS1_CK_RSA_WITH_AES_256_SHA, TLS1_CK_RSA_WITH_AES_256_SHA,
#ifndef OPENSSL_NO_GMTLS
GMTLS_CK_SM9_WITH_SMS4_SM3,
GMTLS_CK_SM9DHE_WITH_SMS4_SM3,
GMTLS_CK_SM2_WITH_SMS4_SM3,
GMTLS_CK_SM2DHE_WITH_SMS4_SM3,
#endif
TLS1_CK_RSA_WITH_AES_128_SHA, TLS1_CK_RSA_WITH_AES_128_SHA,
#ifndef OPENSSL_NO_GMTLS
GMTLS_CK_RSA_WITH_SMS4_SHA1,
GMTLS_CK_RSA_WITH_SMS4_SM3,
#endif
}; };
static int test_default_cipherlist(SSL_CTX *ctx) static int test_default_cipherlist(SSL_CTX *ctx)

File diff suppressed because it is too large Load Diff

View File

@@ -1,411 +0,0 @@
SSL_export_keying_material 1 1_1_0d EXIST::FUNCTION:
SSL_get0_security_ex_data 2 1_1_0d EXIST::FUNCTION:
SSL_CTX_get_ex_data 3 1_1_0d EXIST::FUNCTION:
SSL_get_default_timeout 4 1_1_0d EXIST::FUNCTION:
SSL_get_srp_N 5 1_1_0d EXIST::FUNCTION:SRP
SSL_set_session 6 1_1_0d EXIST::FUNCTION:
SSL_set_not_resumable_session_callback 7 1_1_0d EXIST::FUNCTION:
SSL_CTX_sess_set_new_cb 8 1_1_0d EXIST::FUNCTION:
SSL_do_handshake 9 1_1_0d EXIST::FUNCTION:
SSL_get_options 10 1_1_0d EXIST::FUNCTION:
SSLv3_method 11 1_1_0d EXIST::FUNCTION:DEPRECATEDIN_1_1_0,SSL3_METHOD
SSL_client_version 12 1_1_0d EXIST::FUNCTION:
SSL_add_ssl_module 13 1_1_0d EXIST::FUNCTION:
SSL_get_client_ciphers 14 1_1_0d EXIST::FUNCTION:
SSL_get1_supported_ciphers 15 1_1_0d EXIST::FUNCTION:
SSL_get_session 16 1_1_0d EXIST::FUNCTION:
SSL_SESSION_get0_cipher 17 1_1_0d EXIST::FUNCTION:
SSL_use_RSAPrivateKey_file 18 1_1_0d EXIST::FUNCTION:RSA
SSL_CTX_set_session_id_context 19 1_1_0d EXIST::FUNCTION:
SSL_CTX_load_verify_locations 20 1_1_0d EXIST::FUNCTION:
SSL_CIPHER_standard_name 21 1_1_0d EXIST::FUNCTION:SSL_TRACE
SSL_get1_session 22 1_1_0d EXIST::FUNCTION:
SSL_shutdown 23 1_1_0d EXIST::FUNCTION:
SSL_set_session_id_context 24 1_1_0d EXIST::FUNCTION:
SSL_set_options 25 1_1_0d EXIST::FUNCTION:
TLSv1_server_method 26 1_1_0d EXIST::FUNCTION:DEPRECATEDIN_1_1_0,TLS1_METHOD
SSL_CONF_CTX_set_ssl 27 1_1_0d EXIST::FUNCTION:
SSL_set_srp_server_param_pw 28 1_1_0d EXIST::FUNCTION:SRP
SSL_CTX_set_verify_depth 29 1_1_0d EXIST::FUNCTION:
SSL_is_init_finished 30 1_1_0d EXIST::FUNCTION:
SSL_get0_peername 31 1_1_0d EXIST::FUNCTION:
SSL_get_client_CA_list 32 1_1_0d EXIST::FUNCTION:
SSL_renegotiate_abbreviated 33 1_1_0d EXIST::FUNCTION:
SSL_set_security_level 34 1_1_0d EXIST::FUNCTION:
SSL_CTX_sess_get_new_cb 35 1_1_0d EXIST::FUNCTION:
SSL_CTX_SRP_CTX_init 36 1_1_0d EXIST::FUNCTION:SRP
SSL_CTX_set_srp_verify_param_callback 37 1_1_0d EXIST::FUNCTION:SRP
SSL_COMP_get_compression_methods 38 1_1_0d EXIST::FUNCTION:
SSL_get_cipher_list 39 1_1_0d EXIST::FUNCTION:
SSL_CTX_get_options 40 1_1_0d EXIST::FUNCTION:
SSL_CTX_get_verify_callback 41 1_1_0d EXIST::FUNCTION:
SSL_CONF_cmd_argv 42 1_1_0d EXIST::FUNCTION:
SSL_SESSION_up_ref 43 1_1_0d EXIST::FUNCTION:
SSL_get_peer_cert_chain 44 1_1_0d EXIST::FUNCTION:
SSL_CTX_use_PrivateKey 45 1_1_0d EXIST::FUNCTION:
SSL_CTX_set_ssl_version 46 1_1_0d EXIST::FUNCTION:
SSL_use_PrivateKey_file 47 1_1_0d EXIST::FUNCTION:
SSL_callback_ctrl 48 1_1_0d EXIST::FUNCTION:
SSL_CTX_set_quiet_shutdown 49 1_1_0d EXIST::FUNCTION:
SSL_load_client_CA_file 50 1_1_0d EXIST::FUNCTION:
SSL_CTX_get_ssl_method 51 1_1_0d EXIST::FUNCTION:
SSL_COMP_get0_name 52 1_1_0d EXIST::FUNCTION:
SSL_CTX_set_cookie_generate_cb 53 1_1_0d EXIST::FUNCTION:
SSL_check_chain 54 1_1_0d EXIST::FUNCTION:
SSL_is_dtls 55 1_1_0d EXIST::FUNCTION:
SSL_CTX_ct_is_enabled 56 1_1_0d EXIST::FUNCTION:CT
SSL_CTX_clear_options 57 1_1_0d EXIST::FUNCTION:
SSL_CTX_has_client_custom_ext 58 1_1_0d EXIST::FUNCTION:
TLSv1_2_client_method 59 1_1_0d EXIST::FUNCTION:DEPRECATEDIN_1_1_0,TLS1_2_METHOD
SSL_get_quiet_shutdown 60 1_1_0d EXIST::FUNCTION:
SSL_get_psk_identity_hint 61 1_1_0d EXIST::FUNCTION:PSK
SSL_SESSION_has_ticket 62 1_1_0d EXIST::FUNCTION:
SSL_get0_dane_tlsa 63 1_1_0d EXIST::FUNCTION:
SSL_alert_type_string_long 64 1_1_0d EXIST::FUNCTION:
SSL_CTX_set_security_callback 65 1_1_0d EXIST::FUNCTION:
SSL_get_srp_username 66 1_1_0d EXIST::FUNCTION:SRP
SSL_rstate_string 67 1_1_0d EXIST::FUNCTION:
SSL_CTX_set_verify 68 1_1_0d EXIST::FUNCTION:
SSL_dane_tlsa_add 69 1_1_0d EXIST::FUNCTION:
SSL_get_read_ahead 70 1_1_0d EXIST::FUNCTION:
SSL_renegotiate_pending 71 1_1_0d EXIST::FUNCTION:
SSL_get_servername 72 1_1_0d EXIST::FUNCTION:
SSL_CTX_remove_session 73 1_1_0d EXIST::FUNCTION:
SSL_CONF_CTX_set1_prefix 74 1_1_0d EXIST::FUNCTION:
SSL_CTX_get0_certificate 75 1_1_0d EXIST::FUNCTION:
SSL_CIPHER_find 76 1_1_0d EXIST::FUNCTION:
SSL_COMP_set0_compression_methods 77 1_1_0d EXIST::FUNCTION:
SSL_CTX_set_client_CA_list 78 1_1_0d EXIST::FUNCTION:
SSL_get_verify_callback 79 1_1_0d EXIST::FUNCTION:
DTLSv1_2_server_method 80 1_1_0d EXIST::FUNCTION:DEPRECATEDIN_1_1_0,DTLS1_2_METHOD
SSL_get0_peer_scts 81 1_1_0d EXIST::FUNCTION:CT
SSL_set_cipher_list 82 1_1_0d EXIST::FUNCTION:
SSL_SESSION_get_protocol_version 83 1_1_0d EXIST::FUNCTION:
SSL_get_ex_data_X509_STORE_CTX_idx 84 1_1_0d EXIST::FUNCTION:
TLSv1_method 85 1_1_0d EXIST::FUNCTION:DEPRECATEDIN_1_1_0,TLS1_METHOD
SSL_CTX_get0_param 86 1_1_0d EXIST::FUNCTION:
SSL_is_server 87 1_1_0d EXIST::FUNCTION:
SSL_get_default_passwd_cb_userdata 88 1_1_0d EXIST::FUNCTION:
SSLv3_server_method 89 1_1_0d EXIST::FUNCTION:DEPRECATEDIN_1_1_0,SSL3_METHOD
SSL_get_wfd 90 1_1_0d EXIST::FUNCTION:
SSL_CTX_sess_set_remove_cb 91 1_1_0d EXIST::FUNCTION:
SSL_CTX_set_options 92 1_1_0d EXIST::FUNCTION:
SSL_CTX_get0_security_ex_data 93 1_1_0d EXIST::FUNCTION:
SSL_SESSION_set_ex_data 94 1_1_0d EXIST::FUNCTION:
PEM_read_SSL_SESSION 95 1_1_0d EXIST::FUNCTION:STDIO
SSL_get_verify_result 96 1_1_0d EXIST::FUNCTION:
SSL_get_state 97 1_1_0d EXIST::FUNCTION:
SSL_ctrl 98 1_1_0d EXIST::FUNCTION:
SSL_CONF_cmd_value_type 99 1_1_0d EXIST::FUNCTION:
DTLSv1_server_method 100 1_1_0d EXIST::FUNCTION:DEPRECATEDIN_1_1_0,DTLS1_METHOD
GMTLS_client_method 101 1_1_0d EXIST::FUNCTION:GMTLS
SSL_CTX_dane_set_flags 102 1_1_0d EXIST::FUNCTION:
SSL_set_alpn_protos 103 1_1_0d EXIST::FUNCTION:
SSL_CTX_set_ctlog_list_file 104 1_1_0d EXIST::FUNCTION:CT
SSL_CTX_ctrl 105 1_1_0d EXIST::FUNCTION:
SSL_get_rbio 106 1_1_0d EXIST::FUNCTION:
SSL_CTX_set_next_protos_advertised_cb 107 1_1_0d EXIST::FUNCTION:NEXTPROTONEG
SSL_CTX_set_default_verify_file 108 1_1_0d EXIST::FUNCTION:
SSL_dane_clear_flags 109 1_1_0d EXIST::FUNCTION:
SSL_CTX_get_client_CA_list 110 1_1_0d EXIST::FUNCTION:
TLS_method 111 1_1_0d EXIST::FUNCTION:
DTLSv1_method 112 1_1_0d EXIST::FUNCTION:DEPRECATEDIN_1_1_0,DTLS1_METHOD
SSL_CIPHER_get_id 113 1_1_0d EXIST::FUNCTION:
SSL_CTX_SRP_CTX_free 114 1_1_0d EXIST::FUNCTION:SRP
SSL_CIPHER_get_version 115 1_1_0d EXIST::FUNCTION:
SSL_use_certificate_chain_file 116 1_1_0d EXIST::FUNCTION:
BIO_new_buffer_ssl_connect 117 1_1_0d EXIST::FUNCTION:
SSL_CTX_add_client_custom_ext 118 1_1_0d EXIST::FUNCTION:
SSL_CONF_CTX_set_flags 119 1_1_0d EXIST::FUNCTION:
SSL_CTX_config 120 1_1_0d EXIST::FUNCTION:
BIO_ssl_copy_session_id 121 1_1_0d EXIST::FUNCTION:
SSL_waiting_for_async 122 1_1_0d EXIST::FUNCTION:
SSL_get_client_random 123 1_1_0d EXIST::FUNCTION:
SSL_set0_rbio 124 1_1_0d EXIST::FUNCTION:
SSL_clear_options 125 1_1_0d EXIST::FUNCTION:
SSL_set_client_CA_list 126 1_1_0d EXIST::FUNCTION:
SSL_is_gmtls 127 1_1_0d EXIST::FUNCTION:
SSL_add_client_CA 128 1_1_0d EXIST::FUNCTION:
SSL_set_purpose 129 1_1_0d EXIST::FUNCTION:
TLSv1_2_method 130 1_1_0d EXIST::FUNCTION:DEPRECATEDIN_1_1_0,TLS1_2_METHOD
SSL_CONF_CTX_set_ssl_ctx 131 1_1_0d EXIST::FUNCTION:
SSL_srp_server_param_with_username 132 1_1_0d EXIST::FUNCTION:SRP
SSL_CTX_get0_ctlog_store 133 1_1_0d EXIST::FUNCTION:CT
SSL_set_info_callback 134 1_1_0d EXIST::FUNCTION:
SSL_add1_host 135 1_1_0d EXIST::FUNCTION:
SSL_get_shared_sigalgs 136 1_1_0d EXIST::FUNCTION:
SSL_set0_security_ex_data 137 1_1_0d EXIST::FUNCTION:
SSL_CONF_CTX_clear_flags 138 1_1_0d EXIST::FUNCTION:
SSL_set_ct_validation_callback 139 1_1_0d EXIST::FUNCTION:CT
SSL_copy_session_id 140 1_1_0d EXIST::FUNCTION:
SSL_CTX_dane_clear_flags 141 1_1_0d EXIST::FUNCTION:
SSL_set_connect_state 142 1_1_0d EXIST::FUNCTION:
SSL_SESSION_get_compress_id 143 1_1_0d EXIST::FUNCTION:
SSL_get_all_async_fds 144 1_1_0d EXIST::FUNCTION:
SSL_set1_host 145 1_1_0d EXIST::FUNCTION:
SSL_set_ex_data 146 1_1_0d EXIST::FUNCTION:
SSL_state_string 147 1_1_0d EXIST::FUNCTION:
SSL_CTX_set_cert_store 148 1_1_0d EXIST::FUNCTION:
SSL_alert_desc_string 149 1_1_0d EXIST::FUNCTION:
SSL_CTX_set_alpn_protos 150 1_1_0d EXIST::FUNCTION:
SSL_extension_supported 151 1_1_0d EXIST::FUNCTION:
SSL_SESSION_get_ex_data 152 1_1_0d EXIST::FUNCTION:
SSL_get_security_callback 153 1_1_0d EXIST::FUNCTION:
SSL_CTX_use_PrivateKey_ASN1 154 1_1_0d EXIST::FUNCTION:
SSL_use_RSAPrivateKey_ASN1 155 1_1_0d EXIST::FUNCTION:RSA
SSL_COMP_get_id 156 1_1_0d EXIST::FUNCTION:
SSL_has_matching_session_id 157 1_1_0d EXIST::FUNCTION:
SSL_set_psk_client_callback 158 1_1_0d EXIST::FUNCTION:PSK
SSL_CTX_use_RSAPrivateKey_ASN1 159 1_1_0d EXIST::FUNCTION:RSA
SSL_set_hostflags 160 1_1_0d EXIST::FUNCTION:
GMTLS_method 161 1_1_0d EXIST::FUNCTION:GMTLS
SSL_SESSION_print_keylog 162 1_1_0d EXIST::FUNCTION:
i2d_SSL_SESSION 163 1_1_0d EXIST::FUNCTION:
SSL_SESSION_set1_id 164 1_1_0d EXIST::FUNCTION:
SSL_use_PrivateKey 165 1_1_0d EXIST::FUNCTION:
SSL_dane_set_flags 166 1_1_0d EXIST::FUNCTION:
SSL_CTX_get_default_passwd_cb_userdata 167 1_1_0d EXIST::FUNCTION:
SSL_read 168 1_1_0d EXIST::FUNCTION:
SSL_set_default_passwd_cb_userdata 169 1_1_0d EXIST::FUNCTION:
SSL_CTX_get_security_level 170 1_1_0d EXIST::FUNCTION:
SSL_use_PrivateKey_ASN1 171 1_1_0d EXIST::FUNCTION:
SSL_CTX_add_session 172 1_1_0d EXIST::FUNCTION:
SSL_get_fd 173 1_1_0d EXIST::FUNCTION:
SSL_CIPHER_description 174 1_1_0d EXIST::FUNCTION:
SSL_COMP_add_compression_method 175 1_1_0d EXIST::FUNCTION:
SSL_CTX_set_generate_session_id 176 1_1_0d EXIST::FUNCTION:
SSL_add_file_cert_subjects_to_stack 177 1_1_0d EXIST::FUNCTION:
SSL_CTX_get_verify_depth 178 1_1_0d EXIST::FUNCTION:
SSL_get_server_random 179 1_1_0d EXIST::FUNCTION:
SSL_get_changed_async_fds 180 1_1_0d EXIST::FUNCTION:
ERR_load_SSL_strings 181 1_1_0d EXIST::FUNCTION:
SSL_CTX_use_certificate 182 1_1_0d EXIST::FUNCTION:
SSL_ct_is_enabled 183 1_1_0d EXIST::FUNCTION:CT
SSL_SESSION_set_time 184 1_1_0d EXIST::FUNCTION:
SSL_rstate_string_long 185 1_1_0d EXIST::FUNCTION:
SSL_get_error 186 1_1_0d EXIST::FUNCTION:
SSL_set_tlsext_use_srtp 187 1_1_0d EXIST::FUNCTION:SRTP
SSL_CTX_set_purpose 188 1_1_0d EXIST::FUNCTION:
SSL_CTX_set_cookie_verify_cb 189 1_1_0d EXIST::FUNCTION:
SSL_trace 190 1_1_0d EXIST::FUNCTION:SSL_TRACE
SSL_session_reused 191 1_1_0d EXIST::FUNCTION:
SSL_use_psk_identity_hint 192 1_1_0d EXIST::FUNCTION:PSK
SSL_SESSION_get0_peer 193 1_1_0d EXIST::FUNCTION:
SSL_CTX_set_psk_server_callback 194 1_1_0d EXIST::FUNCTION:PSK
SSL_CTX_set_security_level 195 1_1_0d EXIST::FUNCTION:
SSL_get_current_compression 196 1_1_0d EXIST::FUNCTION:
SSL_SESSION_get_id 197 1_1_0d EXIST::FUNCTION:
SSL_CTX_set_default_ctlog_list_file 198 1_1_0d EXIST::FUNCTION:CT
SSL_get_certificate 199 1_1_0d EXIST::FUNCTION:
SSL_in_init 200 1_1_0d EXIST::FUNCTION:
SSL_CTX_set_cert_verify_callback 201 1_1_0d EXIST::FUNCTION:
SSL_get_psk_identity 202 1_1_0d EXIST::FUNCTION:PSK
SSL_CTX_set_srp_username_callback 203 1_1_0d EXIST::FUNCTION:SRP
SSL_CTX_use_RSAPrivateKey_file 204 1_1_0d EXIST::FUNCTION:RSA
SSL_get_shared_ciphers 205 1_1_0d EXIST::FUNCTION:
SSL_CTX_get_client_cert_cb 206 1_1_0d EXIST::FUNCTION:
SSL_get_verify_depth 207 1_1_0d EXIST::FUNCTION:
SSL_up_ref 208 1_1_0d EXIST::FUNCTION:
SSL_get0_alpn_selected 209 1_1_0d EXIST::FUNCTION:
SSL_set1_param 210 1_1_0d EXIST::FUNCTION:
DTLSv1_client_method 211 1_1_0d EXIST::FUNCTION:DEPRECATEDIN_1_1_0,DTLS1_METHOD
SSL_get_verify_mode 212 1_1_0d EXIST::FUNCTION:
SSL_CTX_get_security_callback 213 1_1_0d EXIST::FUNCTION:
PEM_write_SSL_SESSION 214 1_1_0d EXIST::FUNCTION:STDIO
SRP_Calc_A_param 215 1_1_0d EXIST::FUNCTION:SRP
SSL_CTX_set_not_resumable_session_callback 216 1_1_0d EXIST::FUNCTION:
DTLS_method 217 1_1_0d EXIST::FUNCTION:
SSL_dup 218 1_1_0d EXIST::FUNCTION:
SSL_CTX_dane_mtype_set 219 1_1_0d EXIST::FUNCTION:
SSL_CIPHER_get_bits 220 1_1_0d EXIST::FUNCTION:
SSL_SESSION_print 221 1_1_0d EXIST::FUNCTION:
SSL_CIPHER_get_kx_nid 222 1_1_0d EXIST::FUNCTION:
SSL_SESSION_print_fp 223 1_1_0d EXIST::FUNCTION:STDIO
SSL_set_SSL_CTX 224 1_1_0d EXIST::FUNCTION:
SSL_set_msg_callback 225 1_1_0d EXIST::FUNCTION:
SSL_dup_CA_list 226 1_1_0d EXIST::FUNCTION:
BIO_new_ssl 227 1_1_0d EXIST::FUNCTION:
SSL_set_trust 228 1_1_0d EXIST::FUNCTION:
SSL_CTX_use_psk_identity_hint 229 1_1_0d EXIST::FUNCTION:PSK
SSL_CONF_CTX_finish 230 1_1_0d EXIST::FUNCTION:
SSL_write 231 1_1_0d EXIST::FUNCTION:
SSL_set_wfd 232 1_1_0d EXIST::FUNCTION:SOCK
SSL_CTX_sessions 233 1_1_0d EXIST::FUNCTION:
SSL_CTX_use_RSAPrivateKey 234 1_1_0d EXIST::FUNCTION:RSA
SSL_SESSION_free 235 1_1_0d EXIST::FUNCTION:
SSL_get0_dane_authority 236 1_1_0d EXIST::FUNCTION:
SSL_set_cert_cb 237 1_1_0d EXIST::FUNCTION:
SSL_CTX_set_default_read_buffer_len 238 1_1_0d EXIST::FUNCTION:
SSL_set_psk_server_callback 239 1_1_0d EXIST::FUNCTION:PSK
SSL_CTX_set_alpn_select_cb 240 1_1_0d EXIST::FUNCTION:
SSL_config 241 1_1_0d EXIST::FUNCTION:
BIO_ssl_shutdown 242 1_1_0d EXIST::FUNCTION:
SSL_check_private_key 243 1_1_0d EXIST::FUNCTION:
SSL_alert_desc_string_long 244 1_1_0d EXIST::FUNCTION:
SSL_CTX_set_client_cert_engine 245 1_1_0d EXIST::FUNCTION:ENGINE
SSL_pending 246 1_1_0d EXIST::FUNCTION:
SSL_get_selected_srtp_profile 247 1_1_0d EXIST::FUNCTION:SRTP
SSL_CTX_set_srp_password 248 1_1_0d EXIST::FUNCTION:SRP
SSL_get_info_callback 249 1_1_0d EXIST::FUNCTION:
SSL_CTX_set_ct_validation_callback 250 1_1_0d EXIST::FUNCTION:CT
SSL_CIPHER_get_name 251 1_1_0d EXIST::FUNCTION:
SSL_CIPHER_get_digest_nid 252 1_1_0d EXIST::FUNCTION:
SSL_CTX_sess_get_get_cb 253 1_1_0d EXIST::FUNCTION:
SSL_set_quiet_shutdown 254 1_1_0d EXIST::FUNCTION:
OPENSSL_init_ssl 255 1_1_0d EXIST::FUNCTION:
SSL_CTX_set_srp_cb_arg 256 1_1_0d EXIST::FUNCTION:SRP
SSL_CTX_set_default_passwd_cb 257 1_1_0d EXIST::FUNCTION:
SSL_get_current_expansion 258 1_1_0d EXIST::FUNCTION:
SSL_CIPHER_get_cipher_nid 259 1_1_0d EXIST::FUNCTION:
SSL_get_sigalgs 260 1_1_0d EXIST::FUNCTION:
SSL_get0_param 261 1_1_0d EXIST::FUNCTION:
SSL_CTX_set_srp_strength 262 1_1_0d EXIST::FUNCTION:SRP
SSL_CTX_get_timeout 263 1_1_0d EXIST::FUNCTION:
SSL_accept 264 1_1_0d EXIST::FUNCTION:
SSL_CTX_set_ex_data 265 1_1_0d EXIST::FUNCTION:
SSL_SRP_CTX_free 266 1_1_0d EXIST::FUNCTION:SRP
SSL_enable_ct 267 1_1_0d EXIST::FUNCTION:CT
SSL_CTX_use_certificate_chain_file 268 1_1_0d EXIST::FUNCTION:
SSL_CTX_get0_privatekey 269 1_1_0d EXIST::FUNCTION:
SSL_CTX_set_srp_username 270 1_1_0d EXIST::FUNCTION:SRP
SSL_connect 271 1_1_0d EXIST::FUNCTION:
SSL_set_session_ticket_ext 272 1_1_0d EXIST::FUNCTION:
SSL_certs_clear 273 1_1_0d EXIST::FUNCTION:
SSL_CTX_set_srp_client_pwd_callback 274 1_1_0d EXIST::FUNCTION:SRP
SSL_peek 275 1_1_0d EXIST::FUNCTION:
SSL_set_security_callback 276 1_1_0d EXIST::FUNCTION:
SSL_get_servername_type 277 1_1_0d EXIST::FUNCTION:
SSL_SESSION_get_master_key 278 1_1_0d EXIST::FUNCTION:
SSL_CTX_use_serverinfo 279 1_1_0d EXIST::FUNCTION:
SSL_get_finished 280 1_1_0d EXIST::FUNCTION:
SSL_set_verify_result 281 1_1_0d EXIST::FUNCTION:
SSL_alert_type_string 282 1_1_0d EXIST::FUNCTION:
SSL_COMP_get_name 283 1_1_0d EXIST::FUNCTION:
TLSv1_1_method 284 1_1_0d EXIST::FUNCTION:DEPRECATEDIN_1_1_0,TLS1_1_METHOD
SSL_CTX_set0_security_ex_data 285 1_1_0d EXIST::FUNCTION:
DTLSv1_listen 286 1_1_0d EXIST::FUNCTION:SOCK
SSL_CTX_set_default_verify_paths 287 1_1_0d EXIST::FUNCTION:
SSL_CTX_set_tmp_dh_callback 288 1_1_0d EXIST::FUNCTION:DH
SSL_use_certificate 289 1_1_0d EXIST::FUNCTION:
SSL_CTX_enable_ct 290 1_1_0d EXIST::FUNCTION:CT
SSL_set_accept_state 291 1_1_0d EXIST::FUNCTION:
SSL_set_read_ahead 292 1_1_0d EXIST::FUNCTION:
SSL_CTX_new 293 1_1_0d EXIST::FUNCTION:
SSL_CTX_get_quiet_shutdown 294 1_1_0d EXIST::FUNCTION:
SSL_CTX_set_cipher_list 295 1_1_0d EXIST::FUNCTION:
SSL_get_privatekey 296 1_1_0d EXIST::FUNCTION:
SSL_CTX_set_cert_cb 297 1_1_0d EXIST::FUNCTION:
SSL_set_default_passwd_cb 298 1_1_0d EXIST::FUNCTION:
SSL_SESSION_new 299 1_1_0d EXIST::FUNCTION:
SSL_CTX_add_client_CA 300 1_1_0d EXIST::FUNCTION:
SSL_SESSION_get_time 301 1_1_0d EXIST::FUNCTION:
SSL_set_ssl_method 302 1_1_0d EXIST::FUNCTION:
SSL_CTX_set_client_cert_cb 303 1_1_0d EXIST::FUNCTION:
TLSv1_2_server_method 304 1_1_0d EXIST::FUNCTION:DEPRECATEDIN_1_1_0,TLS1_2_METHOD
d2i_SSL_SESSION 305 1_1_0d EXIST::FUNCTION:
SSL_CTX_flush_sessions 306 1_1_0d EXIST::FUNCTION:
SSL_new 307 1_1_0d EXIST::FUNCTION:
SSL_get_current_cipher 308 1_1_0d EXIST::FUNCTION:
SSL_get_ssl_method 309 1_1_0d EXIST::FUNCTION:
TLSv1_1_server_method 310 1_1_0d EXIST::FUNCTION:DEPRECATEDIN_1_1_0,TLS1_1_METHOD
SSL_free 311 1_1_0d EXIST::FUNCTION:
SSL_set_session_ticket_ext_cb 312 1_1_0d EXIST::FUNCTION:
GMTLS_server_method 313 1_1_0d EXIST::FUNCTION:GMTLS
SSL_set_shutdown 314 1_1_0d EXIST::FUNCTION:
SSL_set_default_read_buffer_len 315 1_1_0d EXIST::FUNCTION:
SSL_CTX_up_ref 316 1_1_0d EXIST::FUNCTION:
SSL_SESSION_set1_id_context 317 1_1_0d EXIST::FUNCTION:
SSL_CTX_set_info_callback 318 1_1_0d EXIST::FUNCTION:
SSL_has_pending 319 1_1_0d EXIST::FUNCTION:
DTLSv1_2_method 320 1_1_0d EXIST::FUNCTION:DEPRECATEDIN_1_1_0,DTLS1_2_METHOD
SSL_CONF_CTX_new 321 1_1_0d EXIST::FUNCTION:
SSL_CTX_use_certificate_ASN1 322 1_1_0d EXIST::FUNCTION:
SSL_get0_verified_chain 323 1_1_0d EXIST::FUNCTION:
BIO_f_ssl 324 1_1_0d EXIST::FUNCTION:
SSL_CTX_free 325 1_1_0d EXIST::FUNCTION:
SSL_get0_dane 326 1_1_0d EXIST::FUNCTION:
SSL_set_fd 327 1_1_0d EXIST::FUNCTION:SOCK
SSL_set_debug 328 1_1_0d EXIST::FUNCTION:DEPRECATEDIN_1_1_0
SSL_get_shutdown 329 1_1_0d EXIST::FUNCTION:
SSL_set_verify 330 1_1_0d EXIST::FUNCTION:
TLS_client_method 331 1_1_0d EXIST::FUNCTION:
DTLSv1_2_client_method 332 1_1_0d EXIST::FUNCTION:DEPRECATEDIN_1_1_0,DTLS1_2_METHOD
SSL_CTX_add_server_custom_ext 333 1_1_0d EXIST::FUNCTION:
SSL_SESSION_get_timeout 334 1_1_0d EXIST::FUNCTION:
PEM_write_bio_SSL_SESSION 335 1_1_0d EXIST::FUNCTION:
SSL_set0_wbio 336 1_1_0d EXIST::FUNCTION:
SSL_get_rfd 337 1_1_0d EXIST::FUNCTION:
SSL_CTX_set_next_proto_select_cb 338 1_1_0d EXIST::FUNCTION:NEXTPROTONEG
SSL_CTX_get_ciphers 339 1_1_0d EXIST::FUNCTION:
TLSv1_client_method 340 1_1_0d EXIST::FUNCTION:DEPRECATEDIN_1_1_0,TLS1_METHOD
SSL_in_before 341 1_1_0d EXIST::FUNCTION:
SSL_use_RSAPrivateKey 342 1_1_0d EXIST::FUNCTION:RSA
SSL_CTX_check_private_key 343 1_1_0d EXIST::FUNCTION:
SSL_get_peer_finished 344 1_1_0d EXIST::FUNCTION:
SSL_CTX_set_default_passwd_cb_userdata 345 1_1_0d EXIST::FUNCTION:
SSL_set_tmp_dh_callback 346 1_1_0d EXIST::FUNCTION:DH
SSL_get_srtp_profiles 347 1_1_0d EXIST::FUNCTION:SRTP
SSL_CTX_dane_enable 348 1_1_0d EXIST::FUNCTION:
SSL_add_dir_cert_subjects_to_stack 349 1_1_0d EXIST::FUNCTION:
SSL_get_SSL_CTX 350 1_1_0d EXIST::FUNCTION:
DTLS_server_method 351 1_1_0d EXIST::FUNCTION:
SSL_set_rfd 352 1_1_0d EXIST::FUNCTION:SOCK
SSL_get_version 353 1_1_0d EXIST::FUNCTION:
SSL_CTX_sess_set_get_cb 354 1_1_0d EXIST::FUNCTION:
SSL_get_srp_g 355 1_1_0d EXIST::FUNCTION:SRP
SSL_SESSION_get0_ticket 356 1_1_0d EXIST::FUNCTION:
DTLS_client_method 357 1_1_0d EXIST::FUNCTION:
BIO_new_ssl_connect 358 1_1_0d EXIST::FUNCTION:
SSL_clear 359 1_1_0d EXIST::FUNCTION:
SSL_CTX_set_trust 360 1_1_0d EXIST::FUNCTION:
SSL_SESSION_set_timeout 361 1_1_0d EXIST::FUNCTION:
SSL_version 362 1_1_0d EXIST::FUNCTION:
SSL_CTX_set_msg_callback 363 1_1_0d EXIST::FUNCTION:
TLSv1_1_client_method 364 1_1_0d EXIST::FUNCTION:DEPRECATEDIN_1_1_0,TLS1_1_METHOD
SSL_get_srp_userinfo 365 1_1_0d EXIST::FUNCTION:SRP
SSL_use_certificate_ASN1 366 1_1_0d EXIST::FUNCTION:
SSL_state_string_long 367 1_1_0d EXIST::FUNCTION:
SSL_CONF_CTX_free 368 1_1_0d EXIST::FUNCTION:
SSL_CTX_use_serverinfo_file 369 1_1_0d EXIST::FUNCTION:
SSL_get_ex_data 370 1_1_0d EXIST::FUNCTION:
SSL_CONF_cmd 371 1_1_0d EXIST::FUNCTION:
SSL_CTX_get_info_callback 372 1_1_0d EXIST::FUNCTION:
SSL_CTX_use_PrivateKey_file 373 1_1_0d EXIST::FUNCTION:
SSL_set_session_secret_cb 374 1_1_0d EXIST::FUNCTION:
SSL_CTX_get_cert_store 375 1_1_0d EXIST::FUNCTION:
SSL_get_security_level 376 1_1_0d EXIST::FUNCTION:
SSL_CTX_set0_ctlog_store 377 1_1_0d EXIST::FUNCTION:CT
SSL_CTX_set_default_verify_dir 378 1_1_0d EXIST::FUNCTION:
SSL_CTX_set_timeout 379 1_1_0d EXIST::FUNCTION:
SSL_CTX_set_psk_client_callback 380 1_1_0d EXIST::FUNCTION:PSK
SSL_SESSION_get0_id_context 381 1_1_0d EXIST::FUNCTION:
SSL_get_peer_certificate 382 1_1_0d EXIST::FUNCTION:
SSL_CTX_use_certificate_file 383 1_1_0d EXIST::FUNCTION:
SSL_SRP_CTX_init 384 1_1_0d EXIST::FUNCTION:SRP
SSL_get_wbio 385 1_1_0d EXIST::FUNCTION:
SSL_CIPHER_is_aead 386 1_1_0d EXIST::FUNCTION:
SSLv3_client_method 387 1_1_0d EXIST::FUNCTION:DEPRECATEDIN_1_1_0,SSL3_METHOD
SSL_SESSION_get_ticket_lifetime_hint 388 1_1_0d EXIST::FUNCTION:
SSL_want 389 1_1_0d EXIST::FUNCTION:
SSL_get_default_passwd_cb 390 1_1_0d EXIST::FUNCTION:
SSL_CTX_set_tlsext_use_srtp 391 1_1_0d EXIST::FUNCTION:SRTP
SSL_dane_enable 392 1_1_0d EXIST::FUNCTION:
SSL_get_ciphers 393 1_1_0d EXIST::FUNCTION:
SSL_set_srp_server_param 394 1_1_0d EXIST::FUNCTION:SRP
SSL_select_next_proto 395 1_1_0d EXIST::FUNCTION:
SSL_CIPHER_get_auth_nid 396 1_1_0d EXIST::FUNCTION:
SSL_CTX_set1_param 397 1_1_0d EXIST::FUNCTION:
SSL_set_bio 398 1_1_0d EXIST::FUNCTION:
SSL_CTX_get_verify_mode 399 1_1_0d EXIST::FUNCTION:
PEM_read_bio_SSL_SESSION 400 1_1_0d EXIST::FUNCTION:
SSL_set_verify_depth 401 1_1_0d EXIST::FUNCTION:
SSL_use_certificate_file 402 1_1_0d EXIST::FUNCTION:
SSL_test_functions 403 1_1_0d EXIST::FUNCTION:UNIT_TEST
SSL_CTX_sess_get_remove_cb 404 1_1_0d EXIST::FUNCTION:
SSL_SESSION_get0_hostname 405 1_1_0d EXIST::FUNCTION:
SSL_CTX_callback_ctrl 406 1_1_0d EXIST::FUNCTION:
SSL_get0_next_proto_negotiated 407 1_1_0d EXIST::FUNCTION:NEXTPROTONEG
SSL_set_generate_session_id 408 1_1_0d EXIST::FUNCTION:
SSL_CTX_get_default_passwd_cb 409 1_1_0d EXIST::FUNCTION:
TLS_server_method 410 1_1_0d EXIST::FUNCTION:
SSL_renegotiate 411 1_1_0d EXIST::FUNCTION: