remove ECRS, EC-Schnorr modules
This commit is contained in:
Zhi Guan
2019-06-13 17:02:51 +08:00
parent 246867fd2b
commit 24f8a17c63
27 changed files with 5769 additions and 6939 deletions

View File

@@ -314,7 +314,7 @@ $config{sdirs} = [
"cms", "ts", "srp", "cmac", "ct", "async", "kdf", "cms", "ts", "srp", "cmac", "ct", "async", "kdf",
"sm3", "base58", "sms4", "zuc", "serpent", "speck", "kdf2", "ffx", "otp", "sm3", "base58", "sms4", "zuc", "serpent", "speck", "kdf2", "ffx", "otp",
"ecies", "sm2", "cpk", "paillier", "ec2", "sm9", "bfibe", "bb1ibe", "ecies", "sm2", "cpk", "paillier", "ec2", "sm9", "bfibe", "bb1ibe",
"gmapi", "skf", "sdf", "saf", "sof", "ecrs" "gmapi", "skf", "sdf", "saf", "sof"
]; ];
# Known TLS and DTLS protocols # Known TLS and DTLS protocols
@@ -417,7 +417,6 @@ my @disablables = (
"ecies", "ecies",
"ffx", "ffx",
"sm2", "sm2",
"ecrs",
"paillier", "paillier",
"cpk", "cpk",
"otp", "otp",

View File

@@ -215,7 +215,6 @@ static ERR_STRING_DATA EC_str_functs[] = {
"EC_POINT_set_Jprojective_coordinates_GFp"}, "EC_POINT_set_Jprojective_coordinates_GFp"},
{ERR_FUNC(EC_F_EC_POINT_SET_TO_INFINITY), "EC_POINT_set_to_infinity"}, {ERR_FUNC(EC_F_EC_POINT_SET_TO_INFINITY), "EC_POINT_set_to_infinity"},
{ERR_FUNC(EC_F_EC_PRE_COMP_NEW), "ec_pre_comp_new"}, {ERR_FUNC(EC_F_EC_PRE_COMP_NEW), "ec_pre_comp_new"},
{ERR_FUNC(EC_F_EC_SCHNORR_SIGN), "ec_schnorr_sign"},
{ERR_FUNC(EC_F_EC_TYPE1CURVE_TATE), "EC_type1curve_tate"}, {ERR_FUNC(EC_F_EC_TYPE1CURVE_TATE), "EC_type1curve_tate"},
{ERR_FUNC(EC_F_EC_WNAF_MUL), "ec_wNAF_mul"}, {ERR_FUNC(EC_F_EC_WNAF_MUL), "ec_wNAF_mul"},
{ERR_FUNC(EC_F_EC_WNAF_PRECOMPUTE_MULT), "ec_wNAF_precompute_mult"}, {ERR_FUNC(EC_F_EC_WNAF_PRECOMPUTE_MULT), "ec_wNAF_precompute_mult"},

View File

@@ -1,2 +0,0 @@
LIBS=../../libcrypto
SOURCE[../../libcrypto]=ecrs_err.c ecrs_asn1.c ecrs_lib.c

View File

@@ -1,65 +0,0 @@
/* ====================================================================
* Copyright (c) 2014 - 2019 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 <openssl/asn1.h>
#include <openssl/asn1t.h>
#include <openssl/ecrs.h>
#include "./ecrs_lcl.h"
ASN1_SEQUENCE(ECRS_SIG) = {
ASN1_SIMPLE(ECRS_SIG, s, BIGNUM),
ASN1_SEQUENCE_OF(ECRS_SIG, c, BIGNUM),
} ASN1_SEQUENCE_END(ECRS_SIG)
IMPLEMENT_ASN1_FUNCTIONS(ECRS_SIG)
IMPLEMENT_ASN1_DUP_FUNCTION(ECRS_SIG)
int ECRS_size(const EC_KEY *ec_key, int n)
{
return 128 * n;
}

View File

@@ -1,52 +0,0 @@
/*
* Generated by util/mkerr.pl DO NOT EDIT
* Copyright 1995-2019 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
* https://www.openssl.org/source/license.html
*/
#include <stdio.h>
#include <openssl/err.h>
#include <openssl/ecrs.h>
/* BEGIN ERROR CODES */
#ifndef OPENSSL_NO_ERR
# define ERR_FUNC(func) ERR_PACK(ERR_LIB_ECRS,func,0)
# define ERR_REASON(reason) ERR_PACK(ERR_LIB_ECRS,0,reason)
static ERR_STRING_DATA ECRS_str_functs[] = {
{ERR_FUNC(ECRS_F_ECRS_DO_SIGN), "ECRS_do_sign"},
{ERR_FUNC(ECRS_F_ECRS_DO_VERIFY), "ECRS_do_verify"},
{ERR_FUNC(ECRS_F_ECRS_SIGN), "ECRS_sign"},
{ERR_FUNC(ECRS_F_ECRS_VERIFY), "ECRS_verify"},
{0, NULL}
};
static ERR_STRING_DATA ECRS_str_reasons[] = {
{ERR_REASON(ECRS_R_EC_KEY_NOT_MATCH), "ec key not match"},
{ERR_REASON(ECRS_R_INVALID_DIGEST_ALGOR), "invalid digest algor"},
{ERR_REASON(ECRS_R_NO_SIGNING_KEY), "no signing key"},
{ERR_REASON(ECRS_R_PARSE_SIGNATURE_FAILURE), "parse signature failure"},
{ERR_REASON(ECRS_R_PUBLIC_KEYS_NOT_MATCH), "public keys not match"},
{ERR_REASON(ECRS_R_PUBLIC_KEYS_NOT_MATCH_SIG),
"public keys not match sig"},
{0, NULL}
};
#endif
int ERR_load_ECRS_strings(void)
{
#ifndef OPENSSL_NO_ERR
if (ERR_func_error_string(ECRS_str_functs[0].error) == NULL) {
ERR_load_strings(0, ECRS_str_functs);
ERR_load_strings(0, ECRS_str_reasons);
}
#endif
return 1;
}

View File

@@ -1,56 +0,0 @@
/*
* Copyright (c) 2015 - 2019 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 <openssl/bn.h>
#include <openssl/stack.h>
struct ECRS_SIG_st {
BIGNUM *s;
STACK_OF(BIGNUM) *c;
};

View File

@@ -1,411 +0,0 @@
/*
* Copyright (c) 2015 - 2019 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 <openssl/err.h>
#include <openssl/ecrs.h>
#include "./ecrs_lcl.h"
ECRS_SIG *ECRS_do_sign(const EVP_MD *md, const unsigned char *dgst,
int dgstlen, STACK_OF(EC_KEY) *pub_keys, EC_KEY *ec_key)
{
ECRS_SIG *ret = NULL;
ECRS_SIG *sig = NULL;
const EC_GROUP *group;
const BIGNUM *order;
BIGNUM *ck = NULL; /* ref of STACK_OF(BIGNUM) elements, dont free */
BIGNUM *a = NULL;
BIGNUM *c = NULL;
BIGNUM *z = NULL;
BN_CTX *bn_ctx = NULL;
EC_POINT *R = NULL;
EC_POINT *T = NULL;
EVP_MD_CTX *mctx = NULL;
int form = POINT_CONVERSION_UNCOMPRESSED;
unsigned char buf[512];
unsigned char *p = buf;
unsigned int ulen;
size_t siz;
int len, i;
group = EC_KEY_get0_group(ec_key);
order = EC_GROUP_get0_order(group);
if (!(sig = ECRS_SIG_new())
|| !(sig->s = BN_new())
|| !(sig->c = sk_BIGNUM_new(NULL))
|| !(a = BN_new())
|| !(c = BN_new())
|| !(z = BN_new())
|| !(bn_ctx = BN_CTX_new())
|| !(R = EC_POINT_new(group))
|| !(T = EC_POINT_new(group))
|| !(mctx = EVP_MD_CTX_new())) {
ECRSerr(ECRS_F_ECRS_DO_SIGN, ERR_R_MALLOC_FAILURE);
goto end;
}
/* hash update ECParameters */
if (!(len = i2d_ECPKParameters(group, &p))) {
ECRSerr(ECRS_F_ECRS_DO_SIGN, ERR_R_EC_LIB);
goto end;
}
if (!EVP_DigestInit_ex(mctx, md, NULL)
|| !EVP_DigestUpdate(mctx, buf, len)) {
ECRSerr(ECRS_F_ECRS_DO_SIGN, ERR_R_EVP_LIB);
goto end;
}
/* a = rand(1, order) */
do {
if (!BN_rand_range(a, order)) {
ECRSerr(ECRS_F_ECRS_DO_SIGN, ERR_R_BN_LIB);
goto end;
}
} while (BN_is_zero(a));
/* R = [a]G */
if (!EC_POINT_mul(group, R, a, NULL, NULL, bn_ctx)) {
ECRSerr(ECRS_F_ECRS_DO_SIGN, ERR_R_EC_LIB);
goto end;
}
for (i = 0; i < sk_EC_KEY_num(pub_keys); i++) {
const EC_KEY *pub_key = sk_EC_KEY_value(pub_keys, i);
const EC_POINT *Pi = EC_KEY_get0_public_key(pub_key);
BIGNUM *ci;
/* check P_i */
if (EC_GROUP_cmp(EC_KEY_get0_group(pub_key), group, bn_ctx) != 0) {
ECRSerr(ECRS_F_ECRS_DO_SIGN, ECRS_R_EC_KEY_NOT_MATCH);
goto end;
}
/* hash update P_i = (x_i, y_i) */
if (!(siz = EC_POINT_point2oct(group, Pi, form, buf,
sizeof(buf), bn_ctx))) {
ECRSerr(ECRS_F_ECRS_DO_SIGN, ERR_R_EC_LIB);
goto end;
}
if (!EVP_DigestUpdate(mctx, buf + 1, siz - 1)) {
ECRSerr(ECRS_F_ECRS_DO_SIGN, ERR_R_EVP_LIB);
goto end;
}
/* create c_i */
if (!(ci = BN_new())) {
ECRSerr(ECRS_F_ECRS_DO_SIGN, ERR_R_MALLOC_FAILURE);
goto end;
}
sk_BIGNUM_push(sig->c, ci);
/* find signer's public key */
if (EC_POINT_cmp(group, Pi, EC_KEY_get0_public_key(ec_key),
bn_ctx) == 0) {
if (ck) {
ECRSerr(ECRS_F_ECRS_DO_SIGN, ERR_R_ECRS_LIB);
goto end;
}
ck = ci;
continue;
}
/* c_i = rand(1, order) */
do {
if (!BN_rand_range(ci, order)) {
ECRSerr(ECRS_F_ECRS_DO_SIGN, ERR_R_BN_LIB);
goto end;
}
} while (BN_is_zero(ci));
/* R = R + [c_i]P_i */
if (!EC_POINT_mul(group, T, NULL, Pi, ci, bn_ctx)
|| !EC_POINT_add(group, R, R, T, bn_ctx)) {
ECRSerr(ECRS_F_ECRS_DO_SIGN, ERR_R_EC_LIB);
goto end;
}
/* z = z + c_i */
if (!BN_mod_add(z, z, ci, order, bn_ctx)) {
ECRSerr(ECRS_F_ECRS_DO_SIGN, ERR_R_BN_LIB);
goto end;
}
}
/* no signing private key found */
if (!ck) {
ECRSerr(ECRS_F_ECRS_DO_SIGN, ECRS_R_NO_SIGNING_KEY);
goto end;
}
/* hash update dgst and R */
if (!(siz = EC_POINT_point2oct(group, R, form, buf, sizeof(buf),
bn_ctx))) {
ECRSerr(ECRS_F_ECRS_DO_SIGN, ERR_R_EC_LIB);
goto end;
}
if (!EVP_DigestUpdate(mctx, dgst, dgstlen)
|| !EVP_DigestUpdate(mctx, buf + 1, siz - 1)
|| !EVP_DigestFinal_ex(mctx, buf, &ulen)) {
ECRSerr(ECRS_F_ECRS_DO_SIGN, ERR_R_EVP_LIB);
goto end;
}
/* c = hash({Pi}, Hash(m), R) mod #G */
if (!BN_bin2bn(buf, ulen, c)) {
ECRSerr(ECRS_F_ECRS_DO_SIGN, ERR_R_BN_LIB);
goto end;
}
/* c_k = c - (c_0 + ... + c_{k-1} + c_{k+1} + ... + c_{n-1}) mod #G */
if (!BN_mod_sub(ck, c, z, order, bn_ctx)) {
ECRSerr(ECRS_F_ECRS_DO_SIGN, ERR_R_BN_LIB);
goto end;
}
/* sig->s = a - c_k * x_k mod #G */
if (!BN_mod_mul(sig->s, ck, EC_KEY_get0_private_key(ec_key), order, bn_ctx)
|| !BN_mod_sub(sig->s, a, sig->s, order, bn_ctx)) {
ECRSerr(ECRS_F_ECRS_DO_SIGN, ERR_R_BN_LIB);
goto end;
}
ret = sig;
sig = NULL;
end:
ECRS_SIG_free(sig);
BN_free(a);
BN_free(c);
BN_CTX_free(bn_ctx);
EC_POINT_free(R);
EC_POINT_free(T);
EVP_MD_CTX_free(mctx);
return ret;
}
/*
* Verify(m, sig=(s, c_0, ..., c_{n-1}, {P_i}):
* R = [s]G + [c_0]P_0 + ... + [c_{n-1}]P_{n-1}
* c = c_0 + ... + c_{n-1}
* h = Hash({P_i}, Hash(m), R)
* return c =?= h
*/
int ECRS_do_verify(const EVP_MD *md, const unsigned char *dgst, int dgstlen,
const ECRS_SIG *sig, STACK_OF(EC_KEY) *pub_keys)
{
int ret = -1;
const EC_GROUP *group = NULL;
const BIGNUM *order = NULL;
BIGNUM *c = NULL;
BIGNUM *h = NULL;
BN_CTX *bn_ctx = NULL;
EC_POINT *R = NULL;
EC_POINT *T = NULL;
EVP_MD_CTX *mctx = NULL;
int form = POINT_CONVERSION_UNCOMPRESSED;
unsigned char buf[512];
unsigned char *p = buf;
unsigned int ulen;
size_t siz;
int len, i;
if (sk_BIGNUM_num(sig->c) != sk_EC_KEY_num(pub_keys)) {
ECRSerr(ECRS_F_ECRS_DO_VERIFY, ECRS_R_PUBLIC_KEYS_NOT_MATCH_SIG);
return -1;
}
group = EC_KEY_get0_group(sk_EC_KEY_value(pub_keys, 0));
order = EC_GROUP_get0_order(group);
if (!(c = BN_new())
|| !(h = BN_new())
|| !(bn_ctx = BN_CTX_new())
|| !(R = EC_POINT_new(group))
|| !(T = EC_POINT_new(group))
|| !(mctx = EVP_MD_CTX_new())) {
ECRSerr(ECRS_F_ECRS_DO_VERIFY, ERR_R_MALLOC_FAILURE);
goto end;
}
/* hash update ECParameters */
/* hash update ECParameters */
if (!(len = i2d_ECPKParameters(group, &p))) {
ECRSerr(ECRS_F_ECRS_DO_VERIFY, ERR_R_EC_LIB);
goto end;
}
if (!EVP_DigestInit_ex(mctx, md, NULL)
|| !EVP_DigestUpdate(mctx, buf, len)) {
ECRSerr(ECRS_F_ECRS_DO_VERIFY, ERR_R_EVP_LIB);
goto end;
}
/* R = [s]G */
if (!EC_POINT_mul(group, R, sig->s, NULL, NULL, bn_ctx)) {
ECRSerr(ECRS_F_ECRS_DO_VERIFY, ERR_R_EC_LIB);
goto end;
}
for (i = 0; i < sk_BIGNUM_num(sig->c); i++) {
EC_KEY *ec_key = sk_EC_KEY_value(pub_keys, i);
const EC_POINT *Pi = EC_KEY_get0_public_key(ec_key);
BIGNUM *ci = sk_BIGNUM_value(sig->c, i);
/* check Pi */
if (EC_GROUP_cmp(EC_KEY_get0_group(ec_key), group, bn_ctx) != 0) {
ECRSerr(ECRS_F_ECRS_DO_VERIFY, ECRS_R_PUBLIC_KEYS_NOT_MATCH);
goto end;
}
/* hash update P_i = (x_i, y_i) */
if (!(siz = EC_POINT_point2oct(group, Pi, form, buf,
sizeof(buf), bn_ctx))) {
ECRSerr(ECRS_F_ECRS_DO_VERIFY, ERR_R_EC_LIB);
goto end;
}
if (!EVP_DigestUpdate(mctx, buf + 1, siz - 1)) {
ECRSerr(ECRS_F_ECRS_DO_VERIFY, ERR_R_EVP_LIB);
goto end;
}
/* R = R + [c_i]P_i */
if (!EC_POINT_mul(group, T, NULL, Pi, ci, bn_ctx)
|| !EC_POINT_add(group, R, R, T, bn_ctx)) {
ECRSerr(ECRS_F_ECRS_DO_VERIFY, ERR_R_EC_LIB);
goto end;
}
/* c = c + c_i mod #G */
if (!BN_mod_add(c, c, ci, order, bn_ctx)) {
ECRSerr(ECRS_F_ECRS_DO_VERIFY, ERR_R_BN_LIB);
goto end;
}
}
/* hash update dgst and R */
if (!(siz = EC_POINT_point2oct(group, R, form, buf, sizeof(buf),
bn_ctx))) {
ECRSerr(ECRS_F_ECRS_DO_VERIFY, ERR_R_EC_LIB);
goto end;
}
if (!EVP_DigestUpdate(mctx, dgst, dgstlen)
|| !EVP_DigestUpdate(mctx, buf + 1, siz - 1)
|| !EVP_DigestFinal_ex(mctx, buf, &ulen)) {
ECRSerr(ECRS_F_ECRS_DO_VERIFY, ERR_R_EVP_LIB);
goto end;
}
/* h = hash({Pi}, Hash(m), R) mod #G */
if (!BN_bin2bn(buf, ulen, h)) {
ECRSerr(ECRS_F_ECRS_DO_VERIFY, ERR_R_BN_LIB);
goto end;
}
//FIXME: h mod #G */
if (BN_cmp(h, c) == 0)
ret = 1;
else
ret = 0;
end:
BN_free(c);
BN_free(h);
BN_CTX_free(bn_ctx);
EC_POINT_free(R);
EC_POINT_free(T);
EVP_MD_CTX_free(mctx);
return ret;
}
int ECRS_sign(int type, const unsigned char *dgst, int dgstlen,
unsigned char *sig, unsigned int *siglen, STACK_OF(EC_KEY) *pub_keys,
EC_KEY *ec_key)
{
const EVP_MD *md;
ECRS_SIG *s = NULL;
if (!(md = EVP_get_digestbynid(type))) {
ECRSerr(ECRS_F_ECRS_SIGN, ECRS_R_INVALID_DIGEST_ALGOR);
return 0;
}
if (!(s = ECRS_do_sign(md, dgst, dgstlen, pub_keys, ec_key))) {
ECRSerr(ECRS_F_ECRS_SIGN, ERR_R_ECRS_LIB);
return 0;
}
*siglen = i2d_ECRS_SIG(s, &sig);
ECRS_SIG_free(s);
return 1;
}
int ECRS_verify(int type, const unsigned char *dgst, int dgstlen,
const unsigned char *sig, int siglen, STACK_OF(EC_KEY) *pub_keys)
{
const EVP_MD *md;
ECRS_SIG *s = NULL;
const unsigned char *p = sig;
int ret = -1;
if (!(s = d2i_ECRS_SIG(NULL, &p, siglen))) {
ECRSerr(ECRS_F_ECRS_VERIFY, ECRS_R_PARSE_SIGNATURE_FAILURE);
return -1;
}
if (p != sig + siglen) {
ECRSerr(ECRS_F_ECRS_VERIFY, ECRS_R_PARSE_SIGNATURE_FAILURE);
goto end;
}
ret = ECRS_do_verify(md, dgst, dgstlen, s, pub_keys);
end:
ECRS_SIG_free(s);
return ret;
}

View File

@@ -74,7 +74,6 @@ static ERR_STRING_DATA ERR_str_libraries[] = {
{ERR_PACK(ERR_LIB_SKF, 0, 0), "SKF routines"}, {ERR_PACK(ERR_LIB_SKF, 0, 0), "SKF routines"},
{ERR_PACK(ERR_LIB_SOF, 0, 0), "SOF routines"}, {ERR_PACK(ERR_LIB_SOF, 0, 0), "SOF routines"},
{ERR_PACK(ERR_LIB_BASE58, 0, 0), "BASE58 routines"}, {ERR_PACK(ERR_LIB_BASE58, 0, 0), "BASE58 routines"},
{ERR_PACK(ERR_LIB_ECRS, 0, 0), "ECRS routines"},
{0, NULL}, {0, NULL},
}; };
@@ -134,7 +133,6 @@ static ERR_STRING_DATA ERR_str_reasons[] = {
{ERR_R_SKF_LIB, "SKF lib"}, {ERR_R_SKF_LIB, "SKF lib"},
{ERR_R_SOF_LIB, "SOF lib"}, {ERR_R_SOF_LIB, "SOF lib"},
{ERR_R_BASE58_LIB, "BASE58 lib"}, {ERR_R_BASE58_LIB, "BASE58 lib"},
{ERR_R_ECRS_LIB, "ECRS lib"},
{ERR_R_NESTED_ASN1_ERROR, "nested asn1 error"}, {ERR_R_NESTED_ASN1_ERROR, "nested asn1 error"},
{ERR_R_MISSING_ASN1_EOS, "missing asn1 eos"}, {ERR_R_MISSING_ASN1_EOS, "missing asn1 eos"},

View File

@@ -108,9 +108,6 @@
#ifndef OPENSSL_NO_BASE58 #ifndef OPENSSL_NO_BASE58
# include <openssl/base58.h> # include <openssl/base58.h>
#endif #endif
#ifndef OPENSSL_NO_ECRS
# include <openssl/ecrs.h>
#endif
int err_load_crypto_strings_int(void) int err_load_crypto_strings_int(void)
@@ -221,9 +218,6 @@ int err_load_crypto_strings_int(void)
# ifndef OPENSSL_NO_BASE58 # ifndef OPENSSL_NO_BASE58
ERR_load_BASE58_strings() == 0 || ERR_load_BASE58_strings() == 0 ||
# endif # endif
# ifndef OPENSSL_NO_ECRS
ERR_load_ECRS_strings() == 0 ||
# endif
#endif #endif
ERR_load_KDF_strings() == 0) ERR_load_KDF_strings() == 0)
return 0; return 0;

View File

@@ -50,7 +50,6 @@ L SDF include/openssl/gmsdf.h crypto/sdf/sdf_err.c
L SKF include/openssl/gmskf.h crypto/skf/skf_err.c L SKF include/openssl/gmskf.h crypto/skf/skf_err.c
L SOF include/openssl/gmsof.h crypto/sof/sof_err.c L SOF include/openssl/gmsof.h crypto/sof/sof_err.c
L BASE58 include/openssl/base58.h crypto/base58/base58_err.c L BASE58 include/openssl/base58.h crypto/base58/base58_err.c
L ECRS include/openssl/ecrs.h crypto/ecrs/ecrs_err.c
# additional header files to be scanned for function names # additional header files to be scanned for function names
L NONE crypto/x509/x509_vfy.h NONE L NONE crypto/x509/x509_vfy.h NONE

View File

@@ -1,71 +0,0 @@
/*
* Copyright (c) 2015 - 2017 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/ec.h>
#include <openssl/err.h>
#include <openssl/asn1.h>
#include <openssl/asn1t.h>
#include <openssl/objects.h>
#include <openssl/obj_mac.h>
#include <openssl/ecschnorr.h>
#include "ecschnorr_lcl.h"
ASN1_SEQUENCE(ECSCHNORR_SIG) = {
ASN1_SIMPLE(ECSCHNORR_SIG, R, ASN1_OCTET_STRING),
ASN1_SIMPLE(ECSCHNORR_SIG, s, BIGNUM),
} ASN1_SEQUENCE_END(ECSCHNORR_SIG)
IMPLEMENT_ASN1_FUNCTIONS(ECSCHNORR_SIG)
IMPLEMENT_ASN1_DUP_FUNCTION(ECSCHNORR_SIG)
int ECSCHNORR_size(const EC_KEY *ec_key)
{
return 0;
}

View File

@@ -1,53 +0,0 @@
/*
* Copyright (c) 2015 - 2019 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.
*/
struct ECSCHNORR_SIG_st {
ASN1_OCTET_STRING *R; /* R = [k]G */
BIGNUM *s; /* s = k + e * x, e = H(R || P || M) */
};

View File

@@ -1,77 +0,0 @@
/* ====================================================================
* Copyright (c) 2015 - 2019 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 <openssl/ecschnorr.h>
#include "ecschnorr_lcl.h"
ECSCHNORR_SIG *ECSCHNORR_do_sign(const EVP_MD *md,
const unsigned char *dgst, int dgst_len, EC_KEY *ec_key)
{
return NULL;
}
int ECSCHNORR_do_verify(const EVP_MD *md,
const unsigned char *dgst, int dgstlen,
const ECSCHNORR_SIG *sig, EC_KEY *ec_key)
{
return -1;
}
int ECSCHNORR_sign(int type, const unsigned char *dgst, int dgstlen,
unsigned char *sig, unsigned int *siglen, EC_KEY *eckey)
{
return 0;
}
int ECSCHNORR_verify(int type, const unsigned char *dgst, int dgstlen,
const unsigned char *sig, int siglen, EC_KEY *ec_key)
{
return -1;
}

View File

@@ -46,6 +46,10 @@
* OF THE POSSIBILITY OF SUCH DAMAGE. * OF THE POSSIBILITY OF SUCH DAMAGE.
* ==================================================================== * ====================================================================
*/ */
/* This implementation is a very straitforward implementaton of the SM3
* specification without any optimization tricks. It is also designed
* as a standalone module that can be ported.
*/
#include <string.h> #include <string.h>
#include <openssl/sm3.h> #include <openssl/sm3.h>
@@ -53,6 +57,7 @@
void sm3_init(sm3_ctx_t *ctx) void sm3_init(sm3_ctx_t *ctx)
{ {
memset(ctx, 0, sizeof(*ctx));
ctx->digest[0] = 0x7380166F; ctx->digest[0] = 0x7380166F;
ctx->digest[1] = 0x4914B2B9; ctx->digest[1] = 0x4914B2B9;
ctx->digest[2] = 0x172442D7; ctx->digest[2] = 0x172442D7;
@@ -61,12 +66,9 @@ void sm3_init(sm3_ctx_t *ctx)
ctx->digest[5] = 0x163138AA; ctx->digest[5] = 0x163138AA;
ctx->digest[6] = 0xE38DEE4D; ctx->digest[6] = 0xE38DEE4D;
ctx->digest[7] = 0xB0FB0E4E; ctx->digest[7] = 0xB0FB0E4E;
ctx->nblocks = 0;
ctx->num = 0;
} }
void sm3_update(sm3_ctx_t *ctx, const unsigned char* data, size_t data_len) void sm3_update(sm3_ctx_t *ctx, const unsigned char *data, size_t data_len)
{ {
if (ctx->num) { if (ctx->num) {
unsigned int left = SM3_BLOCK_SIZE - ctx->num; unsigned int left = SM3_BLOCK_SIZE - ctx->num;
@@ -119,24 +121,20 @@ void sm3_final(sm3_ctx_t *ctx, unsigned char *digest)
} }
} }
#define ROTATELEFT(X,n) (((X)<<(n)) | ((X)>>(32-(n)))) #define ROTL(x,n) (((x)<<(n)) | ((x)>>(32-(n))))
#define P0(x) ((x) ^ ROTL((x), 9) ^ ROTL((x),17))
#define P1(x) ((x) ^ ROTL((x),15) ^ ROTL((x),23))
#define P0(x) ((x) ^ ROTATELEFT((x),9) ^ ROTATELEFT((x),17)) #define FF00(x,y,z) ((x) ^ (y) ^ (z))
#define P1(x) ((x) ^ ROTATELEFT((x),15) ^ ROTATELEFT((x),23)) #define FF16(x,y,z) (((x)&(y)) | ((x)&(z)) | ((y)&(z)))
#define GG00(x,y,z) ((x) ^ (y) ^ (z))
#define FF0(x,y,z) ( (x) ^ (y) ^ (z)) #define GG16(x,y,z) (((x)&(y)) | ((~(x))&(z)))
#define FF1(x,y,z) (((x) & (y)) | ( (x) & (z)) | ( (y) & (z)))
#define GG0(x,y,z) ( (x) ^ (y) ^ (z))
#define GG1(x,y,z) (((x) & (y)) | ( (~(x)) & (z)) )
#define T00 0x79CC4519
#define T16 0x7A879D8A
void sm3_compress(uint32_t digest[8], const unsigned char block[64]) void sm3_compress(uint32_t digest[8], const unsigned char block[64])
{ {
int j;
uint32_t W[68], W1[64];
const uint32_t *pblock = (const uint32_t *)block;
uint32_t A = digest[0]; uint32_t A = digest[0];
uint32_t B = digest[1]; uint32_t B = digest[1];
uint32_t C = digest[2]; uint32_t C = digest[2];
@@ -145,48 +143,48 @@ void sm3_compress(uint32_t digest[8], const unsigned char block[64])
uint32_t F = digest[5]; uint32_t F = digest[5];
uint32_t G = digest[6]; uint32_t G = digest[6];
uint32_t H = digest[7]; uint32_t H = digest[7];
uint32_t SS1,SS2,TT1,TT2,T[64]; const uint32_t *pblock = (const uint32_t *)block;
uint32_t W[68], W1[64];
uint32_t SS1, SS2, TT1, TT2;
int j;
for (j = 0; j < 16; j++)
W[j] = cpu_to_be32(pblock[j]);
for (; j < 68; j++)
W[j] = P1(W[j - 16] ^ W[j - 9] ^ ROTL(W[j - 3], 15))
^ ROTL(W[j - 13], 7) ^ W[j - 6];
for(j = 0; j < 64; j++)
W1[j] = W[j] ^ W[j + 4];
for (j = 0; j < 16; j++) { for (j = 0; j < 16; j++) {
W[j] = cpu_to_be32(pblock[j]); SS1 = ROTL((ROTL(A, 12) + E + ROTL(T00, j)), 7);
} SS2 = SS1 ^ ROTL(A, 12);
for (j = 16; j < 68; j++) { TT1 = FF00(A, B, C) + D + SS2 + W1[j];
W[j] = P1( W[j-16] ^ W[j-9] ^ ROTATELEFT(W[j-3],15)) ^ ROTATELEFT(W[j - 13],7 ) ^ W[j-6];; TT2 = GG00(E, F, G) + H + SS1 + W[j];
}
for( j = 0; j < 64; j++) {
W1[j] = W[j] ^ W[j+4];
}
for(j =0; j < 16; j++) {
T[j] = 0x79CC4519;
SS1 = ROTATELEFT((ROTATELEFT(A,12) + E + ROTATELEFT(T[j],j)), 7);
SS2 = SS1 ^ ROTATELEFT(A,12);
TT1 = FF0(A,B,C) + D + SS2 + W1[j];
TT2 = GG0(E,F,G) + H + SS1 + W[j];
D = C; D = C;
C = ROTATELEFT(B,9); C = ROTL(B, 9);
B = A; B = A;
A = TT1; A = TT1;
H = G; H = G;
G = ROTATELEFT(F,19); G = ROTL(F, 19);
F = E; F = E;
E = P0(TT2); E = P0(TT2);
} }
for(j =16; j < 64; j++) { for (; j < 64; j++) {
SS1 = ROTL((ROTL(A, 12) + E + ROTL(T16, j % 32)), 7);
T[j] = 0x7A879D8A; SS2 = SS1 ^ ROTL(A, 12);
SS1 = ROTATELEFT((ROTATELEFT(A,12) + E + ROTATELEFT(T[j],j%32)), 7); TT1 = FF16(A, B, C) + D + SS2 + W1[j];
SS2 = SS1 ^ ROTATELEFT(A,12); TT2 = GG16(E, F, G) + H + SS1 + W[j];
TT1 = FF1(A,B,C) + D + SS2 + W1[j];
TT2 = GG1(E,F,G) + H + SS1 + W[j];
D = C; D = C;
C = ROTATELEFT(B,9); C = ROTL(B, 9);
B = A; B = A;
A = TT1; A = TT1;
H = G; H = G;
G = ROTATELEFT(F,19); G = ROTL(F, 19);
F = E; F = E;
E = P0(TT2); E = P0(TT2);
} }
@@ -212,3 +210,18 @@ void sm3(const unsigned char *msg, size_t msglen,
memset(&ctx, 0, sizeof(sm3_ctx_t)); memset(&ctx, 0, sizeof(sm3_ctx_t));
} }
#define DATA_ORDER_IS_BIG_ENDIAN
#define HASH_LONG SM3_LONG
#define HASH_CTX SM3_CTX
#define HASH_CBLOCK SM3_CBLOCK

View File

@@ -122,4 +122,3 @@ void sm3_hmac(const unsigned char *data, size_t data_len,
sm3_hmac_final(&ctx, mac); sm3_hmac_final(&ctx, mac);
memset(&ctx, 0, sizeof(ctx)); memset(&ctx, 0, sizeof(ctx));
} }

View File

@@ -1,83 +0,0 @@
=pod
=encoding utf8
=head1 NAME
ECRS_SIG_new, ECRS_SIG_free,
i2d_ECRS_SIG, d2i_ECRS_SIG,
ECRS_do_sign, ECRS_do_verify,
ECRS_size, ECRS_sign, ECRS_verify - EC Ring Signature Algorithm
=head1 SYNOPSIS
#include <openssl/ecrs.h>
ECRS_SIG *ECRS_SIG_new(void);
void ECRS_SIG_free(ECRS_SIG *sig);
int i2d_ECRS_SIG(const ECRS_SIG *sig, unsigned char **pp);
ECRS_SIG *d2i_ECRS_SIG(ECRS_SIG **sig, const unsigned char **pp, long len);
ECRS_SIG *ECRS_do_sign(const EVP_MD *md,
const unsigned char *dgst, int dgstlen,
STACK_OF(EC_KEY) *pub_keys, EC_KEY *ec_key);
int ECRS_do_verify(const EVP_MD *md, const unsigned char *dgst, int dgstlen,
const ECRS_SIG *sig, STACK_OF(EC_KEY) *pub_keys);
int ECRS_size(const EC_KEY *ec_key, int n);
int ECRS_sign(int type, const unsigned char *dgst, int dgstlen,
unsigned char *sig, unsigned int *siglen,
STACK_OF(EC_KEY) *pub_keys, EC_KEY *ec_key);
int ECRS_verify(int type, const unsigned char *dgst, int dgstlen,
const unsigned char *sig, int siglen,
STACK_OF(EC_KEY) *pub_keys);
=head1 DESCRIPTION
Applications should use the higher level functions
L<EVP_DigestInit(3)> etc. instead of calling the hash
functions directly.
SM3 (ShangMi#3 Hash Algorithm) is a cryptographic hash function with a
256 bit output.
sm3() computes the SM3 message digest of the B<n>
bytes at B<d> and places it in B<md> (which must have space for
SHA_DIGEST_LENGTH == 20 bytes of output). If B<md> is NULL, the digest
is placed in a static array. Note: setting B<md> to NULL is B<not thread safe>.
The following functions may be used if the message is not completely
stored in memory:
sm3_nit() initializes a B<sm3_ctx_t> structure.
sm3_update() can be called repeatedly with chunks of the message to
be hashed (B<len> bytes at B<data>).
sm3_final() places the message digest in B<md>, which must have space
for SM3_DIGEST_LENGTH == 32 bytes of output, and erases the B<sm3_ctx_t>.
=head1 RETURN VALUES
sm3_init(), sm3_update(), sm3_final(), sm3_compress() and sm3() return void.
=head1 CONFORMING TO
GM/T 0004-2012 SM3 Cryptogrpahic Hash Algorithm.
=head1 SEE ALSO
L<EVP_DigestInit(3)>
=head1 COPYRIGHT
Copyright 2014-2019 The GmSSL Project. All Rights Reserved.
Licensed under the GmSSL 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
L<http://gmssl.org/license.html>.
=cut

View File

@@ -1386,189 +1386,188 @@ int ERR_load_EC_strings(void);
# define EC_F_D2I_ECPKPARAMETERS 103 # define EC_F_D2I_ECPKPARAMETERS 103
# define EC_F_D2I_ECPRIVATEKEY 104 # define EC_F_D2I_ECPRIVATEKEY 104
# define EC_F_DO_EC_KEY_PRINT 105 # define EC_F_DO_EC_KEY_PRINT 105
# define EC_F_ECAHE_CIPHERTEXT_SIZE 286 # define EC_F_ECAHE_CIPHERTEXT_SIZE 106
# define EC_F_ECAHE_DECRYPT 287 # define EC_F_ECAHE_DECRYPT 107
# define EC_F_ECAHE_ENCRYPT 288 # define EC_F_ECAHE_ENCRYPT 108
# define EC_F_ECDH_CMS_DECRYPT 106 # define EC_F_ECDH_CMS_DECRYPT 109
# define EC_F_ECDH_CMS_SET_SHARED_INFO 107 # define EC_F_ECDH_CMS_SET_SHARED_INFO 110
# define EC_F_ECDH_COMPUTE_KEY 108 # define EC_F_ECDH_COMPUTE_KEY 111
# define EC_F_ECDH_SIMPLE_COMPUTE_KEY 109 # define EC_F_ECDH_SIMPLE_COMPUTE_KEY 112
# define EC_F_ECDSA_DO_SIGN_EX 110 # define EC_F_ECDSA_DO_SIGN_EX 113
# define EC_F_ECDSA_DO_VERIFY 111 # define EC_F_ECDSA_DO_VERIFY 114
# define EC_F_ECDSA_SIGN_EX 112 # define EC_F_ECDSA_SIGN_EX 115
# define EC_F_ECDSA_SIGN_SETUP 113 # define EC_F_ECDSA_SIGN_SETUP 116
# define EC_F_ECDSA_SIG_NEW 114 # define EC_F_ECDSA_SIG_NEW 117
# define EC_F_ECDSA_VERIFY 115 # define EC_F_ECDSA_VERIFY 118
# define EC_F_ECIES_DECRYPT 116 # define EC_F_ECIES_DECRYPT 119
# define EC_F_ECIES_DO_DECRYPT 117 # define EC_F_ECIES_DO_DECRYPT 120
# define EC_F_ECIES_DO_ENCRYPT 118 # define EC_F_ECIES_DO_ENCRYPT 121
# define EC_F_ECIES_ENCRYPT 119 # define EC_F_ECIES_ENCRYPT 122
# define EC_F_ECIES_PARAMS_GET_ENC 120 # define EC_F_ECIES_PARAMS_GET_ENC 123
# define EC_F_ECIES_PARAMS_GET_KDF 121 # define EC_F_ECIES_PARAMS_GET_KDF 124
# define EC_F_ECIES_PARAMS_GET_MAC 122 # define EC_F_ECIES_PARAMS_GET_MAC 125
# define EC_F_ECIES_PARAMS_INIT_WITH_RECOMMENDED 123 # define EC_F_ECIES_PARAMS_INIT_WITH_RECOMMENDED 126
# define EC_F_ECIES_PARAMS_INIT_WITH_TYPE 124 # define EC_F_ECIES_PARAMS_INIT_WITH_TYPE 127
# define EC_F_ECKEY_PARAM2TYPE 125 # define EC_F_ECKEY_PARAM2TYPE 128
# define EC_F_ECKEY_PARAM_DECODE 126 # define EC_F_ECKEY_PARAM_DECODE 129
# define EC_F_ECKEY_PRIV_DECODE 127 # define EC_F_ECKEY_PRIV_DECODE 130
# define EC_F_ECKEY_PRIV_ENCODE 128 # define EC_F_ECKEY_PRIV_ENCODE 131
# define EC_F_ECKEY_PUB_DECODE 129 # define EC_F_ECKEY_PUB_DECODE 132
# define EC_F_ECKEY_PUB_ENCODE 130 # define EC_F_ECKEY_PUB_ENCODE 133
# define EC_F_ECKEY_TYPE2PARAM 131 # define EC_F_ECKEY_TYPE2PARAM 134
# define EC_F_ECPARAMETERS_PRINT_FP 132 # define EC_F_ECPARAMETERS_PRINT_FP 135
# define EC_F_ECPKPARAMETERS_PRINT 133 # define EC_F_ECPKPARAMETERS_PRINT 136
# define EC_F_ECPKPARAMETERS_PRINT_FP 134 # define EC_F_ECPKPARAMETERS_PRINT_FP 137
# define EC_F_ECP_NISTZ256_GET_AFFINE 135 # define EC_F_ECP_NISTZ256_GET_AFFINE 138
# define EC_F_ECP_NISTZ256_MULT_PRECOMPUTE 136 # define EC_F_ECP_NISTZ256_MULT_PRECOMPUTE 139
# define EC_F_ECP_NISTZ256_POINTS_MUL 137 # define EC_F_ECP_NISTZ256_POINTS_MUL 140
# define EC_F_ECP_NISTZ256_PRE_COMP_NEW 138 # define EC_F_ECP_NISTZ256_PRE_COMP_NEW 141
# define EC_F_ECP_NISTZ256_WINDOWED_MUL 139 # define EC_F_ECP_NISTZ256_WINDOWED_MUL 142
# define EC_F_ECP_SM2Z256_GET_AFFINE 140 # define EC_F_ECP_SM2Z256_GET_AFFINE 143
# define EC_F_ECP_SM2Z256_MULT_PRECOMPUTE 141 # define EC_F_ECP_SM2Z256_MULT_PRECOMPUTE 144
# define EC_F_ECP_SM2Z256_POINTS_MUL 142 # define EC_F_ECP_SM2Z256_POINTS_MUL 145
# define EC_F_ECP_SM2Z256_PRE_COMP_NEW 143 # define EC_F_ECP_SM2Z256_PRE_COMP_NEW 146
# define EC_F_ECP_SM2Z256_WINDOWED_MUL 144 # define EC_F_ECP_SM2Z256_WINDOWED_MUL 147
# define EC_F_ECX_KEY_OP 145 # define EC_F_ECX_KEY_OP 148
# define EC_F_ECX_PRIV_ENCODE 146 # define EC_F_ECX_PRIV_ENCODE 149
# define EC_F_ECX_PUB_ENCODE 147 # define EC_F_ECX_PUB_ENCODE 150
# define EC_F_EC_ASN1_GROUP2CURVE 148 # define EC_F_EC_ASN1_GROUP2CURVE 151
# define EC_F_EC_ASN1_GROUP2FIELDID 149 # define EC_F_EC_ASN1_GROUP2FIELDID 152
# define EC_F_EC_GF2M_MONTGOMERY_POINT_MULTIPLY 150 # define EC_F_EC_GF2M_MONTGOMERY_POINT_MULTIPLY 153
# define EC_F_EC_GF2M_SIMPLE_GROUP_CHECK_DISCRIMINANT 151 # define EC_F_EC_GF2M_SIMPLE_GROUP_CHECK_DISCRIMINANT 154
# define EC_F_EC_GF2M_SIMPLE_GROUP_SET_CURVE 152 # define EC_F_EC_GF2M_SIMPLE_GROUP_SET_CURVE 155
# define EC_F_EC_GF2M_SIMPLE_OCT2POINT 153 # define EC_F_EC_GF2M_SIMPLE_OCT2POINT 156
# define EC_F_EC_GF2M_SIMPLE_POINT2OCT 154 # define EC_F_EC_GF2M_SIMPLE_POINT2OCT 157
# define EC_F_EC_GF2M_SIMPLE_POINT_GET_AFFINE_COORDINATES 155 # define EC_F_EC_GF2M_SIMPLE_POINT_GET_AFFINE_COORDINATES 158
# define EC_F_EC_GF2M_SIMPLE_POINT_SET_AFFINE_COORDINATES 156 # define EC_F_EC_GF2M_SIMPLE_POINT_SET_AFFINE_COORDINATES 159
# define EC_F_EC_GF2M_SIMPLE_SET_COMPRESSED_COORDINATES 157 # define EC_F_EC_GF2M_SIMPLE_SET_COMPRESSED_COORDINATES 160
# define EC_F_EC_GFP_MONT_FIELD_DECODE 158 # define EC_F_EC_GFP_MONT_FIELD_DECODE 161
# define EC_F_EC_GFP_MONT_FIELD_ENCODE 159 # define EC_F_EC_GFP_MONT_FIELD_ENCODE 162
# define EC_F_EC_GFP_MONT_FIELD_MUL 160 # define EC_F_EC_GFP_MONT_FIELD_MUL 163
# define EC_F_EC_GFP_MONT_FIELD_SET_TO_ONE 161 # define EC_F_EC_GFP_MONT_FIELD_SET_TO_ONE 164
# define EC_F_EC_GFP_MONT_FIELD_SQR 162 # define EC_F_EC_GFP_MONT_FIELD_SQR 165
# define EC_F_EC_GFP_MONT_GROUP_SET_CURVE 163 # define EC_F_EC_GFP_MONT_GROUP_SET_CURVE 166
# define EC_F_EC_GFP_NISTP224_GROUP_SET_CURVE 164 # define EC_F_EC_GFP_NISTP224_GROUP_SET_CURVE 167
# define EC_F_EC_GFP_NISTP224_POINTS_MUL 165 # define EC_F_EC_GFP_NISTP224_POINTS_MUL 168
# define EC_F_EC_GFP_NISTP224_POINT_GET_AFFINE_COORDINATES 166 # define EC_F_EC_GFP_NISTP224_POINT_GET_AFFINE_COORDINATES 169
# define EC_F_EC_GFP_NISTP256_GROUP_SET_CURVE 167 # define EC_F_EC_GFP_NISTP256_GROUP_SET_CURVE 170
# define EC_F_EC_GFP_NISTP256_POINTS_MUL 168 # define EC_F_EC_GFP_NISTP256_POINTS_MUL 171
# define EC_F_EC_GFP_NISTP256_POINT_GET_AFFINE_COORDINATES 169 # define EC_F_EC_GFP_NISTP256_POINT_GET_AFFINE_COORDINATES 172
# define EC_F_EC_GFP_NISTP521_GROUP_SET_CURVE 170 # define EC_F_EC_GFP_NISTP521_GROUP_SET_CURVE 173
# define EC_F_EC_GFP_NISTP521_POINTS_MUL 171 # define EC_F_EC_GFP_NISTP521_POINTS_MUL 174
# define EC_F_EC_GFP_NISTP521_POINT_GET_AFFINE_COORDINATES 172 # define EC_F_EC_GFP_NISTP521_POINT_GET_AFFINE_COORDINATES 175
# define EC_F_EC_GFP_NIST_FIELD_MUL 173 # define EC_F_EC_GFP_NIST_FIELD_MUL 176
# define EC_F_EC_GFP_NIST_FIELD_SQR 174 # define EC_F_EC_GFP_NIST_FIELD_SQR 177
# define EC_F_EC_GFP_NIST_GROUP_SET_CURVE 175 # define EC_F_EC_GFP_NIST_GROUP_SET_CURVE 178
# define EC_F_EC_GFP_SIMPLE_GROUP_CHECK_DISCRIMINANT 176 # define EC_F_EC_GFP_SIMPLE_GROUP_CHECK_DISCRIMINANT 179
# define EC_F_EC_GFP_SIMPLE_GROUP_SET_CURVE 177 # define EC_F_EC_GFP_SIMPLE_GROUP_SET_CURVE 180
# define EC_F_EC_GFP_SIMPLE_MAKE_AFFINE 178 # define EC_F_EC_GFP_SIMPLE_MAKE_AFFINE 181
# define EC_F_EC_GFP_SIMPLE_OCT2POINT 179 # define EC_F_EC_GFP_SIMPLE_OCT2POINT 182
# define EC_F_EC_GFP_SIMPLE_POINT2OCT 180 # define EC_F_EC_GFP_SIMPLE_POINT2OCT 183
# define EC_F_EC_GFP_SIMPLE_POINTS_MAKE_AFFINE 181 # define EC_F_EC_GFP_SIMPLE_POINTS_MAKE_AFFINE 184
# define EC_F_EC_GFP_SIMPLE_POINT_GET_AFFINE_COORDINATES 182 # define EC_F_EC_GFP_SIMPLE_POINT_GET_AFFINE_COORDINATES 185
# define EC_F_EC_GFP_SIMPLE_POINT_SET_AFFINE_COORDINATES 183 # define EC_F_EC_GFP_SIMPLE_POINT_SET_AFFINE_COORDINATES 186
# define EC_F_EC_GFP_SIMPLE_SET_COMPRESSED_COORDINATES 184 # define EC_F_EC_GFP_SIMPLE_SET_COMPRESSED_COORDINATES 187
# define EC_F_EC_GFP_SM2P256_GROUP_SET_CURVE 280 # define EC_F_EC_GFP_SM2P256_GROUP_SET_CURVE 188
# define EC_F_EC_GFP_SM2P256_POINTS_MUL 281 # define EC_F_EC_GFP_SM2P256_POINTS_MUL 189
# define EC_F_EC_GFP_SM2P256_POINT_GET_AFFINE_COORDINATES 282 # define EC_F_EC_GFP_SM2P256_POINT_GET_AFFINE_COORDINATES 190
# define EC_F_EC_GROUP_CHECK 185 # define EC_F_EC_GROUP_CHECK 191
# define EC_F_EC_GROUP_CHECK_DISCRIMINANT 186 # define EC_F_EC_GROUP_CHECK_DISCRIMINANT 192
# define EC_F_EC_GROUP_COPY 187 # define EC_F_EC_GROUP_COPY 193
# define EC_F_EC_GROUP_GENERATE_TYPE1CURVE 188 # define EC_F_EC_GROUP_GENERATE_TYPE1CURVE 194
# define EC_F_EC_GROUP_GET_CURVE_GF2M 189 # define EC_F_EC_GROUP_GET_CURVE_GF2M 195
# define EC_F_EC_GROUP_GET_CURVE_GFP 190 # define EC_F_EC_GROUP_GET_CURVE_GFP 196
# define EC_F_EC_GROUP_GET_DEGREE 191 # define EC_F_EC_GROUP_GET_DEGREE 197
# define EC_F_EC_GROUP_GET_ECPARAMETERS 192 # define EC_F_EC_GROUP_GET_ECPARAMETERS 198
# define EC_F_EC_GROUP_GET_ECPKPARAMETERS 193 # define EC_F_EC_GROUP_GET_ECPKPARAMETERS 199
# define EC_F_EC_GROUP_GET_PENTANOMIAL_BASIS 194 # define EC_F_EC_GROUP_GET_PENTANOMIAL_BASIS 200
# define EC_F_EC_GROUP_GET_TRINOMIAL_BASIS 195 # define EC_F_EC_GROUP_GET_TRINOMIAL_BASIS 201
# define EC_F_EC_GROUP_GET_TYPE1CURVE_ETA 196 # define EC_F_EC_GROUP_GET_TYPE1CURVE_ETA 202
# define EC_F_EC_GROUP_GET_TYPE1CURVE_ZETA 197 # define EC_F_EC_GROUP_GET_TYPE1CURVE_ZETA 203
# define EC_F_EC_GROUP_IS_TYPE1CURVE 198 # define EC_F_EC_GROUP_IS_TYPE1CURVE 204
# define EC_F_EC_GROUP_NEW 199 # define EC_F_EC_GROUP_NEW 205
# define EC_F_EC_GROUP_NEW_BY_CURVE_NAME 200 # define EC_F_EC_GROUP_NEW_BY_CURVE_NAME 206
# define EC_F_EC_GROUP_NEW_FROM_DATA 201 # define EC_F_EC_GROUP_NEW_FROM_DATA 207
# define EC_F_EC_GROUP_NEW_FROM_ECPARAMETERS 202 # define EC_F_EC_GROUP_NEW_FROM_ECPARAMETERS 208
# define EC_F_EC_GROUP_NEW_FROM_ECPKPARAMETERS 203 # define EC_F_EC_GROUP_NEW_FROM_ECPKPARAMETERS 209
# define EC_F_EC_GROUP_NEW_TYPE1CURVE 204 # define EC_F_EC_GROUP_NEW_TYPE1CURVE 210
# define EC_F_EC_GROUP_SET_CURVE_GF2M 205 # define EC_F_EC_GROUP_SET_CURVE_GF2M 211
# define EC_F_EC_GROUP_SET_CURVE_GFP 206 # define EC_F_EC_GROUP_SET_CURVE_GFP 212
# define EC_F_EC_GROUP_SET_GENERATOR 207 # define EC_F_EC_GROUP_SET_GENERATOR 213
# define EC_F_EC_KEY_CHECK_KEY 208 # define EC_F_EC_KEY_CHECK_KEY 214
# define EC_F_EC_KEY_COPY 209 # define EC_F_EC_KEY_COPY 215
# define EC_F_EC_KEY_GENERATE_KEY 210 # define EC_F_EC_KEY_GENERATE_KEY 216
# define EC_F_EC_KEY_MERGE 285 # define EC_F_EC_KEY_MERGE 217
# define EC_F_EC_KEY_NEW_METHOD 211 # define EC_F_EC_KEY_NEW_METHOD 218
# define EC_F_EC_KEY_OCT2PRIV 212 # define EC_F_EC_KEY_OCT2PRIV 219
# define EC_F_EC_KEY_PRINT_FP 213 # define EC_F_EC_KEY_PRINT_FP 220
# define EC_F_EC_KEY_PRIV2OCT 214 # define EC_F_EC_KEY_PRIV2OCT 221
# define EC_F_EC_KEY_SET_PUBLIC_KEY_AFFINE_COORDINATES 215 # define EC_F_EC_KEY_SET_PUBLIC_KEY_AFFINE_COORDINATES 222
# define EC_F_EC_KEY_SIMPLE_CHECK_KEY 216 # define EC_F_EC_KEY_SIMPLE_CHECK_KEY 223
# define EC_F_EC_KEY_SIMPLE_OCT2PRIV 217 # define EC_F_EC_KEY_SIMPLE_OCT2PRIV 224
# define EC_F_EC_KEY_SIMPLE_PRIV2OCT 218 # define EC_F_EC_KEY_SIMPLE_PRIV2OCT 225
# define EC_F_EC_KEY_SPLIT 284 # define EC_F_EC_KEY_SPLIT 226
# define EC_F_EC_POINTS_MAKE_AFFINE 219 # define EC_F_EC_POINTS_MAKE_AFFINE 227
# define EC_F_EC_POINT_ADD 220 # define EC_F_EC_POINT_ADD 228
# define EC_F_EC_POINT_CMP 221 # define EC_F_EC_POINT_CMP 229
# define EC_F_EC_POINT_CMP_FPPOINT 222 # define EC_F_EC_POINT_CMP_FPPOINT 230
# define EC_F_EC_POINT_COPY 223 # define EC_F_EC_POINT_COPY 231
# define EC_F_EC_POINT_DBL 224 # define EC_F_EC_POINT_DBL 232
# define EC_F_EC_POINT_GET_AFFINE_COORDINATES_GF2M 225 # define EC_F_EC_POINT_GET_AFFINE_COORDINATES_GF2M 233
# define EC_F_EC_POINT_GET_AFFINE_COORDINATES_GFP 226 # define EC_F_EC_POINT_GET_AFFINE_COORDINATES_GFP 234
# define EC_F_EC_POINT_GET_JPROJECTIVE_COORDINATES_GFP 227 # define EC_F_EC_POINT_GET_JPROJECTIVE_COORDINATES_GFP 235
# define EC_F_EC_POINT_HASH2POINT 228 # define EC_F_EC_POINT_HASH2POINT 236
# define EC_F_EC_POINT_INVERT 229 # define EC_F_EC_POINT_INVERT 237
# define EC_F_EC_POINT_IS_AT_INFINITY 230 # define EC_F_EC_POINT_IS_AT_INFINITY 238
# define EC_F_EC_POINT_IS_ON_CURVE 231 # define EC_F_EC_POINT_IS_ON_CURVE 239
# define EC_F_EC_POINT_MAKE_AFFINE 232 # define EC_F_EC_POINT_MAKE_AFFINE 240
# define EC_F_EC_POINT_NEW 233 # define EC_F_EC_POINT_NEW 241
# define EC_F_EC_POINT_OCT2POINT 234 # define EC_F_EC_POINT_OCT2POINT 242
# define EC_F_EC_POINT_POINT2OCT 235 # define EC_F_EC_POINT_POINT2OCT 243
# define EC_F_EC_POINT_SET_AFFINE_COORDINATES_GF2M 236 # define EC_F_EC_POINT_SET_AFFINE_COORDINATES_GF2M 244
# define EC_F_EC_POINT_SET_AFFINE_COORDINATES_GFP 237 # define EC_F_EC_POINT_SET_AFFINE_COORDINATES_GFP 245
# define EC_F_EC_POINT_SET_COMPRESSED_COORDINATES_GF2M 238 # define EC_F_EC_POINT_SET_COMPRESSED_COORDINATES_GF2M 246
# define EC_F_EC_POINT_SET_COMPRESSED_COORDINATES_GFP 239 # define EC_F_EC_POINT_SET_COMPRESSED_COORDINATES_GFP 247
# define EC_F_EC_POINT_SET_JPROJECTIVE_COORDINATES_GFP 240 # define EC_F_EC_POINT_SET_JPROJECTIVE_COORDINATES_GFP 248
# define EC_F_EC_POINT_SET_TO_INFINITY 241 # define EC_F_EC_POINT_SET_TO_INFINITY 249
# define EC_F_EC_PRE_COMP_NEW 242 # define EC_F_EC_PRE_COMP_NEW 250
# define EC_F_EC_SCHNORR_SIGN 279 # define EC_F_EC_TYPE1CURVE_TATE 251
# define EC_F_EC_TYPE1CURVE_TATE 243 # define EC_F_EC_WNAF_MUL 252
# define EC_F_EC_WNAF_MUL 244 # define EC_F_EC_WNAF_PRECOMPUTE_MULT 253
# define EC_F_EC_WNAF_PRECOMPUTE_MULT 245 # define EC_F_I2D_ECIESPARAMETERS 254
# define EC_F_I2D_ECIESPARAMETERS 246 # define EC_F_I2D_ECPARAMETERS 255
# define EC_F_I2D_ECPARAMETERS 247 # define EC_F_I2D_ECPKPARAMETERS 256
# define EC_F_I2D_ECPKPARAMETERS 248 # define EC_F_I2D_ECPRIVATEKEY 257
# define EC_F_I2D_ECPRIVATEKEY 249 # define EC_F_I2O_ECPUBLICKEY 258
# define EC_F_I2O_ECPUBLICKEY 250 # define EC_F_NISTP224_PRE_COMP_NEW 259
# define EC_F_NISTP224_PRE_COMP_NEW 251 # define EC_F_NISTP256_PRE_COMP_NEW 260
# define EC_F_NISTP256_PRE_COMP_NEW 252 # define EC_F_NISTP521_PRE_COMP_NEW 261
# define EC_F_NISTP521_PRE_COMP_NEW 253 # define EC_F_O2I_ECPUBLICKEY 262
# define EC_F_O2I_ECPUBLICKEY 254 # define EC_F_OLD_EC_PRIV_DECODE 263
# define EC_F_OLD_EC_PRIV_DECODE 255 # define EC_F_OSSL_ECDH_COMPUTE_KEY 264
# define EC_F_OSSL_ECDH_COMPUTE_KEY 256 # define EC_F_OSSL_ECDSA_SIGN_SIG 265
# define EC_F_OSSL_ECDSA_SIGN_SIG 257 # define EC_F_OSSL_ECDSA_VERIFY_SIG 266
# define EC_F_OSSL_ECDSA_VERIFY_SIG 258 # define EC_F_PKEY_ECX_DERIVE 267
# define EC_F_PKEY_ECX_DERIVE 259 # define EC_F_PKEY_EC_CTRL 268
# define EC_F_PKEY_EC_CTRL 260 # define EC_F_PKEY_EC_CTRL_STR 269
# define EC_F_PKEY_EC_CTRL_STR 261 # define EC_F_PKEY_EC_DECRYPT 270
# define EC_F_PKEY_EC_DECRYPT 262 # define EC_F_PKEY_EC_DERIVE 271
# define EC_F_PKEY_EC_DERIVE 263 # define EC_F_PKEY_EC_ENCRYPT 272
# define EC_F_PKEY_EC_ENCRYPT 264 # define EC_F_PKEY_EC_KEYGEN 273
# define EC_F_PKEY_EC_KEYGEN 265 # define EC_F_PKEY_EC_PARAMGEN 274
# define EC_F_PKEY_EC_PARAMGEN 266 # define EC_F_PKEY_EC_SIGN 275
# define EC_F_PKEY_EC_SIGN 267 # define EC_F_SM2P256_PRE_COMP_NEW 276
# define EC_F_SM2P256_PRE_COMP_NEW 283 # define EC_F_SM2_COMPUTE_ID_DIGEST 277
# define EC_F_SM2_COMPUTE_ID_DIGEST 268 # define EC_F_SM2_COMPUTE_MESSAGE_DIGEST 278
# define EC_F_SM2_COMPUTE_MESSAGE_DIGEST 269 # define EC_F_SM2_DO_ENCRYPT 279
# define EC_F_SM2_DO_ENCRYPT 270 # define EC_F_SM2_GET_PUBLIC_KEY_DATA 280
# define EC_F_SM2_GET_PUBLIC_KEY_DATA 271 # define EC_F_SM2_KAP_COMPUTE_KEY 281
# define EC_F_SM2_KAP_COMPUTE_KEY 272 # define EC_F_SM2_KAP_CTX_INIT 282
# define EC_F_SM2_KAP_CTX_INIT 273 # define EC_F_SM2_KAP_FINAL_CHECK 283
# define EC_F_SM2_KAP_FINAL_CHECK 274 # define EC_F_SM2_KAP_PREPARE 284
# define EC_F_SM2_KAP_PREPARE 275 # define EC_F_TYPE1CURVE_EVAL_LINE_TEXTBOOK 285
# define EC_F_TYPE1CURVE_EVAL_LINE_TEXTBOOK 276 # define EC_F_TYPE1CURVE_EVAL_MILLER_TEXTBOOK 286
# define EC_F_TYPE1CURVE_EVAL_MILLER_TEXTBOOK 277 # define EC_F_TYPE1CURVE_PHI 287
# define EC_F_TYPE1CURVE_PHI 278
/* Reason codes. */ /* Reason codes. */
# define EC_R_ASN1_ERROR 100 # define EC_R_ASN1_ERROR 100
@@ -1635,41 +1634,41 @@ int ERR_load_EC_strings(void);
# define EC_R_INVALID_SM2_ID 161 # define EC_R_INVALID_SM2_ID 161
# define EC_R_INVALID_SM2_KAP_CHECKSUM_LENGTH 162 # define EC_R_INVALID_SM2_KAP_CHECKSUM_LENGTH 162
# define EC_R_INVALID_SM2_KAP_CHECKSUM_VALUE 163 # define EC_R_INVALID_SM2_KAP_CHECKSUM_VALUE 163
# define EC_R_INVALID_SPLIT_PARAMETER 198 # define EC_R_INVALID_SPLIT_PARAMETER 164
# define EC_R_INVALID_TRINOMIAL_BASIS 164 # define EC_R_INVALID_TRINOMIAL_BASIS 165
# define EC_R_INVALID_TYPE1CURVE 165 # define EC_R_INVALID_TYPE1CURVE 166
# define EC_R_INVALID_TYPE1_CURVE 166 # define EC_R_INVALID_TYPE1_CURVE 167
# define EC_R_INVLID_TYPE1CURVE 167 # define EC_R_INVLID_TYPE1CURVE 168
# define EC_R_KDF_PARAMETER_ERROR 168 # define EC_R_KDF_PARAMETER_ERROR 169
# define EC_R_KEYS_NOT_SET 169 # define EC_R_KEYS_NOT_SET 170
# define EC_R_MISSING_PARAMETERS 170 # define EC_R_MISSING_PARAMETERS 171
# define EC_R_MISSING_PRIVATE_KEY 171 # define EC_R_MISSING_PRIVATE_KEY 172
# define EC_R_NEED_NEW_SETUP_VALUES 172 # define EC_R_NEED_NEW_SETUP_VALUES 173
# define EC_R_NOT_A_NIST_PRIME 173 # define EC_R_NOT_A_NIST_PRIME 174
# define EC_R_NOT_IMPLEMENTED 174 # define EC_R_NOT_IMPLEMENTED 175
# define EC_R_NOT_INITIALIZED 175 # define EC_R_NOT_INITIALIZED 176
# define EC_R_NO_PARAMETERS_SET 176 # define EC_R_NO_PARAMETERS_SET 177
# define EC_R_NO_PRIVATE_VALUE 177 # define EC_R_NO_PRIVATE_VALUE 178
# define EC_R_OPERATION_NOT_SUPPORTED 178 # define EC_R_OPERATION_NOT_SUPPORTED 179
# define EC_R_PASSED_NULL_PARAMETER 179 # define EC_R_PASSED_NULL_PARAMETER 180
# define EC_R_PEER_KEY_ERROR 180 # define EC_R_PEER_KEY_ERROR 181
# define EC_R_PKPARAMETERS2GROUP_FAILURE 181 # define EC_R_PKPARAMETERS2GROUP_FAILURE 182
# define EC_R_POINT_ARITHMETIC_FAILURE 182 # define EC_R_POINT_ARITHMETIC_FAILURE 183
# define EC_R_POINT_AT_INFINITY 183 # define EC_R_POINT_AT_INFINITY 184
# define EC_R_POINT_IS_NOT_ON_CURVE 184 # define EC_R_POINT_IS_NOT_ON_CURVE 185
# define EC_R_RANDOM_NUMBER_GENERATION_FAILED 185 # define EC_R_RANDOM_NUMBER_GENERATION_FAILED 186
# define EC_R_SHARED_INFO_ERROR 186 # define EC_R_SHARED_INFO_ERROR 187
# define EC_R_SLOT_FULL 187 # define EC_R_SLOT_FULL 188
# define EC_R_SM2_DECRYPT_FAILED 188 # define EC_R_SM2_DECRYPT_FAILED 189
# define EC_R_SM2_ENCRYPT_FAILED 189 # define EC_R_SM2_ENCRYPT_FAILED 190
# define EC_R_SM2_KAP_NOT_INITED 190 # define EC_R_SM2_KAP_NOT_INITED 191
# define EC_R_UNDEFINED_GENERATOR 191 # define EC_R_UNDEFINED_GENERATOR 192
# define EC_R_UNDEFINED_ORDER 192 # define EC_R_UNDEFINED_ORDER 193
# define EC_R_UNKNOWN_GROUP 193 # define EC_R_UNKNOWN_GROUP 194
# define EC_R_UNKNOWN_ORDER 194 # define EC_R_UNKNOWN_ORDER 195
# define EC_R_UNSUPPORTED_FIELD 195 # define EC_R_UNSUPPORTED_FIELD 196
# define EC_R_WRONG_CURVE_PARAMETERS 196 # define EC_R_WRONG_CURVE_PARAMETERS 197
# define EC_R_WRONG_ORDER 197 # define EC_R_WRONG_ORDER 198
# ifdef __cplusplus # ifdef __cplusplus
} }

View File

@@ -1,112 +0,0 @@
/* ====================================================================
* Copyright (c) 2014 - 2019 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.
* ====================================================================
*/
#ifndef HEADER_ECRS_H
#define HEADER_ECRS_H
#include <openssl/opensslconf.h>
#ifndef OPENSSL_NO_ECRS
#include <openssl/ec.h>
#include <openssl/evp.h>
#include <openssl/asn1.h>
#include <openssl/asn1t.h>
#include <openssl/stack.h>
#ifdef __cplusplus
extern "C" {
#endif
typedef struct ECRS_SIG_st ECRS_SIG;
DECLARE_ASN1_FUNCTIONS(ECRS_SIG)
int ECRS_size(const EC_KEY *ec_key, int n);
ECRS_SIG *ECRS_do_sign(const EVP_MD *md, const unsigned char *dgst,
int dgstlen, STACK_OF(EC_KEY) *pub_keys, EC_KEY *ec_key);
int ECRS_do_verify(const EVP_MD *md, const unsigned char *dgst, int dgstlen,
const ECRS_SIG *sig, STACK_OF(EC_KEY) *pub_keys);
int ECRS_sign(int type, const unsigned char *dgst, int dgstlen,
unsigned char *sig, unsigned int *siglen, STACK_OF(EC_KEY) *pub_keys,
EC_KEY *ec_key);
int ECRS_verify(int type, const unsigned char *dgst, int dgstlen,
const unsigned char *sig, int siglen, STACK_OF(EC_KEY) *pub_keys);
/* BEGIN ERROR CODES */
/*
* The following lines are auto generated by the script mkerr.pl. Any changes
* made after this point may be overwritten when the script is next run.
*/
int ERR_load_ECRS_strings(void);
/* Error codes for the ECRS functions. */
/* Function codes. */
# define ECRS_F_ECRS_DO_SIGN 100
# define ECRS_F_ECRS_DO_VERIFY 103
# define ECRS_F_ECRS_SIGN 101
# define ECRS_F_ECRS_VERIFY 102
/* Reason codes. */
# define ECRS_R_EC_KEY_NOT_MATCH 100
# define ECRS_R_INVALID_DIGEST_ALGOR 101
# define ECRS_R_NO_SIGNING_KEY 102
# define ECRS_R_PARSE_SIGNATURE_FAILURE 103
# define ECRS_R_PUBLIC_KEYS_NOT_MATCH 104
# define ECRS_R_PUBLIC_KEYS_NOT_MATCH_SIG 105
# ifdef __cplusplus
}
# endif
# endif
#endif

View File

@@ -1,82 +0,0 @@
/* ====================================================================
* Copyright (c) 2015 - 2019 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.
* ====================================================================
*/
#ifndef HEADER_ECSCHNORR_H
#define HEADER_ECSCHNORR_H
#include <openssl/opensslconf.h>
#ifndef OPENSSL_NO_ECSCHNORR
#include <openssl/ec.h>
#include <openssl/err.h>
#include <openssl/evp.h>
#ifdef __cplusplus
extern "C" {
#endif
typedef struct ECSCHNORR_SIG_st ECSCHNORR_SIG;
DECLARE_ASN1_FUNCTIONS(ECSCHNORR_SIG)
/* return the maximum ec schnorr signature size */
int ECSCHNORR_size(const EC_KEY *ec_key);
ECSCHNORR_SIG *ECSCHNORR_do_sign(const EVP_MD *md,
const unsigned char *dgst, int dgst_len, EC_KEY *ec_key);
int ECSCHNORR_do_verify(const EVP_MD *md,
const unsigned char *dgst, int dgstlen,
const ECSCHNORR_SIG *sig, EC_KEY *ec_key);
int ECSCHNORR_sign(int type, const unsigned char *dgst, int dgstlen,
unsigned char *sig, unsigned int *siglen, EC_KEY *eckey);
int ECSCHNORR_verify(int type, const unsigned char *dgst, int dgstlen,
const unsigned char *sig, int siglen, EC_KEY *ec_key);
/* BEGIN ERROR CODES */

View File

@@ -108,7 +108,6 @@ typedef struct err_state_st {
# define ERR_LIB_SOF 65 # define ERR_LIB_SOF 65
# define ERR_LIB_SM2 66 # define ERR_LIB_SM2 66
# define ERR_LIB_BASE58 67 # define ERR_LIB_BASE58 67
# define ERR_LIB_ECRS 68
# define ERR_LIB_USER 128 # define ERR_LIB_USER 128
@@ -162,7 +161,6 @@ typedef struct err_state_st {
# define SKFerr(f,r) ERR_PUT_error(ERR_LIB_SKF,(f),(r),OPENSSL_FILE,OPENSSL_LINE) # define SKFerr(f,r) ERR_PUT_error(ERR_LIB_SKF,(f),(r),OPENSSL_FILE,OPENSSL_LINE)
# define SOFerr(f,r) ERR_PUT_error(ERR_LIB_SOF,(f),(r),OPENSSL_FILE,OPENSSL_LINE) # define SOFerr(f,r) ERR_PUT_error(ERR_LIB_SOF,(f),(r),OPENSSL_FILE,OPENSSL_LINE)
# define BASE58err(f,r) ERR_PUT_error(ERR_LIB_BASE58,(f),(r),OPENSSL_FILE,OPENSSL_LINE) # define BASE58err(f,r) ERR_PUT_error(ERR_LIB_BASE58,(f),(r),OPENSSL_FILE,OPENSSL_LINE)
# define ECRSerr(f,r) ERR_PUT_error(ERR_LIB_ECRS,(f),(r),OPENSSL_FILE,OPENSSL_LINE)
# define ERR_PACK(l,f,r) ( \ # define ERR_PACK(l,f,r) ( \
(((unsigned int)(l) & 0x0FF) << 24L) | \ (((unsigned int)(l) & 0x0FF) << 24L) | \
@@ -225,7 +223,6 @@ typedef struct err_state_st {
# define ERR_R_SKF_LIB ERR_LIB_SKF/* 64 */ # define ERR_R_SKF_LIB ERR_LIB_SKF/* 64 */
# define ERR_R_SOF_LIB ERR_LIB_SOF/* 65 */ # define ERR_R_SOF_LIB ERR_LIB_SOF/* 65 */
# define ERR_R_BASE58_LIB ERR_LIB_BASE58/* 67 */ # define ERR_R_BASE58_LIB ERR_LIB_BASE58/* 67 */
# define ERR_R_ECRS_LIB ERR_LIB_ECRS/* 68 */
# define ERR_R_NESTED_ASN1_ERROR 58 # define ERR_R_NESTED_ASN1_ERROR 58

View File

@@ -67,7 +67,7 @@
const char *prog = "gmssl"; const char *prog = "gmssl";
static bool identifiersInitialized = false; static bool identifiersInitialized = false;
#define GMSSL_VERSION "1.0" #define GMSSL_VERSION "GmSSL JavaScript API 1.0 Feb 3 2019"
#define GMSSL_PROPERTY_VERSION 0 #define GMSSL_PROPERTY_VERSION 0
#define GMSSL_NUM_PROPERTIES 1 #define GMSSL_NUM_PROPERTIES 1
@@ -84,9 +84,9 @@ static const NPUTF8 *gmsslPropertyNames[GMSSL_NUM_PROPERTIES] = {
static NPIdentifier gmsslMethodIdentifiers[GMSSL_NUM_METHODS]; static NPIdentifier gmsslMethodIdentifiers[GMSSL_NUM_METHODS];
static const NPUTF8 *gmsslMethodNames[GMSSL_NUM_METHODS] = { static const NPUTF8 *gmsslMethodNames[GMSSL_NUM_METHODS] = {
"keygen", "sm3",
"encrypt", "sm4cbcencrypt",
"decrypt", "sm4cbcdecrypt",
}; };
static bool do_keygen(const NPVariant algor, NPVariant *result); static bool do_keygen(const NPVariant algor, NPVariant *result);
@@ -190,7 +190,7 @@ static bool gmsslGetProperty(NPObject *obj, NPIdentifier name, NPVariant *varian
return false; return false;
} }
static bool gmsslSetProperty(NPObject *obj, NPIdentifier name, static bool gmsslSetProperty(NPObject *obj, NPIdentifier name,
const NPVariant *variant) const NPVariant *variant)
{ {
return false; return false;
@@ -217,9 +217,48 @@ NPClass *getGmSSLClass(void)
static bool do_keygen(const NPVariant algor, NPVariant *result) static bool do_keygen(const NPVariant algor, NPVariant *result)
{ {
bool ret = false; bool ret = false;
/* set the default return value */
NULL_TO_NPVARIANT(*result);
if (!NPVARIANT_IS_STRING(algor)) {
goto end;
}
if (!(alg_str = NPVARIANT_TO_STRING(algor).UTF8Characters)
|| strlen(alg_str) <= 0
|| !(alg =
return ret; return ret;
} }
static bool sms4_cbc_encrypt(const NPVariant plaintext, const NPVariant key, NPVariant *result)
{
}
static bool sms4_cbc_decrypt(const NPVariant plaintext, const NPVariant key, NPVariant *result)
{
}
static bool sm2_sign(const NPVariant dgst, const NPVariant key, NPVariant *result)
{
}
static bool sm2_sign(const NPVariant dgst, const NPVariant sig, const NPVariant key, NPVariant *result)
{
}
static bool sm2_encrypt(const NPVariant plaintext, const NPVariant key, NPVariant *result)
{
}
static bool sm2_decrypt(const NPVariant plaintext, const NPVariant key, NPVariant *result)
{
}
static bool do_encrypt(const NPVariant algor, const NPVariant plaintext, static bool do_encrypt(const NPVariant algor, const NPVariant plaintext,
const NPVariant pubkey, NPVariant *result) const NPVariant pubkey, NPVariant *result)
{ {

View File

@@ -21,7 +21,7 @@ IF[{- !$disabled{tests} -}]
pailliertest cpktest otptest gmapitest ec2test \ pailliertest cpktest otptest gmapitest ec2test \
bfibetest bb1ibetest sm9test \ bfibetest bb1ibetest sm9test \
saftest sdftest skftest softest zuctest \ saftest sdftest skftest softest zuctest \
serpenttest specktest base58test ecrstest serpenttest specktest base58test
SOURCE[aborttest]=aborttest.c SOURCE[aborttest]=aborttest.c
INCLUDE[aborttest]=../include INCLUDE[aborttest]=../include

View File

@@ -1,117 +0,0 @@
/* ====================================================================
* Copyright (c) 2014 - 2019 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 <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "../e_os.h"
#ifdef OPENSSL_NO_ECRS
int main(int argc, char **argv)
{
printf("No ECRS support\n");
return 0;
}
#else
# include <openssl/evp.h>
# include <openssl/err.h>
# include <openssl/ecrs.h>
# include <openssl/objects.h>
# define NUM_KEYS 5
int main(int argc, char **argv)
{
int err = 1;
STACK_OF(EC_KEY) *keys = NULL;
EC_KEY *ec_key = NULL;
int type = NID_sm3;
unsigned char dgst[32];
unsigned char sig[(NUM_KEYS + 1) * 80];
unsigned int siglen = sizeof(sig);
int i;
if (!(keys = sk_EC_KEY_new(NULL))) {
ERR_print_errors_fp(stderr);
goto end;
}
for (i = 0; i < NUM_KEYS; i++) {
if (!(ec_key = EC_KEY_new_by_curve_name(NID_sm2p256v1))) {
ERR_print_errors_fp(stderr);
goto end;
}
if (!EC_KEY_generate_key(ec_key)) {
ERR_print_errors_fp(stderr);
goto end;
}
sk_EC_KEY_push(keys, ec_key);
ec_key = NULL;
}
if (!ECRS_sign(type, dgst, sizeof(dgst), sig, &siglen, keys,
sk_EC_KEY_value(keys, 0))) {
ERR_print_errors_fp(stderr);
goto end;
}
if (1 != ECRS_verify(type, dgst, sizeof(dgst), sig, siglen, keys)) {
ERR_print_errors_fp(stderr);
goto end;
}
err = 0;
end:
sk_EC_KEY_free(keys);
EC_KEY_free(ec_key);
EXIT(err);
}
#endif

View File

@@ -1,12 +0,0 @@
#! /usr/bin/env perl
# Copyright 2015-2016 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
# https://www.openssl.org/source/license.html
use OpenSSL::Test::Simple;
simple_test("test_ecrs", "ecrstest", "ecrs");

File diff suppressed because it is too large Load Diff

View File

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

View File

@@ -135,7 +135,7 @@ my @known_algorithms = ( "RC2", "RC4", "RC5", "IDEA", "DES", "BF",
# GmSSL # GmSSL
"SM3", "SMS4", "KDF2", "ECIES", "FFX", "SM2", "PAILLIER", "CPK", "OTP", "GMAPI", "EC2", "SM3", "SMS4", "KDF2", "ECIES", "FFX", "SM2", "PAILLIER", "CPK", "OTP", "GMAPI", "EC2",
"BFIBE", "BB1IBE", "SM9", "SAF", "SDF", "SKF", "SOF", "ZUC", "SERPENT", "SPECK", "BASE58", "BFIBE", "BB1IBE", "SM9", "SAF", "SDF", "SKF", "SOF", "ZUC", "SERPENT", "SPECK", "BASE58",
"GMTLS", "GMTLS_METHOD", "CA", "MACRO", "ASYNC", "ECRS" "GMTLS", "GMTLS_METHOD", "CA", "MACRO", "ASYNC"
); );
my %disabled_algorithms; my %disabled_algorithms;
@@ -345,7 +345,6 @@ $crypto.=" include/openssl/ssf33.h";
$crypto.=" include/openssl/zuc.h"; $crypto.=" include/openssl/zuc.h";
$crypto.=" include/openssl/serpent.h"; $crypto.=" include/openssl/serpent.h";
$crypto.=" include/openssl/speck.h"; $crypto.=" include/openssl/speck.h";
$crypto.=" include/openssl/ecrs.h";
my $symhacks="include/openssl/symhacks.h"; my $symhacks="include/openssl/symhacks.h";