Update SKF

This commit is contained in:
Zhi Guan
2019-01-23 09:13:30 +08:00
parent 343fa622ae
commit 5359dd5534
15 changed files with 7216 additions and 6455 deletions

View File

@@ -846,6 +846,9 @@ static int make_REQ(X509_REQ *req, EVP_PKEY *pkey, char *subj, int multirdn,
if ((tmp != NULL) && strcmp(tmp, "no") == 0)
no_prompt = 1;
#if !defined(OPENSSL_NO_SKF) || !defined(OPENSSL_NO_SDF)
if (!subj) {
#endif
dn_sect = NCONF_get_string(req_conf, SECTION, DISTINGUISHED_NAME);
if (dn_sect == NULL) {
BIO_printf(bio_err, "unable to find '%s' in config\n",
@@ -857,6 +860,9 @@ static int make_REQ(X509_REQ *req, EVP_PKEY *pkey, char *subj, int multirdn,
BIO_printf(bio_err, "unable to get '%s' section\n", dn_sect);
goto err;
}
#if !defined(OPENSSL_NO_SKF) || !defined(OPENSSL_NO_SDF)
}
#endif
attr_sect = NCONF_get_string(req_conf, SECTION, ATTRIBUTES);
if (attr_sect == NULL) {

View File

@@ -653,6 +653,9 @@ static char *srtp_profiles = NULL;
typedef enum OPTION_choice {
OPT_ERR = -1, OPT_EOF = 0, OPT_HELP, OPT_ENGINE,
#ifndef OPENSSL_NO_SKF
OPT_CONFIG,
#endif
OPT_4, OPT_6, OPT_ACCEPT, OPT_PORT, OPT_UNIX, OPT_UNLINK, OPT_NACCEPT,
OPT_VERIFY, OPT_UPPER_V_VERIFY, OPT_CONTEXT, OPT_CERT, OPT_CRL,
OPT_CRL_DOWNLOAD, OPT_SERVERINFO, OPT_CERTFORM, OPT_KEY, OPT_KEYFORM,
@@ -866,6 +869,9 @@ OPTIONS s_server_options[] = {
"Set the advertised protocols for the ALPN extension (comma-separated list)"},
#ifndef OPENSSL_NO_ENGINE
{"engine", OPT_ENGINE, 's', "Use engine, possibly a hardware device"},
# ifndef OPENSSL_NO_SKF
{"config", OPT_CONFIG, 's', "Engine config file"},
# endif
#endif
{NULL, OPT_EOF, 0, NULL}
};
@@ -943,6 +949,10 @@ int s_server_main(int argc, char *argv[])
int no_resume_ephemeral = 0;
unsigned int split_send_fragment = 0, max_pipelines = 0;
const char *s_serverinfo_file = NULL;
#ifndef OPENSSL_NO_SKF
CONF *conf = NULL;
char *configfile = default_config_file;
#endif
/* Init of few remaining global variables */
local_argc = argc;
@@ -1388,6 +1398,11 @@ int s_server_main(int argc, char *argv[])
case OPT_ENGINE:
engine = setup_engine(opt_arg(), 1);
break;
#ifndef OPENSSL_NO_SKF
case OPT_CONFIG:
configfile = opt_arg();
break;
#endif
case OPT_RAND:
inrand = opt_arg();
break;
@@ -1447,6 +1462,16 @@ int s_server_main(int argc, char *argv[])
argc = opt_num_rest();
argv = opt_rest();
#ifndef OPENSSL_NO_SKF
if (engine)
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
#ifndef OPENSSL_NO_DTLS
if (www && socket_type == SOCK_DGRAM) {
BIO_printf(bio_err, "Can't use -HTTP, -www or -WWW with DTLS\n");
@@ -1981,6 +2006,9 @@ int s_server_main(int argc, char *argv[])
bio_s_msg = NULL;
#ifdef CHARSET_EBCDIC
BIO_meth_free(methods_ebcdic);
#endif
#ifndef OPENSSL_NO_SKF
NCONF_free(conf);
#endif
return (ret);
}

1229
apps/skf.c

File diff suppressed because it is too large Load Diff

View File

@@ -20,8 +20,13 @@
static const EC_KEY_METHOD openssl_ec_key_method = {
"OpenSSL EC_KEY method",
0,
0,0,0,0,0,0,
0, /* flags */
0, /* init */
0, /* finish */
0, /* copy */
0, /* set_group */
0, /* set_private */
0, /* set_public */
ossl_ec_key_gen,
ossl_ecdh_compute_key,
ossl_ecdsa_sign,

View File

@@ -1,2 +1,2 @@
LIBS=../../libcrypto
SOURCE[../../libcrypto]=skf_err.c skf_lib.c skf_meth.c skf_ext.c skf_wisec.c
SOURCE[../../libcrypto]=skf_err.c skf_lib.c skf_meth.c skf_ext.c skf_prn.c skf_wisec.c

View File

@@ -1,6 +1,6 @@
/*
* Generated by util/mkerr.pl DO NOT EDIT
* Copyright 1995-2017 The OpenSSL Project Authors. All Rights Reserved.
* Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the OpenSSL license (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@@ -25,6 +25,7 @@ static ERR_STRING_DATA SKF_str_functs[] = {
{ERR_FUNC(SKF_F_SKF_CLEARSECURESTATE), "SKF_ClearSecureState"},
{ERR_FUNC(SKF_F_SKF_CLOSEAPPLICATION), "SKF_CloseApplication"},
{ERR_FUNC(SKF_F_SKF_CLOSECONTAINER), "SKF_CloseContainer"},
{ERR_FUNC(SKF_F_SKF_CLOSEDEVICE), "SKF_CloseDevice"},
{ERR_FUNC(SKF_F_SKF_CLOSEHANDLE), "SKF_CloseHandle"},
{ERR_FUNC(SKF_F_SKF_CONNECTDEV), "SKF_ConnectDev"},
{ERR_FUNC(SKF_F_SKF_CREATEAPPLICATION), "SKF_CreateApplication"},
@@ -56,7 +57,17 @@ static ERR_STRING_DATA SKF_str_functs[] = {
{ERR_FUNC(SKF_F_SKF_ENUMDEV), "SKF_EnumDev"},
{ERR_FUNC(SKF_F_SKF_ENUMFILES), "SKF_EnumFiles"},
{ERR_FUNC(SKF_F_SKF_EXPORTCERTIFICATE), "SKF_ExportCertificate"},
{ERR_FUNC(SKF_F_SKF_EXPORTECCENCPUBLICKEY), "SKF_ExportECCEncPublicKey"},
{ERR_FUNC(SKF_F_SKF_EXPORTECCPUBLICKEY), "SKF_ExportECCPublicKey"},
{ERR_FUNC(SKF_F_SKF_EXPORTECCSIGNPUBLICKEY),
"SKF_ExportECCSignPublicKey"},
{ERR_FUNC(SKF_F_SKF_EXPORTEVPPUBLICKEY), "SKF_ExportEVPPublicKey"},
{ERR_FUNC(SKF_F_SKF_EXPORTPUBLICKEY), "SKF_ExportPublicKey"},
{ERR_FUNC(SKF_F_SKF_EXPORTRSAENCPUBLICKEY), "SKF_ExportRSAEncPublicKey"},
{ERR_FUNC(SKF_F_SKF_EXPORTRSAPUBLICKEY), "SKF_ExportRSAPublicKey"},
{ERR_FUNC(SKF_F_SKF_EXPORTRSASIGNPUBLICKEY),
"SKF_ExportRSASignPublicKey"},
{ERR_FUNC(SKF_F_SKF_EXPORTX509CERTIFICATE), "SKF_ExportX509Certificate"},
{ERR_FUNC(SKF_F_SKF_EXTECCDECRYPT), "SKF_ExtECCDecrypt"},
{ERR_FUNC(SKF_F_SKF_EXTECCENCRYPT), "SKF_ExtECCEncrypt"},
{ERR_FUNC(SKF_F_SKF_EXTECCSIGN), "SKF_ExtECCSign"},
@@ -80,8 +91,12 @@ static ERR_STRING_DATA SKF_str_functs[] = {
{ERR_FUNC(SKF_F_SKF_IMPORTCERTIFICATE), "SKF_ImportCertificate"},
{ERR_FUNC(SKF_F_SKF_IMPORTECCKEYPAIR), "SKF_ImportECCKeyPair"},
{ERR_FUNC(SKF_F_SKF_IMPORTECCPRIVATEKEY), "SKF_ImportECCPrivateKey"},
{ERR_FUNC(SKF_F_SKF_IMPORTPRIVATEKEY), "SKF_ImportPrivateKey"},
{ERR_FUNC(SKF_F_SKF_IMPORTRSAKEYPAIR), "SKF_ImportRSAKeyPair"},
{ERR_FUNC(SKF_F_SKF_IMPORTRSAPRIVATEKEY), "SKF_ImportRSAPrivateKey"},
{ERR_FUNC(SKF_F_SKF_IMPORTSESSIONKEY), "SKF_ImportSessionKey"},
{ERR_FUNC(SKF_F_SKF_IMPORTX509CERTIFICATEBYKEYUSAGE),
"SKF_ImportX509CertificateByKeyUsage"},
{ERR_FUNC(SKF_F_SKF_LOADLIBRARY), "SKF_LoadLibrary"},
{ERR_FUNC(SKF_F_SKF_LOCKDEV), "SKF_LockDev"},
{ERR_FUNC(SKF_F_SKF_MAC), "SKF_Mac"},
@@ -93,6 +108,7 @@ static ERR_STRING_DATA SKF_str_functs[] = {
{ERR_FUNC(SKF_F_SKF_NEWENVELOPEDKEY), "SKF_NewEnvelopedKey"},
{ERR_FUNC(SKF_F_SKF_OPENAPPLICATION), "SKF_OpenApplication"},
{ERR_FUNC(SKF_F_SKF_OPENCONTAINER), "SKF_OpenContainer"},
{ERR_FUNC(SKF_F_SKF_OPENDEVICE), "SKF_OpenDevice"},
{ERR_FUNC(SKF_F_SKF_READFILE), "SKF_ReadFile"},
{ERR_FUNC(SKF_F_SKF_RSAEXPORTSESSIONKEY), "SKF_RSAExportSessionKey"},
{ERR_FUNC(SKF_F_SKF_RSASIGNDATA), "SKF_RSASignData"},
@@ -103,7 +119,6 @@ static ERR_STRING_DATA SKF_str_functs[] = {
{ERR_FUNC(SKF_F_SKF_UNBLOCKPIN), "SKF_UnblockPIN"},
{ERR_FUNC(SKF_F_SKF_UNLOCKDEV), "SKF_UnlockDev"},
{ERR_FUNC(SKF_F_SKF_VERIFYPIN), "SKF_VerifyPIN"},
{ERR_FUNC(SKF_F_SKF_W), "SKF_WaitForDevEvent"},
{ERR_FUNC(SKF_F_SKF_WAITFORDEVEVENT), "SKF_WaitForDevEvent"},
{ERR_FUNC(SKF_F_SKF_WRITEFILE), "SKF_WriteFile"},
{0, NULL}
@@ -112,18 +127,16 @@ static ERR_STRING_DATA SKF_str_functs[] = {
static ERR_STRING_DATA SKF_str_reasons[] = {
{ERR_REASON(SKF_R_APPLICATION_ALREADY_EXIST),
"application already exist"},
{ERR_REASON(SKF_R_APPLICATION_NOT_EXISAT), "application not exisat"},
{ERR_REASON(SKF_R_APPLICATION_NOT_EXIST), "application not exist"},
{ERR_REASON(SKF_R_BUFFER_TOO_SMALL), "buffer too small"},
{ERR_REASON(SKF_R_CERTIFICATE_NOT_FOUND), "certificate not found"},
{ERR_REASON(SKF_R_CONTAINER_TYPE_NOT_MATCH), "container type not match"},
{ERR_REASON(SKF_R_CSP_IMPORT_PUBLIC_KEY_ERROR),
"csp import public key error"},
{ERR_REASON(SKF_R_DECRYPT_INVALID_PADDING), "decrypt invalid padding"},
{ERR_REASON(SKF_R_DEVICE_REMOVED), "device removed"},
{ERR_REASON(SKF_R_DIGEST_ERROR), "digest error"},
{ERR_REASON(SKF_R_DSO_LOAD_FAILURE), "dso load failure"},
{ERR_REASON(SKF_R_ENVELOPE_PRVATE_KEY_FAILURE),
"envelope prvate key failure"},
{ERR_REASON(SKF_R_EXPORT_FAILED), "export failed"},
{ERR_REASON(SKF_R_FAILURE), "failure"},
{ERR_REASON(SKF_R_FILE_ALREADY_EXIST), "file already exist"},
@@ -131,11 +144,10 @@ static ERR_STRING_DATA SKF_str_reasons[] = {
{ERR_REASON(SKF_R_FILE_NOT_EXIST), "file not exist"},
{ERR_REASON(SKF_R_FUNCTION_NOT_SUPPORTED), "function not supported"},
{ERR_REASON(SKF_R_HASH_NOT_EQUAL), "hash not equal"},
{ERR_REASON(SKF_R_IMPORT_ENVELOPED_ECC_PRIVATE_KEY_FAILURE),
"import enveloped ecc private key failure"},
{ERR_REASON(SKF_R_INVALID_APPLICATION_NAME), "invalid application name"},
{ERR_REASON(SKF_R_INVALID_CONTAINER_TYPE), "invalid container type"},
{ERR_REASON(SKF_R_INVALID_DIGEST_HANDLE), "invalid digest handle"},
{ERR_REASON(SKF_R_INVALID_ECC_PUBLIC_KEY), "invalid ecc public key"},
{ERR_REASON(SKF_R_INVALID_HANDLE), "invalid handle"},
{ERR_REASON(SKF_R_INVALID_INPUT_LENGTH), "invalid input length"},
{ERR_REASON(SKF_R_INVALID_INPUT_VALUE), "invalid input value"},
@@ -150,6 +162,7 @@ static ERR_STRING_DATA SKF_str_reasons[] = {
{ERR_REASON(SKF_R_INVALID_PIN_LENGTH), "invalid pin length"},
{ERR_REASON(SKF_R_INVALID_RSA_MODULUS_LENGTH),
"invalid rsa modulus length"},
{ERR_REASON(SKF_R_INVALID_RSA_PUBLIC_KEY), "invalid rsa public key"},
{ERR_REASON(SKF_R_INVALID_USER_TYPE), "invalid user type"},
{ERR_REASON(SKF_R_KEY_NOT_FOUND), "key not found"},
{ERR_REASON(SKF_R_LOAD_LIBRARY_FAILURE), "load library failure"},
@@ -162,8 +175,9 @@ static ERR_STRING_DATA SKF_str_reasons[] = {
{ERR_REASON(SKF_R_NOT_SUPPORTED_PKEY_ALGOR), "not supported pkey algor"},
{ERR_REASON(SKF_R_NO_EVENT), "no event"},
{ERR_REASON(SKF_R_NO_SPACE), "no space"},
{ERR_REASON(SKF_R_NULL_ARGUMENT), "null argument"},
{ERR_REASON(SKF_R_OPERATION_NOT_SUPPORTED), "operation not supported"},
{ERR_REASON(SKF_R_PARSE_CERTIFICATE_FAILURE),
"parse certificate failure"},
{ERR_REASON(SKF_R_PIN_INCORRECT), "pin incorrect"},
{ERR_REASON(SKF_R_PIN_LOCKED), "pin locked"},
{ERR_REASON(SKF_R_RANDOM_GENERATION_FAILED), "random generation failed"},
@@ -176,8 +190,12 @@ static ERR_STRING_DATA SKF_str_reasons[] = {
"skf method not initialized"},
{ERR_REASON(SKF_R_SUCCESS), "success"},
{ERR_REASON(SKF_R_TIMEOUT), "timeout"},
{ERR_REASON(SKF_R_UNKNOWN_CERTIFICATE_KEYUSAGE),
"unknown certificate keyusage"},
{ERR_REASON(SKF_R_UNKNOWN_ERROR), "unknown error"},
{ERR_REASON(SKF_R_UNKNOWN_VENDOR), "unknown vendor"},
{ERR_REASON(SKF_R_UNSUPPORTED_PRIVATE_KEY_TYPE),
"unsupported private key type"},
{ERR_REASON(SKF_R_USER_ALREADY_LOGGED_IN), "user already logged in"},
{ERR_REASON(SKF_R_USER_NOT_LOGGED_IN), "user not logged in"},
{ERR_REASON(SKF_R_USER_PIN_NOT_INITIALIZED), "user pin not initialized"},

View File

@@ -1,5 +1,5 @@
/* ====================================================================
* Copyright (c) 2014 - 2017 The GmSSL Project. All rights reserved.
* Copyright (c) 2014 - 2019 The GmSSL Project. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -52,308 +52,14 @@
#include <string.h>
#include <limits.h>
#include <openssl/err.h>
#include <openssl/rand.h>
#include <openssl/gmskf.h>
#include <openssl/gmapi.h>
#include <openssl/x509v3.h>
#include "internal/skf_int.h"
#include "../../e_os.h"
static char *skf_algor_name(ULONG ulAlgID)
{
switch (ulAlgID) {
case SGD_SM1_ECB: return "sm1-ecb";
case SGD_SM1_CBC: return "sm1-cbc";
case SGD_SM1_CFB: return "sm1-cfb";
case SGD_SM1_OFB: return "sm1-ofb128";
case SGD_SM1_MAC: return "sm1-mac";
case SGD_SM4_ECB: return "sms4-ecb";
case SGD_SM4_CBC: return "sms4-cbc";
case SGD_SM4_CFB: return "sms4-cfb";
case SGD_SM4_OFB: return "sms4-ofb128";
case SGD_SM4_MAC: return "sms4-mac";
case SGD_SSF33_ECB: return "ssf33-ecb";
case SGD_SSF33_CBC: return "ssf33-cbc";
case SGD_SSF33_CFB: return "ssf33-cfb";
case SGD_SSF33_OFB: return "ssf33-ofb128";
case SGD_SSF33_MAC: return "ssf33-mac";
case SGD_RSA: return "rsa";
case SGD_SM2_1: return "sm2sign";
case SGD_SM2_2: return "sm2encrypt";
case SGD_SM2_3: return "sm2keyagreement";
case SGD_SM3: return "sm3";
case SGD_SHA1: return "sha1";
case SGD_SHA256: return "sha256";
}
return NULL;
}
ULONG SKF_GetDevStateName(ULONG ulDevState, LPSTR *szDevStateName)
{
if (!szDevStateName) {
return SAR_INDATALENERR;
}
switch (ulDevState) {
case SKF_DEV_STATE_ABSENT:
*szDevStateName = (LPSTR)"Absent";
break;
case SKF_DEV_STATE_PRESENT:
*szDevStateName = (LPSTR)"Present";
break;
case SKF_DEV_STATE_UNKNOW:
*szDevStateName = (LPSTR)"Unknown";
break;
default:
*szDevStateName = (LPSTR)"(Error)";
return SAR_INDATALENERR;
}
return SAR_OK;
}
ULONG SKF_GetContainerTypeName(ULONG ulContainerType, LPSTR *szName)
{
switch (ulContainerType) {
case SKF_CONTAINER_TYPE_UNDEF:
*szName = (LPSTR)"(undef)";
break;
case SKF_CONTAINER_TYPE_RSA:
*szName = (LPSTR)"RSA";
break;
case SKF_CONTAINER_TYPE_ECC:
*szName = (LPSTR)"EC";
break;
default:
*szName = (LPSTR)"(unknown)";
}
/* always success for help functions */
return SAR_OK;
}
typedef struct {
ULONG id;
char *name;
} table_item_t;
static table_item_t skf_cipher_caps[] = {
{ SGD_SM1_ECB, "sm1-ecb" },
{ SGD_SM1_CBC, "sm1-cbc" },
{ SGD_SM1_CFB, "sm1-cfb" },
{ SGD_SM1_OFB, "sm1-ofb128" },
{ SGD_SM1_MAC, "cbcmac-sm1" },
{ SGD_SSF33_ECB, "ssf33-ecb" },
{ SGD_SSF33_CBC, "ssf33-cbc" },
{ SGD_SSF33_CFB, "ssf33-cfb" },
{ SGD_SSF33_OFB, "ssf33-ofb128" },
{ SGD_SSF33_MAC, "cbcmac-ssf33" },
{ SGD_SM4_ECB, "sms4-ecb" },
{ SGD_SM4_CBC, "sms4-cbc" },
{ SGD_SM4_CFB, "sms4-cfb" },
{ SGD_SM4_OFB, "sms4-ofb128" },
{ SGD_SM4_MAC, "cbcmac-sms4" },
{ SGD_ZUC_EEA3, "zuc_128eea3" },
{ SGD_ZUC_EIA3, "zuc_128eia3" }
};
static table_item_t skf_digest_caps[] = {
{ SGD_SM3, "sm3" },
{ SGD_SHA1, "sha1" },
{ SGD_SHA256, "sha256" },
};
static table_item_t skf_pkey_caps[] = {
{ SGD_RSA_SIGN, "rsa" },
{ SGD_RSA_ENC, "rsaEncryption" },
{ SGD_SM2_1, "sm2sign" },
{ SGD_SM2_2, "sm2exchange" },
{ SGD_SM2_3, "sm2encrypt" }
};
ULONG SKF_PrintDevInfo(BIO *out, DEVINFO *devInfo)
{
size_t i, n;
char *serial = OPENSSL_buf2hexstr(devInfo->SerialNumber, strlen((char *)devInfo->SerialNumber));
BIO_printf(out, " %-16s : %d.%d\n", "Version", devInfo->Version.major, devInfo->Version.minor);
BIO_printf(out, " %-16s : %s\n", "Manufacturer", devInfo->Manufacturer);
BIO_printf(out, " %-16s : %s\n", "Issuer", devInfo->Issuer);
BIO_printf(out, " %-16s : %s\n", "Label", devInfo->Label);
BIO_printf(out, " %-16s : %s\n", "Serial Number", serial);
BIO_printf(out, " %-16s : %d.%d\n", "Firmware Version", devInfo->HWVersion.major, devInfo->HWVersion.minor);
BIO_printf(out, " %-16s : ", "Ciphers");
for (i = n = 0; i < OSSL_NELEM(skf_cipher_caps); i++) {
if ((devInfo->AlgSymCap & skf_cipher_caps[i].id) ==
skf_cipher_caps[i].id) {
BIO_printf(out, "%s%s", n ? "," : "", skf_cipher_caps[i].name);
n++;
}
}
BIO_puts(out, "\n");
BIO_printf(out, " %-16s : ", "Public Keys");
for (i = n = 0; i < OSSL_NELEM(skf_pkey_caps); i++) {
if ((devInfo->AlgAsymCap & skf_pkey_caps[i].id) ==
skf_pkey_caps[i].id) {
BIO_printf(out, "%s%s", n ? "," : "", skf_pkey_caps[i].name);
n++;
}
}
BIO_puts(out, "\n");
BIO_printf(out, " %-16s : ", "Digests");
for (i = n = 0; i < OSSL_NELEM(skf_digest_caps); i++) {
if ((devInfo->AlgHashCap & skf_digest_caps[i].id) ==
skf_digest_caps[i].id) {
BIO_printf(out, "%s%s", n ? "," : "", skf_digest_caps[i].name);
n++;
}
}
BIO_puts(out, "\n");
BIO_printf(out, " %-16s : ", "Auth Cipher");
for (i = 0; i < OSSL_NELEM(skf_cipher_caps); i++) {
if (devInfo->DevAuthAlgId == skf_cipher_caps[i].id) {
BIO_printf(out, "%s\n", skf_cipher_caps[i].name);
break;
}
}
if (i == OSSL_NELEM(skf_cipher_caps)) {
BIO_puts(out, "(unknown)\n");
}
if (devInfo->TotalSpace == UINT_MAX)
BIO_printf(out, " %-16s : %s\n", "Total Sapce", "(unlimited)");
else BIO_printf(out, " %-16s : %u\n", "Total Sapce", devInfo->TotalSpace);
if (devInfo->FreeSpace == UINT_MAX)
BIO_printf(out, " %-16s : %s\n", "Free Space", "(unlimited)");
else BIO_printf(out, " %-16s : %u\n", "Free Space", devInfo->FreeSpace);
if (devInfo->MaxECCBufferSize == UINT_MAX)
BIO_printf(out, " %-16s : %s\n", "MAX ECC Input", "(unlimited)");
else BIO_printf(out, " %-16s : %u\n", "MAX ECC Input", devInfo->MaxECCBufferSize);
if (devInfo->MaxBufferSize == UINT_MAX)
BIO_printf(out, " %-16s : %s\n", "MAX Cipher Input", "(unlimited)");
else BIO_printf(out, " %-16s : %u\n", "MAX Cipher Input", devInfo->MaxBufferSize);
OPENSSL_free(serial);
return SAR_OK;
}
ULONG SKF_PrintRSAPublicKey(BIO *out, RSAPUBLICKEYBLOB *blob)
{
BIO_printf(out, "AlgID : %s\n", skf_algor_name(blob->AlgID));
BIO_printf(out, "BitLen : %u\n", blob->BitLen);
BIO_puts(out, "Modulus:\n");
BIO_puts(out, " ");
BIO_hex_string(out, 4, 16, blob->Modulus, MAX_RSA_MODULUS_LEN);
BIO_puts(out, "\n");
BIO_puts(out, "PublicExponent:\n");
BIO_puts(out, " ");
BIO_hex_string(out, 4, 16, blob->PublicExponent, MAX_RSA_EXPONENT_LEN);
BIO_puts(out, "\n");
return SAR_OK;
}
ULONG SKF_PrintRSAPrivateKey(BIO *out, RSAPRIVATEKEYBLOB *blob)
{
BIO_printf(out, "AlgID : %s\n", skf_algor_name(blob->AlgID));
BIO_printf(out, "BitLen : %u\n", blob->BitLen);
BIO_puts(out, "Modulus:\n");
BIO_puts(out, " ");
BIO_hex_string(out, 4, 16, blob->Modulus, MAX_RSA_MODULUS_LEN);
BIO_puts(out, "\n");
BIO_puts(out, "PublicExponent:\n");
BIO_puts(out, " ");
BIO_hex_string(out, 4, 16, blob->PublicExponent, MAX_RSA_EXPONENT_LEN);
BIO_puts(out, "\n");
BIO_puts(out, "PrivateExponent:\n");
BIO_puts(out, " ");
BIO_hex_string(out, 4, 16, blob->PrivateExponent, MAX_RSA_MODULUS_LEN);
BIO_puts(out, "\n");
BIO_puts(out, "Prime1:\n");
BIO_puts(out, " ");
BIO_hex_string(out, 4, 16, blob->Prime1, MAX_RSA_MODULUS_LEN/2);
BIO_puts(out, "\n");
BIO_puts(out, "Prime2:\n");
BIO_puts(out, " ");
BIO_hex_string(out, 4, 16, blob->Prime2, MAX_RSA_MODULUS_LEN/2);
BIO_puts(out, "\n");
BIO_puts(out, "Prime1Exponent:\n");
BIO_hex_string(out, 4, 16, blob->Prime1Exponent, MAX_RSA_MODULUS_LEN/2);
BIO_puts(out, "\n");
BIO_puts(out, " ");
BIO_puts(out, "Prime2Exponent:\n");
BIO_puts(out, " ");
BIO_hex_string(out, 4, 16, blob->Prime2Exponent, MAX_RSA_MODULUS_LEN/2);
BIO_puts(out, "\n");
BIO_puts(out, "Coefficient:\n");
BIO_puts(out, " ");
BIO_hex_string(out, 4, 16, blob->Coefficient, MAX_RSA_MODULUS_LEN/2);
BIO_puts(out, "\n");
return SAR_OK;
}
ULONG SKF_PrintECCPublicKey(BIO *out, ECCPUBLICKEYBLOB *blob)
{
BIO_printf(out, "BitLen : %u\n", blob->BitLen);
BIO_puts(out, "XCoordinate:\n");
BIO_puts(out, " ");
BIO_hex_string(out, 4, 16, blob->XCoordinate, ECC_MAX_XCOORDINATE_BITS_LEN/8);
BIO_puts(out, "\n");
BIO_puts(out, "YCoordinate:\n");
BIO_puts(out, " ");
BIO_hex_string(out, 4, 16, blob->YCoordinate, ECC_MAX_XCOORDINATE_BITS_LEN/8);
BIO_puts(out, "\n");
return SAR_OK;
}
ULONG SKF_PrintECCPrivateKey(BIO *out, ECCPRIVATEKEYBLOB *blob)
{
BIO_printf(out, "BitLen : %u\n", blob->BitLen);
BIO_puts(out, "PrivateKey:\n");
BIO_puts(out, " ");
BIO_hex_string(out, 4, 16, blob->PrivateKey, ECC_MAX_MODULUS_BITS_LEN/8);
BIO_puts(out, "\n");
return SAR_OK;
}
ULONG SKF_PrintECCCipher(BIO *out, ECCCIPHERBLOB *blob)
{
BIO_puts(out, "XCoordinate:\n");
BIO_puts(out, " ");
BIO_hex_string(out, 4, 16, blob->XCoordinate, ECC_MAX_XCOORDINATE_BITS_LEN/8);
BIO_puts(out, "\n");
BIO_puts(out, "YCoordinate:\n");
BIO_puts(out, " ");
BIO_hex_string(out, 4, 16, blob->YCoordinate, ECC_MAX_XCOORDINATE_BITS_LEN/8);
BIO_puts(out, "\n");
BIO_puts(out, "HASH:\n");
BIO_puts(out, " ");
BIO_hex_string(out, 4, 16, blob->HASH, 32);
BIO_puts(out, "\n");
BIO_printf(out, "CipherLen: %u\n", blob->CipherLen);
BIO_puts(out, "Cipher:\n");
BIO_puts(out, " ");
BIO_hex_string(out, 4, 16, blob->Cipher, blob->CipherLen);
BIO_puts(out, "\n");
return SAR_OK;
}
ULONG SKF_PrintECCSignature(BIO *out, ECCSIGNATUREBLOB *blob)
{
BIO_puts(out, "r:\n");
BIO_puts(out, " ");
BIO_hex_string(out, 4, 16, blob->r, ECC_MAX_XCOORDINATE_BITS_LEN/8);
BIO_puts(out, "\n");
BIO_puts(out, "s:\n");
BIO_puts(out, " ");
BIO_hex_string(out, 4, 16, blob->s, ECC_MAX_XCOORDINATE_BITS_LEN/8);
BIO_puts(out, "\n");
return SAR_OK;
}
ULONG DEVAPI SKF_NewECCCipher(ULONG ulCipherLen, ECCCIPHERBLOB **cipherBlob)
{
ECCCIPHERBLOB *ret = NULL;
@@ -382,15 +88,519 @@ ULONG DEVAPI SKF_NewEnvelopedKey(ULONG ulCipherLen, ENVELOPEDKEYBLOB **enveloped
return SAR_OK;
}
ULONG DEVAPI SKF_PrintErrorString(BIO *out, ULONG ulError)
ULONG DEVAPI SKF_OpenDevice(LPSTR devName, BYTE authKey[16], DEVINFO *devInfo, DEVHANDLE *phDev)
{
LPSTR str = NULL;
SKF_GetErrorString(ulError, &str);
BIO_printf(out, "SKF Error: %s\n", (char *)str);
ULONG rv;
DEVHANDLE hDev = NULL;
HANDLE hKey = NULL;
ULONG ulTimeOut = 0xffffffff;
BYTE authRand[16] = {0};
BYTE authData[16] = {0};
ULONG authRandLen = SKF_AUTHRAND_LENGTH;
ULONG authDataLen = sizeof(authData);
BLOCKCIPHERPARAM encParam = {{0}, 0, 0, 0};
if ((rv = SKF_ConnectDev((LPSTR)devName, &hDev)) != SAR_OK
|| (rv = SKF_GetDevInfo(hDev, devInfo)) != SAR_OK
|| (rv = SKF_LockDev(hDev, ulTimeOut)) != SAR_OK
|| (rv = SKF_GenRandom(hDev, authRand, authRandLen)) != SAR_OK
|| (rv = SKF_SetSymmKey(hDev, authKey, devInfo->DevAuthAlgId, &hKey)) != SAR_OK
|| (rv = SKF_EncryptInit(hKey, encParam)) != SAR_OK
|| (rv = SKF_Encrypt(hKey, authRand, sizeof(authRand), authData, &authDataLen)) != SAR_OK
|| (rv =SKF_DevAuth(hDev, authData, authDataLen)) != SAR_OK) {
SKFerr(SKF_F_SKF_OPENDEVICE, ERR_R_SKF_LIB);
goto end;
}
*phDev = hDev;
hDev = NULL;
end:
OPENSSL_cleanse(authRand, sizeof(authRand));
OPENSSL_cleanse(authData, sizeof(authData));
if (hKey && (rv = SKF_CloseHandle(hKey)) != SAR_OK) {
SKFerr(SKF_F_SKF_OPENDEVICE, ERR_R_SKF_LIB);
}
if (hDev && (rv = SKF_DisConnectDev(hDev)) != SAR_OK) {
SKFerr(SKF_F_SKF_OPENDEVICE, ERR_R_SKF_LIB);
}
return rv;
}
ULONG DEVAPI SKF_CloseDevice(DEVHANDLE hDev)
{
ULONG rv;
if ((rv = SKF_UnlockDev(hDev)) != SAR_OK) {
SKFerr(SKF_F_SKF_CLOSEDEVICE, ERR_R_SKF_LIB);
}
if ((rv = SKF_DisConnectDev(hDev)) != SAR_OK) {
SKFerr(SKF_F_SKF_CLOSEDEVICE, ERR_R_SKF_LIB);
}
return rv;
}
ULONG DEVAPI SKF_ImportECCPrivateKey(DEVHANDLE hDev, HCONTAINER hContainer,
EC_KEY *ec_key, ULONG symmAlgId)
{
int ret = 0;
ULONG rv;
ULONG containerType;
ECCPRIVATEKEYBLOB eccPriKeyBlob;
BYTE symmKey[16];
HANDLE hSymmKey = NULL;
BLOCKCIPHERPARAM encParam;
ULONG encedPriKeyLen;
SKF_PUBLICKEYBLOB signPubKeyBlob;
ULONG signPubKeyLen = sizeof(signPubKeyBlob);
ENVELOPEDKEYBLOB envelopedKeyBlob;
/* check container type */
if ((rv = SKF_GetContainerType(hContainer, &containerType)) != SAR_OK) {
SKFerr(SKF_F_SKF_IMPORTECCPRIVATEKEY, ERR_R_SKF_LIB);
return rv;
}
if (containerType != SKF_CONTAINER_TYPE_ECC) {
SKFerr(SKF_F_SKF_IMPORTECCPRIVATEKEY, SKF_R_CONTAINER_TYPE_NOT_MATCH);
return SAR_FAIL;
}
/* get private key and public key */
if (!EC_KEY_get_ECCPRIVATEKEYBLOB(ec_key, &eccPriKeyBlob)
|| !EC_KEY_get_ECCPUBLICKEYBLOB(ec_key, &(envelopedKeyBlob.PubKey))) {
SKFerr(SKF_F_SKF_IMPORTECCPRIVATEKEY, ERR_R_GMAPI_LIB);
rv = SAR_FAIL;
goto end;
}
/* set Version, ulSymmAlgID, ulBits */
envelopedKeyBlob.Version = SKF_ENVELOPEDKEYBLOB_VERSION;
envelopedKeyBlob.ulSymmAlgID = symmAlgId;
envelopedKeyBlob.ulBits = eccPriKeyBlob.BitLen;
/* encrypt private key with random generated symmkey */
if (!RAND_bytes(symmKey, sizeof(symmKey))) {
SKFerr(SKF_F_SKF_IMPORTECCPRIVATEKEY, ERR_R_SKF_LIB);
rv = SAR_FAIL;
goto end;
}
if ((rv = SKF_SetSymmKey(hDev, symmKey, symmAlgId, &hSymmKey)) != SAR_OK) {
SKFerr(SKF_F_SKF_IMPORTECCPRIVATEKEY, ERR_R_SKF_LIB);
goto end;
}
encParam.IVLen = 0;
encParam.PaddingType = SKF_NO_PADDING;
if ((rv = SKF_EncryptInit(hSymmKey, encParam)) != SAR_OK) {
SKFerr(SKF_F_SKF_IMPORTECCPRIVATEKEY, ERR_R_SKF_LIB);
goto end;
}
encedPriKeyLen = sizeof(envelopedKeyBlob.cbEncryptedPriKey);
if ((rv = SKF_Encrypt(hSymmKey,
eccPriKeyBlob.PrivateKey, sizeof(eccPriKeyBlob.PrivateKey),
(BYTE *)&(envelopedKeyBlob.cbEncryptedPriKey), &encedPriKeyLen)) != SAR_OK) {
SKFerr(SKF_F_SKF_IMPORTECCPRIVATEKEY, ERR_R_SKF_LIB);
goto end;
}
if (encedPriKeyLen != sizeof(eccPriKeyBlob.PrivateKey)) {
SKFerr(SKF_F_SKF_IMPORTECCPRIVATEKEY, ERR_R_SKF_LIB);
rv = SAR_FAIL;
goto end;
}
/* encrypt symmKey */
if ((rv = SKF_ExportPublicKey(hContainer, TRUE,
(BYTE *)&signPubKeyBlob, &signPubKeyLen)) != SAR_OK) {
SKFerr(SKF_F_SKF_IMPORTECCPRIVATEKEY, ERR_R_SKF_LIB);
goto end;
}
if (signPubKeyLen != sizeof(ECCPUBLICKEYBLOB)) {
SKFerr(SKF_F_SKF_IMPORTECCPRIVATEKEY, ERR_R_SKF_LIB);
rv = SAR_FAIL;
goto end;
}
if ((rv = SKF_ExtECCEncrypt(hDev, (ECCPUBLICKEYBLOB *)&signPubKeyBlob,
symmKey, sizeof(symmKey), &(envelopedKeyBlob.ECCCipherBlob))) != SAR_OK) {
SKFerr(SKF_F_SKF_IMPORTECCPRIVATEKEY, ERR_R_SKF_LIB);
goto end;
}
ret = 1;
end:
OPENSSL_cleanse(&eccPriKeyBlob, sizeof(eccPriKeyBlob));
OPENSSL_cleanse(symmKey, sizeof(symmKey));
if (hSymmKey && SKF_CloseHandle(hSymmKey) != SAR_OK) {
SKFerr(SKF_F_SKF_IMPORTECCPRIVATEKEY, ERR_R_SKF_LIB);
ret = 0;
}
return ret;
}
ULONG DEVAPI SKF_ImportRSAPrivateKey(DEVHANDLE hDev, HCONTAINER hContainer,
RSA *rsa, ULONG symmAlgId)
{
ULONG rv;
ULONG containerType;
RSAPRIVATEKEYBLOB rsaPriKeyBlob;
unsigned char symmKey[16];
RSAPUBLICKEYBLOB rsaPubKeyBlob;
ULONG rsaPubKeyLen = sizeof(rsaPubKeyBlob);
BYTE wrappedKey[MAX_RSA_MODULUS_LEN];
ULONG wrappedKeyLen = sizeof(wrappedKey);
EVP_CIPHER_CTX *cctx = NULL;
unsigned char *p;
int len;
BYTE encedPriKey[sizeof(RSAPRIVATEKEYBLOB) + 16*2];
ULONG encedPriKeyLen = sizeof(encedPriKey);
if ((rv = SKF_GetContainerType(hContainer, &containerType)) != SAR_OK) {
SKFerr(SKF_F_SKF_IMPORTRSAPRIVATEKEY, ERR_R_SKF_LIB);
return rv;
}
if (containerType != SKF_CONTAINER_TYPE_RSA) {
SKFerr(SKF_F_SKF_IMPORTRSAPRIVATEKEY, ERR_R_SKF_LIB);
return SAR_FAIL;
}
if (!RSA_get_RSAPRIVATEKEYBLOB(rsa, &rsaPriKeyBlob)) {
SKFerr(SKF_F_SKF_IMPORTRSAPRIVATEKEY, ERR_R_SKF_LIB);
goto end;
}
/* generate symmkey */
/* wrap symmkey with signing public key */
if (!RAND_bytes(symmKey, sizeof(symmKey))) {
SKFerr(SKF_F_SKF_IMPORTRSAPRIVATEKEY, ERR_R_SKF_LIB);
goto end;
}
if ((rv = SKF_ExportPublicKey(hContainer, SGD_TRUE,
(BYTE *)&rsaPubKeyBlob, &rsaPubKeyLen)) != SAR_OK) {
SKFerr(SKF_F_SKF_IMPORTRSAPRIVATEKEY, ERR_R_SKF_LIB);
goto end;
}
if (!(rsa = RSA_new_from_RSAPUBLICKEYBLOB(&rsaPubKeyBlob))) {
SKFerr(SKF_F_SKF_IMPORTRSAPRIVATEKEY, ERR_R_SKF_LIB);
goto end;
}
if ((len = RSA_public_encrypt(sizeof(symmKey), symmKey, wrappedKey,
rsa, RSA_PKCS1_PADDING)) != rsaPriKeyBlob.BitLen / 8) {
goto end;
}
wrappedKeyLen = (ULONG)len;
/* encrypt private key with symmkey in ECB mode */
if (!(cctx = EVP_CIPHER_CTX_new())) {
SKFerr(SKF_F_SKF_IMPORTRSAPRIVATEKEY, ERR_R_MALLOC_FAILURE);
goto end;
}
if (!EVP_EncryptInit_ex(cctx, EVP_sms4_ecb(), NULL, symmKey, NULL)) {
SKFerr(SKF_F_SKF_IMPORTRSAPRIVATEKEY, ERR_R_EVP_LIB);
goto end;
}
p = encedPriKey;
if (!EVP_EncryptUpdate(cctx, p, &len, (unsigned char *)&rsaPriKeyBlob,
sizeof(RSAPRIVATEKEYBLOB))) {
SKFerr(SKF_F_SKF_IMPORTRSAPRIVATEKEY, ERR_R_EVP_LIB);
goto end;
}
p += len;
if (!EVP_EncryptFinal_ex(cctx, p, &len)) {
SKFerr(SKF_F_SKF_IMPORTRSAPRIVATEKEY, ERR_R_EVP_LIB);
goto end;
}
p += len;
encedPriKeyLen = p - encedPriKey;
/* import */
if ((rv = SKF_ImportRSAKeyPair(hContainer, symmAlgId, wrappedKey, wrappedKeyLen,
encedPriKey, encedPriKeyLen)) != SAR_OK) {
SKFerr(SKF_F_SKF_IMPORTRSAPRIVATEKEY, ERR_R_SKF_LIB);
goto end;
}
end:
OPENSSL_cleanse(&rsaPriKeyBlob, sizeof(rsaPriKeyBlob));
OPENSSL_cleanse(symmKey, sizeof(symmKey));
OPENSSL_cleanse(wrappedKey, sizeof(wrappedKey));
EVP_CIPHER_CTX_free(cctx);
return rv;
}
ULONG DEVAPI SKF_ImportPrivateKey(DEVHANDLE hDev, HCONTAINER hContainer,
EVP_PKEY *pkey, ULONG symmAlgId)
{
ULONG rv;
switch (EVP_PKEY_id(pkey)) {
case EVP_PKEY_EC:
if ((rv = SKF_ImportECCPrivateKey(hDev, hContainer,
EVP_PKEY_get0_EC_KEY(pkey), symmAlgId)) != SAR_OK) {
SKFerr(SKF_F_SKF_IMPORTPRIVATEKEY, ERR_R_SKF_LIB);
return rv;
}
break;
case EVP_PKEY_RSA:
if ((rv = SKF_ImportRSAPrivateKey(hDev, hContainer,
EVP_PKEY_get0_RSA(pkey), symmAlgId)) != SAR_OK) {
SKFerr(SKF_F_SKF_IMPORTPRIVATEKEY, ERR_R_SKF_LIB);
return rv;
}
break;
default:
SKFerr(SKF_F_SKF_IMPORTPRIVATEKEY,
SKF_R_UNSUPPORTED_PRIVATE_KEY_TYPE);
return SAR_FAIL;
}
return SAR_OK;
}
ULONG DEVAPI SKF_GetAlgorName(ULONG ulAlgID, LPSTR *szName)
ULONG DEVAPI SKF_ExportECCPublicKey(HCONTAINER hContainer, BOOL bSign, EC_KEY **ec_key)
{
ULONG rv;
ULONG containerType;
BYTE pubKeyBlob[sizeof(SKF_PUBLICKEYBLOB)];
ECCPUBLICKEYBLOB *pubKey = (ECCPUBLICKEYBLOB *)pubKeyBlob;
ULONG pubKeyLen = sizeof(SKF_PUBLICKEYBLOB);
if ((rv = SKF_GetContainerType(hContainer, &containerType)) != SAR_OK) {
SKFerr(SKF_F_SKF_EXPORTECCPUBLICKEY, ERR_R_SKF_LIB);
return rv;
}
if (containerType != SKF_CONTAINER_TYPE_ECC) {
SKFerr(SKF_F_SKF_EXPORTECCPUBLICKEY, SKF_R_CONTAINER_TYPE_NOT_MATCH);
return SAR_FAIL;
}
if ((rv = SKF_ExportPublicKey(hContainer, bSign,
pubKeyBlob, &pubKeyLen)) != SAR_OK) {
SKFerr(SKF_F_SKF_EXPORTECCPUBLICKEY, ERR_R_SKF_LIB);
return rv;
}
if (pubKeyLen != sizeof(ECCPUBLICKEYBLOB)) {
SKFerr(SKF_F_SKF_EXPORTECCPUBLICKEY, ERR_R_SKF_LIB);
return SAR_FAIL;
}
if (!(*ec_key = EC_KEY_new_from_ECCPUBLICKEYBLOB(pubKey))) {
SKFerr(SKF_F_SKF_EXPORTECCPUBLICKEY, SKF_R_INVALID_ECC_PUBLIC_KEY);
return SAR_FAIL;
}
return SAR_OK;
}
ULONG DEVAPI SKF_ExportRSAPublicKey(HCONTAINER hContainer, BOOL bSign, RSA **rsa)
{
ULONG rv;
ULONG containerType;
BYTE pubKeyBlob[sizeof(SKF_PUBLICKEYBLOB)];
RSAPUBLICKEYBLOB *pubKey = (RSAPUBLICKEYBLOB *)pubKeyBlob;
ULONG pubKeyLen = sizeof(SKF_PUBLICKEYBLOB);
if ((rv = SKF_GetContainerType(hContainer, &containerType)) != SAR_OK) {
SKFerr(SKF_F_SKF_EXPORTRSAPUBLICKEY, ERR_R_SKF_LIB);
return rv;
}
if (containerType != SKF_CONTAINER_TYPE_RSA) {
SKFerr(SKF_F_SKF_EXPORTRSAPUBLICKEY, SKF_R_CONTAINER_TYPE_NOT_MATCH);
return SAR_FAIL;
}
if ((rv = SKF_ExportPublicKey(hContainer, bSign,
pubKeyBlob, &pubKeyLen)) != SAR_OK) {
SKFerr(SKF_F_SKF_EXPORTRSAPUBLICKEY, ERR_R_SKF_LIB);
return rv;
}
if (pubKeyLen != sizeof(RSAPUBLICKEYBLOB)) {
SKFerr(SKF_F_SKF_EXPORTRSAPUBLICKEY, ERR_R_SKF_LIB);
return SAR_FAIL;
}
if (!(*rsa = RSA_new_from_RSAPUBLICKEYBLOB(pubKey))) {
SKFerr(SKF_F_SKF_EXPORTRSAPUBLICKEY, SKF_R_INVALID_RSA_PUBLIC_KEY);
return SAR_FAIL;
}
return SAR_OK;
}
ULONG DEVAPI SKF_ExportEVPPublicKey(HCONTAINER hContainer, BOOL bSign, EVP_PKEY **pp)
{
ULONG rv;
ULONG containerType;
EVP_PKEY *pkey = NULL;
if ((rv = SKF_GetContainerType(hContainer, &containerType)) != SAR_OK) {
SKFerr(SKF_F_SKF_EXPORTEVPPUBLICKEY, ERR_R_SKF_LIB);
return rv;
}
if (!(pkey = EVP_PKEY_new())) {
SKFerr(SKF_F_SKF_EXPORTEVPPUBLICKEY, ERR_R_MALLOC_FAILURE);
return SAR_MEMORYERR;
}
if (containerType == SKF_CONTAINER_TYPE_ECC) {
EC_KEY *ec_key = NULL;
if ((rv = SKF_ExportECCPublicKey(hContainer, bSign,
&ec_key)) != SAR_OK) {
SKFerr(SKF_F_SKF_EXPORTEVPPUBLICKEY, ERR_R_SKF_LIB);
goto end;
}
if (!EVP_PKEY_assign_EC_KEY(pkey, ec_key)) {
EC_KEY_free(ec_key);
rv = SAR_FAIL;
goto end;
}
} else if (containerType == SKF_CONTAINER_TYPE_RSA) {
RSA *rsa = NULL;
if ((rv = SKF_ExportRSAPublicKey(hContainer, bSign,
&rsa)) != SAR_OK) {
SKFerr(SKF_F_SKF_EXPORTEVPPUBLICKEY, ERR_R_SKF_LIB);
goto end;
}
if (!EVP_PKEY_assign_RSA(pkey, rsa)) {
RSA_free(rsa);
rv = SAR_FAIL;
goto end;
}
} else {
SKFerr(SKF_F_SKF_EXPORTEVPPUBLICKEY, SKF_R_INVALID_CONTAINER_TYPE);
rv = SAR_FAIL;
goto end;
}
*pp = pkey;
pkey = NULL;
rv = SAR_OK;
end:
EVP_PKEY_free(pkey);
return rv;
}
ULONG DEVAPI SKF_ImportX509Certificate(HCONTAINER hContainer, BOOL bSign, X509 *x509)
{
int ret = 0;
ULONG containerType;
unsigned char *cert = NULL;
unsigned char *p;
int len;
if (SKF_GetContainerType(hContainer, &containerType) != SAR_OK) {
return 0;
}
if (containerType == SKF_CONTAINER_TYPE_UNDEF) {
return 0;
}
switch (EVP_PKEY_id(X509_get0_pubkey(x509))) {
case EVP_PKEY_EC:
if (containerType != SKF_CONTAINER_TYPE_ECC) {
goto end;
}
if (!EC_KEY_is_sm2p256v1(EVP_PKEY_get0_EC_KEY(X509_get0_pubkey(x509)))) {
goto end;
}
break;
case EVP_PKEY_RSA:
if (containerType != SKF_CONTAINER_TYPE_RSA) {
goto end;
}
break;
default:
goto end;
}
if (X509_get_key_usage(x509) & (KU_DIGITAL_SIGNATURE|
KU_NON_REPUDIATION|KU_KEY_CERT_SIGN|KU_CRL_SIGN)) {
bSign = SGD_TRUE;
} else if (X509_get_key_usage(x509) & (KU_KEY_ENCIPHERMENT|
KU_DATA_ENCIPHERMENT|KU_KEY_AGREEMENT|KU_ENCIPHER_ONLY)) {
bSign = SGD_FALSE;
} else {
goto end;
}
if ((len = i2d_X509(x509, NULL)) <= 0
|| !(p = cert = OPENSSL_malloc(len))
|| (len = i2d_X509(x509, &p)) <= 0) {
goto end;
}
if (SKF_ImportCertificate(hContainer, bSign, cert, (ULONG)len) != SAR_OK) {
goto end;
}
ret = 1;
end:
X509_free(x509);
OPENSSL_free(cert);
return ret;
}
ULONG DEVAPI SKF_ImportX509CertificateByKeyUsage(HCONTAINER hContainer, X509 *x509)
{
ULONG rv;
BOOL bSign;
if (X509_get_key_usage(x509) & (KU_DIGITAL_SIGNATURE|
KU_NON_REPUDIATION|KU_KEY_CERT_SIGN|KU_CRL_SIGN)) {
bSign = SGD_TRUE;
} else if (X509_get_key_usage(x509) & (KU_KEY_ENCIPHERMENT|
KU_DATA_ENCIPHERMENT|KU_KEY_AGREEMENT|KU_ENCIPHER_ONLY)) {
bSign = SGD_FALSE;
} else {
SKFerr(SKF_F_SKF_IMPORTX509CERTIFICATEBYKEYUSAGE,
SKF_R_UNKNOWN_CERTIFICATE_KEYUSAGE);
return SAR_FAIL;
}
if ((rv = SKF_ImportX509Certificate(hContainer, bSign, x509)) != SAR_OK) {
SKFerr(SKF_F_SKF_IMPORTX509CERTIFICATEBYKEYUSAGE, ERR_R_SKF_LIB);
return rv;
}
return SAR_OK;
}
ULONG DEVAPI SKF_ExportX509Certificate(HCONTAINER hContainer, BOOL bSign, X509 **px509)
{
ULONG rv = SAR_FAIL;
BYTE *pbCert = NULL;
ULONG ulCertLen;
const unsigned char *p;
X509 *x509 = NULL;
ulCertLen = SKF_MAX_CERTIFICATE_SIZE;
if (!(pbCert = OPENSSL_zalloc(ulCertLen))) {
SKFerr(SKF_F_SKF_EXPORTX509CERTIFICATE, ERR_R_MALLOC_FAILURE);
rv = SAR_MEMORYERR;
goto end;
}
if ((rv = SKF_ExportCertificate(hContainer, bSign,
pbCert, &ulCertLen)) != SAR_OK) {
SKFerr(SKF_F_SKF_EXPORTX509CERTIFICATE, ERR_R_SKF_LIB);
goto end;
}
p = pbCert;
if (!(x509 = d2i_X509(NULL, &p, (long)ulCertLen))) {
SKFerr(SKF_F_SKF_EXPORTX509CERTIFICATE,
SKF_R_PARSE_CERTIFICATE_FAILURE);
goto end;
}
if (p - pbCert != ulCertLen) {
SKFerr(SKF_F_SKF_EXPORTX509CERTIFICATE,
SKF_R_PARSE_CERTIFICATE_FAILURE);
goto end;
}
*px509 = x509;
x509 = NULL;
rv = SAR_OK;
end:
OPENSSL_free(pbCert);
X509_free(x509);
return rv;
}

View File

@@ -152,9 +152,7 @@ SKF_METHOD *SKF_METHOD_load_library(const char *so_path)
SKF_METHOD_BIND_FUNCTION(MacUpdate);
SKF_METHOD_BIND_FUNCTION(MacFinal);
SKF_METHOD_BIND_FUNCTION(CloseHandle);
#ifdef SKF_SUPPORT_ECCDECRYPT
/* wisectech usb-key support ECCDecrypt */
#ifdef SKF_HAS_ECCDECRYPT
SKF_METHOD_BIND_FUNCTION(ECCDecrypt);
#endif

368
crypto/skf/skf_prn.c Normal file
View File

@@ -0,0 +1,368 @@
/* ====================================================================
* Copyright (c) 2014 - 2019 The GmSSL Project. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. All advertising materials mentioning features or use of this
* software must display the following acknowledgment:
* "This product includes software developed by the GmSSL Project.
* (http://gmssl.org/)"
*
* 4. The name "GmSSL Project" must not be used to endorse or promote
* products derived from this software without prior written
* permission. For written permission, please contact
* guanzhi1980@gmail.com.
*
* 5. Products derived from this software may not be called "GmSSL"
* nor may "GmSSL" appear in their names without prior written
* permission of the GmSSL Project.
*
* 6. Redistributions of any form whatsoever must retain the following
* acknowledgment:
* "This product includes software developed by the GmSSL Project
* (http://gmssl.org/)"
*
* THIS SOFTWARE IS PROVIDED BY THE GmSSL PROJECT ``AS IS'' AND ANY
* EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE GmSSL PROJECT OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
* OF THE POSSIBILITY OF SUCH DAMAGE.
* ====================================================================
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <limits.h>
#include <openssl/err.h>
#include <openssl/gmskf.h>
#include "internal/skf_int.h"
#include "../../e_os.h"
static char *skf_algor_name(ULONG ulAlgID)
{
switch (ulAlgID) {
case SGD_SM1_ECB: return "sm1-ecb";
case SGD_SM1_CBC: return "sm1-cbc";
case SGD_SM1_CFB: return "sm1-cfb";
case SGD_SM1_OFB: return "sm1-ofb128";
case SGD_SM1_MAC: return "sm1-mac";
case SGD_SM4_ECB: return "sms4-ecb";
case SGD_SM4_CBC: return "sms4-cbc";
case SGD_SM4_CFB: return "sms4-cfb";
case SGD_SM4_OFB: return "sms4-ofb128";
case SGD_SM4_MAC: return "sms4-mac";
case SGD_SSF33_ECB: return "ssf33-ecb";
case SGD_SSF33_CBC: return "ssf33-cbc";
case SGD_SSF33_CFB: return "ssf33-cfb";
case SGD_SSF33_OFB: return "ssf33-ofb128";
case SGD_SSF33_MAC: return "ssf33-mac";
case SGD_RSA: return "rsa";
case SGD_SM2_1: return "sm2sign";
case SGD_SM2_2: return "sm2encrypt";
case SGD_SM2_3: return "sm2keyagreement";
case SGD_SM3: return "sm3";
case SGD_SHA1: return "sha1";
case SGD_SHA256: return "sha256";
}
return NULL;
}
ULONG SKF_GetDevStateName(ULONG ulDevState, LPSTR *szDevStateName)
{
if (!szDevStateName) {
return SAR_INDATALENERR;
}
switch (ulDevState) {
case SKF_DEV_STATE_ABSENT:
*szDevStateName = (LPSTR)"Absent";
break;
case SKF_DEV_STATE_PRESENT:
*szDevStateName = (LPSTR)"Present";
break;
case SKF_DEV_STATE_UNKNOW:
*szDevStateName = (LPSTR)"Unknown";
break;
default:
*szDevStateName = (LPSTR)"(Error)";
return SAR_INDATALENERR;
}
return SAR_OK;
}
ULONG SKF_GetContainerTypeName(ULONG ulContainerType, LPSTR *szName)
{
switch (ulContainerType) {
case SKF_CONTAINER_TYPE_UNDEF:
*szName = (LPSTR)"(undef)";
break;
case SKF_CONTAINER_TYPE_RSA:
*szName = (LPSTR)"RSA";
break;
case SKF_CONTAINER_TYPE_ECC:
*szName = (LPSTR)"EC";
break;
default:
*szName = (LPSTR)"(unknown)";
}
/* always success for help functions */
return SAR_OK;
}
typedef struct {
ULONG id;
char *name;
} table_item_t;
static table_item_t skf_cipher_caps[] = {
{ SGD_SM1_ECB, "sm1-ecb" },
{ SGD_SM1_CBC, "sm1-cbc" },
{ SGD_SM1_CFB, "sm1-cfb" },
{ SGD_SM1_OFB, "sm1-ofb128" },
{ SGD_SM1_MAC, "cbcmac-sm1" },
{ SGD_SSF33_ECB, "ssf33-ecb" },
{ SGD_SSF33_CBC, "ssf33-cbc" },
{ SGD_SSF33_CFB, "ssf33-cfb" },
{ SGD_SSF33_OFB, "ssf33-ofb128" },
{ SGD_SSF33_MAC, "cbcmac-ssf33" },
{ SGD_SM4_ECB, "sms4-ecb" },
{ SGD_SM4_CBC, "sms4-cbc" },
{ SGD_SM4_CFB, "sms4-cfb" },
{ SGD_SM4_OFB, "sms4-ofb128" },
{ SGD_SM4_MAC, "cbcmac-sms4" },
{ SGD_ZUC_EEA3, "zuc_128eea3" },
{ SGD_ZUC_EIA3, "zuc_128eia3" }
};
static table_item_t skf_digest_caps[] = {
{ SGD_SM3, "sm3" },
{ SGD_SHA1, "sha1" },
{ SGD_SHA256, "sha256" },
};
static table_item_t skf_pkey_caps[] = {
{ SGD_RSA_SIGN, "rsa" },
{ SGD_RSA_ENC, "rsaEncryption" },
{ SGD_SM2_1, "sm2sign" },
{ SGD_SM2_2, "sm2exchange" },
{ SGD_SM2_3, "sm2encrypt" }
};
ULONG SKF_PrintDevInfo(BIO *out, DEVINFO *devInfo)
{
size_t i, n;
char *serial = OPENSSL_buf2hexstr(devInfo->SerialNumber, strlen((char *)devInfo->SerialNumber));
BIO_printf(out, " %-16s : %d.%d\n", "Version", devInfo->Version.major, devInfo->Version.minor);
BIO_printf(out, " %-16s : %s\n", "Manufacturer", devInfo->Manufacturer);
BIO_printf(out, " %-16s : %s\n", "Issuer", devInfo->Issuer);
BIO_printf(out, " %-16s : %s\n", "Label", devInfo->Label);
BIO_printf(out, " %-16s : %s\n", "Serial Number", serial);
BIO_printf(out, " %-16s : %d.%d\n", "Firmware Version", devInfo->HWVersion.major, devInfo->HWVersion.minor);
BIO_printf(out, " %-16s : ", "Ciphers");
for (i = n = 0; i < OSSL_NELEM(skf_cipher_caps); i++) {
if ((devInfo->AlgSymCap & skf_cipher_caps[i].id) ==
skf_cipher_caps[i].id) {
BIO_printf(out, "%s%s", n ? "," : "", skf_cipher_caps[i].name);
n++;
}
}
BIO_puts(out, "\n");
BIO_printf(out, " %-16s : ", "Public Keys");
for (i = n = 0; i < OSSL_NELEM(skf_pkey_caps); i++) {
if ((devInfo->AlgAsymCap & skf_pkey_caps[i].id) ==
skf_pkey_caps[i].id) {
BIO_printf(out, "%s%s", n ? "," : "", skf_pkey_caps[i].name);
n++;
}
}
BIO_puts(out, "\n");
BIO_printf(out, " %-16s : ", "Digests");
for (i = n = 0; i < OSSL_NELEM(skf_digest_caps); i++) {
if ((devInfo->AlgHashCap & skf_digest_caps[i].id) ==
skf_digest_caps[i].id) {
BIO_printf(out, "%s%s", n ? "," : "", skf_digest_caps[i].name);
n++;
}
}
BIO_puts(out, "\n");
BIO_printf(out, " %-16s : ", "Auth Cipher");
for (i = 0; i < OSSL_NELEM(skf_cipher_caps); i++) {
if (devInfo->DevAuthAlgId == skf_cipher_caps[i].id) {
BIO_printf(out, "%s\n", skf_cipher_caps[i].name);
break;
}
}
if (i == OSSL_NELEM(skf_cipher_caps)) {
BIO_puts(out, "(unknown)\n");
}
if (devInfo->TotalSpace == UINT_MAX)
BIO_printf(out, " %-16s : %s\n", "Total Sapce", "(unlimited)");
else BIO_printf(out, " %-16s : %u\n", "Total Sapce", devInfo->TotalSpace);
if (devInfo->FreeSpace == UINT_MAX)
BIO_printf(out, " %-16s : %s\n", "Free Space", "(unlimited)");
else BIO_printf(out, " %-16s : %u\n", "Free Space", devInfo->FreeSpace);
if (devInfo->MaxECCBufferSize == UINT_MAX)
BIO_printf(out, " %-16s : %s\n", "MAX ECC Input", "(unlimited)");
else BIO_printf(out, " %-16s : %u\n", "MAX ECC Input", devInfo->MaxECCBufferSize);
if (devInfo->MaxBufferSize == UINT_MAX)
BIO_printf(out, " %-16s : %s\n", "MAX Cipher Input", "(unlimited)");
else BIO_printf(out, " %-16s : %u\n", "MAX Cipher Input", devInfo->MaxBufferSize);
OPENSSL_free(serial);
return SAR_OK;
}
ULONG SKF_PrintRSAPublicKey(BIO *out, RSAPUBLICKEYBLOB *blob)
{
BIO_printf(out, "AlgID : %s\n", skf_algor_name(blob->AlgID));
BIO_printf(out, "BitLen : %u\n", blob->BitLen);
BIO_puts(out, "Modulus:\n");
BIO_puts(out, " ");
BIO_hex_string(out, 4, 16, blob->Modulus, MAX_RSA_MODULUS_LEN);
BIO_puts(out, "\n");
BIO_puts(out, "PublicExponent:\n");
BIO_puts(out, " ");
BIO_hex_string(out, 4, 16, blob->PublicExponent, MAX_RSA_EXPONENT_LEN);
BIO_puts(out, "\n");
return SAR_OK;
}
ULONG SKF_PrintRSAPrivateKey(BIO *out, RSAPRIVATEKEYBLOB *blob)
{
BIO_printf(out, "AlgID : %s\n", skf_algor_name(blob->AlgID));
BIO_printf(out, "BitLen : %u\n", blob->BitLen);
BIO_puts(out, "Modulus:\n");
BIO_puts(out, " ");
BIO_hex_string(out, 4, 16, blob->Modulus, MAX_RSA_MODULUS_LEN);
BIO_puts(out, "\n");
BIO_puts(out, "PublicExponent:\n");
BIO_puts(out, " ");
BIO_hex_string(out, 4, 16, blob->PublicExponent, MAX_RSA_EXPONENT_LEN);
BIO_puts(out, "\n");
BIO_puts(out, "PrivateExponent:\n");
BIO_puts(out, " ");
BIO_hex_string(out, 4, 16, blob->PrivateExponent, MAX_RSA_MODULUS_LEN);
BIO_puts(out, "\n");
BIO_puts(out, "Prime1:\n");
BIO_puts(out, " ");
BIO_hex_string(out, 4, 16, blob->Prime1, MAX_RSA_MODULUS_LEN/2);
BIO_puts(out, "\n");
BIO_puts(out, "Prime2:\n");
BIO_puts(out, " ");
BIO_hex_string(out, 4, 16, blob->Prime2, MAX_RSA_MODULUS_LEN/2);
BIO_puts(out, "\n");
BIO_puts(out, "Prime1Exponent:\n");
BIO_hex_string(out, 4, 16, blob->Prime1Exponent, MAX_RSA_MODULUS_LEN/2);
BIO_puts(out, "\n");
BIO_puts(out, " ");
BIO_puts(out, "Prime2Exponent:\n");
BIO_puts(out, " ");
BIO_hex_string(out, 4, 16, blob->Prime2Exponent, MAX_RSA_MODULUS_LEN/2);
BIO_puts(out, "\n");
BIO_puts(out, "Coefficient:\n");
BIO_puts(out, " ");
BIO_hex_string(out, 4, 16, blob->Coefficient, MAX_RSA_MODULUS_LEN/2);
BIO_puts(out, "\n");
return SAR_OK;
}
ULONG SKF_PrintECCPublicKey(BIO *out, ECCPUBLICKEYBLOB *blob)
{
BIO_printf(out, "BitLen : %u\n", blob->BitLen);
BIO_puts(out, "XCoordinate:\n");
BIO_puts(out, " ");
BIO_hex_string(out, 4, 16, blob->XCoordinate, ECC_MAX_XCOORDINATE_BITS_LEN/8);
BIO_puts(out, "\n");
BIO_puts(out, "YCoordinate:\n");
BIO_puts(out, " ");
BIO_hex_string(out, 4, 16, blob->YCoordinate, ECC_MAX_XCOORDINATE_BITS_LEN/8);
BIO_puts(out, "\n");
return SAR_OK;
}
ULONG SKF_PrintECCPrivateKey(BIO *out, ECCPRIVATEKEYBLOB *blob)
{
BIO_printf(out, "BitLen : %u\n", blob->BitLen);
BIO_puts(out, "PrivateKey:\n");
BIO_puts(out, " ");
BIO_hex_string(out, 4, 16, blob->PrivateKey, ECC_MAX_MODULUS_BITS_LEN/8);
BIO_puts(out, "\n");
return SAR_OK;
}
ULONG SKF_PrintECCCipher(BIO *out, ECCCIPHERBLOB *blob)
{
BIO_puts(out, "XCoordinate:\n");
BIO_puts(out, " ");
BIO_hex_string(out, 4, 16, blob->XCoordinate, ECC_MAX_XCOORDINATE_BITS_LEN/8);
BIO_puts(out, "\n");
BIO_puts(out, "YCoordinate:\n");
BIO_puts(out, " ");
BIO_hex_string(out, 4, 16, blob->YCoordinate, ECC_MAX_XCOORDINATE_BITS_LEN/8);
BIO_puts(out, "\n");
BIO_puts(out, "HASH:\n");
BIO_puts(out, " ");
BIO_hex_string(out, 4, 16, blob->HASH, 32);
BIO_puts(out, "\n");
BIO_printf(out, "CipherLen: %u\n", blob->CipherLen);
BIO_puts(out, "Cipher:\n");
BIO_puts(out, " ");
BIO_hex_string(out, 4, 16, blob->Cipher, blob->CipherLen);
BIO_puts(out, "\n");
return SAR_OK;
}
ULONG SKF_PrintECCSignature(BIO *out, ECCSIGNATUREBLOB *blob)
{
BIO_puts(out, "r:\n");
BIO_puts(out, " ");
BIO_hex_string(out, 4, 16, blob->r, ECC_MAX_XCOORDINATE_BITS_LEN/8);
BIO_puts(out, "\n");
BIO_puts(out, "s:\n");
BIO_puts(out, " ");
BIO_hex_string(out, 4, 16, blob->s, ECC_MAX_XCOORDINATE_BITS_LEN/8);
BIO_puts(out, "\n");
return SAR_OK;
}
ULONG DEVAPI SKF_GetAlgorName(ULONG ulAlgID, LPSTR *szName)
{
return SAR_OK;
}
ULONG DEVAPI SKF_PrintErrorString(BIO *out, ULONG ulError)
{
LPSTR str = NULL;
SKF_GetErrorString(ulError, &str);
BIO_printf(out, "SKF Error: %s\n", (char *)str);
return SAR_OK;
}

View File

@@ -75,6 +75,10 @@
#define SKF_MAX_FILE_SIZE (256*1024)
#define SKF_MAX_CERTIFICATE_SIZE (8*1024)
#define SKF_DEFAULT_ADMIN_PIN_RETRY_COUNT 6
#define SKF_DEFAULT_USER_PIN_RETRY_COUNT 6
#ifdef __cplusplus
extern "C" {
#endif
@@ -94,8 +98,12 @@ typedef struct {
int length;
} SKF_FILE_OP_PARAMS;
ULONG DEVAPI SKF_LoadLibrary(LPSTR so_path, LPSTR vendor);
ULONG DEVAPI SKF_UnloadLibrary(void);
ULONG DEVAPI SKF_OpenDevice(LPSTR devName, BYTE authKey[16], DEVINFO *devInfo, DEVHANDLE *phDev);
ULONG DEVAPI SKF_CloseDevice(DEVHANDLE hDev);
ULONG DEVAPI SKF_LoginApplication(DEVHANDLE hDev, LPSTR appName, ULONG userType, LPSTR szPin, HAPPLICATION *phApp);
ULONG DEVAPI SKF_GetDevStateName(ULONG ulDevState, LPSTR *szName);
ULONG DEVAPI SKF_GetContainerTypeName(ULONG ulContainerType, LPSTR *szName);
ULONG DEVAPI SKF_GetAlgorName(ULONG ulAlgID, LPSTR *szName);
@@ -109,6 +117,16 @@ ULONG DEVAPI SKF_PrintECCSignature(BIO *out, ECCSIGNATUREBLOB *blob);
ULONG DEVAPI SKF_GetErrorString(ULONG ulError, LPSTR *szErrorStr);
ULONG DEVAPI SKF_NewECCCipher(ULONG ulCipherLen, ECCCIPHERBLOB **cipherBlob);
ULONG DEVAPI SKF_NewEnvelopedKey(ULONG ulCipherLen, ENVELOPEDKEYBLOB **envelopedKeyBlob);
ULONG DEVAPI SKF_ImportECCPrivateKey(DEVHANDLE hDev, HCONTAINER hContainer, EC_KEY *ec_key, ULONG symmAlgId);
ULONG DEVAPI SKF_ImportRSAPrivateKey(DEVHANDLE hDev, HCONTAINER hContainer, RSA *rsa, ULONG symmAlgId);
ULONG DEVAPI SKF_ImportPrivateKey(DEVHANDLE hDev, HCONTAINER hContainer, EVP_PKEY *pkey, ULONG symmAlgId);
ULONG DEVAPI SKF_ExportECCPublicKey(HCONTAINER hContainer, BOOL bSign, EC_KEY **pp);
ULONG DEVAPI SKF_ExportRSAPublicKey(HCONTAINER hContainer, BOOL bSign, RSA **pp);
ULONG DEVAPI SKF_ExportEVPPublicKey(HCONTAINER hContainer, BOOL bSign, EVP_PKEY **pp);
ULONG DEVAPI SKF_ImportX509CertificateByKeyUsage(HCONTAINER hContainer, X509 *x509);
ULONG DEVAPI SKF_ImportX509Certificate(HCONTAINER hContainer, BOOL bSign, X509 *x509);
ULONG DEVAPI SKF_ExportX509Certificate(HCONTAINER hContainer, BOOL bSign, X509 **px509);
/* BEGIN ERROR CODES */
/*
@@ -121,168 +139,182 @@ int ERR_load_SKF_strings(void);
/* Error codes for the SKF functions. */
/* Function codes. */
# define SKF_F_SKF_CANCELWAITFORDEVEVENT 108
# define SKF_F_SKF_CHANGEDEVAUTHKEY 109
# define SKF_F_SKF_CHANGEPIN 110
# define SKF_F_SKF_CLEARSECURESTATE 111
# define SKF_F_SKF_CLOSEAPPLICATION 112
# define SKF_F_SKF_CLOSECONTAINER 113
# define SKF_F_SKF_CLOSEHANDLE 114
# define SKF_F_SKF_CONNECTDEV 115
# define SKF_F_SKF_CREATEAPPLICATION 116
# define SKF_F_SKF_CREATECONTAINER 117
# define SKF_F_SKF_CREATEFILE 118
# define SKF_F_SKF_DECRYPT 119
# define SKF_F_SKF_DECRYPTFINAL 120
# define SKF_F_SKF_DECRYPTINIT 121
# define SKF_F_SKF_DECRYPTUPDATE 122
# define SKF_F_SKF_DELETEAPPLICATION 123
# define SKF_F_SKF_DELETECONTAINER 124
# define SKF_F_SKF_DELETEFILE 125
# define SKF_F_SKF_DEVAUTH 126
# define SKF_F_SKF_DIGEST 127
# define SKF_F_SKF_DIGESTFINAL 128
# define SKF_F_SKF_DIGESTINIT 129
# define SKF_F_SKF_DIGESTUPDATE 130
# define SKF_F_SKF_DISCONNECTDEV 131
# define SKF_F_SKF_ECCDECRYPT 184
# define SKF_F_SKF_ECCEXPORTSESSIONKEY 132
# define SKF_F_SKF_ECCSIGNDATA 133
# define SKF_F_SKF_ECCVERIFY 134
# define SKF_F_SKF_ENCRYPT 135
# define SKF_F_SKF_ENCRYPTFINAL 136
# define SKF_F_SKF_ENCRYPTINIT 137
# define SKF_F_SKF_ENCRYPTUPDATE 138
# define SKF_F_SKF_ENUMAPPLICATION 139
# define SKF_F_SKF_ENUMCONTAINER 140
# define SKF_F_SKF_ENUMDEV 141
# define SKF_F_SKF_ENUMFILES 142
# define SKF_F_SKF_EXPORTCERTIFICATE 143
# define SKF_F_SKF_EXPORTPUBLICKEY 144
# define SKF_F_SKF_EXTECCDECRYPT 145
# define SKF_F_SKF_EXTECCENCRYPT 146
# define SKF_F_SKF_EXTECCSIGN 147
# define SKF_F_SKF_EXTECCVERIFY 148
# define SKF_F_SKF_EXTRSAPRIKEYOPERATION 149
# define SKF_F_SKF_EXTRSAPUBKEYOPERATION 150
# define SKF_F_SKF_GENECCKEYPAIR 151
# define SKF_F_SKF_GENERATEAGREEMENTDATAANDKEYWITHECC 152
# define SKF_F_SKF_GENERATEAGREEMENTDATAWITHECC 153
# define SKF_F_SKF_GENERATEKEYWITHECC 154
# define SKF_F_SKF_GENEXTRSAKEY 155
# define SKF_F_SKF_GENRANDOM 156
# define SKF_F_SKF_GENRSAKEYPAIR 157
# define SKF_F_SKF_GETCONTAINERTYPE 158
# define SKF_F_SKF_GETDEVINFO 100
# define SKF_F_SKF_GETDEVSTATE 159
# define SKF_F_SKF_GETFILEINFO 160
# define SKF_F_SKF_GETPININFO 161
# define SKF_F_SKF_IMPORTCERTIFICATE 162
# define SKF_F_SKF_IMPORTECCKEYPAIR 163
# define SKF_F_SKF_IMPORTECCPRIVATEKEY 103
# define SKF_F_SKF_IMPORTRSAKEYPAIR 164
# define SKF_F_SKF_IMPORTSESSIONKEY 165
# define SKF_F_SKF_LOADLIBRARY 101
# define SKF_F_SKF_LOCKDEV 166
# define SKF_F_SKF_MAC 107
# define SKF_F_SKF_CANCELWAITFORDEVEVENT 100
# define SKF_F_SKF_CHANGEDEVAUTHKEY 101
# define SKF_F_SKF_CHANGEPIN 102
# define SKF_F_SKF_CLEARSECURESTATE 103
# define SKF_F_SKF_CLOSEAPPLICATION 104
# define SKF_F_SKF_CLOSECONTAINER 105
# define SKF_F_SKF_CLOSEDEVICE 187
# define SKF_F_SKF_CLOSEHANDLE 106
# define SKF_F_SKF_CONNECTDEV 107
# define SKF_F_SKF_CREATEAPPLICATION 108
# define SKF_F_SKF_CREATECONTAINER 109
# define SKF_F_SKF_CREATEFILE 110
# define SKF_F_SKF_DECRYPT 111
# define SKF_F_SKF_DECRYPTFINAL 112
# define SKF_F_SKF_DECRYPTINIT 113
# define SKF_F_SKF_DECRYPTUPDATE 114
# define SKF_F_SKF_DELETEAPPLICATION 115
# define SKF_F_SKF_DELETECONTAINER 116
# define SKF_F_SKF_DELETEFILE 117
# define SKF_F_SKF_DEVAUTH 118
# define SKF_F_SKF_DIGEST 119
# define SKF_F_SKF_DIGESTFINAL 120
# define SKF_F_SKF_DIGESTINIT 121
# define SKF_F_SKF_DIGESTUPDATE 122
# define SKF_F_SKF_DISCONNECTDEV 123
# define SKF_F_SKF_ECCDECRYPT 124
# define SKF_F_SKF_ECCEXPORTSESSIONKEY 125
# define SKF_F_SKF_ECCSIGNDATA 126
# define SKF_F_SKF_ECCVERIFY 127
# define SKF_F_SKF_ENCRYPT 128
# define SKF_F_SKF_ENCRYPTFINAL 129
# define SKF_F_SKF_ENCRYPTINIT 130
# define SKF_F_SKF_ENCRYPTUPDATE 131
# define SKF_F_SKF_ENUMAPPLICATION 132
# define SKF_F_SKF_ENUMCONTAINER 133
# define SKF_F_SKF_ENUMDEV 134
# define SKF_F_SKF_ENUMFILES 135
# define SKF_F_SKF_EXPORTCERTIFICATE 136
# define SKF_F_SKF_EXPORTECCENCPUBLICKEY 137
# define SKF_F_SKF_EXPORTECCPUBLICKEY 188
# define SKF_F_SKF_EXPORTECCSIGNPUBLICKEY 138
# define SKF_F_SKF_EXPORTEVPPUBLICKEY 189
# define SKF_F_SKF_EXPORTPUBLICKEY 139
# define SKF_F_SKF_EXPORTRSAENCPUBLICKEY 140
# define SKF_F_SKF_EXPORTRSAPUBLICKEY 190
# define SKF_F_SKF_EXPORTRSASIGNPUBLICKEY 141
# define SKF_F_SKF_EXPORTX509CERTIFICATE 191
# define SKF_F_SKF_EXTECCDECRYPT 142
# define SKF_F_SKF_EXTECCENCRYPT 143
# define SKF_F_SKF_EXTECCSIGN 144
# define SKF_F_SKF_EXTECCVERIFY 145
# define SKF_F_SKF_EXTRSAPRIKEYOPERATION 146
# define SKF_F_SKF_EXTRSAPUBKEYOPERATION 147
# define SKF_F_SKF_GENECCKEYPAIR 148
# define SKF_F_SKF_GENERATEAGREEMENTDATAANDKEYWITHECC 149
# define SKF_F_SKF_GENERATEAGREEMENTDATAWITHECC 150
# define SKF_F_SKF_GENERATEKEYWITHECC 151
# define SKF_F_SKF_GENEXTRSAKEY 152
# define SKF_F_SKF_GENRANDOM 153
# define SKF_F_SKF_GENRSAKEYPAIR 154
# define SKF_F_SKF_GETCONTAINERTYPE 155
# define SKF_F_SKF_GETDEVINFO 156
# define SKF_F_SKF_GETDEVSTATE 157
# define SKF_F_SKF_GETFILEINFO 158
# define SKF_F_SKF_GETPININFO 159
# define SKF_F_SKF_IMPORTCERTIFICATE 160
# define SKF_F_SKF_IMPORTECCKEYPAIR 161
# define SKF_F_SKF_IMPORTECCPRIVATEKEY 195
# define SKF_F_SKF_IMPORTPRIVATEKEY 192
# define SKF_F_SKF_IMPORTRSAKEYPAIR 162
# define SKF_F_SKF_IMPORTRSAPRIVATEKEY 196
# define SKF_F_SKF_IMPORTSESSIONKEY 163
# define SKF_F_SKF_IMPORTX509CERTIFICATEBYKEYUSAGE 193
# define SKF_F_SKF_LOADLIBRARY 164
# define SKF_F_SKF_LOCKDEV 165
# define SKF_F_SKF_MAC 166
# define SKF_F_SKF_MACFINAL 167
# define SKF_F_SKF_MACINIT 168
# define SKF_F_SKF_MACUPDATE 169
# define SKF_F_SKF_METHOD_LOAD_LIBRARY 104
# define SKF_F_SKF_NEWECCCIPHER 102
# define SKF_F_SKF_NEWENVELOPEDKEY 183
# define SKF_F_SKF_OPENAPPLICATION 170
# define SKF_F_SKF_OPENCONTAINER 171
# define SKF_F_SKF_READFILE 172
# define SKF_F_SKF_RSAEXPORTSESSIONKEY 173
# define SKF_F_SKF_RSASIGNDATA 174
# define SKF_F_SKF_RSAVERIFY 175
# define SKF_F_SKF_SETLABEL 176
# define SKF_F_SKF_SETSYMMKEY 177
# define SKF_F_SKF_TRANSMIT 178
# define SKF_F_SKF_UNBLOCKPIN 179
# define SKF_F_SKF_UNLOCKDEV 180
# define SKF_F_SKF_VERIFYPIN 181
# define SKF_F_SKF_W 105
# define SKF_F_SKF_WAITFORDEVEVENT 106
# define SKF_F_SKF_WRITEFILE 182
# define SKF_F_SKF_METHOD_LOAD_LIBRARY 170
# define SKF_F_SKF_NEWECCCIPHER 171
# define SKF_F_SKF_NEWENVELOPEDKEY 172
# define SKF_F_SKF_OPENAPPLICATION 173
# define SKF_F_SKF_OPENCONTAINER 174
# define SKF_F_SKF_OPENDEVICE 194
# define SKF_F_SKF_READFILE 175
# define SKF_F_SKF_RSAEXPORTSESSIONKEY 176
# define SKF_F_SKF_RSASIGNDATA 177
# define SKF_F_SKF_RSAVERIFY 178
# define SKF_F_SKF_SETLABEL 179
# define SKF_F_SKF_SETSYMMKEY 180
# define SKF_F_SKF_TRANSMIT 181
# define SKF_F_SKF_UNBLOCKPIN 182
# define SKF_F_SKF_UNLOCKDEV 183
# define SKF_F_SKF_VERIFYPIN 184
# define SKF_F_SKF_WAITFORDEVEVENT 185
# define SKF_F_SKF_WRITEFILE 186
/* Reason codes. */
# define SKF_R_APPLICATION_ALREADY_EXIST 110
# define SKF_R_APPLICATION_NOT_EXISAT 111
# define SKF_R_APPLICATION_NOT_EXIST 171
# define SKF_R_BUFFER_TOO_SMALL 112
# define SKF_R_CERTIFICATE_NOT_FOUND 113
# define SKF_R_CSP_IMPORT_PUBLIC_KEY_ERROR 114
# define SKF_R_DECRYPT_INVALID_PADDING 115
# define SKF_R_DEVICE_REMOVED 116
# define SKF_R_DIGEST_ERROR 117
# define SKF_R_DSO_LOAD_FAILURE 105
# define SKF_R_ENVELOPE_PRVATE_KEY_FAILURE 104
# define SKF_R_EXPORT_FAILED 118
# define SKF_R_FAILURE 108
# define SKF_R_FILE_ALREADY_EXIST 119
# define SKF_R_FILE_ERROR 120
# define SKF_R_FILE_NOT_EXIST 121
# define SKF_R_FUNCTION_NOT_SUPPORTED 106
# define SKF_R_HASH_NOT_EQUAL 122
# define SKF_R_IMPORT_ENVELOPED_ECC_PRIVATE_KEY_FAILURE 102
# define SKF_R_INVALID_APPLICATION_NAME 123
# define SKF_R_INVALID_CONTAINER_TYPE 103
# define SKF_R_INVALID_DIGEST_HANDLE 124
# define SKF_R_INVALID_HANDLE 125
# define SKF_R_INVALID_INPUT_LENGTH 126
# define SKF_R_INVALID_INPUT_VALUE 127
# define SKF_R_INVALID_KEY_INFO_TYPE 128
# define SKF_R_INVALID_KEY_USAGE 129
# define SKF_R_INVALID_MAC_LENGTH 130
# define SKF_R_INVALID_MODULUS_LENGTH 131
# define SKF_R_INVALID_NAME_LENGTH 132
# define SKF_R_INVALID_OBJECT 133
# define SKF_R_INVALID_PARAMETER 134
# define SKF_R_INVALID_PIN 135
# define SKF_R_INVALID_PIN_LENGTH 136
# define SKF_R_INVALID_RSA_MODULUS_LENGTH 137
# define SKF_R_INVALID_USER_TYPE 138
# define SKF_R_KEY_NOT_FOUND 139
# define SKF_R_LOAD_LIBRARY_FAILURE 101
# define SKF_R_MEMORY_ERROR 140
# define SKF_R_NOT_INITIALIZED 141
# define SKF_R_NOT_SUPPORTED_CIPHER_ALGOR 168
# define SKF_R_NOT_SUPPORTED_DIGEST_ALGOR 169
# define SKF_R_NOT_SUPPORTED_PKEY_ALGOR 170
# define SKF_R_NO_EVENT 142
# define SKF_R_NO_SPACE 143
# define SKF_R_NULL_ARGUMENT 100
# define SKF_R_OPERATION_NOT_SUPPORTED 144
# define SKF_R_PIN_INCORRECT 145
# define SKF_R_PIN_LOCKED 146
# define SKF_R_RANDOM_GENERATION_FAILED 147
# define SKF_R_READ_FILE_FAILURE 148
# define SKF_R_RSA_DECRYPTION_FAILURE 149
# define SKF_R_RSA_ENCRYPTION_FAILURE 150
# define SKF_R_RSA_KEY_GENERATION_FAILURE 151
# define SKF_R_SKF_METHOD_NOT_INITIALIZED 107
# define SKF_R_SUCCESS 152
# define SKF_R_TIMEOUT 153
# define SKF_R_UNKNOWN_ERROR 109
# define SKF_R_UNKNOWN_VENDOR 158
# define SKF_R_USER_ALREADY_LOGGED_IN 154
# define SKF_R_USER_NOT_LOGGED_IN 155
# define SKF_R_USER_PIN_NOT_INITIALIZED 156
# define SKF_R_WISEC_AUTH_BLOCKED 159
# define SKF_R_WISEC_CERTNOUSAGEERR 160
# define SKF_R_WISEC_CERTUSAGEERR 161
# define SKF_R_WISEC_CONTAINER_EXISTS 162
# define SKF_R_WISEC_CONTAINER_NOT_EXISTS 163
# define SKF_R_WISEC_DEVNOAUTH 164
# define SKF_R_WISEC_FILEATTRIBUTEERR 165
# define SKF_R_WISEC_INVALIDCONTAINERERR 166
# define SKF_R_WISEC_KEYNOUSAGEERR 167
# define SKF_R_WRITE_FILE_FAILURE 157
# define SKF_R_APPLICATION_ALREADY_EXIST 100
# define SKF_R_APPLICATION_NOT_EXIST 101
# define SKF_R_BUFFER_TOO_SMALL 102
# define SKF_R_CERTIFICATE_NOT_FOUND 103
# define SKF_R_CONTAINER_TYPE_NOT_MATCH 104
# define SKF_R_CSP_IMPORT_PUBLIC_KEY_ERROR 105
# define SKF_R_DECRYPT_INVALID_PADDING 106
# define SKF_R_DEVICE_REMOVED 107
# define SKF_R_DIGEST_ERROR 108
# define SKF_R_DSO_LOAD_FAILURE 109
# define SKF_R_EXPORT_FAILED 110
# define SKF_R_FAILURE 111
# define SKF_R_FILE_ALREADY_EXIST 112
# define SKF_R_FILE_ERROR 113
# define SKF_R_FILE_NOT_EXIST 114
# define SKF_R_FUNCTION_NOT_SUPPORTED 115
# define SKF_R_HASH_NOT_EQUAL 116
# define SKF_R_INVALID_APPLICATION_NAME 117
# define SKF_R_INVALID_CONTAINER_TYPE 168
# define SKF_R_INVALID_DIGEST_HANDLE 118
# define SKF_R_INVALID_ECC_PUBLIC_KEY 169
# define SKF_R_INVALID_HANDLE 119
# define SKF_R_INVALID_INPUT_LENGTH 120
# define SKF_R_INVALID_INPUT_VALUE 121
# define SKF_R_INVALID_KEY_INFO_TYPE 122
# define SKF_R_INVALID_KEY_USAGE 123
# define SKF_R_INVALID_MAC_LENGTH 124
# define SKF_R_INVALID_MODULUS_LENGTH 125
# define SKF_R_INVALID_NAME_LENGTH 126
# define SKF_R_INVALID_OBJECT 127
# define SKF_R_INVALID_PARAMETER 128
# define SKF_R_INVALID_PIN 129
# define SKF_R_INVALID_PIN_LENGTH 130
# define SKF_R_INVALID_RSA_MODULUS_LENGTH 131
# define SKF_R_INVALID_RSA_PUBLIC_KEY 170
# define SKF_R_INVALID_USER_TYPE 132
# define SKF_R_KEY_NOT_FOUND 133
# define SKF_R_LOAD_LIBRARY_FAILURE 134
# define SKF_R_MEMORY_ERROR 135
# define SKF_R_NOT_INITIALIZED 136
# define SKF_R_NOT_SUPPORTED_CIPHER_ALGOR 137
# define SKF_R_NOT_SUPPORTED_DIGEST_ALGOR 138
# define SKF_R_NOT_SUPPORTED_PKEY_ALGOR 139
# define SKF_R_NO_EVENT 140
# define SKF_R_NO_SPACE 141
# define SKF_R_OPERATION_NOT_SUPPORTED 142
# define SKF_R_PARSE_CERTIFICATE_FAILURE 171
# define SKF_R_PIN_INCORRECT 143
# define SKF_R_PIN_LOCKED 144
# define SKF_R_RANDOM_GENERATION_FAILED 145
# define SKF_R_READ_FILE_FAILURE 146
# define SKF_R_RSA_DECRYPTION_FAILURE 147
# define SKF_R_RSA_ENCRYPTION_FAILURE 148
# define SKF_R_RSA_KEY_GENERATION_FAILURE 149
# define SKF_R_SKF_METHOD_NOT_INITIALIZED 150
# define SKF_R_SUCCESS 151
# define SKF_R_TIMEOUT 152
# define SKF_R_UNKNOWN_CERTIFICATE_KEYUSAGE 172
# define SKF_R_UNKNOWN_ERROR 153
# define SKF_R_UNKNOWN_VENDOR 154
# define SKF_R_UNSUPPORTED_PRIVATE_KEY_TYPE 173
# define SKF_R_USER_ALREADY_LOGGED_IN 155
# define SKF_R_USER_NOT_LOGGED_IN 156
# define SKF_R_USER_PIN_NOT_INITIALIZED 157
# define SKF_R_WISEC_AUTH_BLOCKED 158
# define SKF_R_WISEC_CERTNOUSAGEERR 159
# define SKF_R_WISEC_CERTUSAGEERR 160
# define SKF_R_WISEC_CONTAINER_EXISTS 161
# define SKF_R_WISEC_CONTAINER_NOT_EXISTS 162
# define SKF_R_WISEC_DEVNOAUTH 163
# define SKF_R_WISEC_FILEATTRIBUTEERR 164
# define SKF_R_WISEC_INVALIDCONTAINERERR 165
# define SKF_R_WISEC_KEYNOUSAGEERR 166
# define SKF_R_WRITE_FILE_FAILURE 167
# ifdef __cplusplus
# ifdef __cplusplus
}
# endif
# endif
#endif
#endif

View File

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

View File

@@ -467,12 +467,13 @@ ULONG DEVAPI SKF_ECCSignData(
ULONG ulDigestLen,
ECCSIGNATUREBLOB *pSignature);
/* Extension */
#ifdef SKF_HAS_ECCDECRYPT
ULONG DEVAPI SKF_ECCDecrypt(
HCONTAINER hContainer,
ECCCIPHERBLOB *pCipherBlob,
BYTE *pbPlainText,
ULONG *pulPlainTextLen);
#endif
/* 7.6.14 */
ULONG DEVAPI SKF_ECCVerify(

View File

@@ -94,7 +94,7 @@ int SM2_compute_message_digest(const EVP_MD *id_md, const EVP_MD *msg_md,
int SM2_sign_setup(EC_KEY *ec_key, BN_CTX *ctx, BIGNUM **a, BIGNUM **b);
ECDSA_SIG *SM2_do_sign_ex(const unsigned char *dgst, int dgstlen,
const BIGNUM *a, const BIGNUM *b, EC_KEY *ec_key);
const BIGNUM *k, const BIGNUM *x, EC_KEY *ec_key);
ECDSA_SIG *SM2_do_sign(const unsigned char *dgst, int dgst_len,
EC_KEY *ec_key);
int SM2_do_verify(const unsigned char *dgst, int dgstlen,

File diff suppressed because it is too large Load Diff

View File

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