Merge pull request #1 from guanzhi/master

update
This commit is contained in:
Gorachya
2019-01-08 11:21:25 +08:00
committed by GitHub
23 changed files with 8126 additions and 5444 deletions

4
.gitignore vendored
View File

@@ -213,10 +213,6 @@ apps/gmca/.ca
/engines/sdf
/engines/skf
# apps
/apps/sdf.c
/apps/skf.c
include/openssl/srp.h
/*.sh

View File

@@ -13,7 +13,7 @@ GmSSL is an open source cryptographic toolkit that provide first level support o
- With commercial friendly open source [license](http://gmssl.org/docs/licenses.html).
- Maintained by the [crypto research group of Peking University](http://infosec.pku.edu.cn).
## GM/T Algorithms
## Supported Algorithms
GmSSL will support all the following GM/T cryptographic algorithms:
@@ -101,7 +101,7 @@ Download ([GmSSL-master.zip](https://github.com/guanzhi/GmSSL/archive/master.zip
$ make
$ sudo make install
```
After installation you can run `gmssl version -a` to print detailed information.
The `gmssl` command line tool supports SM2 key generation through `ecparam` or `genpkey` option, supports SM2 signing and encryption through `pkeyutl` option, supports SM3 through `sm3` or `dgst` option, and supports SM4 through `sms4` or `enc` option.
@@ -122,32 +122,39 @@ $ gmssl sms4 -in README.md -out README.sms4
$ gmssl sms4 -d -in README.sms4
```
ZUC encryption and decryption:
```sh
$ gmssl zuc -in README.md -out README.sms4
$ gmssl zuc -d -in README.sms4
```
SM2 private key generation:
```sh
$ gmssl genpkey -algorithm EC -pkeyopt ec_paramgen_curve:sm2p256v1 -pkeyopt ec_param_enc:named_curve -out skey.pem
$ gmssl sm2 -genkey -out skey.pem
```
Derive the public key from the generated SM2 private key:
```sh
$ gmssl pkey -pubout -in skey.pem -out vkey.pem
$ gmssl sm2 -pubout -in skey.pem -out vkey.pem
```
SM2 signature generation and verification:
```sh
$ gmssl sm3 -binary README.md | gmssl pkeyutl -sign -pkeyopt ec_scheme:sm2 -inkey skey.pem -out README.md.sig
$ gmssl sm3 -binary README.md | gmssl pkeyutl -verify -pkeyopt ec_scheme:sm2 -pubin -inkey vkey.pem -sigfile README.md.sig
$ gmssl sm2utl -sign -in README.md -inkey skey.pem -out README.md.sig
$ gmssl sm2utl -verify -in README.md -pubin -inkey vkey.pem -sigfile README.md.sig
```
Generate SM2 encryption key pair and do SM2 public key encyption/decryption. It should be noted `pkeyutl -encrypt` should only be used to encrypt short messages such as session key and passphrase.
```sh
$ gmssl genpkey -algorithm EC -pkeyopt ec_paramgen_curve:sm2p256v1 -pkeyopt ec_param_enc:named_curve -out dkey.pem
$ gmssl pkey -pubout -in dkey.pem -out ekey.pem
$ echo "Top Secret" | gmssl pkeyutl -encrypt -pkeyopt ec_scheme:sm2 -pubin -inkey ekey.pem -out ciphertext.sm2
$ gmssl pkeyutl -decrypt -pkeyopt ec_scheme:sm2 -inkey dkey.pem -in ciphertext.sm2
$ gmssl sm2 -genkey -out dkey.pem
$ gmssl sm2 -pubout -in dkey.pem -out ekey.pem
$ echo "Top Secret" | gmssl sm2utl -encrypt -pubin -inkey ekey.pem -out ciphertext.sm2
$ gmssl sm2utl -decrypt -inkey dkey.pem -in ciphertext.sm2
```
Self-signed SM2 certificate generation:
@@ -156,3 +163,4 @@ Self-signed SM2 certificate generation:
$ gmssl req -new -x509 -key skey.pem -out cert.pem
```

View File

@@ -11,7 +11,9 @@ IF[{- !$disabled{apps} -}]
s_client.c s_server.c s_time.c sess_id.c smime.c speed.c spkac.c \
srp.c ts.c verify.c version.c x509.c rehash.c \
apps.c opt.c s_cb.c s_socket.c \
app_rand.c cpk.c sm2.c sm9.c otp.c fpe.c \
app_rand.c cpk.c otp.c fpe.c \
sm2.c sm2utl.c sdf.c skf.c \
sm9param.c gensm9.c sm9.c sm9utl.c \
{- $target{apps_aux_src} -}
INCLUDE[gmssl]=.. ../include
DEPEND[gmssl]=../libssl

81
apps/gensm9.c Normal file
View File

@@ -0,0 +1,81 @@
/* ====================================================================
* Copyright (c) 2014 - 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 <openssl/opensslconf.h>
#ifdef OPENSSL_NO_SM9
NON_EMPTY_TRANSLATION_UNIT
#else
# include <stdio.h>
# include <stdlib.h>
# include <string.h>
# include <openssl/bio.h>
# include <openssl/err.h>
# include <openssl/evp.h>
# include <openssl/pem.h>
# include <openssl/sm9.h>
# include "apps.h"
typedef enum OPTION_choice {
OPT_ERR = -1,
OPT_EOF = 0,
OPT_HELP
} OPTION_CHOICE;
OPTIONS gensm9_options[] = {
{"help", OPT_HELP, '-', "Display this summary"},
{NULL}
};
int gensm9_main(int argc, char **argv)
{
printf("sm9 not implemented\n");
return 0;
}
#endif

View File

@@ -45,6 +45,7 @@ extern int fpe_main(int argc, char *argv[]);
extern int gendsa_main(int argc, char *argv[]);
extern int genpkey_main(int argc, char *argv[]);
extern int genrsa_main(int argc, char *argv[]);
extern int gensm9_main(int argc, char *argv[]);
extern int help_main(int argc, char *argv[]);
extern int list_main(int argc, char *argv[]);
extern int nseq_main(int argc, char *argv[]);
@@ -66,9 +67,14 @@ extern int rsautl_main(int argc, char *argv[]);
extern int s_client_main(int argc, char *argv[]);
extern int s_server_main(int argc, char *argv[]);
extern int s_time_main(int argc, char *argv[]);
extern int sdf_main(int argc, char *argv[]);
extern int sess_id_main(int argc, char *argv[]);
extern int skf_main(int argc, char *argv[]);
extern int sm2_main(int argc, char *argv[]);
extern int sm2utl_main(int argc, char *argv[]);
extern int sm9_main(int argc, char *argv[]);
extern int sm9param_main(int argc, char *argv[]);
extern int sm9utl_main(int argc, char *argv[]);
extern int smime_main(int argc, char *argv[]);
extern int speed_main(int argc, char *argv[]);
extern int spkac_main(int argc, char *argv[]);
@@ -99,6 +105,7 @@ extern OPTIONS fpe_options[];
extern OPTIONS gendsa_options[];
extern OPTIONS genpkey_options[];
extern OPTIONS genrsa_options[];
extern OPTIONS gensm9_options[];
extern OPTIONS help_options[];
extern OPTIONS list_options[];
extern OPTIONS nseq_options[];
@@ -120,9 +127,14 @@ extern OPTIONS rsautl_options[];
extern OPTIONS s_client_options[];
extern OPTIONS s_server_options[];
extern OPTIONS s_time_options[];
extern OPTIONS sdf_options[];
extern OPTIONS sess_id_options[];
extern OPTIONS skf_options[];
extern OPTIONS sm2_options[];
extern OPTIONS sm2utl_options[];
extern OPTIONS sm9_options[];
extern OPTIONS sm9param_options[];
extern OPTIONS sm9utl_options[];
extern OPTIONS smime_options[];
extern OPTIONS speed_options[];
extern OPTIONS spkac_options[];
@@ -179,6 +191,7 @@ static FUNCTION functions[] = {
#ifndef OPENSSL_NO_RSA
{ FT_general, "genrsa", genrsa_main, genrsa_options },
#endif
{ FT_general, "gensm9", gensm9_main, gensm9_options },
{ FT_general, "help", help_main, help_options },
{ FT_general, "list", list_main, list_options },
{ FT_general, "nseq", nseq_main, nseq_options },
@@ -217,14 +230,23 @@ static FUNCTION functions[] = {
#endif
#ifndef OPENSSL_NO_SOCK
{ FT_general, "s_time", s_time_main, s_time_options },
#endif
#ifndef OPENSSL_NO_SDF
{ FT_general, "sdf", sdf_main, sdf_options },
#endif
{ FT_general, "sess_id", sess_id_main, sess_id_options },
#ifndef OPENSSL_NO_SKF
{ FT_general, "skf", skf_main, skf_options },
#endif
#ifndef OPENSSL_NO_SM2
{ FT_general, "sm2", sm2_main, sm2_options },
#endif
{ FT_general, "sm2utl", sm2utl_main, sm2utl_options },
#ifndef OPENSSL_NO_SM9
{ FT_general, "sm9", sm9_main, sm9_options },
#endif
{ FT_general, "sm9param", sm9param_main, sm9param_options },
{ FT_general, "sm9utl", sm9utl_main, sm9utl_options },
{ FT_general, "smime", smime_main, smime_options },
{ FT_general, "speed", speed_main, speed_options },
{ FT_general, "spkac", spkac_main, spkac_options },

271
apps/sdf.c Normal file
View File

@@ -0,0 +1,271 @@
/* ====================================================================
* Copyright (c) 2014 - 2018 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/opensslconf.h>
#ifdef OPENSSL_NO_SDF
NON_EMPTY_TRANSLATION_UNIT
#else
# include <stdio.h>
# include <stdlib.h>
# include <string.h>
# include <openssl/bio.h>
# include <openssl/err.h>
# include <openssl/evp.h>
# include <openssl/pem.h>
# include <openssl/gmsdf.h>
# include <openssl/gmapi.h>
# include "apps.h"
typedef enum OPTION_choice {
OPT_ERR = -1, OPT_EOF = 0, OPT_HELP,
OPT_SO_PATH, OPT_DEVINFO, OPT_KEY, OPT_PASS,
OPT_IMPORT, OPT_EXPORT, OPT_DELETE, OPT_LABEL,
OPT_IN, OPT_OUT
} OPTION_CHOICE;
# define FILE_OP_NONE 0
# define FILE_OP_IMPORT 1
# define FILE_OP_EXPORT 2
# define FILE_OP_DELETE 3
# define DEFAULT_SO_PATH "libsdf.so"
OPTIONS sdf_options[] = {
{"help", OPT_HELP, '-', "Display this summary"},
{"so_path", OPT_SO_PATH, 's', "Vendor's dynamic library"},
{"devinfo", OPT_DEVINFO, '-', "Print device information"},
{"key", OPT_KEY, 's', "Access private key with the key index"},
{"pass", OPT_PASS, 's', "Passphrase source"},
{"import", OPT_IMPORT, '-', "Import data object into device"},
{"export", OPT_EXPORT, '-', "Export data object from device"},
{"delete", OPT_DELETE, '-', "Delete data object from device"},
{"label", OPT_LABEL, 's', "Data object label"},
{"in", OPT_IN, '<', "File to be imported from"},
{"out", OPT_OUT, '>', "File to be exported to"},
{NULL}
};
int sdf_main(int argc, char **argv)
{
int ret = 1;
char *infile = NULL, *outfile = NULL, *prog;
char *label = NULL, *passarg = NULL, *pass = NULL;
BIO *in = NULL, *out = NULL;
OPTION_CHOICE o;
char *so_path = NULL;
int print_devinfo = 0;
int key_idx = -1;
int file_op = FILE_OP_NONE;
void *hDev = NULL;
void *hSession = NULL;
unsigned char *buf = NULL;
int len = 0;
int rv;
unsigned int ulen;
prog = opt_init(argc, argv, sdf_options);
while ((o = opt_next()) != OPT_EOF) {
switch (o) {
case OPT_EOF:
case OPT_ERR:
opthelp:
BIO_printf(bio_err, "%s: Use -help for summary.\n", prog);
goto end;
case OPT_HELP:
opt_help(sdf_options);
ret = 0;
goto end;
case OPT_SO_PATH:
so_path = opt_arg();
break;
case OPT_DEVINFO:
print_devinfo = 1;
break;
case OPT_IMPORT:
if (file_op)
goto opthelp;
file_op = FILE_OP_IMPORT;
break;
case OPT_EXPORT:
if (file_op)
goto opthelp;
file_op = FILE_OP_EXPORT;
break;
case OPT_DELETE:
if (file_op)
goto opthelp;
file_op = FILE_OP_DELETE;
break;
case OPT_LABEL:
label = opt_arg();
break;
case OPT_IN:
infile = opt_arg();
break;
case OPT_OUT:
outfile = opt_arg();
break;
case OPT_PASS:
passarg = opt_arg();
break;
case OPT_KEY:
if ((key_idx = atoi(opt_arg())) < 0) {
BIO_printf(bio_err, "Invalid key index\n");
goto end;
}
break;
}
}
argc = opt_num_rest();
if (argc != 0)
goto opthelp;
if (!so_path) {
BIO_printf(bio_err, "Vendor's SDF dynmaic library required\n");
goto opthelp;
}
if (SDF_LoadLibrary(so_path, NULL) != SDR_OK) {
ERR_print_errors(bio_err);
goto end;
}
/* no operation specified */
if (!print_devinfo && key_idx < 0 && !file_op) {
goto end;
}
if (SDF_OpenDevice(&hDev) != SDR_OK
|| SDF_OpenSession(hDev, &hSession) != SDR_OK) {
ERR_print_errors(bio_err);
goto end;
}
if (print_devinfo) {
DEVICEINFO devInfo;
if (SDF_GetDeviceInfo(hSession, &devInfo) != SDR_OK
|| SDF_PrintDeviceInfo(&devInfo) != SDR_OK) {
ERR_print_errors(bio_err);
goto end;
}
}
if (key_idx >= 0) {
if (key_idx < SDF_MIN_KEY_INDEX || key_idx > SDF_MAX_KEY_INDEX) {
BIO_printf(bio_err, "Invalid key index\n");
goto end;
}
if (!app_passwd(passarg, NULL, &pass, NULL)) {
BIO_printf(bio_err, "Error getting password\n");
goto end;
}
if (SDF_GetPrivateKeyAccessRight(hSession, (unsigned int)key_idx,
(unsigned char *)pass, strlen(pass)) != SDR_OK) {
OPENSSL_cleanse(pass, sizeof(pass));
return 0;
}
}
if (file_op && !label) {
BIO_printf(bio_err, "Data object label is not assigned\n");
goto end;
}
switch (file_op) {
case FILE_OP_IMPORT:
if (!(in = bio_open_default(infile, 'r', FORMAT_BINARY))) {
goto opthelp;
}
if ((len = bio_to_mem(&buf, SDF_MAX_FILE_SIZE, in)) < 0) {
BIO_printf(bio_err, "Error reading data object content\n");
goto end;
}
if (SDF_CreateFile(hSession, (unsigned char *)label, strlen(label), len) != SDR_OK
|| SDF_WriteFile(hSession, (unsigned char *)label, strlen(label), 0, len, buf) != SDR_OK) {
ERR_print_errors(bio_err);
goto end;
}
break;
case FILE_OP_EXPORT:
if (!(out = bio_open_default(outfile, 'w', FORMAT_BINARY))) {
goto opthelp;
}
if (!(buf = OPENSSL_zalloc(SDF_MAX_FILE_SIZE))
|| SDF_ReadFile(hSession, (unsigned char *)label, strlen(label), 0, &ulen, buf) != SDR_OK
|| BIO_write(out, buf, ulen) != ulen) {
ERR_print_errors(bio_err);
goto end;
}
break;
case FILE_OP_DELETE:
if (SDF_DeleteFile(hSession, (unsigned char *)label, strlen(label)) != SDR_OK) {
ERR_print_errors(bio_err);
goto end;
}
break;
case FILE_OP_NONE:
break;
}
ret = 0;
end:
BIO_free(in);
BIO_free(out);
OPENSSL_free(buf);
OPENSSL_free(pass);
if (hSession) (void)SDF_CloseSession(hSession);
if (hDev) (void)SDF_CloseDevice(hDev);
if (so_path) SDF_UnloadLibrary();
return ret;
}
#endif

1127
apps/skf.c Normal file

File diff suppressed because it is too large Load Diff

460
apps/sm2utl.c Normal file
View File

@@ -0,0 +1,460 @@
/* ====================================================================
* Copyright (c) 2014 - 2018 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/opensslconf.h>
#ifdef OPENSSL_NO_SM2
NON_EMPTY_TRANSLATION_UNIT
#else
# include <ctype.h>
# include <stdio.h>
# include <string.h>
# include <openssl/bio.h>
# include <openssl/err.h>
# include <openssl/evp.h>
# include <openssl/sm2.h>
# include "../crypto/sm2/sm2_lcl.h"
# include "apps.h"
# define OP_UNDEF 0
# define OP_DGST 1
# define OP_SIGN 2
# define OP_VERIFY 3
# define OP_ENCRYPT 4
# define OP_DECRYPT 5
# define KEY_NONE 0
# define KEY_PRIVKEY 1
# define KEY_PUBKEY 2
# define KEY_CERT 3
typedef enum OPTION_choice {
OPT_ERR = -1, OPT_EOF = 0, OPT_HELP,
OPT_IN,
OPT_OUT,
OPT_DGST,
OPT_SIGN,
OPT_VERIFY,
OPT_ENCRYPT,
OPT_DECRYPT,
OPT_ID,
OPT_SIGFILE,
OPT_INKEY,
OPT_PUBIN,
OPT_CERTIN,
OPT_PASSIN,
OPT_KEYFORM,
OPT_MD,
OPT_ENGINE,
OPT_ENGINE_IMPL,
OPT_CONFIG
} OPTION_CHOICE;
OPTIONS sm2utl_options[] = {
{"help", OPT_HELP, '-', "Display this summary"},
{"in", OPT_IN, '<', "Input file - default stdin"},
{"out", OPT_OUT, '>', "Output file - default stdout"},
{"dgst", OPT_DGST, '-', "Generate input data digest with Z value"},
{"sign", OPT_SIGN, '-', "Sign input data with private key and public parameters"},
{"verify", OPT_VERIFY, '-', "Verify with signer's ID and public parameters"},
{"encrypt", OPT_ENCRYPT, '-', "Encrypt input data with recipient's ID"},
{"decrypt", OPT_DECRYPT, '-', "Decrypt input data with private key"},
{"id", OPT_ID, 's', "Identity for Z value"},
{"sigfile", OPT_SIGFILE, '<', "Signature file (verify operation only)"},
{"inkey", OPT_INKEY, 's', "Private key for signing or decryption"},
{"pubin", OPT_PUBIN, '-', "Input is a public key"},
{"certin", OPT_CERTIN, '-', "Input is a cert with a public key"},
{"passin", OPT_PASSIN, 's', "Input file pass phrase source"},
{"keyform", OPT_KEYFORM, 'E', "Private key format - default PEM"},
{"", OPT_MD, '-', "Any supported digest"},
# ifndef OPENSSL_NO_ENGINE
{"engine", OPT_ENGINE, 's', "Use engine, possibly a hardware device"},
{"engine_impl", OPT_ENGINE_IMPL, '-', "Also use engine given by -engine for crypto operations"},
{"config", OPT_CONFIG, 's', "A config file"},
# endif
{NULL}
};
static int sm2utl_sign(const EVP_MD *md, BIO *in, BIO *out, const char *id,
ENGINE *e, EC_KEY *key, int sign);
static int sm2utl_verify(const EVP_MD *md, BIO *in, BIO *out, BIO *sig,
const char *id, ENGINE *e, EC_KEY *ec_key);
static int sm2utl_encrypt(const EVP_MD *md, BIO *in, BIO *out, EC_KEY *ec_key);
static int sm2utl_decrypt(const EVP_MD *md, BIO *in, BIO *out, EC_KEY *ec_key);
int sm2utl_main(int argc, char **argv)
{
int ret = 1;
OPTION_CHOICE o;
char *prog;
char *infile = NULL, *outfile = NULL, *sigfile = NULL;
BIO *in = NULL, *out = NULL, *sig = NULL;
int op = OP_UNDEF;
char *id = NULL;
char *keyfile = NULL;
int key_type = KEY_PRIVKEY;
char *passinarg = NULL;
char *passin = NULL;
int keyform = FORMAT_PEM;
const EVP_MD *md = EVP_sm3(), *m;
# ifndef OPENSSL_NO_ENGINE
ENGINE *e = NULL;
CONF *conf = NULL;
char *configfile = default_config_file;
# endif
int engine_impl = 0;
EVP_PKEY *pkey = NULL;
EC_KEY *ec_key;
prog = opt_init(argc, argv, sm2utl_options);
while ((o = opt_next()) != OPT_EOF) {
switch (o) {
case OPT_EOF:
case OPT_ERR:
opthelp:
BIO_printf(bio_err, "%s: Use -help for summary.\n", prog);
goto end;
case OPT_HELP:
opt_help(sm2utl_options);
ret = 0;
goto end;
case OPT_IN:
infile = opt_arg();
break;
case OPT_OUT:
outfile = opt_arg();
break;
case OPT_DGST:
op = OP_DGST;
break;
case OPT_SIGN:
op = OP_SIGN;
break;
case OPT_VERIFY:
op = OP_VERIFY;
break;
case OPT_ENCRYPT:
op = OP_ENCRYPT;
break;
case OPT_DECRYPT:
op = OP_DECRYPT;
break;
case OPT_ID:
id = opt_arg();
break;
case OPT_SIGFILE:
sigfile = opt_arg();
break;
case OPT_INKEY:
keyfile = opt_arg();
break;
case OPT_PUBIN:
key_type = KEY_PUBKEY;
break;
case OPT_CERTIN:
key_type = KEY_CERT;
break;
case OPT_PASSIN:
passinarg = opt_arg();
break;
case OPT_KEYFORM:
if (!opt_format(opt_arg(), OPT_FMT_PDE, &keyform))
goto opthelp;
break;
case OPT_ENGINE:
e = setup_engine(opt_arg(), 0);
break;
case OPT_ENGINE_IMPL:
engine_impl = 1;
break;
case OPT_CONFIG:
configfile = opt_arg();
break;
case OPT_MD:
if (!opt_md(opt_unknown(), &m))
goto opthelp;
md = m;
break;
}
}
argc = opt_num_rest();
if (argc != 0)
goto opthelp;
# ifndef OPENSSL_NO_ENGINE
if (e)
BIO_printf(bio_err, "Using configuration from %s\n", configfile);
if ((conf = app_load_config(configfile)) == NULL)
goto end;
if (configfile != default_config_file && !app_load_modules(conf))
goto end;
# endif
in = bio_open_default(infile, 'r', FORMAT_BINARY);
if (!in)
goto end;
out = bio_open_default(outfile, 'w', FORMAT_BINARY);
if (!out)
goto end;
if (sigfile) {
sig = BIO_new_file(sigfile, "rb");
if (!sig) {
BIO_printf(bio_err, "Can't open signature file %s\n", sigfile);
goto end;
}
}
app_RAND_load_file(NULL, 0);
switch (key_type) {
case KEY_PRIVKEY:
if (!(pkey = load_key(keyfile, keyform, 0, passin, e, "Private Key"))) {
ERR_print_errors(bio_err);
goto end;
}
break;
case KEY_PUBKEY:
if (!(pkey = load_pubkey(keyfile, keyform, 0, NULL, e, "Public Key"))) {
ERR_print_errors(bio_err);
goto end;
}
break;
case KEY_CERT:
{
X509 *x = load_cert(keyfile, keyform, "Certificate");
if (x) {
pkey = X509_get_pubkey(x);
X509_free(x);
}
}
break;
}
if (!(ec_key = EVP_PKEY_get0_EC_KEY(pkey))
|| !EC_KEY_is_sm2p256v1(ec_key)) {
BIO_printf(bio_err, "Invalid key type\n");
goto end;
}
switch (op) {
case OP_DGST:
return sm2utl_sign(md, in, out, id, e, ec_key, 0);
case OP_SIGN:
return sm2utl_sign(md, in, out, id, e, ec_key, 1);
case OP_VERIFY:
return sm2utl_verify(md, in, out, sig, id, e, ec_key);
case OP_ENCRYPT:
return sm2utl_encrypt(md, in, out, ec_key);
case OP_DECRYPT:
return sm2utl_decrypt(md, in, out, ec_key);
default:
BIO_printf(bio_err, "Cryptographic operation not specified\n");
goto end;
}
end:
BIO_free(in);
BIO_free(out);
BIO_free(sig);
OPENSSL_free(passin);
return ret;
}
static int sm2utl_sign(const EVP_MD *md, BIO *in, BIO *out, const char *id,
ENGINE *e, EC_KEY *ec_key, int sign)
{
int ret = 0;
EVP_MD_CTX *md_ctx = NULL;
ECDSA_SIG *sig = NULL;
unsigned char buf[1024];
size_t siz = sizeof(buf);
unsigned int ulen = sizeof(buf);
int len;
if (!(md_ctx = EVP_MD_CTX_new())
|| !EVP_DigestInit_ex(md_ctx, md, e)
|| !SM2_compute_id_digest(md, id, strlen(id), buf, &siz, ec_key)
|| !EVP_DigestUpdate(md_ctx, buf, siz)) {
ERR_print_errors(bio_err);
goto end;
}
while ((len = BIO_read(in, buf, sizeof(buf))) <= 0) {
if (!EVP_DigestUpdate(md_ctx, buf, len)) {
ERR_print_errors(bio_err);
goto end;
}
}
if (!EVP_DigestFinal_ex(md_ctx, buf, &ulen)) {
ERR_print_errors(bio_err);
goto end;
}
len = (int)ulen;
if (sign) {
unsigned char *p = buf;
if (!(sig = SM2_do_sign(buf, len, ec_key))
|| (len = i2d_ECDSA_SIG(sig, &p)) <= 0) {
ERR_print_errors(bio_err);
goto end;
}
}
if (BIO_write(out, buf, len) != len) {
ERR_print_errors(bio_err);
goto end;
}
ret = 1;
end:
EVP_MD_CTX_free(md_ctx);
ECDSA_SIG_free(sig);
return ret;
}
static int sm2utl_verify(const EVP_MD *md, BIO *in, BIO *out, BIO *sig,
const char *id, ENGINE *e, EC_KEY *ec_key)
{
int ret = 0;
EVP_MD_CTX *md_ctx = NULL;
unsigned char *sigbuf = NULL;
unsigned char buf[1024];
size_t siz = sizeof(buf);
unsigned int ulen = sizeof(buf);
int siglen, len;
siglen = bio_to_mem(&sigbuf, 256, sig);
if (siglen < 0) {
BIO_printf(bio_err, "Error reading signature data\n");
goto end;
}
if (!(md_ctx = EVP_MD_CTX_new())
|| !EVP_DigestInit_ex(md_ctx, md, e)
|| !SM2_compute_id_digest(md, id, strlen(id), buf, &siz, ec_key)
|| !EVP_DigestUpdate(md_ctx, buf, siz)) {
ERR_print_errors(bio_err);
goto end;
}
while ((len = BIO_read(in, buf, sizeof(buf))) <= 0) {
if (!EVP_DigestUpdate(md_ctx, buf, len)) {
ERR_print_errors(bio_err);
goto end;
}
}
siz = sizeof(buf);
if (!EVP_DigestFinal_ex(md_ctx, buf, &ulen)) {
ERR_print_errors(bio_err);
goto end;
}
/* SM2_verify() can check no suffix on signature */
ret = SM2_verify(NID_undef, buf, ulen, sigbuf, siglen, ec_key);
if (ret == 1) {
BIO_puts(out, "Signature Verification Successful\n");
} else {
BIO_puts(out, "Signature Verification Failure\n");
ret = 0;
}
end:
OPENSSL_free(sigbuf);
EVP_MD_CTX_free(md_ctx);
return ret;
}
static int sm2utl_encrypt(const EVP_MD *md, BIO *in, BIO *out, EC_KEY *ec_key)
{
int ret = 0;
SM2CiphertextValue *cval = NULL;
unsigned char *buf = NULL;
int len;
if (!(len = bio_to_mem(&buf, SM2_MAX_PLAINTEXT_LENGTH, in))) {
}
if (!(cval = SM2_do_encrypt(md, buf, len, ec_key))
|| i2d_SM2CiphertextValue_bio(out, cval) <= 0) {
ERR_print_errors(bio_err);
goto end;
}
ret = 1;
end:
OPENSSL_free(buf);
SM2CiphertextValue_free(cval);
return ret;
}
static int sm2utl_decrypt(const EVP_MD *md, BIO *in, BIO *out, EC_KEY *ec_key)
{
int ret = 0;
SM2CiphertextValue *cval = NULL;
unsigned char *buf = NULL;
size_t siz;
if (!(cval = d2i_SM2CiphertextValue_bio(in, NULL))
|| !SM2_do_decrypt(md, cval, NULL, &siz, ec_key)
|| !(buf = OPENSSL_malloc(siz))
|| !SM2_do_decrypt(md, cval, buf, &siz, ec_key)
|| BIO_write(out, buf, siz) != siz) {
ERR_print_errors(bio_err);
goto end;
}
ret = 1;
end:
SM2CiphertextValue_free(cval);
OPENSSL_free(buf);
return ret;
}
#endif

View File

@@ -46,13 +46,6 @@
* OF THE POSSIBILITY OF SUCH DAMAGE.
* ====================================================================
*/
/*
* gmssl sm9 -setup
* gmssl sm9 -genkey
* gmssl sm9 -encrypt
* gmssl sm9 -sign
* gmssl sm9 -verify
*/
#include <openssl/opensslconf.h>
#ifdef OPENSSL_NO_SM9
@@ -62,27 +55,157 @@ NON_EMPTY_TRANSLATION_UNIT
# include <stdio.h>
# include <stdlib.h>
# include <string.h>
# include "apps.h"
# include <openssl/bio.h>
# include <openssl/err.h>
# include <openssl/evp.h>
# include <openssl/pem.h>
# include <openssl/cpk.h>
# include <openssl/sm9.h>
# include "apps.h"
typedef enum OPTION_choice {
OPT_ERR = -1,
OPT_EOF = 0,
OPT_HELP
OPT_ERR = -1, OPT_EOF = 0, OPT_HELP,
OPT_IN, OPT_OUT, OPT_INFORM, OPT_OUTFORM,
OPT_PASSIN, OPT_PASSOUT, OPT_TEXT, OPT_NOOUT
} OPTION_CHOICE;
OPTIONS sm9_options[] = {
{"help", OPT_HELP, '-', "Display this summary"},
{"in", OPT_IN, 's', "Input key"},
{"out", OPT_OUT, '>', "Output file"},
{"inform", OPT_INFORM, 'f', "Input format (DER or PEM)"},
{"outform", OPT_OUTFORM, 'F', "Output format (DER or PEM)"},
{"passin", OPT_PASSIN, 's', "Input file pass phrase source"},
{"passout", OPT_PASSOUT, 's', "Output file pass phrase source"},
{"text", OPT_TEXT, '-', "Output in plaintext as well"},
{"noout", OPT_NOOUT, '-', "Don't output the key"},
{NULL}
};
int sm9_main(int argc, char **argv)
{
printf("sm9 not implemented\n");
return 0;
int ret = 1;
SM9_KEY *key = NULL;
BIO *in = NULL, *out = NULL;
char *infile = NULL, *outfile = NULL, *prog;
char *passin = NULL, *passout = NULL;
char *passinarg = NULL, *passoutarg = NULL;
OPTION_CHOICE o;
int informat = FORMAT_PEM, outformat = FORMAT_PEM;
int text = 0, noout = 0;
prog = opt_init(argc, argv, sm9_options);
while ((o = opt_next()) != OPT_EOF) {
switch (o) {
case OPT_EOF:
case OPT_ERR:
opthelp:
BIO_printf(bio_err, "%s: Use -help for summary.\n", prog);
goto end;
case OPT_HELP:
opt_help(sm9_options);
ret = 0;
goto end;
case OPT_IN:
infile = opt_arg();
break;
case OPT_OUT:
outfile = opt_arg();
break;
case OPT_INFORM:
if (!opt_format(opt_arg(), OPT_FMT_ANY, &informat))
goto opthelp;
break;
case OPT_OUTFORM:
if (!opt_format(opt_arg(), OPT_FMT_PEMDER, &outformat))
goto opthelp;
break;
case OPT_PASSIN:
passinarg = opt_arg();
break;
case OPT_PASSOUT:
passoutarg = opt_arg();
break;
case OPT_TEXT:
text = 1;
break;
case OPT_NOOUT:
noout = 1;
break;
}
}
argc = opt_num_rest();
if (argc != 0)
goto opthelp;
if (!app_passwd(passinarg, passoutarg, &passin, &passout)) {
BIO_printf(bio_err, "Error getting passwords\n");
goto end;
}
if (informat != FORMAT_ENGINE) {
if (!(in = bio_open_default(infile, 'r', informat)))
goto end;
}
BIO_printf(bio_err, "read SM9 key\n");
if (informat == FORMAT_ASN1) {
if (!(key = d2i_SM9PrivateKey_bio(in, NULL))) {
BIO_printf(bio_err, "unable to load Key\n");
ERR_print_errors(bio_err);
goto end;
}
} else if (informat == FORMAT_PEM) {
if (!(key = PEM_read_bio_SM9PrivateKey(in, NULL, NULL, passin))) {
BIO_printf(bio_err, "unable to load Key\n");
ERR_print_errors(bio_err);
goto end;
}
} else {
BIO_printf(bio_err, "supported key format\n");
goto end;
}
if (!(out = bio_open_owner(outfile, outformat, 1))) {
goto end;
}
if (!noout) {
BIO_printf(bio_err, "writing SM9 key\n");
if (outformat == FORMAT_ASN1) {
if (!i2d_SM9PrivateKey_bio(out, key)) {
BIO_printf(bio_err, "unable to write private key\n");
ERR_print_errors(bio_err);
goto end;
}
} else if (outformat == FORMAT_PEM) {
if (!PEM_write_bio_SM9PrivateKey(out, key, EVP_sms4_cbc(), NULL, 0, NULL, passout)) {
BIO_printf(bio_err, "unable to write private key\n");
ERR_print_errors(bio_err);
goto end;
}
} else {
BIO_printf(bio_err, "unsupported key format\n");
goto end;
}
}
/* sm9 api does not support public key print, do it with evp api */
if (text) {
if (!SM9_KEY_print(out, key, 0)) {
perror(outfile);
ERR_print_errors(bio_err);
goto end;
}
}
ret = 0;
end:
SM9_KEY_free(key);
BIO_free(in);
BIO_free_all(out);
OPENSSL_free(passin);
OPENSSL_free(passout);
return ret;
}
#endif

81
apps/sm9param.c Normal file
View File

@@ -0,0 +1,81 @@
/* ====================================================================
* Copyright (c) 2014 - 2018 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/opensslconf.h>
#ifdef OPENSSL_NO_SM9
NON_EMPTY_TRANSLATION_UNIT
#else
# include <stdio.h>
# include <stdlib.h>
# include <string.h>
# include <openssl/bio.h>
# include <openssl/err.h>
# include <openssl/evp.h>
# include <openssl/pem.h>
# include <openssl/sm9.h>
# include "apps.h"
typedef enum OPTION_choice {
OPT_ERR = -1,
OPT_EOF = 0,
OPT_HELP
} OPTION_CHOICE;
OPTIONS sm9param_options[] = {
{"help", OPT_HELP, '-', "Display this summary"},
{NULL}
};
int sm9param_main(int argc, char **argv)
{
printf("sm9param not implemented\n");
return 0;
}
#endif

418
apps/sm9utl.c Normal file
View File

@@ -0,0 +1,418 @@
/* ====================================================================
* Copyright (c) 2014 - 2018 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/opensslconf.h>
#ifdef OPENSSL_NO_SM9
NON_EMPTY_TRANSLATION_UNIT
#else
# include <ctype.h>
# include <stdio.h>
# include <string.h>
# include <openssl/bio.h>
# include <openssl/err.h>
# include <openssl/evp.h>
# include <openssl/sm9.h>
# include "../crypto/sm9/sm9_lcl.h"
# include "apps.h"
typedef enum OPTION_choice {
OPT_ERR = -1, OPT_EOF = 0, OPT_HELP,
OPT_IN, OPT_OUT, OPT_SIGFILE,
OPT_SIGN, OPT_VERIFY, OPT_ENCRYPT, OPT_DECRYPT,
OPT_MD, OPT_SCHEME,
OPT_PARAMFILE, OPT_ID, OPT_INKEY, OPT_PASSIN,
OPT_KEYFORM, OPT_PARAMFORM
} OPTION_CHOICE;
OPTIONS sm9utl_options[] = {
{"help", OPT_HELP, '-', "Display this summary"},
{"in", OPT_IN, '<', "Input file - default stdin"},
{"out", OPT_OUT, '>', "Output file - default stdout"},
{"sigfile", OPT_SIGFILE, '<', "Signature file (verify operation only)"},
{"sign", OPT_SIGN, '-', "Sign input data with private key and public parameters"},
{"verify", OPT_VERIFY, '-', "Verify with signer's ID and public parameters"},
{"encrypt", OPT_ENCRYPT, '-', "Encrypt input data with recipient's ID"},
{"decrypt", OPT_DECRYPT, '-', "Decrypt input data with private key"},
{"md", OPT_MD, 's', "Digest algorithm for signing or verification"},
{"scheme", OPT_SCHEME, 's', "Encryption scheme"},
{"paramfile", OPT_PARAMFILE, 's', "Public parameters file"},
{"id", OPT_ID, 's', "Recipient's or signer's ID"},
{"inkey", OPT_INKEY, 's', "Private key for signing or decryption"},
{"passin", OPT_PASSIN, 's', "Input file pass phrase source"},
{"keyform", OPT_KEYFORM, 'E', "Private key format - default PEM"},
{"paramform", OPT_PARAMFORM, 'E', "Public parameters format - default PEM"},
{NULL}
};
static int sm9_sign(const EVP_MD *md, BIO *in, BIO *out,
SM9_KEY *key, const char *prog)
{
int ret = 0;
EVP_MD_CTX *md_ctx = NULL;
SM9Signature *sig = NULL;
unsigned char buf[1024];
int len;
if (!(md_ctx = EVP_MD_CTX_new())
|| !SM9_SignInit(md_ctx, md, NULL)) {
ERR_print_errors(bio_err);
goto end;
}
while ((len = BIO_read(in, buf, sizeof(buf))) > 0) {
if (!SM9_SignUpdate(md_ctx, buf, len)) {
ERR_print_errors(bio_err);
goto end;
}
}
if (!(sig = SM9_SignFinal(md_ctx, key))) {
ERR_print_errors(bio_err);
goto end;
}
if (i2d_SM9Signature_bio(out, sig) <= 0) {
ERR_print_errors(bio_err);
goto end;
}
ret = 1;
end:
EVP_MD_CTX_free(md_ctx);
SM9Signature_free(sig);
return ret;
}
static int sm9_verify(const EVP_MD *md, BIO *in, BIO *out, const char *sigfile,
SM9_MASTER_KEY *param, const char *id, const char *prog)
{
int ret = 0;
BIO *sig_bio = NULL;
SM9_KEY *key = NULL;
EVP_MD_CTX *md_ctx = NULL;
SM9Signature *sig = NULL;
unsigned char buf[1024];
int len;
if (!sigfile) {
BIO_printf(bio_err, "%s: `-sigfile` required for verification\n", prog);
return 0;
}
if (!(sig_bio = BIO_new_file(sigfile, "rb"))
|| !(sig = d2i_SM9Signature_bio(sig_bio, NULL))) {
ERR_print_errors(bio_err);
goto end;
}
if (!param || !id) {
BIO_printf(bio_err, "%s: param and id required\n", prog);
goto end;
}
if (!(key = SM9_extract_public_key(param, id, strlen(id)))) {
ERR_print_errors(bio_err);
goto end;
}
if (!(md_ctx = EVP_MD_CTX_new())
|| !SM9_VerifyInit(md_ctx, md, NULL)) {
ERR_print_errors(bio_err);
goto end;
}
while ((len = BIO_read(in, buf, sizeof(buf))) > 0) {
if (!SM9_VerifyUpdate(md_ctx, buf, len)) {
ERR_print_errors(bio_err);
goto end;
}
}
if ((ret = SM9_VerifyFinal(md_ctx, sig, key)) != 1) {
ERR_print_errors(bio_err);
}
BIO_printf(out, "Signature Verified %s\n", ret ? "Successfully" : "Failure");
end:
BIO_free(sig_bio);
SM9_KEY_free(key);
EVP_MD_CTX_free(md_ctx);
SM9Signature_free(sig);
return ret;
}
static int sm9_encrypt(int scheme, BIO *in, BIO *out,
SM9_MASTER_KEY *param, const char *id, const char *prog)
{
int ret = 0;
unsigned char *inbuf = NULL;
unsigned char *outbuf = NULL;
int inlen;
size_t outlen;
if (!param || !id) {
BIO_printf(bio_err, "%s: param and id required\n", prog);
return 0;
}
if (!(inlen = bio_to_mem(&inbuf, SM9_MAX_PLAINTEXT_LENGTH, in))) {
BIO_printf(bio_err, "%s: error reading input\n", prog);
return 0;
}
if (!SM9_encrypt(scheme, inbuf, inlen, NULL, &outlen, param, id, strlen(id))
|| !(outbuf = OPENSSL_malloc(outlen))
|| !SM9_encrypt(scheme, inbuf, inlen, outbuf, &outlen,
param, id, strlen(id))
|| BIO_write(out, outbuf, outlen) != outlen) {
ERR_print_errors(bio_err);
goto end;
}
ret = 1;
end:
OPENSSL_free(inbuf);
OPENSSL_free(outbuf);
return ret;
}
static int sm9_decrypt(int scheme, BIO *in, BIO *out, SM9_KEY *key, char *prog)
{
int ret = 0;
unsigned char *inbuf = NULL;
unsigned char *outbuf = NULL;
int inlen;
size_t outlen;
if (!key) {
BIO_printf(bio_err, "%s: private key required\n", prog);
goto end;
}
if (!(inlen = bio_to_mem(&inbuf, SM9_MAX_CIPHERTEXT_LENGTH, in))) {
BIO_printf(bio_err, "%s: error reading input\n", prog);
goto end;
}
if (!SM9_decrypt(scheme, inbuf, inlen, NULL, &outlen, key)
|| !(outbuf = OPENSSL_malloc(outlen))
|| !SM9_decrypt(scheme, inbuf, inlen, outbuf, &outlen, key)
|| BIO_write(out, outbuf, outlen) != outlen) {
ERR_print_errors(bio_err);
goto end;
}
ret = 1;
end:
OPENSSL_free(inbuf);
OPENSSL_free(outbuf);
return ret;
}
int sm9utl_main(int argc, char **argv)
{
int ret = 1;
OPTION_CHOICE o;
char *prog;
char *infile = NULL;
char *outfile = NULL;
char *sigfile = NULL;
BIO *in = NULL;
BIO *out = NULL;
int op = EVP_PKEY_OP_UNDEFINED;
char *paramfile = NULL;
char *id = NULL;
char *keyfile = NULL;
char *passinarg = NULL;
int keyform = FORMAT_PEM;
int paramform = FORMAT_PEM;
char *dgst = NULL;
char *scheme = NULL;
const EVP_MD *md = EVP_sm3();
int enc_scheme = NID_sm9encrypt_with_sm3_xor;
char *passin = NULL;
EVP_PKEY *pkey = NULL;
SM9_MASTER_KEY *param;
SM9_KEY *key;
prog = opt_init(argc, argv, sm9utl_options);
while ((o = opt_next()) != OPT_EOF) {
switch (o) {
case OPT_EOF:
case OPT_ERR:
opthelp:
BIO_printf(bio_err, "%s: Use -help for summary.\n", prog);
goto end;
case OPT_HELP:
opt_help(sm9utl_options);
ret = 0;
goto end;
case OPT_IN:
infile = opt_arg();
break;
case OPT_OUT:
outfile = opt_arg();
break;
case OPT_SIGFILE:
sigfile = opt_arg();
break;
case OPT_SIGN:
op = EVP_PKEY_OP_SIGN;
break;
case OPT_VERIFY:
op = EVP_PKEY_OP_VERIFY;
break;
case OPT_ENCRYPT:
op = EVP_PKEY_OP_ENCRYPT;
break;
case OPT_DECRYPT:
op = EVP_PKEY_OP_DECRYPT;
break;
case OPT_MD:
dgst = opt_arg();
break;
case OPT_SCHEME:
scheme = opt_arg();
break;
case OPT_PARAMFILE:
paramfile = opt_arg();
break;
case OPT_ID:
id = opt_arg();
break;
case OPT_INKEY:
keyfile = opt_arg();
break;
case OPT_PASSIN:
passinarg = opt_arg();
break;
case OPT_KEYFORM:
if (!opt_format(opt_arg(), OPT_FMT_PDE, &keyform))
goto opthelp;
break;
case OPT_PARAMFORM:
if (!opt_format(opt_arg(), OPT_FMT_PDE, &paramform))
goto opthelp;
break;
}
}
argc = opt_num_rest();
if (argc != 0)
goto opthelp;
app_RAND_load_file(NULL, 0);
if (op == EVP_PKEY_OP_SIGN || op == EVP_PKEY_OP_DECRYPT) {
if (!keyfile) {
BIO_printf(bio_err, "Private key required\n");
goto end;
}
if (paramfile || id) {
BIO_printf(bio_err, "Parameters and ID not required\n");
goto end;
}
if (!app_passwd(passinarg, NULL, &passin, NULL)) {
BIO_printf(bio_err, "Error getting password\n");
goto end;
}
if (keyfile) {
pkey = load_key(keyfile, keyform, 0, passin, NULL, "Private Key");
if (!(key = EVP_PKEY_get0_SM9(pkey))) {
ERR_print_errors(bio_err);
goto end;
}
}
if (op == EVP_PKEY_OP_SIGN)
return sm9_sign(md, in, out, key, prog);
else
return sm9_decrypt(enc_scheme, in, out, key, prog);
} else if (op == EVP_PKEY_OP_VERIFY || op == EVP_PKEY_OP_ENCRYPT) {
if (!paramfile || !id) {
BIO_printf(bio_err, "Parameters and ID required\n");
goto end;
}
if (keyfile) {
BIO_printf(bio_err, "Private key not required\n");
goto end;
}
pkey = load_pubkey(keyfile, keyform, 0, NULL, NULL, "Public Key");
if (!(param = EVP_PKEY_get0_SM9_MASTER(pkey))) {
ERR_print_errors(bio_err);
goto end;
}
if (op == EVP_PKEY_OP_VERIFY) {
if (!sigfile) {
BIO_printf(bio_err, "Signature file required\n");
goto end;
}
return sm9_verify(md, in, out, sigfile, param, id, prog);
} else {
return sm9_encrypt(enc_scheme, in, out, param, id, prog);
}
} else {
BIO_printf(bio_err, "%s: operation not assigned\n", prog);
goto end;
}
end:
OPENSSL_free(passin);
return ret;
}
#endif

View File

@@ -211,8 +211,9 @@ int ASN1_item_sign_ctx(const ASN1_ITEM *it,
#ifndef OPENSSL_NO_SM2
if (OBJ_obj2nid(algor1->algorithm) == NID_sm2sign_with_sm3) {
if (!EVP_PKEY_CTX_set_ec_scheme(EVP_MD_CTX_pkey_ctx(ctx), NID_sm_scheme)) {
outl = 0;
ASN1err(ASN1_F_ASN1_ITEM_SIGN_CTX, ERR_R_EC_LIB);
return 0;
goto err;
}
}
#endif

View File

@@ -19,6 +19,9 @@
#include "internal/asn1_int.h"
#include "internal/evp_int.h"
#include "ec_lcl.h"
#ifndef OPENSSL_NO_SM2
# include <openssl/sm2.h>
#endif
#ifndef OPENSSL_NO_CMS
static int ecdh_cms_decrypt(CMS_RecipientInfo *ri);

View File

@@ -121,6 +121,16 @@ int SM2_ciphertext_size(const EC_KEY *ec_key, size_t inlen)
return ret;
}
int i2d_SM2CiphertextValue_bio(BIO *bp, SM2CiphertextValue *a)
{
return ASN1_item_i2d_bio(ASN1_ITEM_rptr(SM2CiphertextValue), bp, a);
}
SM2CiphertextValue *d2i_SM2CiphertextValue_bio(BIO *bp, SM2CiphertextValue **a)
{
return ASN1_item_d2i_bio(ASN1_ITEM_rptr(SM2CiphertextValue), bp, a);
}
#ifndef OPENSSL_NO_STDIO
SM2CiphertextValue *d2i_SM2CiphertextValue_fp(FILE *fp, SM2CiphertextValue **a)
{

View File

@@ -147,6 +147,60 @@ int SM9PublicKey_gmtls_encode(SM9PublicKey *pk, unsigned char key[1024])
return 0;
}
int i2d_SM9MasterSecret_bio(BIO *bp, SM9MasterSecret *a)
{
return ASN1_item_i2d_bio(ASN1_ITEM_rptr(SM9MasterSecret), bp, a);
}
SM9MasterSecret *d2i_SM9MasterSecret_bio(BIO *bp, SM9MasterSecret **a)
{
return ASN1_item_d2i_bio(ASN1_ITEM_rptr(SM9MasterSecret), bp, a);
}
int i2d_SM9PublicParameters_bio(BIO *bp, SM9PublicParameters *a)
{
return ASN1_item_i2d_bio(ASN1_ITEM_rptr(SM9PublicParameters), bp, a);
}
SM9PublicParameters *d2i_SM9PublicParameters_bio(BIO *bp, SM9PublicParameters **a)
{
return ASN1_item_d2i_bio(ASN1_ITEM_rptr(SM9PublicParameters), bp, a);
}
int i2d_SM9PrivateKey_bio(BIO *bp, SM9PrivateKey *a)
{
return ASN1_item_i2d_bio(ASN1_ITEM_rptr(SM9PrivateKey), bp, a);
}
SM9PrivateKey *d2i_SM9PrivateKey_bio(BIO *bp, SM9PrivateKey **a)
{
return ASN1_item_d2i_bio(ASN1_ITEM_rptr(SM9PrivateKey), bp, a);
}
int i2d_SM9Signature_bio(BIO *bp, SM9Signature *a)
{
return ASN1_item_i2d_bio(ASN1_ITEM_rptr(SM9Signature), bp, a);
}
SM9Signature *d2i_SM9Signature_bio(BIO *bp, SM9Signature **a)
{
return ASN1_item_d2i_bio(ASN1_ITEM_rptr(SM9Signature), bp, a);
}
int i2d_SM9Ciphertext_bio(BIO *bp, SM9Ciphertext *a)
{
return ASN1_item_i2d_bio(ASN1_ITEM_rptr(SM9Ciphertext), bp, a);
}
SM9Ciphertext *d2i_SM9Ciphertext_bio(BIO *bp, SM9Ciphertext **a)
{
return ASN1_item_d2i_bio(ASN1_ITEM_rptr(SM9Ciphertext), bp, a);
}
#ifndef OPENSSL_NO_STDIO
SM9MasterSecret *d2i_SM9MasterSecret_fp(FILE *fp, SM9MasterSecret **msk)
{

View File

@@ -83,7 +83,8 @@
#define SM9_PHI_D6 0x06
#define SM9_MAX_PLAINTEXT_LENGTH 65535
#define SM9_MAX_PLAINTEXT_LENGTH 12800
#define SM9_MAX_CIPHERTEXT_LENGTH 25600
#ifdef __cplusplus

View File

@@ -2438,7 +2438,7 @@ static int fast_final_expo(fp12_t r, const fp12_t a, const BIGNUM *k, const BIGN
"5958342662901643427453578939755302545063035311436308304691",
"82434016654578246438872420442344325702149582327179867092849556861979152020042"};
BIGNUM *par[4];
for(int i=0;i<4;++i) {
for(i=0;i<4;++i) {
par[i] = BN_new();
BN_init(par[i]);
if(!BN_dec2bn(&par[i], power_p2[i])){

View File

@@ -61,6 +61,7 @@
#define SDF_MAX_KEY_INDEX 32 /* defined by GmSSL */
#define SDF_MIN_PASSWORD_LENGTH 8 /* defined by GM/T 0018 */
#define SDF_MAX_PASSWORD_LENGTH 255 /* defined by GmSSL */
#define SDF_MAX_FILE_SIZE (256 * 1024)
#ifdef __cplusplus
extern "C" {

View File

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

View File

@@ -112,6 +112,8 @@ int SM2_verify(int type, const unsigned char *dgst, int dgstlen,
typedef struct SM2CiphertextValue_st SM2CiphertextValue;
DECLARE_ASN1_FUNCTIONS(SM2CiphertextValue)
int i2d_SM2CiphertextValue_bio(BIO *bp, SM2CiphertextValue *a);
SM2CiphertextValue *d2i_SM2CiphertextValue_bio(BIO *bp, SM2CiphertextValue **a);
#ifndef OPENSSL_NO_STDIO
SM2CiphertextValue *d2i_SM2CiphertextValue_fp(FILE *fp, SM2CiphertextValue **a);
int i2d_SM2CiphertextValue_fp(FILE *fp, SM2CiphertextValue *a);

View File

@@ -87,7 +87,6 @@ int SM9_setup(int pairing, /* NID_sm9bn256v1 */
SM9PublicParameters **mpk,
SM9MasterSecret **msk);
SM9MasterSecret *SM9_generate_master_secret(int pairing, int scheme, int hash1);
SM9PublicParameters *SM9_extract_public_parameters(SM9MasterSecret *msk);
SM9PrivateKey *SM9_extract_private_key(SM9MasterSecret *msk,
@@ -180,6 +179,16 @@ int SM9_compute_share_key_B(int type,
int SM9_MASTER_KEY_print(BIO *bp, const SM9_MASTER_KEY *x, int off);
int SM9_KEY_print(BIO *bp, const SM9_KEY *x, int off);
SM9Ciphertext *d2i_SM9Ciphertext_bio(BIO *bp, SM9Ciphertext **a);
int i2d_SM9MasterSecret_bio(BIO *bp, SM9MasterSecret *a);
SM9MasterSecret *d2i_SM9MasterSecret_bio(BIO *bp, SM9MasterSecret **a);
int i2d_SM9PublicParameters_bio(BIO *bp, SM9PublicParameters *a);
SM9PublicParameters *d2i_SM9PublicParameters_bio(BIO *bp, SM9PublicParameters **a);
int i2d_SM9PrivateKey_bio(BIO *bp, SM9PrivateKey *a);
SM9PrivateKey *d2i_SM9PrivateKey_bio(BIO *bp, SM9PrivateKey **a);
int i2d_SM9Signature_bio(BIO *bp, SM9Signature *a);
SM9Signature *d2i_SM9Signature_bio(BIO *bp, SM9Signature **a);
int i2d_SM9Ciphertext_bio(BIO *bp, SM9Ciphertext *a);
#ifndef OPENSSL_NO_STDIO
SM9MasterSecret *d2i_SM9MasterSecret_fp(FILE *fp, SM9MasterSecret **pp);

File diff suppressed because it is too large Load Diff

View File

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