mirror of
https://github.com/guanzhi/GmSSL.git
synced 2026-08-07 12:33:39 +08:00
Add 128-EEA3, 128-EIA3, ZUC-MAC, ZUC256, ZUC256-MAC and EVP_zuc256
This commit is contained in:
@@ -293,5 +293,6 @@ void openssl_add_all_ciphers_int(void)
|
|||||||
#endif
|
#endif
|
||||||
#ifndef OPENSSL_NO_ZUC
|
#ifndef OPENSSL_NO_ZUC
|
||||||
EVP_add_cipher(EVP_zuc());
|
EVP_add_cipher(EVP_zuc());
|
||||||
|
EVP_add_cipher(EVP_zuc256());
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -109,4 +109,31 @@ const EVP_CIPHER *EVP_zuc(void)
|
|||||||
{
|
{
|
||||||
return &zuc_cipher;
|
return &zuc_cipher;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int zuc256_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,
|
||||||
|
const unsigned char *iv, int enc)
|
||||||
|
{
|
||||||
|
EVP_ZUC_KEY *dctx = EVP_C_DATA(EVP_ZUC_KEY, ctx);
|
||||||
|
ZUC256_set_key(&dctx->ks, key, iv);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
const EVP_CIPHER zuc256_cipher = {
|
||||||
|
NID_zuc256,
|
||||||
|
1,
|
||||||
|
ZUC256_KEY_LENGTH,
|
||||||
|
ZUC256_IV_LENGTH,
|
||||||
|
0,
|
||||||
|
zuc256_init_key,
|
||||||
|
zuc_do_cipher,
|
||||||
|
NULL,
|
||||||
|
sizeof(EVP_ZUC_KEY),
|
||||||
|
NULL,NULL,NULL,NULL,
|
||||||
|
};
|
||||||
|
|
||||||
|
const EVP_CIPHER *EVP_zuc256(void)
|
||||||
|
{
|
||||||
|
return &zuc256_cipher;
|
||||||
|
}
|
||||||
|
|
||||||
#endif /* OPENSSL_NO_ZUC */
|
#endif /* OPENSSL_NO_ZUC */
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/* Serialized OID's */
|
/* Serialized OID's */
|
||||||
static const unsigned char so[7915] = {
|
static const unsigned char so[7972] = {
|
||||||
0x2A,0x86,0x48,0x86,0xF7,0x0D, /* [ 0] OBJ_rsadsi */
|
0x2A,0x86,0x48,0x86,0xF7,0x0D, /* [ 0] OBJ_rsadsi */
|
||||||
0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01, /* [ 6] OBJ_pkcs */
|
0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01, /* [ 6] OBJ_pkcs */
|
||||||
0x2A,0x86,0x48,0x86,0xF7,0x0D,0x02,0x02, /* [ 13] OBJ_md2 */
|
0x2A,0x86,0x48,0x86,0xF7,0x0D,0x02,0x02, /* [ 13] OBJ_md2 */
|
||||||
@@ -1104,9 +1104,15 @@ static const unsigned char so[7915] = {
|
|||||||
0x2A,0x81,0x1C,0xCF,0x55,0x01,0x82,0x2F,0x07, /* [ 7885] OBJ_sm9hash2 */
|
0x2A,0x81,0x1C,0xCF,0x55,0x01,0x82,0x2F,0x07, /* [ 7885] OBJ_sm9hash2 */
|
||||||
0x2A,0x81,0x1C,0xCF,0x55,0x01,0x82,0x2F,0x07,0x01, /* [ 7894] OBJ_sm9hash2_with_sm3 */
|
0x2A,0x81,0x1C,0xCF,0x55,0x01,0x82,0x2F,0x07,0x01, /* [ 7894] OBJ_sm9hash2_with_sm3 */
|
||||||
0x2A,0x81,0x1C,0xCF,0x55,0x01,0x82,0x2F,0x07,0x02, /* [ 7904] OBJ_sm9hash2_with_sha256 */
|
0x2A,0x81,0x1C,0xCF,0x55,0x01,0x82,0x2F,0x07,0x02, /* [ 7904] OBJ_sm9hash2_with_sha256 */
|
||||||
|
0x2A,0x81,0x1C,0xCF,0x55,0x01,0x86,0x20,0x04, /* [ 7914] OBJ_zuc256 */
|
||||||
|
0x2A,0x81,0x1C,0xCF,0x55,0x01,0x86,0x20,0x03, /* [ 7923] OBJ_zuc_mac */
|
||||||
|
0x2A,0x81,0x1C,0xCF,0x55,0x01,0x86,0x20,0x05, /* [ 7932] OBJ_zuc256_mac */
|
||||||
|
0x2A,0x81,0x1C,0xCF,0x55,0x01,0x86,0x20,0x05,0x01, /* [ 7941] OBJ_zuc256_mac32 */
|
||||||
|
0x2A,0x81,0x1C,0xCF,0x55,0x01,0x86,0x20,0x05,0x02, /* [ 7951] OBJ_zuc256_mac64 */
|
||||||
|
0x2A,0x81,0x1C,0xCF,0x55,0x01,0x86,0x20,0x05,0x03, /* [ 7961] OBJ_zuc256_mac128 */
|
||||||
};
|
};
|
||||||
|
|
||||||
#define NUM_NID 1212
|
#define NUM_NID 1218
|
||||||
static const ASN1_OBJECT nid_objs[NUM_NID] = {
|
static const ASN1_OBJECT nid_objs[NUM_NID] = {
|
||||||
{"UNDEF", "undefined", NID_undef},
|
{"UNDEF", "undefined", NID_undef},
|
||||||
{"rsadsi", "RSA Data Security, Inc.", NID_rsadsi, 6, &so[0]},
|
{"rsadsi", "RSA Data Security, Inc.", NID_rsadsi, 6, &so[0]},
|
||||||
@@ -2320,9 +2326,15 @@ static const ASN1_OBJECT nid_objs[NUM_NID] = {
|
|||||||
{"sm9hash2", "sm9hash2", NID_sm9hash2, 9, &so[7885]},
|
{"sm9hash2", "sm9hash2", NID_sm9hash2, 9, &so[7885]},
|
||||||
{"sm9hash2-with-sm3", "sm9hash2-with-sm3", NID_sm9hash2_with_sm3, 10, &so[7894]},
|
{"sm9hash2-with-sm3", "sm9hash2-with-sm3", NID_sm9hash2_with_sm3, 10, &so[7894]},
|
||||||
{"sm9hash2-with-sha256", "sm9hash2-with-sha256", NID_sm9hash2_with_sha256, 10, &so[7904]},
|
{"sm9hash2-with-sha256", "sm9hash2-with-sha256", NID_sm9hash2_with_sha256, 10, &so[7904]},
|
||||||
|
{"ZUC256", "zuc256", NID_zuc256, 9, &so[7914]},
|
||||||
|
{"ZUC-MAC", "zuc-mac", NID_zuc_mac, 9, &so[7923]},
|
||||||
|
{"ZUC256-MAC", "zuc256-mac", NID_zuc256_mac, 9, &so[7932]},
|
||||||
|
{"ZUC256-MAC32", "zuc256-mac32", NID_zuc256_mac32, 10, &so[7941]},
|
||||||
|
{"ZUC256-MAC64", "zuc256-mac64", NID_zuc256_mac64, 10, &so[7951]},
|
||||||
|
{"ZUC256-MAC128", "zuc256-mac128", NID_zuc256_mac128, 10, &so[7961]},
|
||||||
};
|
};
|
||||||
|
|
||||||
#define NUM_SN 1202
|
#define NUM_SN 1208
|
||||||
static const unsigned int sn_objs[NUM_SN] = {
|
static const unsigned int sn_objs[NUM_SN] = {
|
||||||
364, /* "AD_DVCS" */
|
364, /* "AD_DVCS" */
|
||||||
419, /* "AES-128-CBC" */
|
419, /* "AES-128-CBC" */
|
||||||
@@ -2613,6 +2625,12 @@ static const unsigned int sn_objs[NUM_SN] = {
|
|||||||
185, /* "X9cm" */
|
185, /* "X9cm" */
|
||||||
125, /* "ZLIB" */
|
125, /* "ZLIB" */
|
||||||
1185, /* "ZUC" */
|
1185, /* "ZUC" */
|
||||||
|
1213, /* "ZUC-MAC" */
|
||||||
|
1212, /* "ZUC256" */
|
||||||
|
1214, /* "ZUC256-MAC" */
|
||||||
|
1217, /* "ZUC256-MAC128" */
|
||||||
|
1215, /* "ZUC256-MAC32" */
|
||||||
|
1216, /* "ZUC256-MAC64" */
|
||||||
478, /* "aRecord" */
|
478, /* "aRecord" */
|
||||||
289, /* "aaControls" */
|
289, /* "aaControls" */
|
||||||
287, /* "ac-auditEntity" */
|
287, /* "ac-auditEntity" */
|
||||||
@@ -3528,7 +3546,7 @@ static const unsigned int sn_objs[NUM_SN] = {
|
|||||||
1187, /* "zuc-128eia3" */
|
1187, /* "zuc-128eia3" */
|
||||||
};
|
};
|
||||||
|
|
||||||
#define NUM_LN 1202
|
#define NUM_LN 1208
|
||||||
static const unsigned int ln_objs[NUM_LN] = {
|
static const unsigned int ln_objs[NUM_LN] = {
|
||||||
363, /* "AD Time Stamping" */
|
363, /* "AD Time Stamping" */
|
||||||
405, /* "ANSI X9.62" */
|
405, /* "ANSI X9.62" */
|
||||||
@@ -4732,9 +4750,15 @@ static const unsigned int ln_objs[NUM_LN] = {
|
|||||||
1185, /* "zuc" */
|
1185, /* "zuc" */
|
||||||
1186, /* "zuc-128eea3" */
|
1186, /* "zuc-128eea3" */
|
||||||
1187, /* "zuc-128eia3" */
|
1187, /* "zuc-128eia3" */
|
||||||
|
1213, /* "zuc-mac" */
|
||||||
|
1212, /* "zuc256" */
|
||||||
|
1214, /* "zuc256-mac" */
|
||||||
|
1217, /* "zuc256-mac128" */
|
||||||
|
1215, /* "zuc256-mac32" */
|
||||||
|
1216, /* "zuc256-mac64" */
|
||||||
};
|
};
|
||||||
|
|
||||||
#define NUM_OBJ 1099
|
#define NUM_OBJ 1105
|
||||||
static const unsigned int obj_objs[NUM_OBJ] = {
|
static const unsigned int obj_objs[NUM_OBJ] = {
|
||||||
0, /* OBJ_undef 0 */
|
0, /* OBJ_undef 0 */
|
||||||
181, /* OBJ_iso 1 */
|
181, /* OBJ_iso 1 */
|
||||||
@@ -5483,6 +5507,9 @@ static const unsigned int obj_objs[NUM_OBJ] = {
|
|||||||
1149, /* OBJ_hmac_sm3 1 2 156 10197 1 401 2 */
|
1149, /* OBJ_hmac_sm3 1 2 156 10197 1 401 2 */
|
||||||
1186, /* OBJ_zuc_128eea3 1 2 156 10197 1 800 1 */
|
1186, /* OBJ_zuc_128eea3 1 2 156 10197 1 800 1 */
|
||||||
1187, /* OBJ_zuc_128eia3 1 2 156 10197 1 800 2 */
|
1187, /* OBJ_zuc_128eia3 1 2 156 10197 1 800 2 */
|
||||||
|
1213, /* OBJ_zuc_mac 1 2 156 10197 1 800 3 */
|
||||||
|
1212, /* OBJ_zuc256 1 2 156 10197 1 800 4 */
|
||||||
|
1214, /* OBJ_zuc256_mac 1 2 156 10197 1 800 5 */
|
||||||
1192, /* OBJ_wapip192v1 1 2 156 11235 1 1 2 1 */
|
1192, /* OBJ_wapip192v1 1 2 156 11235 1 1 2 1 */
|
||||||
997, /* OBJ_id_tc26_gost_3410_2012_512_paramSetTest 1 2 643 7 1 2 1 2 0 */
|
997, /* OBJ_id_tc26_gost_3410_2012_512_paramSetTest 1 2 643 7 1 2 1 2 0 */
|
||||||
998, /* OBJ_id_tc26_gost_3410_2012_512_paramSetA 1 2 643 7 1 2 1 2 1 */
|
998, /* OBJ_id_tc26_gost_3410_2012_512_paramSetA 1 2 643 7 1 2 1 2 1 */
|
||||||
@@ -5700,6 +5727,9 @@ static const unsigned int obj_objs[NUM_OBJ] = {
|
|||||||
1175, /* OBJ_sm9bn256v1 1 2 156 10197 1 302 6 1 */
|
1175, /* OBJ_sm9bn256v1 1 2 156 10197 1 302 6 1 */
|
||||||
1210, /* OBJ_sm9hash2_with_sm3 1 2 156 10197 1 303 7 1 */
|
1210, /* OBJ_sm9hash2_with_sm3 1 2 156 10197 1 303 7 1 */
|
||||||
1211, /* OBJ_sm9hash2_with_sha256 1 2 156 10197 1 303 7 2 */
|
1211, /* OBJ_sm9hash2_with_sha256 1 2 156 10197 1 303 7 2 */
|
||||||
|
1215, /* OBJ_zuc256_mac32 1 2 156 10197 1 800 5 1 */
|
||||||
|
1216, /* OBJ_zuc256_mac64 1 2 156 10197 1 800 5 2 */
|
||||||
|
1217, /* OBJ_zuc256_mac128 1 2 156 10197 1 800 5 3 */
|
||||||
189, /* OBJ_id_smime_mod 1 2 840 113549 1 9 16 0 */
|
189, /* OBJ_id_smime_mod 1 2 840 113549 1 9 16 0 */
|
||||||
190, /* OBJ_id_smime_ct 1 2 840 113549 1 9 16 1 */
|
190, /* OBJ_id_smime_ct 1 2 840 113549 1 9 16 1 */
|
||||||
191, /* OBJ_id_smime_aa 1 2 840 113549 1 9 16 2 */
|
191, /* OBJ_id_smime_aa 1 2 840 113549 1 9 16 2 */
|
||||||
|
|||||||
@@ -1209,3 +1209,9 @@ paillier 1208
|
|||||||
sm9hash2 1209
|
sm9hash2 1209
|
||||||
sm9hash2_with_sm3 1210
|
sm9hash2_with_sm3 1210
|
||||||
sm9hash2_with_sha256 1211
|
sm9hash2_with_sha256 1211
|
||||||
|
zuc256 1212
|
||||||
|
zuc_mac 1213
|
||||||
|
zuc256_mac 1214
|
||||||
|
zuc256_mac32 1215
|
||||||
|
zuc256_mac64 1216
|
||||||
|
zuc256_mac128 1217
|
||||||
|
|||||||
@@ -1650,6 +1650,13 @@ sm9kdf 2 : sm9kdf-with-sha256
|
|||||||
sm-scheme 800 : ZUC : zuc
|
sm-scheme 800 : ZUC : zuc
|
||||||
zuc 1 : zuc-128eea3
|
zuc 1 : zuc-128eea3
|
||||||
zuc 2 : zuc-128eia3
|
zuc 2 : zuc-128eia3
|
||||||
|
zuc 3 : ZUC-MAC : zuc-mac
|
||||||
|
zuc 4 : ZUC256 : zuc256
|
||||||
|
zuc 5 : ZUC256-MAC : zuc256-mac
|
||||||
|
zuc256-mac 1 : ZUC256-MAC32 : zuc256-mac32
|
||||||
|
zuc256-mac 2 : ZUC256-MAC64 : zuc256-mac64
|
||||||
|
zuc256-mac 3 : ZUC256-MAC128 : zuc256-mac128
|
||||||
|
|
||||||
|
|
||||||
# WAPI (GB 15629.11-2003-XG1-2006)
|
# WAPI (GB 15629.11-2003-XG1-2006)
|
||||||
ISO-CN 11235 : bwips
|
ISO-CN 11235 : bwips
|
||||||
|
|||||||
@@ -1,2 +1,4 @@
|
|||||||
LIBS=../../libcrypto
|
LIBS=../../libcrypto
|
||||||
SOURCE[../../libcrypto]=zuc_core.c
|
SOURCE[../../libcrypto]=zuc_core.c zuc_eea.c zuc_eia.c
|
||||||
|
INCLUDE[zuc_core.o]=../modes
|
||||||
|
INCLUDE[zuc_eia.o]=../modes
|
||||||
|
|||||||
@@ -1,47 +0,0 @@
|
|||||||
|
|
||||||
ZUC_UINT7 D[16] = {
|
|
||||||
0x22,
|
|
||||||
0x2F,
|
|
||||||
0x24,
|
|
||||||
0x2A,
|
|
||||||
0x6D,
|
|
||||||
0x40,
|
|
||||||
0x40,
|
|
||||||
0x40,
|
|
||||||
0x40,
|
|
||||||
0x40,
|
|
||||||
0x40,
|
|
||||||
0x40,
|
|
||||||
0x52,
|
|
||||||
0x10,
|
|
||||||
0x30
|
|
||||||
};
|
|
||||||
|
|
||||||
void ZUC_set_key(ZUC_KEY *key, const unsigned char *user_key, const unsigned char *iv)
|
|
||||||
{
|
|
||||||
LFSR[0] = MAKEU31(K[0], D[0], K[21], K[16]);
|
|
||||||
LFSR[1] = MAKEU31(K[1], D[1], K[22], K[17]);
|
|
||||||
LFSR[2] = MAKEU31(K[2], D[2], K[23], K[18]);
|
|
||||||
LFSR[3] = MAKEU31(K[3], D[3], K[24], K[19]);
|
|
||||||
LFSR[4] = MAKEU31(K[4], D[4], K[25], K[20]);
|
|
||||||
LFSR[5] = MAKEU31(IV[0], (D[5] | IV[17]), K[5], K[26]);
|
|
||||||
LFSR[6] = MAKEU31(IV[1], (D[6] | IV[18]), K[6], K[27]);
|
|
||||||
LFSR[7] = MAKEU31(IV[10], (D[7] | IV[19]), K[7], IV[2]);
|
|
||||||
LFSR[8] = MAKEU31(K[8], (D[8] | IV[20]), IV[13], IV[11]);
|
|
||||||
LFSR[9] = MAKEU31(K[9], (D[9] | IV[21]), IV[12], IV[4]);
|
|
||||||
LFSR[10] = MAKEU31(IV[5], (D[10] | IV[22]), K[10], K[28]);
|
|
||||||
LFSR[11] = MAKEU31(K[11], (D[11] | IV[23]), IV[6], IV[13]);
|
|
||||||
LFSR[12] = MAKEU31(K[12], (D[12] | IV[24]), IV[7], IV[14]);
|
|
||||||
LFSR[13] = MAKEU31(K[13], D[13], IV[15], IV[8]);
|
|
||||||
LFSR[14] = MAKEU31(K[14], (D[14] | (K[31] >> 4)), IV[16], IV[9]);
|
|
||||||
LFSR[15] = MAKEU31(K[15], (D[15] | (K[31] & 0xF0)), K[30], K[29]);
|
|
||||||
|
|
||||||
R1 = R2 = 0;
|
|
||||||
|
|
||||||
for (i = 0; i < 32; i++) {
|
|
||||||
BitReconstruction3(X0, X1, X2);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
/* ====================================================================
|
/* ====================================================================
|
||||||
* Copyright (c) 2015 - 2018 The GmSSL Project. All rights reserved.
|
* Copyright (c) 2015 - 2019 The GmSSL Project. All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
* modification, are permitted provided that the following conditions
|
* modification, are permitted provided that the following conditions
|
||||||
@@ -48,7 +48,9 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
#include <openssl/zuc.h>
|
#include <openssl/zuc.h>
|
||||||
|
#include "modes_lcl.h"
|
||||||
|
|
||||||
static const ZUC_UINT15 KD[16] = {
|
static const ZUC_UINT15 KD[16] = {
|
||||||
0x44D7,0x26BC,0x626B,0x135E,0x5789,0x35E2,0x7135,0x09AF,
|
0x44D7,0x26BC,0x626B,0x135E,0x5789,0x35E2,0x7135,0x09AF,
|
||||||
@@ -248,12 +250,158 @@ void ZUC_generate_keystream(ZUC_KEY *key, size_t nwords, uint32_t *keystream)
|
|||||||
key->R2 = R2;
|
key->R2 = R2;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0
|
void ZUC_MAC_init(ZUC_MAC_CTX *ctx, const unsigned char key[16], const unsigned char iv[16])
|
||||||
|
{
|
||||||
|
memset(ctx, 0, sizeof(*ctx));
|
||||||
|
ZUC_set_key((ZUC_KEY *)ctx, key, iv);
|
||||||
|
ctx->K0 = ZUC_generate_keyword((ZUC_KEY *)ctx);
|
||||||
|
}
|
||||||
|
|
||||||
|
void ZUC_MAC_update(ZUC_MAC_CTX *ctx, const unsigned char *data, size_t len)
|
||||||
|
{
|
||||||
|
ZUC_UINT32 T = ctx->T;
|
||||||
|
ZUC_UINT32 K0 = ctx->K0;
|
||||||
|
ZUC_UINT32 K1, M;
|
||||||
|
ZUC_UINT31 *LFSR = ctx->LFSR;
|
||||||
|
ZUC_UINT32 R1 = ctx->R1;
|
||||||
|
ZUC_UINT32 R2 = ctx->R2;
|
||||||
|
ZUC_UINT32 X0, X1, X2, X3;
|
||||||
|
ZUC_UINT32 W1, W2, U, V;
|
||||||
|
size_t i;
|
||||||
|
|
||||||
|
if (!data || !len) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ctx->buflen) {
|
||||||
|
size_t num = sizeof(ctx->buf) - ctx->buflen;
|
||||||
|
if (len < num) {
|
||||||
|
memcpy(ctx->buf + ctx->buflen, data, len);
|
||||||
|
ctx->buflen += len;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
memcpy(ctx->buf + ctx->buflen, data, num);
|
||||||
|
M = GETU32(ctx->buf);
|
||||||
|
ctx->buflen = 0;
|
||||||
|
|
||||||
|
BitReconstruction4(X0, X1, X2, X3);
|
||||||
|
K1 = X3 ^ F(X0, X1, X2);
|
||||||
|
LFSRWithWorkMode();
|
||||||
|
|
||||||
|
for (i = 0; i < 32; i++) {
|
||||||
|
if (M & 0x80000000) {
|
||||||
|
T ^= K0;
|
||||||
|
}
|
||||||
|
M <<= 1;
|
||||||
|
K0 = (K0 << 1) | (K1 >> 31);
|
||||||
|
K1 <<= 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
data += num;
|
||||||
|
len -= num;
|
||||||
|
}
|
||||||
|
|
||||||
|
while (len >= 4) {
|
||||||
|
M = GETU32(data);
|
||||||
|
|
||||||
|
BitReconstruction4(X0, X1, X2, X3);
|
||||||
|
K1 = X3 ^ F(X0, X1, X2);
|
||||||
|
LFSRWithWorkMode();
|
||||||
|
|
||||||
|
for (i = 0; i < 32; i++) {
|
||||||
|
if (M & 0x80000000) {
|
||||||
|
T ^= K0;
|
||||||
|
}
|
||||||
|
M <<= 1;
|
||||||
|
K0 = (K0 << 1) | (K1 >> 31);
|
||||||
|
K1 <<= 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
data += 4;
|
||||||
|
len -= 4;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (len) {
|
||||||
|
memcpy(ctx->buf, data, len);
|
||||||
|
ctx->buflen = len;
|
||||||
|
}
|
||||||
|
ctx->R1 = R1;
|
||||||
|
ctx->R2 = R2;
|
||||||
|
ctx->K0 = K0;
|
||||||
|
ctx->T = T;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ZUC_MAC_final(ZUC_MAC_CTX *ctx, const unsigned char *data, size_t nbits, unsigned char mac[4])
|
||||||
|
{
|
||||||
|
ZUC_UINT32 T = ctx->T;
|
||||||
|
ZUC_UINT32 K0 = ctx->K0;
|
||||||
|
ZUC_UINT32 K1, M;
|
||||||
|
ZUC_UINT31 *LFSR = ctx->LFSR;
|
||||||
|
ZUC_UINT32 R1 = ctx->R1;
|
||||||
|
ZUC_UINT32 R2 = ctx->R2;
|
||||||
|
ZUC_UINT32 X0, X1, X2, X3;
|
||||||
|
ZUC_UINT32 W1, W2, U, V;
|
||||||
|
size_t i;
|
||||||
|
|
||||||
|
|
||||||
|
if (!data)
|
||||||
|
nbits = 0;
|
||||||
|
|
||||||
|
if (nbits >= 8) {
|
||||||
|
ZUC_MAC_update(ctx, data, nbits/8);
|
||||||
|
data += nbits/8;
|
||||||
|
nbits %= 8;
|
||||||
|
}
|
||||||
|
|
||||||
|
T = ctx->T;
|
||||||
|
K0 = ctx->K0;
|
||||||
|
LFSR = ctx->LFSR;
|
||||||
|
R1 = ctx->R1;
|
||||||
|
R2 = ctx->R2;
|
||||||
|
|
||||||
|
|
||||||
|
if (nbits)
|
||||||
|
ctx->buf[ctx->buflen] = *data;
|
||||||
|
|
||||||
|
if (ctx->buflen || nbits) {
|
||||||
|
M = GETU32(ctx->buf);
|
||||||
|
BitReconstruction4(X0, X1, X2, X3);
|
||||||
|
K1 = X3 ^ F(X0, X1, X2);
|
||||||
|
LFSRWithWorkMode();
|
||||||
|
|
||||||
|
for (i = 0; i < ctx->buflen * 8 + nbits; i++) {
|
||||||
|
if (M & 0x80000000) {
|
||||||
|
T ^= K0;
|
||||||
|
}
|
||||||
|
M <<= 1;
|
||||||
|
K0 = (K0 << 1) | (K1 >> 31);
|
||||||
|
K1 <<= 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
T ^= K0;
|
||||||
|
|
||||||
|
BitReconstruction4(X0, X1, X2, X3);
|
||||||
|
K1 = X3 ^ F(X0, X1, X2);
|
||||||
|
LFSRWithWorkMode();
|
||||||
|
T ^= K1;
|
||||||
|
|
||||||
|
ctx->T = T;
|
||||||
|
PUTU32(mac, T);
|
||||||
|
}
|
||||||
|
|
||||||
typedef unsigned char ZUC_UINT7;
|
typedef unsigned char ZUC_UINT7;
|
||||||
|
|
||||||
static const ZUC_UINT7 D[16] = {
|
static const ZUC_UINT7 ZUC256_D[][16] = {
|
||||||
0x22,0x2F,0x24,0x2A,0x6D,0x40,0x40,0x40,
|
{0x22,0x2F,0x24,0x2A,0x6D,0x40,0x40,0x40,
|
||||||
0x40,0x40,0x40,0x40,0x40,0x52,0x10,0x30
|
0x40,0x40,0x40,0x40,0x40,0x52,0x10,0x30},
|
||||||
|
{0x22,0x2F,0x25,0x2A,0x6D,0x40,0x40,0x40,
|
||||||
|
0x40,0x40,0x40,0x40,0x40,0x52,0x10,0x30},
|
||||||
|
{0x23,0x2F,0x24,0x2A,0x6D,0x40,0x40,0x40,
|
||||||
|
0x40,0x40,0x40,0x40,0x40,0x52,0x10,0x30},
|
||||||
|
{0x23,0x2F,0x25,0x2A,0x6D,0x40,0x40,0x40,
|
||||||
|
0x40,0x40,0x40,0x40,0x40,0x52,0x10,0x30},
|
||||||
};
|
};
|
||||||
|
|
||||||
#define ZUC256_MAKEU31(a,b,c,d) \
|
#define ZUC256_MAKEU31(a,b,c,d) \
|
||||||
@@ -262,27 +410,40 @@ static const ZUC_UINT7 D[16] = {
|
|||||||
((uint32_t)(c) << 8) | \
|
((uint32_t)(c) << 8) | \
|
||||||
(uint32_t)(d))
|
(uint32_t)(d))
|
||||||
|
|
||||||
void ZUC256_set_key(ZUC_KEY *key, const unsigned char *K, const unsigned char *IV)
|
|
||||||
|
static void zuc256_set_mac_key(ZUC_KEY *key, const unsigned char K[32],
|
||||||
|
const unsigned char IV[23], int macbits)
|
||||||
{
|
{
|
||||||
ZUC_UINT31 *LFSR = key->LFSR;
|
ZUC_UINT31 *LFSR = key->LFSR;
|
||||||
uint32_t R1, R2;
|
uint32_t R1, R2;
|
||||||
uint32_t X0, X1, X2;
|
uint32_t X0, X1, X2;
|
||||||
uint32_t W, W1, W2, U, V;
|
uint32_t W, W1, W2, U, V;
|
||||||
|
const ZUC_UINT7 *D;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
ZUC_UINT6 IV17 = IV[17] >> 2;
|
||||||
|
ZUC_UINT6 IV18 = ((IV[17] & 0x3) << 4) | (IV[18] >> 4);
|
||||||
|
ZUC_UINT6 IV19 = ((IV[18] & 0xf) << 2) | (IV[19] >> 6);
|
||||||
|
ZUC_UINT6 IV20 = IV[19] & 0x3f;
|
||||||
|
ZUC_UINT6 IV21 = IV[20] >> 2;
|
||||||
|
ZUC_UINT6 IV22 = ((IV[20] & 0x3) << 4) | (IV[21] >> 4);
|
||||||
|
ZUC_UINT6 IV23 = ((IV[21] & 0xf) << 2) | (IV[22] >> 6);
|
||||||
|
ZUC_UINT6 IV24 = IV[22] & 0x3f;
|
||||||
|
|
||||||
|
D = macbits/32 < 3 ? ZUC256_D[macbits/32] : ZUC256_D[3];
|
||||||
LFSR[0] = ZUC256_MAKEU31(K[0], D[0], K[21], K[16]);
|
LFSR[0] = ZUC256_MAKEU31(K[0], D[0], K[21], K[16]);
|
||||||
LFSR[1] = ZUC256_MAKEU31(K[1], D[1], K[22], K[17]);
|
LFSR[1] = ZUC256_MAKEU31(K[1], D[1], K[22], K[17]);
|
||||||
LFSR[2] = ZUC256_MAKEU31(K[2], D[2], K[23], K[18]);
|
LFSR[2] = ZUC256_MAKEU31(K[2], D[2], K[23], K[18]);
|
||||||
LFSR[3] = ZUC256_MAKEU31(K[3], D[3], K[24], K[19]);
|
LFSR[3] = ZUC256_MAKEU31(K[3], D[3], K[24], K[19]);
|
||||||
LFSR[4] = ZUC256_MAKEU31(K[4], D[4], K[25], K[20]);
|
LFSR[4] = ZUC256_MAKEU31(K[4], D[4], K[25], K[20]);
|
||||||
LFSR[5] = ZUC256_MAKEU31(IV[0], (D[5] | IV[17]), K[5], K[26]);
|
LFSR[5] = ZUC256_MAKEU31(IV[0], (D[5] | IV17), K[5], K[26]);
|
||||||
LFSR[6] = ZUC256_MAKEU31(IV[1], (D[6] | IV[18]), K[6], K[27]);
|
LFSR[6] = ZUC256_MAKEU31(IV[1], (D[6] | IV18), K[6], K[27]);
|
||||||
LFSR[7] = ZUC256_MAKEU31(IV[10], (D[7] | IV[19]), K[7], IV[2]);
|
LFSR[7] = ZUC256_MAKEU31(IV[10], (D[7] | IV19), K[7], IV[2]);
|
||||||
LFSR[8] = ZUC256_MAKEU31(K[8], (D[8] | IV[20]), IV[13], IV[11]);
|
LFSR[8] = ZUC256_MAKEU31(K[8], (D[8] | IV20), IV[13], IV[11]);
|
||||||
LFSR[9] = ZUC256_MAKEU31(K[9], (D[9] | IV[21]), IV[12], IV[4]);
|
LFSR[9] = ZUC256_MAKEU31(K[9], (D[9] | IV21), IV[12], IV[4]);
|
||||||
LFSR[10] = ZUC256_MAKEU31(IV[5], (D[10] | IV[22]), K[10], K[28]);
|
LFSR[10] = ZUC256_MAKEU31(IV[5], (D[10] | IV22), K[10], K[28]);
|
||||||
LFSR[11] = ZUC256_MAKEU31(K[11], (D[11] | IV[23]), IV[6], IV[13]);
|
LFSR[11] = ZUC256_MAKEU31(K[11], (D[11] | IV23), IV[6], IV[13]);
|
||||||
LFSR[12] = ZUC256_MAKEU31(K[12], (D[12] | IV[24]), IV[7], IV[14]);
|
LFSR[12] = ZUC256_MAKEU31(K[12], (D[12] | IV24), IV[7], IV[14]);
|
||||||
LFSR[13] = ZUC256_MAKEU31(K[13], D[13], IV[15], IV[8]);
|
LFSR[13] = ZUC256_MAKEU31(K[13], D[13], IV[15], IV[8]);
|
||||||
LFSR[14] = ZUC256_MAKEU31(K[14], (D[14] | (K[31] >> 4)), IV[16], IV[9]);
|
LFSR[14] = ZUC256_MAKEU31(K[14], (D[14] | (K[31] >> 4)), IV[16], IV[9]);
|
||||||
LFSR[15] = ZUC256_MAKEU31(K[15], (D[15] | (K[31] & 0x0F)), K[30], K[29]);
|
LFSR[15] = ZUC256_MAKEU31(K[15], (D[15] | (K[31] & 0x0F)), K[30], K[29]);
|
||||||
@@ -304,78 +465,138 @@ void ZUC256_set_key(ZUC_KEY *key, const unsigned char *K, const unsigned char *I
|
|||||||
key->R2 = R2;
|
key->R2 = R2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ZUC256_set_key(ZUC_KEY *key, const unsigned char K[32],
|
||||||
static const ZUC_UINT7 ZUC256_MAC32_D[] = {
|
const unsigned char IV[23])
|
||||||
0x22,0x2F,0x25,0x2A,0x6D,0x40,0x40,0x40,
|
|
||||||
0x40,0x40,0x40,0x40,0x40,0x52,0x10,0x30
|
|
||||||
};
|
|
||||||
|
|
||||||
static const ZUC_UINT7 ZUC256_MAC64_D[] = {
|
|
||||||
0x23,0x2F,0x24,0x2A,0x6D,0x40,0x40,0x40,
|
|
||||||
0x40,0x40,0x40,0x40,0x40,0x52,0x10,0x30,
|
|
||||||
};
|
|
||||||
|
|
||||||
static const ZUC_UINT7 ZUC256_MAC128_D[] = {
|
|
||||||
0x23,0x2F,0x25,0x2A,0x6D,0x40,0x40,0x40,
|
|
||||||
0x40,0x40,0x40,0x40,0x40,0x52,0x10,0x30,
|
|
||||||
};
|
|
||||||
|
|
||||||
int ZUC256_set_mac_key(ZUC_KEY *key, const unsigned char *key,
|
|
||||||
const unsigned char *IV, int macbits)
|
|
||||||
{
|
{
|
||||||
const ZUC_UINT7 *K;
|
zuc256_set_mac_key(key, K, IV, 0);
|
||||||
ZUC_UINT31 *LFSR = key->LFSR;
|
}
|
||||||
uint32_t R1, R2;
|
|
||||||
uint32_t X0, X1, X2;
|
void ZUC256_MAC_init(ZUC256_MAC_CTX *ctx, const unsigned char key[32],
|
||||||
uint32_t W, W1, W2, U, V;
|
const unsigned char iv[23], int macbits)
|
||||||
int i;
|
{
|
||||||
|
if (macbits < 32)
|
||||||
switch (macbits) {
|
macbits = 32;
|
||||||
case 32:
|
else if (macbits > 64)
|
||||||
D = ZUC256_MAC32_D;
|
macbits = 128;
|
||||||
break;
|
memset(ctx, 0, sizeof(*ctx));
|
||||||
case 64:
|
zuc256_set_mac_key((ZUC256_KEY *)ctx, key, iv, macbits);
|
||||||
D = ZUC256_MAC64_D;
|
ZUC256_generate_keystream((ZUC256_KEY *)ctx, macbits/32, ctx->T);
|
||||||
break;
|
ZUC256_generate_keystream((ZUC256_KEY *)ctx, macbits/32, ctx->K0);
|
||||||
case 128:
|
ctx->macbits = (macbits/32) * 32;
|
||||||
D = ZUC256_MAC128_D;
|
}
|
||||||
break;
|
|
||||||
default:
|
void ZUC256_MAC_update(ZUC256_MAC_CTX *ctx, const unsigned char *data, size_t len)
|
||||||
return 0;
|
{
|
||||||
}
|
ZUC_UINT32 K1, M;
|
||||||
|
size_t n = ctx->macbits / 32;
|
||||||
LFSR[0] = MAKEU31(K[0], D[0], K[21], K[16]);
|
size_t i, j;
|
||||||
LFSR[1] = MAKEU31(K[1], D[1], K[22], K[17]);
|
|
||||||
LFSR[2] = MAKEU31(K[2], D[2], K[23], K[18]);
|
if (!data || !len) {
|
||||||
LFSR[3] = MAKEU31(K[3], D[3], K[24], K[19]);
|
return;
|
||||||
LFSR[4] = MAKEU31(K[4], D[4], K[25], K[20]);
|
}
|
||||||
LFSR[5] = MAKEU31(IV[0], (D[5] | IV[17]), K[5], K[26]);
|
|
||||||
LFSR[6] = MAKEU31(IV[1], (D[6] | IV[18]), K[6], K[27]);
|
if (ctx->buflen) {
|
||||||
LFSR[7] = MAKEU31(IV[10], (D[7] | IV[19]), K[7], IV[2]);
|
size_t num = sizeof(ctx->buf) - ctx->buflen;
|
||||||
LFSR[8] = MAKEU31(K[8], (D[8] | IV[20]), IV[13], IV[11]);
|
if (len < num) {
|
||||||
LFSR[9] = MAKEU31(K[9], (D[9] | IV[21]), IV[12], IV[4]);
|
memcpy(ctx->buf + ctx->buflen, data, len);
|
||||||
LFSR[10] = MAKEU31(IV[5], (D[10] | IV[22]), K[10], K[28]);
|
ctx->buflen += len;
|
||||||
LFSR[11] = MAKEU31(K[11], (D[11] | IV[23]), IV[6], IV[13]);
|
return;
|
||||||
LFSR[12] = MAKEU31(K[12], (D[12] | IV[24]), IV[7], IV[14]);
|
}
|
||||||
LFSR[13] = MAKEU31(K[13], D[13], IV[15], IV[8]);
|
|
||||||
LFSR[14] = MAKEU31(K[14], (D[14] | (K[31] >> 4)), IV[16], IV[9]);
|
memcpy(ctx->buf + ctx->buflen, data, num);
|
||||||
LFSR[15] = MAKEU31(K[15], (D[15] | (K[31] & 0xF0)), K[30], K[29]);
|
M = GETU32(ctx->buf);
|
||||||
|
ctx->buflen = 0;
|
||||||
R1 = 0;
|
|
||||||
R2 = 0;
|
K1 = ZUC256_generate_keyword((ZUC256_KEY *)ctx);
|
||||||
|
|
||||||
for (i = 0; i < 32; i++) {
|
for (i = 0; i < 32; i++) {
|
||||||
BitReconstruction3(X0, X1, X2);
|
if (M & 0x80000000) {
|
||||||
W = F(X0, X1, X2);
|
for (j = 0; j < n; j++) {
|
||||||
LFSRWithInitialisationMode(W >> 1);
|
ctx->T[j] ^= ctx->K0[j];
|
||||||
}
|
}
|
||||||
|
}
|
||||||
BitReconstruction2(X1, X2);
|
M <<= 1;
|
||||||
F_(X1, X2);
|
for (j = 0; j < n - 1; j++) {
|
||||||
LFSRWithWorkMode();
|
ctx->K0[j] = (ctx->K0[j] << 1) | (ctx->K0[j + 1] >> 31);
|
||||||
|
}
|
||||||
key->R1 = R1;
|
ctx->K0[j] = (ctx->K0[j] << 1) | (K1 >> 31);
|
||||||
key->R2 = R2;
|
K1 <<= 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
data += num;
|
||||||
|
len -= num;
|
||||||
|
}
|
||||||
|
|
||||||
|
while (len >= 4) {
|
||||||
|
M = GETU32(data);
|
||||||
|
K1 = ZUC256_generate_keyword((ZUC256_KEY *)ctx);
|
||||||
|
|
||||||
|
for (i = 0; i < 32; i++) {
|
||||||
|
if (M & 0x80000000) {
|
||||||
|
for (j = 0; j < n; j++) {
|
||||||
|
ctx->T[j] ^= ctx->K0[j];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
M <<= 1;
|
||||||
|
for (j = 0; j < n - 1; j++) {
|
||||||
|
ctx->K0[j] = (ctx->K0[j] << 1) | (ctx->K0[j + 1] >> 31);
|
||||||
|
}
|
||||||
|
ctx->K0[j] = (ctx->K0[j] << 1) | (K1 >> 31);
|
||||||
|
K1 <<= 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
data += 4;
|
||||||
|
len -= 4;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (len) {
|
||||||
|
memcpy(ctx->buf, data, len);
|
||||||
|
ctx->buflen = len;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void ZUC256_MAC_final(ZUC256_MAC_CTX *ctx, const unsigned char *data, size_t nbits, unsigned char *mac)
|
||||||
|
{
|
||||||
|
ZUC_UINT32 K1, M;
|
||||||
|
size_t n = ctx->macbits/32;
|
||||||
|
size_t i, j;
|
||||||
|
|
||||||
|
|
||||||
|
if (!data)
|
||||||
|
nbits = 0;
|
||||||
|
|
||||||
|
if (nbits >= 8) {
|
||||||
|
ZUC256_MAC_update(ctx, data, nbits/8);
|
||||||
|
data += nbits/8;
|
||||||
|
nbits %= 8;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (nbits)
|
||||||
|
ctx->buf[ctx->buflen] = *data;
|
||||||
|
|
||||||
|
if (ctx->buflen || nbits) {
|
||||||
|
M = GETU32(ctx->buf);
|
||||||
|
K1 = ZUC256_generate_keyword((ZUC256_KEY *)ctx);
|
||||||
|
|
||||||
|
|
||||||
|
for (i = 0; i < ctx->buflen * 8 + nbits; i++) {
|
||||||
|
if (M & 0x80000000) {
|
||||||
|
for (j = 0; j < n; j++) {
|
||||||
|
ctx->T[j] ^= ctx->K0[j];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
M <<= 1;
|
||||||
|
for (j = 0; j < n - 1; j++) {
|
||||||
|
ctx->K0[j] = (ctx->K0[j] << 1) | (ctx->K0[j + 1] >> 31);
|
||||||
|
}
|
||||||
|
ctx->K0[j] = (ctx->K0[j] << 1) | (K1 >> 31);
|
||||||
|
K1 <<= 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (j = 0; j < n; j++) {
|
||||||
|
ctx->T[j] ^= ctx->K0[j];
|
||||||
|
PUTU32(mac, ctx->T[j]);
|
||||||
|
mac += 4;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|||||||
82
crypto/zuc/zuc_eea.c
Normal file
82
crypto/zuc/zuc_eea.c
Normal file
@@ -0,0 +1,82 @@
|
|||||||
|
/* ====================================================================
|
||||||
|
* Copyright (c) 2015 - 2019 The GmSSL Project. All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
*
|
||||||
|
* 1. Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
*
|
||||||
|
* 2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in
|
||||||
|
* the documentation and/or other materials provided with the
|
||||||
|
* distribution.
|
||||||
|
*
|
||||||
|
* 3. All advertising materials mentioning features or use of this
|
||||||
|
* software must display the following acknowledgment:
|
||||||
|
* "This product includes software developed by the GmSSL Project.
|
||||||
|
* (http://gmssl.org/)"
|
||||||
|
*
|
||||||
|
* 4. The name "GmSSL Project" must not be used to endorse or promote
|
||||||
|
* products derived from this software without prior written
|
||||||
|
* permission. For written permission, please contact
|
||||||
|
* guanzhi1980@gmail.com.
|
||||||
|
*
|
||||||
|
* 5. Products derived from this software may not be called "GmSSL"
|
||||||
|
* nor may "GmSSL" appear in their names without prior written
|
||||||
|
* permission of the GmSSL Project.
|
||||||
|
*
|
||||||
|
* 6. Redistributions of any form whatsoever must retain the following
|
||||||
|
* acknowledgment:
|
||||||
|
* "This product includes software developed by the GmSSL Project
|
||||||
|
* (http://gmssl.org/)"
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE GmSSL PROJECT ``AS IS'' AND ANY
|
||||||
|
* EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||||
|
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE GmSSL PROJECT OR
|
||||||
|
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||||
|
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
|
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||||
|
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
||||||
|
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
|
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
||||||
|
* OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
* ====================================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <openssl/zuc.h>
|
||||||
|
|
||||||
|
static void ZUC_set_eea_key(ZUC_KEY *key, const unsigned char user_key[16],
|
||||||
|
ZUC_UINT32 count, ZUC_UINT5 bearer, ZUC_BIT direction)
|
||||||
|
{
|
||||||
|
unsigned char iv[16] = {0};
|
||||||
|
iv[0] = iv[8] = count >> 24;
|
||||||
|
iv[1] = iv[9] = count >> 16;
|
||||||
|
iv[2] = iv[10] = count >> 8;
|
||||||
|
iv[3] = iv[11] = count;
|
||||||
|
iv[4] = iv[12] = ((bearer << 1) | (direction & 1)) << 2;
|
||||||
|
ZUC_set_key(key, user_key, iv);
|
||||||
|
}
|
||||||
|
|
||||||
|
void ZUC_eea_encrypt(const ZUC_UINT32 *in, ZUC_UINT32 *out, size_t nbits,
|
||||||
|
const unsigned char key[16], ZUC_UINT32 count, ZUC_UINT5 bearer,
|
||||||
|
ZUC_BIT direction)
|
||||||
|
{
|
||||||
|
ZUC_KEY zuc_key;
|
||||||
|
size_t nwords = (nbits + 31)/32;
|
||||||
|
size_t i;
|
||||||
|
|
||||||
|
ZUC_set_eea_key(&zuc_key, key, count, bearer, direction);
|
||||||
|
ZUC_generate_keystream(&zuc_key, nwords, out);
|
||||||
|
for (i = 0; i < nwords; i++) {
|
||||||
|
out[i] ^= in[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
if (nbits % 32 != 0) {
|
||||||
|
out[nwords - 1] |= (0xffffffff << (32 - (nbits%32)));
|
||||||
|
}
|
||||||
|
}
|
||||||
160
crypto/zuc/zuc_eia.c
Normal file
160
crypto/zuc/zuc_eia.c
Normal file
@@ -0,0 +1,160 @@
|
|||||||
|
/* ====================================================================
|
||||||
|
* Copyright (c) 2015 - 2019 The GmSSL Project. All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
*
|
||||||
|
* 1. Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
*
|
||||||
|
* 2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in
|
||||||
|
* the documentation and/or other materials provided with the
|
||||||
|
* distribution.
|
||||||
|
*
|
||||||
|
* 3. All advertising materials mentioning features or use of this
|
||||||
|
* software must display the following acknowledgment:
|
||||||
|
* "This product includes software developed by the GmSSL Project.
|
||||||
|
* (http://gmssl.org/)"
|
||||||
|
*
|
||||||
|
* 4. The name "GmSSL Project" must not be used to endorse or promote
|
||||||
|
* products derived from this software without prior written
|
||||||
|
* permission. For written permission, please contact
|
||||||
|
* guanzhi1980@gmail.com.
|
||||||
|
*
|
||||||
|
* 5. Products derived from this software may not be called "GmSSL"
|
||||||
|
* nor may "GmSSL" appear in their names without prior written
|
||||||
|
* permission of the GmSSL Project.
|
||||||
|
*
|
||||||
|
* 6. Redistributions of any form whatsoever must retain the following
|
||||||
|
* acknowledgment:
|
||||||
|
* "This product includes software developed by the GmSSL Project
|
||||||
|
* (http://gmssl.org/)"
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE GmSSL PROJECT ``AS IS'' AND ANY
|
||||||
|
* EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||||
|
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE GmSSL PROJECT OR
|
||||||
|
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||||
|
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
|
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||||
|
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
||||||
|
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
|
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
||||||
|
* OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
* ====================================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <openssl/zuc.h>
|
||||||
|
#include <openssl/crypto.h>
|
||||||
|
#include "modes_lcl.h"
|
||||||
|
|
||||||
|
static void zuc_set_eia_iv(unsigned char iv[16], ZUC_UINT32 count, ZUC_UINT5 bearer,
|
||||||
|
ZUC_BIT direction)
|
||||||
|
{
|
||||||
|
memset(iv, 0, 16);
|
||||||
|
iv[0] = count >> 24;
|
||||||
|
iv[1] = iv[9] = count >> 16;
|
||||||
|
iv[2] = iv[10] = count >> 8;
|
||||||
|
iv[3] = iv[11] = count;
|
||||||
|
iv[4] = iv[12] = bearer << 3;
|
||||||
|
iv[8] = iv[0] ^ (direction << 7);
|
||||||
|
iv[14] = (direction << 7);
|
||||||
|
}
|
||||||
|
|
||||||
|
#if 1
|
||||||
|
ZUC_UINT32 ZUC_eia_generate_mac(const ZUC_UINT32 *data, size_t nbits,
|
||||||
|
const unsigned char key[16], ZUC_UINT32 count, ZUC_UINT5 bearer,
|
||||||
|
ZUC_BIT direction)
|
||||||
|
{
|
||||||
|
ZUC_MAC_CTX ctx;
|
||||||
|
unsigned char iv[16];
|
||||||
|
unsigned char mac[4];
|
||||||
|
zuc_set_eia_iv(iv, count, bearer, direction);
|
||||||
|
ZUC_MAC_init(&ctx, key, iv);
|
||||||
|
ZUC_MAC_final(&ctx, (unsigned char *)data, nbits, mac);
|
||||||
|
return GETU32(mac);
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
|
||||||
|
#define ZUC_MAC_BUF_WORDS 64
|
||||||
|
|
||||||
|
#define GET_WORD(p, i) ((i) % 32) \
|
||||||
|
? ((*((ZUC_UINT32 *)(p) + (i)/32) << ((i) % 32)) \
|
||||||
|
| (*((ZUC_UINT32 *)(p) + (i)/32 + 1) >> (32 - ((i) % 32)))) \
|
||||||
|
: *((ZUC_UINT32 *)(p) + (i)/32)
|
||||||
|
|
||||||
|
#define GET_BIT(p, i) \
|
||||||
|
(((*((ZUC_UINT32 *)(p) + (i)/32)) & (1 << (31 - ((i) % 32)))) ? 1 : 0)
|
||||||
|
|
||||||
|
ZUC_UINT32 ZUC_eia_generate_mac(const ZUC_UINT32 *data, size_t nbits,
|
||||||
|
const unsigned char user_key[16], ZUC_UINT32 count, ZUC_UINT5 bearer,
|
||||||
|
ZUC_BIT direction)
|
||||||
|
{
|
||||||
|
ZUC_UINT32 T = 0;
|
||||||
|
ZUC_KEY key;
|
||||||
|
unsigned char iv[16];
|
||||||
|
ZUC_UINT32 buf[ZUC_MAC_BUF_WORDS + 2];
|
||||||
|
size_t nwords = (nbits + 31)/32;
|
||||||
|
size_t i;
|
||||||
|
size_t num = ZUC_MAC_BUF_WORDS;
|
||||||
|
|
||||||
|
|
||||||
|
ZUC_set_eia_iv(iv, count, bearer, direction);
|
||||||
|
ZUC_set_key(&key, user_key, iv);
|
||||||
|
|
||||||
|
if (nwords <= ZUC_MAC_BUF_WORDS) {
|
||||||
|
ZUC_generate_keystream(&key, nwords + 2, buf);
|
||||||
|
for (i = 0; i < nbits; i++) {
|
||||||
|
if (GET_BIT(data, i)) {
|
||||||
|
T ^= GET_WORD(buf, i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
T ^= GET_WORD(buf, i);
|
||||||
|
T ^= buf[nwords + 1];
|
||||||
|
return T;
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
ZUC_generate_keystream(&key, ZUC_MAC_BUF_WORDS + 1, buf);
|
||||||
|
for (i = 0; i < ZUC_MAC_BUF_WORDS * 32; i++) {
|
||||||
|
if (GET_BIT(data, i)) {
|
||||||
|
T ^= GET_WORD(buf, i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
data += ZUC_MAC_BUF_WORDS;
|
||||||
|
nwords -= ZUC_MAC_BUF_WORDS;
|
||||||
|
nbits -= ZUC_MAC_BUF_WORDS * 32;
|
||||||
|
}
|
||||||
|
|
||||||
|
while (nwords > ZUC_MAC_BUF_WORDS) {
|
||||||
|
buf[0] = buf[ZUC_MAC_BUF_WORDS];
|
||||||
|
ZUC_generate_keystream(&key, ZUC_MAC_BUF_WORDS, buf + 1);
|
||||||
|
for (i = 0; i < ZUC_MAC_BUF_WORDS * 32; i ++) {
|
||||||
|
if (GET_BIT(data, i)) {
|
||||||
|
T ^= GET_WORD(buf, i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
data += num;
|
||||||
|
nwords -= num;
|
||||||
|
nbits -= ZUC_MAC_BUF_WORDS * 32;
|
||||||
|
}
|
||||||
|
|
||||||
|
buf[0] = buf[ZUC_MAC_BUF_WORDS];
|
||||||
|
ZUC_generate_keystream(&key, nwords + 1, buf + 1);
|
||||||
|
for (i = 0; i < nbits; i++) {
|
||||||
|
if (GET_BIT(data, i)) {
|
||||||
|
T ^= GET_WORD(buf, i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
T ^= GET_WORD(buf, i);
|
||||||
|
T ^= buf[nwords + 1];
|
||||||
|
|
||||||
|
return T;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
@@ -1,121 +0,0 @@
|
|||||||
|
|
||||||
|
|
||||||
#include <openssl/zuc.h>
|
|
||||||
|
|
||||||
static const ZUC_UINT7 ZUC256_MAC32_D[] = {
|
|
||||||
0x22,0x2F,0x25,0x2A,0x6D,0x40,0x40,0x40,
|
|
||||||
0x40,0x40,0x40,0x40,0x40,0x52,0x10,0x30
|
|
||||||
};
|
|
||||||
|
|
||||||
static const ZUC_UINT7 ZUC256_MAC64_D[] = {
|
|
||||||
0x23,0x2F,0x24,0x2A,0x6D,0x40,0x40,0x40,
|
|
||||||
0x40,0x40,0x40,0x40,0x40,0x52,0x10,0x30,
|
|
||||||
};
|
|
||||||
|
|
||||||
static const ZUC_UINT7 ZUC256_MAC128_D[] = {
|
|
||||||
0x23,0x2F,0x25,0x2A,0x6D,0x40,0x40,0x40,
|
|
||||||
0x40,0x40,0x40,0x40,0x40,0x52,0x10,0x30,
|
|
||||||
};
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
ZUC_KEY zuc;
|
|
||||||
ZUC_MAC_TAG t1;
|
|
||||||
ZUC_MAC_TAG t2;
|
|
||||||
int macbits;
|
|
||||||
} ZUC256_MAC_CTX;
|
|
||||||
|
|
||||||
|
|
||||||
int ZUC_MAC_init(ZUC_MAC *ctx, const unsigned char *key, int bits,
|
|
||||||
const unsigned char *iv, int macbits)
|
|
||||||
{
|
|
||||||
const ZUC_UINT7 *K;
|
|
||||||
ZUC_UINT31 *LFSR = key->LFSR;
|
|
||||||
uint32_t R1, R2;
|
|
||||||
uint32_t X0, X1, X2;
|
|
||||||
uint32_t W, W1, W2, U, V;
|
|
||||||
int i;
|
|
||||||
|
|
||||||
switch (macbits) {
|
|
||||||
case 32:
|
|
||||||
K = KD32;
|
|
||||||
break;
|
|
||||||
case 64:
|
|
||||||
K = KD64;
|
|
||||||
break;
|
|
||||||
case 128:
|
|
||||||
K = KD128;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
LFSR[0] = MAKEU31(K[0], D[0], K[21], K[16]);
|
|
||||||
LFSR[1] = MAKEU31(K[1], D[1], K[22], K[17]);
|
|
||||||
LFSR[2] = MAKEU31(K[2], D[2], K[23], K[18]);
|
|
||||||
LFSR[3] = MAKEU31(K[3], D[3], K[24], K[19]);
|
|
||||||
LFSR[4] = MAKEU31(K[4], D[4], K[25], K[20]);
|
|
||||||
LFSR[5] = MAKEU31(IV[0], (D[5] | IV[17]), K[5], K[26]);
|
|
||||||
LFSR[6] = MAKEU31(IV[1], (D[6] | IV[18]), K[6], K[27]);
|
|
||||||
LFSR[7] = MAKEU31(IV[10], (D[7] | IV[19]), K[7], IV[2]);
|
|
||||||
LFSR[8] = MAKEU31(K[8], (D[8] | IV[20]), IV[13], IV[11]);
|
|
||||||
LFSR[9] = MAKEU31(K[9], (D[9] | IV[21]), IV[12], IV[4]);
|
|
||||||
LFSR[10] = MAKEU31(IV[5], (D[10] | IV[22]), K[10], K[28]);
|
|
||||||
LFSR[11] = MAKEU31(K[11], (D[11] | IV[23]), IV[6], IV[13]);
|
|
||||||
LFSR[12] = MAKEU31(K[12], (D[12] | IV[24]), IV[7], IV[14]);
|
|
||||||
LFSR[13] = MAKEU31(K[13], D[13], IV[15], IV[8]);
|
|
||||||
LFSR[14] = MAKEU31(K[14], (D[14] | (K[31] >> 4)), IV[16], IV[9]);
|
|
||||||
LFSR[15] = MAKEU31(K[15], (D[15] | (K[31] & 0xF0)), K[30], K[29]);
|
|
||||||
|
|
||||||
R1 = 0;
|
|
||||||
R2 = 0;
|
|
||||||
|
|
||||||
for (i = 0; i < 32; i++) {
|
|
||||||
BitReconstruction3(X0, X1, X2);
|
|
||||||
W = F(X0, X1, X2);
|
|
||||||
LFSRWithInitialisationMode(W >> 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
BitReconstruction2(X1, X2);
|
|
||||||
F_(X1, X2);
|
|
||||||
LFSRWithWorkMode();
|
|
||||||
|
|
||||||
key->R1 = R1;
|
|
||||||
key->R2 = R2;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#define MAKEU32(i,A,B) (((A) << (i)) | ((B) >> (32 - (i))))
|
|
||||||
#define MASKU8(i,M) (-(((M) >> (7-i)) & 0x01))
|
|
||||||
|
|
||||||
int ZUC256_MAC32(ZUC256_MAC_CTX *ctx, const unsigned char *data, size_t len)
|
|
||||||
{
|
|
||||||
uint32_t T;
|
|
||||||
uint32_t Z;
|
|
||||||
uint32_t *m = data;
|
|
||||||
|
|
||||||
T = ZUC256_generate_keyword(key);
|
|
||||||
Z0 = ZUC256_generate_keyword(key);
|
|
||||||
Z1 = ZUC256_generate_keyword(key);
|
|
||||||
|
|
||||||
for (i = 0; i < len; i++) {
|
|
||||||
|
|
||||||
T ^= MAKEU32(Z0, Z1, (i * 8 + 0) % 32) & MASKU8(data[i], 7);
|
|
||||||
T ^= MAKEU32(Z0, Z1, (i * 8 + 1) % 32) & MASKU8(data[i], 6);
|
|
||||||
T ^= MAKEU32(Z0, Z1, (i * 8 + 2) % 32) & MASKU8(data[i], 5);
|
|
||||||
T ^= MAKEU32(Z0, Z1, (i * 8 + 3) % 32) & MASKU8(data[i], 4);
|
|
||||||
T ^= MAKEU32(Z0, Z1, (i * 8 + 4) % 32) & MASKU8(data[i], 3);
|
|
||||||
T ^= MAKEU32(Z0, Z1, (i * 8 + 5) % 32) & MASKU8(data[i], 2);
|
|
||||||
T ^= MAKEU32(Z0, Z1, (i * 8 + 6) % 32) & MASKU8(data[i], 1);
|
|
||||||
T ^= MAKEU32(Z0, Z1, (i * 8 + 7) % 32) & MASKU8(data[i], 0);
|
|
||||||
|
|
||||||
if (i % 4 == 3) {
|
|
||||||
Z0 = Z1;
|
|
||||||
Z1 = ZUC256_generate_keyword(key);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
T ^= MAKEU32(Z0, Z1, (i * 8) % 32);
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
@@ -938,6 +938,7 @@ const EVP_CIPHER *EVP_sms4_wrap_pad(void);
|
|||||||
|
|
||||||
# ifndef OPENSSL_NO_ZUC
|
# ifndef OPENSSL_NO_ZUC
|
||||||
const EVP_CIPHER *EVP_zuc(void);
|
const EVP_CIPHER *EVP_zuc(void);
|
||||||
|
const EVP_CIPHER *EVP_zuc256(void);
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
# if OPENSSL_API_COMPAT < 0x10100000L
|
# if OPENSSL_API_COMPAT < 0x10100000L
|
||||||
|
|||||||
@@ -5140,6 +5140,36 @@
|
|||||||
#define NID_zuc_128eia3 1187
|
#define NID_zuc_128eia3 1187
|
||||||
#define OBJ_zuc_128eia3 OBJ_zuc,2L
|
#define OBJ_zuc_128eia3 OBJ_zuc,2L
|
||||||
|
|
||||||
|
#define SN_zuc_mac "ZUC-MAC"
|
||||||
|
#define LN_zuc_mac "zuc-mac"
|
||||||
|
#define NID_zuc_mac 1213
|
||||||
|
#define OBJ_zuc_mac OBJ_zuc,3L
|
||||||
|
|
||||||
|
#define SN_zuc256 "ZUC256"
|
||||||
|
#define LN_zuc256 "zuc256"
|
||||||
|
#define NID_zuc256 1212
|
||||||
|
#define OBJ_zuc256 OBJ_zuc,4L
|
||||||
|
|
||||||
|
#define SN_zuc256_mac "ZUC256-MAC"
|
||||||
|
#define LN_zuc256_mac "zuc256-mac"
|
||||||
|
#define NID_zuc256_mac 1214
|
||||||
|
#define OBJ_zuc256_mac OBJ_zuc,5L
|
||||||
|
|
||||||
|
#define SN_zuc256_mac32 "ZUC256-MAC32"
|
||||||
|
#define LN_zuc256_mac32 "zuc256-mac32"
|
||||||
|
#define NID_zuc256_mac32 1215
|
||||||
|
#define OBJ_zuc256_mac32 OBJ_zuc256_mac,1L
|
||||||
|
|
||||||
|
#define SN_zuc256_mac64 "ZUC256-MAC64"
|
||||||
|
#define LN_zuc256_mac64 "zuc256-mac64"
|
||||||
|
#define NID_zuc256_mac64 1216
|
||||||
|
#define OBJ_zuc256_mac64 OBJ_zuc256_mac,2L
|
||||||
|
|
||||||
|
#define SN_zuc256_mac128 "ZUC256-MAC128"
|
||||||
|
#define LN_zuc256_mac128 "zuc256-mac128"
|
||||||
|
#define NID_zuc256_mac128 1217
|
||||||
|
#define OBJ_zuc256_mac128 OBJ_zuc256_mac,3L
|
||||||
|
|
||||||
#define SN_bwips "bwips"
|
#define SN_bwips "bwips"
|
||||||
#define NID_bwips 1188
|
#define NID_bwips 1188
|
||||||
#define OBJ_bwips OBJ_ISO_CN,11235L
|
#define OBJ_bwips OBJ_ISO_CN,11235L
|
||||||
|
|||||||
@@ -41,9 +41,9 @@ extern "C" {
|
|||||||
*/
|
*/
|
||||||
# define OPENSSL_VERSION_NUMBER 0x1010004fL
|
# define OPENSSL_VERSION_NUMBER 0x1010004fL
|
||||||
# ifdef OPENSSL_FIPS
|
# ifdef OPENSSL_FIPS
|
||||||
# define OPENSSL_VERSION_TEXT "GmSSL 2.5.3 - OpenSSL 1.1.0d-fips 28 Aug 2019"
|
# define OPENSSL_VERSION_TEXT "GmSSL 2.5.4 - OpenSSL 1.1.0d-fips 3 Sep 2019"
|
||||||
# else
|
# else
|
||||||
# define OPENSSL_VERSION_TEXT "GmSSL 2.5.3 - OpenSSL 1.1.0d 28 Aug 2019"
|
# define OPENSSL_VERSION_TEXT "GmSSL 2.5.4 - OpenSSL 1.1.0d 3 Sep 2019"
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
/*-
|
/*-
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/* ====================================================================
|
/* ====================================================================
|
||||||
* Copyright (c) 2015 - 2018 The GmSSL Project. All rights reserved.
|
* Copyright (c) 2015 - 2019 The GmSSL Project. All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
* modification, are permitted provided that the following conditions
|
* modification, are permitted provided that the following conditions
|
||||||
@@ -56,12 +56,9 @@
|
|||||||
# include <stdlib.h>
|
# include <stdlib.h>
|
||||||
# include <openssl/e_os2.h>
|
# include <openssl/e_os2.h>
|
||||||
|
|
||||||
# define ZUC_IV_LENGTH 16
|
typedef uint32_t ZUC_BIT;
|
||||||
# define ZUC_KEY_LENGTH 16
|
|
||||||
# define ZUC256_KEY_LENGTH 32
|
|
||||||
|
|
||||||
typedef uint32_t ZUC_UINT1;
|
|
||||||
typedef uint32_t ZUC_UINT5;
|
typedef uint32_t ZUC_UINT5;
|
||||||
|
typedef uint8_t ZUC_UINT6;
|
||||||
typedef uint32_t ZUC_UINT15;
|
typedef uint32_t ZUC_UINT15;
|
||||||
typedef uint32_t ZUC_UINT31;
|
typedef uint32_t ZUC_UINT31;
|
||||||
typedef uint32_t ZUC_UINT32;
|
typedef uint32_t ZUC_UINT32;
|
||||||
@@ -71,20 +68,72 @@ extern "C" {
|
|||||||
# endif
|
# endif
|
||||||
|
|
||||||
|
|
||||||
typedef struct zuc_key_st {
|
# define ZUC_KEY_LENGTH 16
|
||||||
|
# define ZUC_IV_LENGTH 16
|
||||||
|
# define ZUC_MAC_LENGTH 4
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct ZUC_KEY_st {
|
||||||
ZUC_UINT31 LFSR[16];
|
ZUC_UINT31 LFSR[16];
|
||||||
uint32_t R1;
|
ZUC_UINT32 R1;
|
||||||
uint32_t R2;
|
ZUC_UINT32 R2;
|
||||||
} ZUC_KEY;
|
} ZUC_KEY;
|
||||||
|
|
||||||
|
void ZUC_set_key(ZUC_KEY *key, const unsigned char user_key[16], const unsigned char iv[16]);
|
||||||
|
void ZUC_generate_keystream(ZUC_KEY *key, size_t nwords, ZUC_UINT32 *words);
|
||||||
|
ZUC_UINT32 ZUC_generate_keyword(ZUC_KEY *key);
|
||||||
|
|
||||||
void ZUC_set_key(ZUC_KEY *key, const unsigned char *user_key, const unsigned char *iv);
|
typedef struct ZUC_MAC_CTX_st {
|
||||||
void ZUC_generate_keystream(ZUC_KEY *key, size_t nwords, uint32_t *words);
|
ZUC_UINT31 LFSR[16];
|
||||||
uint32_t ZUC_generate_keyword(ZUC_KEY *key);
|
ZUC_UINT32 R1;
|
||||||
|
ZUC_UINT32 R2;
|
||||||
|
ZUC_UINT32 T;
|
||||||
|
ZUC_UINT32 K0;
|
||||||
|
unsigned char buf[4];
|
||||||
|
int buflen;
|
||||||
|
} ZUC_MAC_CTX;
|
||||||
|
|
||||||
|
void ZUC_MAC_init(ZUC_MAC_CTX *ctx, const unsigned char key[16], const unsigned char iv[16]);
|
||||||
|
void ZUC_MAC_update(ZUC_MAC_CTX *ctx, const unsigned char *data, size_t len);
|
||||||
|
void ZUC_MAC_final(ZUC_MAC_CTX *ctx, const unsigned char *data, size_t nbits, unsigned char mac[4]);
|
||||||
|
|
||||||
|
void ZUC_eea_encrypt(const ZUC_UINT32 *in, ZUC_UINT32 *out, size_t nbits,
|
||||||
|
const unsigned char key[16], ZUC_UINT32 count, ZUC_UINT5 bearer,
|
||||||
|
ZUC_BIT direction);
|
||||||
|
ZUC_UINT32 ZUC_eia_generate_mac(const ZUC_UINT32 *data, size_t nbits,
|
||||||
|
const unsigned char user_key[16], ZUC_UINT32 count, ZUC_UINT5 bearer,
|
||||||
|
ZUC_BIT direction);
|
||||||
|
|
||||||
|
# define ZUC256_KEY_LENGTH 32
|
||||||
|
# define ZUC256_IV_LENGTH 23
|
||||||
|
# define ZUC256_MAC32_LENGTH 4
|
||||||
|
# define ZUC256_MAC64_LENGTH 8
|
||||||
|
# define ZUC256_MAC128_LENGTH 16
|
||||||
|
# define ZUC256_MIN_MAC_LENGTH ZUC256_MAC32_LENGTH
|
||||||
|
# define ZUC256_MAX_MAC_LENGTH ZUC256_MAC128_LENGTH
|
||||||
|
|
||||||
|
typedef ZUC_KEY ZUC256_KEY;
|
||||||
|
|
||||||
|
void ZUC256_set_key(ZUC256_KEY *key, const unsigned char user_key[32],
|
||||||
|
const unsigned char iv[23]);
|
||||||
|
#define ZUC256_generate_keystream(k,n,out) ZUC_generate_keystream(k,n,out)
|
||||||
|
#define ZUC256_generate_keyword(k) ZUC_generate_keyword(k)
|
||||||
|
|
||||||
|
typedef struct ZUC256_MAC_CTX_st {
|
||||||
|
ZUC_UINT31 LFSR[16];
|
||||||
|
ZUC_UINT32 R1;
|
||||||
|
ZUC_UINT32 R2;
|
||||||
|
ZUC_UINT32 T[4];
|
||||||
|
ZUC_UINT32 K0[4];
|
||||||
|
unsigned char buf[4];
|
||||||
|
int buflen;
|
||||||
|
int macbits;
|
||||||
|
} ZUC256_MAC_CTX;
|
||||||
|
|
||||||
|
void ZUC256_MAC_init(ZUC256_MAC_CTX *ctx, const unsigned char key[32], const unsigned char iv[23], int macbits);
|
||||||
|
void ZUC256_MAC_update(ZUC256_MAC_CTX *ctx, const unsigned char *data, size_t len);
|
||||||
|
void ZUC256_MAC_final(ZUC256_MAC_CTX *ctx, const unsigned char *data, size_t nbits, unsigned char *mac);
|
||||||
|
|
||||||
void ZUC256_set_key(ZUC_KEY *key, const unsigned char *K, const unsigned char *IV);
|
|
||||||
int ZUC256_set_mac_key(ZUC_KEY *key, const unsigned char *K, const unsigned char *IV,
|
|
||||||
int macbits /* macbits in {32, 64, 128} */);
|
|
||||||
|
|
||||||
# ifdef __cplusplus
|
# ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
|||||||
432
test/zuctest.c
432
test/zuctest.c
@@ -62,64 +62,17 @@ int main(int argc, char **argv)
|
|||||||
# include <openssl/evp.h>
|
# include <openssl/evp.h>
|
||||||
# include <openssl/zuc.h>
|
# include <openssl/zuc.h>
|
||||||
|
|
||||||
/*
|
static void bswap_buf(uint32_t *buf, size_t nwords)
|
||||||
static int zuc_128eea3_test1(void)
|
|
||||||
{
|
{
|
||||||
unsigned char ck[] = {
|
size_t i;
|
||||||
0x17,0x3d,0x14,0xba,0x50,0x03,0x73,0x1d,0x7a,0x60,0x04,0x94,0x70,0xf0,0x0a,0x29,
|
for (i = 0; i < nwords; i++) {
|
||||||
};
|
uint32_t a = buf[i];
|
||||||
uint32_t count = 0x66035492;
|
buf[i] = (a >> 24) | ((a >> 8) & 0xff00) |
|
||||||
uint8_t bearer = 0x0f;
|
((a << 8) & 0xff0000) | (a << 24);
|
||||||
uint8_t direction = 0;
|
|
||||||
uint32_t length = c1;
|
|
||||||
unsigned char ibs[] = {
|
|
||||||
0x6cf65340, 735552ab,
|
|
||||||
}
|
|
||||||
|
|
||||||
static int zuc_eia3_test1(void)
|
|
||||||
{
|
|
||||||
unsigned char key[16] = {0};
|
|
||||||
uint32_t count = 0;
|
|
||||||
uint32_t bearer = 0;
|
|
||||||
int direction = 0;
|
|
||||||
uint32_t m[1] = {0};
|
|
||||||
uint32_t mac1 = 0xc8a9595e;
|
|
||||||
uint32_t mac2 = 0;
|
|
||||||
|
|
||||||
eia3(key, count, bearer, direction, m, sizeof(m), &mac2);
|
|
||||||
if (mac1 != mac2) {
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return 1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int zuc_eia3_test2(int verbose)
|
int zuc_test(void)
|
||||||
{
|
|
||||||
unsigned char key[16] = {
|
|
||||||
0xc9, 0xe6, 0xce, 0xc4, 0x60, 0x7c, 0x72, 0xdb,
|
|
||||||
0x00, 0x0a, 0xef, 0xa8, 0x83, 0x85, 0xab, 0x0a,
|
|
||||||
};
|
|
||||||
uint32_t count = 0xa94059da;
|
|
||||||
uint32_t bearer = 0x0a;
|
|
||||||
int direction = 1;
|
|
||||||
int length = 241;
|
|
||||||
uint32_t m[] = {
|
|
||||||
0x01,
|
|
||||||
};
|
|
||||||
uint32_t mac1;
|
|
||||||
uint32_t mac2;
|
|
||||||
|
|
||||||
eia3(key, count, bearer, direction, m, sizeof(m), &mac2);
|
|
||||||
if (mac1 != mac2) {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
int main(int argc, char **argv)
|
|
||||||
{
|
{
|
||||||
int err = 0;
|
int err = 0;
|
||||||
int i;
|
int i;
|
||||||
@@ -145,21 +98,241 @@ int main(int argc, char **argv)
|
|||||||
uint32_t buf[3] = {0};
|
uint32_t buf[3] = {0};
|
||||||
ZUC_set_key(&zuc, key[i], iv[i]);
|
ZUC_set_key(&zuc, key[i], iv[i]);
|
||||||
ZUC_generate_keystream(&zuc, 2, buf);
|
ZUC_generate_keystream(&zuc, 2, buf);
|
||||||
printf("%08x %08x\n", buf[0], buf[1]);
|
|
||||||
printf("%08x %08x\n", ciphertext[i][0], ciphertext[i][1]);
|
|
||||||
if (buf[0] != ciphertext[i][0] || buf[1] != ciphertext[i][1]) {
|
if (buf[0] != ciphertext[i][0] || buf[1] != ciphertext[i][1]) {
|
||||||
fprintf(stderr, "error generating ZUC key stream on test vector %d\n", i);
|
fprintf(stderr, "error generating ZUC key stream on test vector %d\n", i);
|
||||||
err++;
|
err++;
|
||||||
} else {
|
} else {
|
||||||
fprintf(stderr, "ZUC test vector %d success\n", i);
|
fprintf(stderr, "zuc test %d ok\n", i);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0
|
/* test vector from GM/T 0001.2-2012 */
|
||||||
int zuc256test(int argc, char **argv)
|
static int zuc_eea_test(void)
|
||||||
|
{
|
||||||
|
int err = 0;
|
||||||
|
unsigned char key[][16] = {
|
||||||
|
{0x17, 0x3d, 0x14, 0xba, 0x50, 0x03, 0x73, 0x1d,
|
||||||
|
0x7a, 0x60, 0x04, 0x94, 0x70, 0xf0, 0x0a, 0x29},
|
||||||
|
{0xe5, 0xbd, 0x3e, 0xa0, 0xeb, 0x55, 0xad, 0xe8,
|
||||||
|
0x66, 0xc6, 0xac, 0x58, 0xbd, 0x54, 0x30, 0x2a},
|
||||||
|
{0xe1, 0x3f, 0xed, 0x21, 0xb4, 0x6e, 0x4e, 0x7e,
|
||||||
|
0xc3, 0x12, 0x53, 0xb2, 0xbb, 0x17, 0xb3, 0xe0},
|
||||||
|
};
|
||||||
|
ZUC_UINT32 count[] = {0x66035492, 0x56823, 0x2738cdaa};
|
||||||
|
ZUC_UINT5 bearer[] = {0x0f, 0x18, 0x1a};
|
||||||
|
ZUC_BIT direction[] = {0, 1, 0};
|
||||||
|
ZUC_UINT32 ibs0[] = {
|
||||||
|
0x6cf65340, 0x735552ab, 0x0c9752fa, 0x6f9025fe,
|
||||||
|
0x0bd675d9, 0x005875b2, 0x00000000,
|
||||||
|
};
|
||||||
|
ZUC_UINT32 ibs1[] = {
|
||||||
|
0x14a8ef69, 0x3d678507, 0xbbe7270a, 0x7f67ff50,
|
||||||
|
0x06c3525b, 0x9807e467, 0xc4e56000, 0xba338f5d,
|
||||||
|
0x42955903, 0x67518222, 0x46c80d3b, 0x38f07f4b,
|
||||||
|
0xe2d8ff58, 0x05f51322, 0x29bde93b, 0xbbdcaf38,
|
||||||
|
0x2bf1ee97, 0x2fbf9977, 0xbada8945, 0x847a2a6c,
|
||||||
|
0x9ad34a66, 0x7554e04d, 0x1f7fa2c3, 0x3241bd8f,
|
||||||
|
0x01ba220d,
|
||||||
|
};
|
||||||
|
ZUC_UINT32 ibs2[] = {
|
||||||
|
0x8d74e20d, 0x54894e06, 0xd3cb13cb, 0x3933065e,
|
||||||
|
0x8674be62, 0xadb1c72b, 0x3a646965, 0xab63cb7b,
|
||||||
|
0x7854dfdc, 0x27e84929, 0xf49c64b8, 0x72a490b1,
|
||||||
|
0x3f957b64, 0x827e71f4, 0x1fbd4269, 0xa42c97f8,
|
||||||
|
0x24537027, 0xf86e9f4a, 0xd82d1df4, 0x51690fdd,
|
||||||
|
0x98b6d03f, 0x3a0ebe3a, 0x312d6b84, 0x0ba5a182,
|
||||||
|
0x0b2a2c97, 0x09c090d2, 0x45ed267c, 0xf845ae41,
|
||||||
|
0xfa975d33, 0x33ac3009, 0xfd40eba9, 0xeb5b8857,
|
||||||
|
0x14b768b6, 0x97138baf, 0x21380eca, 0x49f644d4,
|
||||||
|
0x8689e421, 0x5760b906, 0x739f0d2b, 0x3f091133,
|
||||||
|
0xca15d981, 0xcbe401ba, 0xf72d05ac, 0xe05cccb2,
|
||||||
|
0xd297f4ef, 0x6a5f58d9, 0x1246cfa7, 0x7215b892,
|
||||||
|
0xab441d52, 0x78452795, 0xccb7f5d7, 0x9057a1c4,
|
||||||
|
0xf77f80d4, 0x6db2033c, 0xb79bedf8, 0xe60551ce,
|
||||||
|
0x10c667f6, 0x2a97abaf, 0xabbcd677, 0x2018df96,
|
||||||
|
0xa282ea73, 0x7ce2cb33, 0x1211f60d, 0x5354ce78,
|
||||||
|
0xf9918d9c, 0x206ca042, 0xc9b62387, 0xdd709604,
|
||||||
|
0xa50af16d, 0x8d35a890, 0x6be484cf, 0x2e74a928,
|
||||||
|
0x99403643, 0x53249b27, 0xb4c9ae29, 0xeddfc7da,
|
||||||
|
0x6418791a, 0x4e7baa06, 0x60fa6451, 0x1f2d685c,
|
||||||
|
0xc3a5ff70, 0xe0d2b742, 0x92e3b8a0, 0xcd6b04b1,
|
||||||
|
0xc790b8ea, 0xd2703708, 0x540dea2f, 0xc09c3da7,
|
||||||
|
0x70f65449, 0xc84d817a, 0x4f551055, 0xe19ab850,
|
||||||
|
0x18a0028b, 0x71a144d9, 0x6791e9a3, 0x57793350,
|
||||||
|
0x4eee0060, 0x340c69d2, 0x74e1bf9d, 0x805dcbcc,
|
||||||
|
0x1a6faa97, 0x6800b6ff, 0x2b671dc4, 0x63652fa8,
|
||||||
|
0xa33ee509, 0x74c1c21b, 0xe01eabb2, 0x16743026,
|
||||||
|
0x9d72ee51, 0x1c9dde30, 0x797c9a25, 0xd86ce74f,
|
||||||
|
0x5b961be5, 0xfdfb6807, 0x814039e7, 0x137636bd,
|
||||||
|
0x1d7fa9e0, 0x9efd2007, 0x505906a5, 0xac45dfde,
|
||||||
|
0xed7757bb, 0xee745749, 0xc2963335, 0x0bee0ea6,
|
||||||
|
0xf409df45, 0x80160000,
|
||||||
|
};
|
||||||
|
ZUC_UINT32 obs0[] = {
|
||||||
|
0xa6c85fc6, 0x6afb8533, 0xaafc2518, 0xdfe78494,
|
||||||
|
0x0ee1e4b0, 0x30238cc8, 0x00000000,
|
||||||
|
};
|
||||||
|
ZUC_UINT32 obs1[] = {
|
||||||
|
0x131d43e0, 0xdea1be5c, 0x5a1bfd97, 0x1d852cbf,
|
||||||
|
0x712d7b4f, 0x57961fea, 0x3208afa8, 0xbca433f4,
|
||||||
|
0x56ad09c7, 0x417e58bc, 0x69cf8866, 0xd1353f74,
|
||||||
|
0x865e8078, 0x1d202dfb, 0x3ecff7fc, 0xbc3b190f,
|
||||||
|
0xe82a204e, 0xd0e350fc, 0x0f6f2613, 0xb2f2bca6,
|
||||||
|
0xdf5a473a, 0x57a4a00d, 0x985ebad8, 0x80d6f238,
|
||||||
|
0x64a07b01,
|
||||||
|
};
|
||||||
|
ZUC_UINT32 obs2[] = {
|
||||||
|
0x94eaa4aa, 0x30a57137, 0xddf09b97, 0xb25618a2,
|
||||||
|
0x0a13e2f1, 0x0fa5bf81, 0x61a879cc, 0x2ae797a6,
|
||||||
|
0xb4cf2d9d, 0xf31debb9, 0x905ccfec, 0x97de605d,
|
||||||
|
0x21c61ab8, 0x531b7f3c, 0x9da5f039, 0x31f8a064,
|
||||||
|
0x2de48211, 0xf5f52ffe, 0xa10f392a, 0x04766998,
|
||||||
|
0x5da454a2, 0x8f080961, 0xa6c2b62d, 0xaa17f33c,
|
||||||
|
0xd60a4971, 0xf48d2d90, 0x9394a55f, 0x48117ace,
|
||||||
|
0x43d708e6, 0xb77d3dc4, 0x6d8bc017, 0xd4d1abb7,
|
||||||
|
0x7b7428c0, 0x42b06f2f, 0x99d8d07c, 0x9879d996,
|
||||||
|
0x00127a31, 0x985f1099, 0xbbd7d6c1, 0x519ede8f,
|
||||||
|
0x5eeb4a61, 0x0b349ac0, 0x1ea23506, 0x91756bd1,
|
||||||
|
0x05c974a5, 0x3eddb35d, 0x1d4100b0, 0x12e522ab,
|
||||||
|
0x41f4c5f2, 0xfde76b59, 0xcb8b96d8, 0x85cfe408,
|
||||||
|
0x0d1328a0, 0xd636cc0e, 0xdc05800b, 0x76acca8f,
|
||||||
|
0xef672084, 0xd1f52a8b, 0xbd8e0993, 0x320992c7,
|
||||||
|
0xffbae17c, 0x408441e0, 0xee883fc8, 0xa8b05e22,
|
||||||
|
0xf5ff7f8d, 0x1b48c74c, 0x468c467a, 0x028f09fd,
|
||||||
|
0x7ce91109, 0xa570a2d5, 0xc4d5f4fa, 0x18c5dd3e,
|
||||||
|
0x4562afe2, 0x4ef77190, 0x1f59af64, 0x5898acef,
|
||||||
|
0x088abae0, 0x7e92d52e, 0xb2de5504, 0x5bb1b7c4,
|
||||||
|
0x164ef2d7, 0xa6cac15e, 0xeb926d7e, 0xa2f08b66,
|
||||||
|
0xe1f759f3, 0xaee44614, 0x725aa3c7, 0x482b3084,
|
||||||
|
0x4c143ff8, 0x7b53f1e5, 0x83c50125, 0x7dddd096,
|
||||||
|
0xb81268da, 0xa303f172, 0x34c23335, 0x41f0bb8e,
|
||||||
|
0x190648c5, 0x807c866d, 0x71932286, 0x09adb948,
|
||||||
|
0x686f7de2, 0x94a802cc, 0x38f7fe52, 0x08f5ea31,
|
||||||
|
0x96d0167b, 0x9bdd02f0, 0xd2a5221c, 0xa508f893,
|
||||||
|
0xaf5c4b4b, 0xb9f4f520, 0xfd84289b, 0x3dbe7e61,
|
||||||
|
0x497a7e2a, 0x584037ea, 0x637b6981, 0x127174af,
|
||||||
|
0x57b471df, 0x4b2768fd, 0x79c1540f, 0xb3edf2ea,
|
||||||
|
0x22cb69be, 0xc0cf8d93, 0x3d9c6fdd, 0x645e8505,
|
||||||
|
0x91cca3d6, 0x2c0cc000,
|
||||||
|
};
|
||||||
|
ZUC_UINT32 *ibs[] = {ibs0, ibs1, ibs2};
|
||||||
|
ZUC_UINT32 *obs[] = {obs0, obs1, obs2};
|
||||||
|
size_t bits[] = {0xc1, 0x320, 0xfb3};
|
||||||
|
ZUC_UINT32 buf[sizeof(obs2)/4];
|
||||||
|
size_t i;
|
||||||
|
|
||||||
|
for (i = 0; i < sizeof(key)/sizeof(key[i]); i++) {
|
||||||
|
ZUC_eea_encrypt(ibs[i], buf, bits[i], key[i], count[i], bearer[i], direction[i]);
|
||||||
|
if (memcmp(buf, obs[i], (bits[i] + 31)/32) != 0) {
|
||||||
|
printf("zuc eea test %zu failed\n", i);
|
||||||
|
err++;
|
||||||
|
} else {
|
||||||
|
printf("zuc eea test %zu ok\n", i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return err;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* test vector from GM/T 0001.3-2012 */
|
||||||
|
static int zuc_eia_test(void)
|
||||||
|
{
|
||||||
|
int err = 0;
|
||||||
|
unsigned char key[][16] = {
|
||||||
|
{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
|
||||||
|
{0xc9, 0xe6, 0xce, 0xc4, 0x60, 0x7c, 0x72, 0xdb,
|
||||||
|
0x00, 0x0a, 0xef, 0xa8, 0x83, 0x85, 0xab, 0x0a},
|
||||||
|
{0x6b, 0x8b, 0x08, 0xee, 0x79, 0xe0, 0xb5, 0x98,
|
||||||
|
0x2d, 0x6d, 0x12, 0x8e, 0xa9, 0xf2, 0x20, 0xcb},
|
||||||
|
};
|
||||||
|
ZUC_UINT32 count[] = {0, 0xa94059daU, 0x561eb2ddU};
|
||||||
|
ZUC_UINT5 bearer[] = {0, 0x0a, 0x1c};
|
||||||
|
ZUC_BIT direction[] = {0, 1, 0};
|
||||||
|
ZUC_UINT32 mesg0[] = {0};
|
||||||
|
ZUC_UINT32 mesg1[] = {
|
||||||
|
0x983b41d4, 0x7d780c9e, 0x1ad11d7e, 0xb70391b1,
|
||||||
|
0xde0b35da, 0x2dc62f83, 0xe7b78d63, 0x06ca0ea0,
|
||||||
|
0x7e941b7b, 0xe91348f9, 0xfcb170e2, 0x217fecd9,
|
||||||
|
0x7f9f68ad, 0xb16e5d7d, 0x21e569d2, 0x80ed775c,
|
||||||
|
0xebde3f40, 0x93c53881, 0x00000000,
|
||||||
|
};
|
||||||
|
ZUC_UINT32 mesg2[] = {
|
||||||
|
0x5bad7247, 0x10ba1c56, 0xd5a315f8, 0xd40f6e09,
|
||||||
|
0x3780be8e, 0x8de07b69, 0x92432018, 0xe08ed96a,
|
||||||
|
0x5734af8b, 0xad8a575d, 0x3a1f162f, 0x85045cc7,
|
||||||
|
0x70925571, 0xd9f5b94e, 0x454a77c1, 0x6e72936b,
|
||||||
|
0xf016ae15, 0x7499f054, 0x3b5d52ca, 0xa6dbeab6,
|
||||||
|
0x97d2bb73, 0xe41b8075, 0xdce79b4b, 0x86044f66,
|
||||||
|
0x1d4485a5, 0x43dd7860, 0x6e0419e8, 0x059859d3,
|
||||||
|
0xcb2b67ce, 0x0977603f, 0x81ff839e, 0x33185954,
|
||||||
|
0x4cfbc8d0, 0x0fef1a4c, 0x8510fb54, 0x7d6b06c6,
|
||||||
|
0x11ef44f1, 0xbce107cf, 0xa45a06aa, 0xb360152b,
|
||||||
|
0x28dc1ebe, 0x6f7fe09b, 0x0516f9a5, 0xb02a1bd8,
|
||||||
|
0x4bb0181e, 0x2e89e19b, 0xd8125930, 0xd178682f,
|
||||||
|
0x3862dc51, 0xb636f04e, 0x720c47c3, 0xce51ad70,
|
||||||
|
0xd94b9b22, 0x55fbae90, 0x6549f499, 0xf8c6d399,
|
||||||
|
0x47ed5e5d, 0xf8e2def1, 0x13253e7b, 0x08d0a76b,
|
||||||
|
0x6bfc68c8, 0x12f375c7, 0x9b8fe5fd, 0x85976aa6,
|
||||||
|
0xd46b4a23, 0x39d8ae51, 0x47f680fb, 0xe70f978b,
|
||||||
|
0x38effd7b, 0x2f7866a2, 0x2554e193, 0xa94e98a6,
|
||||||
|
0x8b74bd25, 0xbb2b3f5f, 0xb0a5fd59, 0x887f9ab6,
|
||||||
|
0x8159b717, 0x8d5b7b67, 0x7cb546bf, 0x41eadca2,
|
||||||
|
0x16fc1085, 0x0128f8bd, 0xef5c8d89, 0xf96afa4f,
|
||||||
|
0xa8b54885, 0x565ed838, 0xa950fee5, 0xf1c3b0a4,
|
||||||
|
0xf6fb71e5, 0x4dfd169e, 0x82cecc72, 0x66c850e6,
|
||||||
|
0x7c5ef0ba, 0x960f5214, 0x060e71eb, 0x172a75fc,
|
||||||
|
0x1486835c, 0xbea65344, 0x65b055c9, 0x6a72e410,
|
||||||
|
0x52241823, 0x25d83041, 0x4b40214d, 0xaa8091d2,
|
||||||
|
0xe0fb010a, 0xe15c6de9, 0x0850973b, 0xdf1e423b,
|
||||||
|
0xe148a237, 0xb87a0c9f, 0x34d4b476, 0x05b803d7,
|
||||||
|
0x43a86a90, 0x399a4af3, 0x96d3a120, 0x0a62f3d9,
|
||||||
|
0x507962e8, 0xe5bee6d3, 0xda2bb3f7, 0x237664ac,
|
||||||
|
0x7a292823, 0x900bc635, 0x03b29e80, 0xd63f6067,
|
||||||
|
0xbf8e1716, 0xac25beba, 0x350deb62, 0xa99fe031,
|
||||||
|
0x85eb4f69, 0x937ecd38, 0x7941fda5, 0x44ba67db,
|
||||||
|
0x09117749, 0x38b01827, 0xbcc69c92, 0xb3f772a9,
|
||||||
|
0xd2859ef0, 0x03398b1f, 0x6bbad7b5, 0x74f7989a,
|
||||||
|
0x1d10b2df, 0x798e0dbf, 0x30d65874, 0x64d24878,
|
||||||
|
0xcd00c0ea, 0xee8a1a0c, 0xc753a279, 0x79e11b41,
|
||||||
|
0xdb1de3d5, 0x038afaf4, 0x9f5c682c, 0x3748d8a3,
|
||||||
|
0xa9ec54e6, 0xa371275f, 0x1683510f, 0x8e4f9093,
|
||||||
|
0x8f9ab6e1, 0x34c2cfdf, 0x4841cba8, 0x8e0cff2b,
|
||||||
|
0x0bcc8e6a, 0xdcb71109, 0xb5198fec, 0xf1bb7e5c,
|
||||||
|
0x531aca50, 0xa56a8a3b, 0x6de59862, 0xd41fa113,
|
||||||
|
0xd9cd9578, 0x08f08571, 0xd9a4bb79, 0x2af271f6,
|
||||||
|
0xcc6dbb8d, 0xc7ec36e3, 0x6be1ed30, 0x8164c31c,
|
||||||
|
0x7c0afc54, 0x1c000000,
|
||||||
|
};
|
||||||
|
ZUC_UINT32 *mesg[] = {mesg0, mesg1, mesg2};
|
||||||
|
size_t bits[] = {1, 0x241, 0x1626};
|
||||||
|
ZUC_UINT32 mac[] = {0xc8a9595eU, 0xfae8ff0bU, 0x0ca12792U};
|
||||||
|
size_t i;
|
||||||
|
|
||||||
|
bswap_buf(mesg0, sizeof(mesg0)/sizeof(mesg0[0]));
|
||||||
|
bswap_buf(mesg1, sizeof(mesg1)/sizeof(mesg1[0]));
|
||||||
|
bswap_buf(mesg2, sizeof(mesg2)/sizeof(mesg2[0]));
|
||||||
|
|
||||||
|
for (i = 0; i < sizeof(key)/sizeof(key[0]); i++) {
|
||||||
|
ZUC_UINT32 T;
|
||||||
|
T = ZUC_eia_generate_mac(mesg[i], bits[i], key[i],
|
||||||
|
count[i], bearer[i], direction[i]);
|
||||||
|
if (T != mac[i]) {
|
||||||
|
printf("zuc eia test %zu failed\n", i);
|
||||||
|
err++;
|
||||||
|
} else {
|
||||||
|
printf("zuc eia test %zu ok\n", i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return err;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* from ZUC256 draft */
|
||||||
|
int zuc256_test(void)
|
||||||
{
|
{
|
||||||
int err = 0;
|
int err = 0;
|
||||||
int i;
|
int i;
|
||||||
@@ -180,7 +353,7 @@ int zuc256test(int argc, char **argv)
|
|||||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00},
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00},
|
||||||
{0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
|
{0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
|
||||||
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
|
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
|
||||||
0xff,0xff,0xff,0xff,0xff,0xff,0xff}
|
0xff,0xff,0xff,0xff,0xff,0xff,0xff},
|
||||||
};
|
};
|
||||||
uint32_t ciphertext[][20] = {
|
uint32_t ciphertext[][20] = {
|
||||||
{0x58d03ad6,0x2e032ce2,0xdafc683a,0x39bdcb03,0x52a2bc67,
|
{0x58d03ad6,0x2e032ce2,0xdafc683a,0x39bdcb03,0x52a2bc67,
|
||||||
@@ -193,26 +366,27 @@ int zuc256test(int argc, char **argv)
|
|||||||
0xe441ce11,0x15fd0a80,0xbb7aef67,0x68989416,0xb8fac8c2}
|
0xe441ce11,0x15fd0a80,0xbb7aef67,0x68989416,0xb8fac8c2}
|
||||||
};
|
};
|
||||||
|
|
||||||
for (i = 0; i < 3; i++) {
|
for (i = 0; i < sizeof(key)/sizeof(key[0]); i++) {
|
||||||
ZUC_KEY zuc = {{0}};
|
ZUC_KEY zuc_key;
|
||||||
uint32_t buf[3] = {0};
|
uint32_t buf[20] = {0};
|
||||||
ZUC_set_key(&zuc, key[i], iv[i]);
|
|
||||||
ZUC_generate_keystream(&zuc, 2, buf);
|
ZUC256_set_key(&zuc_key, key[i], iv[i]);
|
||||||
printf("%08x %08x\n", buf[0], buf[1]);
|
ZUC_generate_keystream(&zuc_key, 20, buf);
|
||||||
printf("%08x %08x\n", ciphertext[i][0], ciphertext[i][1]);
|
|
||||||
if (buf[0] != ciphertext[i][0] || buf[1] != ciphertext[i][1]) {
|
if (memcmp(buf, ciphertext[i], 20) != 0) {
|
||||||
fprintf(stderr, "error generating ZUC key stream on test vector %d\n", i);
|
printf("zuc256 test %d failed\n", i);
|
||||||
err++;
|
err++;
|
||||||
} else {
|
} else {
|
||||||
fprintf(stderr, "ZUC test vector %d success\n", i);
|
printf("zuc256 test %d ok\n", i);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
int zuc256mactest(void)
|
int zuc256_mac_test(void)
|
||||||
{
|
{
|
||||||
|
int err = 0;
|
||||||
unsigned char key[][32] = {
|
unsigned char key[][32] = {
|
||||||
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||||
@@ -234,42 +408,42 @@ int zuc256mactest(void)
|
|||||||
unsigned char iv[][23] = {
|
unsigned char iv[][23] = {
|
||||||
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00},
|
||||||
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00},
|
||||||
{0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
|
{0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
|
||||||
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
|
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
|
||||||
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff},
|
0xff,0xff,0xff,0xff,0xff,0xff,0xff},
|
||||||
{0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
|
{0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
|
||||||
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
|
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
|
||||||
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff}
|
0xff,0xff,0xff,0xff,0xff,0xff,0xff},
|
||||||
};
|
};
|
||||||
unsigned char msg[][] = {
|
unsigned char msg[][50] = {
|
||||||
/* 400 zero bits */
|
/* 400 zero bits */
|
||||||
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
|
||||||
/* 4000 one bits */
|
/* 4000 bits */
|
||||||
{0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
|
{0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,
|
||||||
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
|
0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,
|
||||||
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
|
0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,
|
||||||
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
|
0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,
|
||||||
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff},
|
0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11},
|
||||||
/* 400 zero bits */
|
/* 400 zero bits */
|
||||||
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
|
||||||
/* 4000 one bits */
|
/* 4000 bits */
|
||||||
{0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
|
{0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,
|
||||||
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
|
0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,
|
||||||
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
|
0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,
|
||||||
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
|
0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,
|
||||||
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff}
|
0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11},
|
||||||
};
|
};
|
||||||
unsigned int msg_num[] = {
|
unsigned int msg_num[] = {
|
||||||
1,
|
1,
|
||||||
@@ -277,36 +451,82 @@ int zuc256mactest(void)
|
|||||||
1,
|
1,
|
||||||
10
|
10
|
||||||
};
|
};
|
||||||
unsigned int tag32[] = {
|
unsigned int tag32[][1] = {
|
||||||
0x9b972a74,
|
{0x9b972a74},
|
||||||
0x8754f5cf,
|
{0x8754f5cf},
|
||||||
0x1f3079b4,
|
{0x1f3079b4},
|
||||||
0x5c7c8b88
|
{0x5c7c8b88},
|
||||||
};
|
};
|
||||||
unsigned int tag64[][2] = {
|
unsigned int tag64[][2] = {
|
||||||
{0x673e5499,0x0034d38c},
|
{0x673e5499,0x0034d38c},
|
||||||
{0x130dc225,0xe72240cc},
|
{0x130dc225,0xe72240cc},
|
||||||
{0x8c71394d,0x39957725},
|
{0x8c71394d,0x39957725},
|
||||||
{0xea1dee54,0x4bb6223b}
|
{0xea1dee54,0x4bb6223b},
|
||||||
};
|
};
|
||||||
unsigned int tag128[][4] = {
|
unsigned int tag128[][4] = {
|
||||||
{0xd85e54bb,0xcb960096,0x7084c952,0xa1654b26},
|
{0xd85e54bb,0xcb960096,0x7084c952,0xa1654b26},
|
||||||
0xdf1e8307,0xb31cc62b,0xeca1ac6f,0x8190c22f},
|
{0xdf1e8307,0xb31cc62b,0xeca1ac6f,0x8190c22f},
|
||||||
0xa35bb274,0xb567c48b,0x28319f11,0x1af34fbd},
|
{0xa35bb274,0xb567c48b,0x28319f11,0x1af34fbd},
|
||||||
0x3a83b554,0xbe408ca5,0x494124ed,0x9d473205}
|
{0x3a83b554,0xbe408ca5,0x494124ed,0x9d473205},
|
||||||
};
|
};
|
||||||
|
int i, j;
|
||||||
|
|
||||||
ZUC_KEY zuc = {{0}};
|
bswap_buf((uint32_t *)tag32, sizeof(tag32)/4);
|
||||||
unsigned int mac32[1] = {0};
|
bswap_buf((uint32_t *)tag64, sizeof(tag64)/4);
|
||||||
unsigned int mac64[2] = {0};
|
bswap_buf((uint32_t *)tag128, sizeof(tag128)/4);
|
||||||
unsigned int mac128[4] = {0};
|
|
||||||
|
|
||||||
for (i = 0; i < sizeof(key)/sizeof(key[0]); i++) {
|
for (i = 0; i < 4; i++) {
|
||||||
ZUC_set_key(&zuc, key[i], iv[i]);
|
ZUC256_MAC_CTX ctx;
|
||||||
ZUC_generate_keystream(&zuc, 2, buf);
|
unsigned char mac[16];
|
||||||
|
|
||||||
|
ZUC256_MAC_init(&ctx, key[i], iv[i], 32);
|
||||||
|
for (j = 0; j < msg_num[i]; j++) {
|
||||||
|
ZUC256_MAC_update(&ctx, msg[i], 50);
|
||||||
|
}
|
||||||
|
ZUC256_MAC_final(&ctx, NULL, 0, mac);
|
||||||
|
if (memcmp(mac, tag32[i], 4) != 0) {
|
||||||
|
printf("zuc256 mac test %d 32-bit failed\n", i);
|
||||||
|
err++;
|
||||||
|
} else {
|
||||||
|
printf("zuc256 mac test %d 32-bit ok\n", i);
|
||||||
|
}
|
||||||
|
|
||||||
|
ZUC256_MAC_init(&ctx, key[i], iv[i], 64);
|
||||||
|
for (j = 0; j < msg_num[i]; j++) {
|
||||||
|
ZUC256_MAC_update(&ctx, msg[i], 50);
|
||||||
|
}
|
||||||
|
ZUC256_MAC_final(&ctx, NULL, 0, mac);
|
||||||
|
if (memcmp(mac, tag64[i], 8) != 0) {
|
||||||
|
printf("zuc256 mac test %d 64-bit failed\n", i);
|
||||||
|
err++;
|
||||||
|
} else {
|
||||||
|
printf("zuc256 mac test %d 64-bit ok\n", i);
|
||||||
|
}
|
||||||
|
|
||||||
|
ZUC256_MAC_init(&ctx, key[i], iv[i], 128);
|
||||||
|
for (j = 0; j < msg_num[i]; j++) {
|
||||||
|
ZUC256_MAC_update(&ctx, msg[i], 50);
|
||||||
|
}
|
||||||
|
ZUC256_MAC_final(&ctx, NULL, 0, mac);
|
||||||
|
if (memcmp(mac, tag128[i], 16) != 0) {
|
||||||
|
printf("zuc256 mac test %d 128-bit failed\n", i);
|
||||||
|
err++;
|
||||||
|
} else {
|
||||||
|
printf("zuc256 mac test %d 128-bit ok\n", i);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return err;
|
||||||
|
}
|
||||||
|
|
||||||
|
int main(void)
|
||||||
|
{
|
||||||
|
int err = 0;
|
||||||
|
err += zuc_test();
|
||||||
|
err += zuc_eea_test();
|
||||||
|
err += zuc_eia_test();
|
||||||
|
err += zuc256_test();
|
||||||
|
err += zuc256_mac_test();
|
||||||
|
return err;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|||||||
9460
util/libcrypto.num
9460
util/libcrypto.num
File diff suppressed because it is too large
Load Diff
820
util/libssl.num
820
util/libssl.num
@@ -1,411 +1,411 @@
|
|||||||
SSL_get_default_passwd_cb 1 1_1_0d EXIST::FUNCTION:
|
SSL_dane_clear_flags 1 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_get_certificate 2 1_1_0d EXIST::FUNCTION:
|
i2d_SSL_SESSION 2 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_set0_rbio 3 1_1_0d EXIST::FUNCTION:
|
SSL_alert_type_string 3 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_SESSION_set_timeout 4 1_1_0d EXIST::FUNCTION:
|
SSL_get0_dane_authority 4 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_set_session_ticket_ext_cb 5 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_has_client_custom_ext 5 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_get_ex_data 6 1_1_0d EXIST::FUNCTION:
|
SSL_get_verify_callback 6 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_set_default_ctlog_list_file 7 1_1_0d EXIST::FUNCTION:CT
|
SSL_SESSION_get_ticket_lifetime_hint 7 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_is_server 8 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_use_certificate_chain_file 8 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_get_shared_sigalgs 9 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_use_PrivateKey_file 9 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_SESSION_get_ticket_lifetime_hint 10 1_1_0d EXIST::FUNCTION:
|
BIO_new_ssl_connect 10 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_get_shutdown 11 1_1_0d EXIST::FUNCTION:
|
SSL_CIPHER_is_aead 11 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_get_psk_identity_hint 12 1_1_0d EXIST::FUNCTION:PSK
|
SSL_CONF_CTX_clear_flags 12 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_get_wbio 13 1_1_0d EXIST::FUNCTION:
|
SSL_trace 13 1_1_0d EXIST::FUNCTION:SSL_TRACE
|
||||||
SSL_config 14 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_set0_ctlog_store 14 1_1_0d EXIST::FUNCTION:CT
|
||||||
SSL_CTX_check_private_key 15 1_1_0d EXIST::FUNCTION:
|
TLSv1_1_server_method 15 1_1_0d EXIST::FUNCTION:DEPRECATEDIN_1_1_0,TLS1_1_METHOD
|
||||||
SSL_get_verify_callback 16 1_1_0d EXIST::FUNCTION:
|
SSL_SESSION_set_ex_data 16 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_set1_host 17 1_1_0d EXIST::FUNCTION:
|
SSL_get0_peername 17 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_ct_is_enabled 18 1_1_0d EXIST::FUNCTION:CT
|
ERR_load_SSL_strings 18 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_dane_clear_flags 19 1_1_0d EXIST::FUNCTION:
|
SSL_certs_clear 19 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_has_matching_session_id 20 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_set_srp_strength 20 1_1_0d EXIST::FUNCTION:SRP
|
||||||
SSL_set0_wbio 21 1_1_0d EXIST::FUNCTION:
|
SSL_has_matching_session_id 21 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_set_verify_depth 22 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_set_default_passwd_cb_userdata 22 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_renegotiate 23 1_1_0d EXIST::FUNCTION:
|
SSL_use_RSAPrivateKey_file 23 1_1_0d EXIST::FUNCTION:RSA
|
||||||
SSL_write 24 1_1_0d EXIST::FUNCTION:
|
SSL_get_info_callback 24 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_get_srp_username 25 1_1_0d EXIST::FUNCTION:SRP
|
SSL_CTX_set_cookie_generate_cb 25 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_set_alpn_protos 26 1_1_0d EXIST::FUNCTION:
|
SSL_CONF_CTX_set_ssl_ctx 26 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_clear_options 27 1_1_0d EXIST::FUNCTION:
|
SSL_add_file_cert_subjects_to_stack 27 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CIPHER_get_cipher_nid 28 1_1_0d EXIST::FUNCTION:
|
SSL_get_verify_mode 28 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_set_srp_verify_param_callback 29 1_1_0d EXIST::FUNCTION:SRP
|
SSL_CTX_dane_set_flags 29 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_set_ctlog_list_file 30 1_1_0d EXIST::FUNCTION:CT
|
DTLS_client_method 30 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_get_verify_mode 31 1_1_0d EXIST::FUNCTION:
|
SSL_set_default_read_buffer_len 31 1_1_0d EXIST::FUNCTION:
|
||||||
SSLv3_client_method 32 1_1_0d EXIST::FUNCTION:DEPRECATEDIN_1_1_0,SSL3_METHOD
|
SSL_get_version 32 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CONF_cmd_value_type 33 1_1_0d EXIST::FUNCTION:
|
SSL_add_client_CA 33 1_1_0d EXIST::FUNCTION:
|
||||||
DTLSv1_2_method 34 1_1_0d EXIST::FUNCTION:DEPRECATEDIN_1_1_0,DTLS1_2_METHOD
|
SSL_CTX_set_generate_session_id 34 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_ctrl 35 1_1_0d EXIST::FUNCTION:
|
SSL_get_rbio 35 1_1_0d EXIST::FUNCTION:
|
||||||
PEM_read_SSL_SESSION 36 1_1_0d EXIST::FUNCTION:STDIO
|
SSL_CTX_set_client_cert_cb 36 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_use_certificate 37 1_1_0d EXIST::FUNCTION:
|
SSL_check_private_key 37 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_do_handshake 38 1_1_0d EXIST::FUNCTION:
|
SSL_export_keying_material 38 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_use_PrivateKey_file 39 1_1_0d EXIST::FUNCTION:
|
SSL_set_fd 39 1_1_0d EXIST::FUNCTION:SOCK
|
||||||
SSL_CTX_set_security_level 40 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_set0_security_ex_data 40 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_clear 41 1_1_0d EXIST::FUNCTION:
|
OPENSSL_init_ssl 41 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_set0_security_ex_data 42 1_1_0d EXIST::FUNCTION:
|
SSL_alert_desc_string_long 42 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_set_trust 43 1_1_0d EXIST::FUNCTION:
|
TLS_server_method 43 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_set_rfd 44 1_1_0d EXIST::FUNCTION:SOCK
|
SSL_CTX_set_timeout 44 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_SRP_CTX_free 45 1_1_0d EXIST::FUNCTION:SRP
|
SSL_CIPHER_find 45 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_SESSION_get_compress_id 46 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_check_private_key 46 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_set0_ctlog_store 47 1_1_0d EXIST::FUNCTION:CT
|
SSL_get_peer_certificate 47 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_use_PrivateKey 48 1_1_0d EXIST::FUNCTION:
|
SSL_select_next_proto 48 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_add_ssl_module 49 1_1_0d EXIST::FUNCTION:
|
SSL_SESSION_get0_ticket 49 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_use_certificate_chain_file 50 1_1_0d EXIST::FUNCTION:
|
SSL_SESSION_up_ref 50 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_callback_ctrl 51 1_1_0d EXIST::FUNCTION:
|
SSL_set_quiet_shutdown 51 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_set_generate_session_id 52 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_set_verify_depth 52 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_get0_peer_scts 53 1_1_0d EXIST::FUNCTION:CT
|
SSL_SESSION_get_protocol_version 53 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_set_default_passwd_cb 54 1_1_0d EXIST::FUNCTION:
|
SSL_get_all_async_fds 54 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_set_trust 55 1_1_0d EXIST::FUNCTION:
|
PEM_read_bio_SSL_SESSION 55 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_set_fd 56 1_1_0d EXIST::FUNCTION:SOCK
|
SSL_state_string_long 56 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_set_verify 57 1_1_0d EXIST::FUNCTION:
|
SSL_set_connect_state 57 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_set_security_level 58 1_1_0d EXIST::FUNCTION:
|
SSL_set_accept_state 58 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_is_dtls 59 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_SRP_CTX_init 59 1_1_0d EXIST::FUNCTION:SRP
|
||||||
SSL_SRP_CTX_free 60 1_1_0d EXIST::FUNCTION:SRP
|
SSL_CTX_set_options 60 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_get_peer_cert_chain 61 1_1_0d EXIST::FUNCTION:
|
SSL_get_sigalgs 61 1_1_0d EXIST::FUNCTION:
|
||||||
GMTLS_client_method 62 1_1_0d EXIST::FUNCTION:GMTLS
|
SSL_set_session_secret_cb 62 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_set_purpose 63 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_use_RSAPrivateKey_ASN1 63 1_1_0d EXIST::FUNCTION:RSA
|
||||||
SSL_has_pending 64 1_1_0d EXIST::FUNCTION:
|
SSL_set_wfd 64 1_1_0d EXIST::FUNCTION:SOCK
|
||||||
BIO_ssl_copy_session_id 65 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_set_ssl_version 65 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_extension_supported 66 1_1_0d EXIST::FUNCTION:
|
SSL_set_shutdown 66 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_rstate_string_long 67 1_1_0d EXIST::FUNCTION:
|
SSL_set_purpose 67 1_1_0d EXIST::FUNCTION:
|
||||||
PEM_write_bio_SSL_SESSION 68 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_up_ref 68 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_new 69 1_1_0d EXIST::FUNCTION:
|
GMTLS_method 69 1_1_0d EXIST::FUNCTION:GMTLS
|
||||||
SSL_SESSION_set_time 70 1_1_0d EXIST::FUNCTION:
|
SSL_dane_tlsa_add 70 1_1_0d EXIST::FUNCTION:
|
||||||
DTLSv1_client_method 71 1_1_0d EXIST::FUNCTION:DEPRECATEDIN_1_1_0,DTLS1_METHOD
|
SSL_CIPHER_get_version 71 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_SESSION_get0_hostname 72 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_get_ex_data 72 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_SESSION_get0_id_context 73 1_1_0d EXIST::FUNCTION:
|
SSL_enable_ct 73 1_1_0d EXIST::FUNCTION:CT
|
||||||
ERR_load_SSL_strings 74 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_get_info_callback 74 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_set_default_verify_file 75 1_1_0d EXIST::FUNCTION:
|
SSL_use_certificate_ASN1 75 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_COMP_set0_compression_methods 76 1_1_0d EXIST::FUNCTION:
|
SSL_up_ref 76 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_dane_clear_flags 77 1_1_0d EXIST::FUNCTION:
|
SSL_set_verify 77 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_enable_ct 78 1_1_0d EXIST::FUNCTION:CT
|
SSL_get0_dane 78 1_1_0d EXIST::FUNCTION:
|
||||||
PEM_read_bio_SSL_SESSION 79 1_1_0d EXIST::FUNCTION:
|
SSLv3_method 79 1_1_0d EXIST::FUNCTION:DEPRECATEDIN_1_1_0,SSL3_METHOD
|
||||||
SSL_CTX_set_ex_data 80 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_get_verify_mode 80 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_use_RSAPrivateKey 81 1_1_0d EXIST::FUNCTION:RSA
|
SSL_CTX_remove_session 81 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_get_security_level 82 1_1_0d EXIST::FUNCTION:
|
SSLv3_client_method 82 1_1_0d EXIST::FUNCTION:DEPRECATEDIN_1_1_0,SSL3_METHOD
|
||||||
DTLS_server_method 83 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_set_purpose 83 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_get_client_cert_cb 84 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_get_options 84 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_SRP_CTX_init 85 1_1_0d EXIST::FUNCTION:SRP
|
SSL_set_ex_data 85 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_read 86 1_1_0d EXIST::FUNCTION:
|
SSL_SESSION_set_time 86 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_set_default_verify_paths 87 1_1_0d EXIST::FUNCTION:
|
d2i_SSL_SESSION 87 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_set_default_read_buffer_len 88 1_1_0d EXIST::FUNCTION:
|
SSL_clear_options 88 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_get_current_cipher 89 1_1_0d EXIST::FUNCTION:
|
TLSv1_method 89 1_1_0d EXIST::FUNCTION:DEPRECATEDIN_1_1_0,TLS1_METHOD
|
||||||
SSL_get_wfd 90 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_SRP_CTX_free 90 1_1_0d EXIST::FUNCTION:SRP
|
||||||
SSL_COMP_get_name 91 1_1_0d EXIST::FUNCTION:
|
SSL_get_current_cipher 91 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_set_verify_depth 92 1_1_0d EXIST::FUNCTION:
|
DTLSv1_2_client_method 92 1_1_0d EXIST::FUNCTION:DEPRECATEDIN_1_1_0,DTLS1_2_METHOD
|
||||||
SSL_dane_tlsa_add 93 1_1_0d EXIST::FUNCTION:
|
SSL_CONF_CTX_set_flags 93 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_get_security_level 94 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_callback_ctrl 94 1_1_0d EXIST::FUNCTION:
|
||||||
TLSv1_1_client_method 95 1_1_0d EXIST::FUNCTION:DEPRECATEDIN_1_1_0,TLS1_1_METHOD
|
SSL_CTX_set_msg_callback 95 1_1_0d EXIST::FUNCTION:
|
||||||
TLSv1_2_method 96 1_1_0d EXIST::FUNCTION:DEPRECATEDIN_1_1_0,TLS1_2_METHOD
|
SSL_set_client_CA_list 96 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_set_timeout 97 1_1_0d EXIST::FUNCTION:
|
SSL_ct_is_enabled 97 1_1_0d EXIST::FUNCTION:CT
|
||||||
SSL_COMP_get0_name 98 1_1_0d EXIST::FUNCTION:
|
SSL_use_PrivateKey 98 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_SESSION_up_ref 99 1_1_0d EXIST::FUNCTION:
|
SSL_get_verify_result 99 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_set_alpn_select_cb 100 1_1_0d EXIST::FUNCTION:
|
SSL_use_certificate_chain_file 100 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_SESSION_get0_peer 101 1_1_0d EXIST::FUNCTION:
|
SSL_CIPHER_get_bits 101 1_1_0d EXIST::FUNCTION:
|
||||||
SSLv3_server_method 102 1_1_0d EXIST::FUNCTION:DEPRECATEDIN_1_1_0,SSL3_METHOD
|
SSL_SESSION_get_compress_id 102 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_SESSION_get_time 103 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_add_session 103 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CONF_CTX_free 104 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_sess_set_new_cb 104 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_get_srp_g 105 1_1_0d EXIST::FUNCTION:SRP
|
SSL_CTX_set_psk_server_callback 105 1_1_0d EXIST::FUNCTION:PSK
|
||||||
SSL_in_before 106 1_1_0d EXIST::FUNCTION:
|
TLS_client_method 106 1_1_0d EXIST::FUNCTION:
|
||||||
DTLSv1_listen 107 1_1_0d EXIST::FUNCTION:SOCK
|
BIO_new_buffer_ssl_connect 107 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CONF_CTX_set_flags 108 1_1_0d EXIST::FUNCTION:
|
SSL_get_cipher_list 108 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_renegotiate_pending 109 1_1_0d EXIST::FUNCTION:
|
SSL_SESSION_get0_id_context 109 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_in_init 110 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_set_cookie_verify_cb 110 1_1_0d EXIST::FUNCTION:
|
||||||
PEM_write_SSL_SESSION 111 1_1_0d EXIST::FUNCTION:STDIO
|
SSL_shutdown 111 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_set_next_proto_select_cb 112 1_1_0d EXIST::FUNCTION:NEXTPROTONEG
|
SSL_set_session_ticket_ext_cb 112 1_1_0d EXIST::FUNCTION:
|
||||||
SRP_Calc_A_param 113 1_1_0d EXIST::FUNCTION:SRP
|
SSL_CONF_cmd 113 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_get_ex_data_X509_STORE_CTX_idx 114 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_add_client_CA 114 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_set_not_resumable_session_callback 115 1_1_0d EXIST::FUNCTION:
|
SSL_get_ssl_method 115 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_peek 116 1_1_0d EXIST::FUNCTION:
|
SSL_get_rfd 116 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CONF_CTX_set1_prefix 117 1_1_0d EXIST::FUNCTION:
|
SSL_set_srp_server_param_pw 117 1_1_0d EXIST::FUNCTION:SRP
|
||||||
GMTLS_server_method 118 1_1_0d EXIST::FUNCTION:GMTLS
|
SSL_CTX_get_client_cert_cb 118 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_set_cipher_list 119 1_1_0d EXIST::FUNCTION:
|
SSL_set_info_callback 119 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_use_PrivateKey_ASN1 120 1_1_0d EXIST::FUNCTION:
|
SSL_CIPHER_get_kx_nid 120 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_get_default_passwd_cb 121 1_1_0d EXIST::FUNCTION:
|
DTLSv1_2_server_method 121 1_1_0d EXIST::FUNCTION:DEPRECATEDIN_1_1_0,DTLS1_2_METHOD
|
||||||
SSL_CTX_set_alpn_protos 122 1_1_0d EXIST::FUNCTION:
|
SSL_renegotiate_abbreviated 122 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_use_serverinfo 123 1_1_0d EXIST::FUNCTION:
|
SSL_extension_supported 123 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_get_read_ahead 124 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_flush_sessions 124 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_use_RSAPrivateKey_ASN1 125 1_1_0d EXIST::FUNCTION:RSA
|
SSL_CTX_set_ex_data 125 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_pending 126 1_1_0d EXIST::FUNCTION:
|
BIO_new_ssl 126 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_dane_enable 127 1_1_0d EXIST::FUNCTION:
|
SSL_add_dir_cert_subjects_to_stack 127 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_get0_ctlog_store 128 1_1_0d EXIST::FUNCTION:CT
|
SSL_get0_verified_chain 128 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_get_servername_type 129 1_1_0d EXIST::FUNCTION:
|
SSL_set0_wbio 129 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_set1_param 130 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_set_srp_username_callback 130 1_1_0d EXIST::FUNCTION:SRP
|
||||||
SSL_get_servername 131 1_1_0d EXIST::FUNCTION:
|
SSL_set0_rbio 131 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_SESSION_get0_cipher 132 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_use_certificate 132 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_check_private_key 133 1_1_0d EXIST::FUNCTION:
|
SSL_copy_session_id 133 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_set_SSL_CTX 134 1_1_0d EXIST::FUNCTION:
|
SSL_rstate_string 134 1_1_0d EXIST::FUNCTION:
|
||||||
d2i_SSL_SESSION 135 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_set_srp_username 135 1_1_0d EXIST::FUNCTION:SRP
|
||||||
SSL_use_RSAPrivateKey_file 136 1_1_0d EXIST::FUNCTION:RSA
|
SSL_CTX_use_PrivateKey 136 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_set_ct_validation_callback 137 1_1_0d EXIST::FUNCTION:CT
|
SSL_CTX_set_tmp_dh_callback 137 1_1_0d EXIST::FUNCTION:DH
|
||||||
SSL_set_session_ticket_ext 138 1_1_0d EXIST::FUNCTION:
|
SSL_is_init_finished 138 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_get_verify_mode 139 1_1_0d EXIST::FUNCTION:
|
TLSv1_2_method 139 1_1_0d EXIST::FUNCTION:DEPRECATEDIN_1_1_0,TLS1_2_METHOD
|
||||||
SSL_CTX_set_ssl_version 140 1_1_0d EXIST::FUNCTION:
|
SSL_get_srtp_profiles 140 1_1_0d EXIST::FUNCTION:SRTP
|
||||||
SSL_trace 141 1_1_0d EXIST::FUNCTION:SSL_TRACE
|
SSL_CTX_ctrl 141 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_set_cookie_generate_cb 142 1_1_0d EXIST::FUNCTION:
|
SSL_set_tmp_dh_callback 142 1_1_0d EXIST::FUNCTION:DH
|
||||||
SSL_rstate_string 143 1_1_0d EXIST::FUNCTION:
|
SSL_CIPHER_get_name 143 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_config 144 1_1_0d EXIST::FUNCTION:
|
SSL_session_reused 144 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_SRP_CTX_init 145 1_1_0d EXIST::FUNCTION:SRP
|
DTLSv1_listen 145 1_1_0d EXIST::FUNCTION:SOCK
|
||||||
SSL_use_certificate_file 146 1_1_0d EXIST::FUNCTION:
|
SSL_is_server 146 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_set_srp_server_param 147 1_1_0d EXIST::FUNCTION:SRP
|
DTLSv1_2_method 147 1_1_0d EXIST::FUNCTION:DEPRECATEDIN_1_1_0,DTLS1_2_METHOD
|
||||||
SSL_CIPHER_get_name 148 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_set_cert_verify_callback 148 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_get_version 149 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_get_verify_callback 149 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_get_client_ciphers 150 1_1_0d EXIST::FUNCTION:
|
TLSv1_1_method 150 1_1_0d EXIST::FUNCTION:DEPRECATEDIN_1_1_0,TLS1_1_METHOD
|
||||||
SSL_CTX_get_info_callback 151 1_1_0d EXIST::FUNCTION:
|
SSL_set_ssl_method 151 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_set_cert_cb 152 1_1_0d EXIST::FUNCTION:
|
BIO_ssl_copy_session_id 152 1_1_0d EXIST::FUNCTION:
|
||||||
TLS_method 153 1_1_0d EXIST::FUNCTION:
|
DTLS_server_method 153 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_load_client_CA_file 154 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_sess_set_get_cb 154 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_set_srp_strength 155 1_1_0d EXIST::FUNCTION:SRP
|
SSL_use_certificate 155 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_get1_supported_ciphers 156 1_1_0d EXIST::FUNCTION:
|
SSL_set_psk_client_callback 156 1_1_0d EXIST::FUNCTION:PSK
|
||||||
SSL_test_functions 157 1_1_0d EXIST::FUNCTION:UNIT_TEST
|
SSL_set_session 157 1_1_0d EXIST::FUNCTION:
|
||||||
DTLSv1_2_server_method 158 1_1_0d EXIST::FUNCTION:DEPRECATEDIN_1_1_0,DTLS1_2_METHOD
|
SSL_get0_param 158 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_free 159 1_1_0d EXIST::FUNCTION:
|
TLSv1_client_method 159 1_1_0d EXIST::FUNCTION:DEPRECATEDIN_1_1_0,TLS1_METHOD
|
||||||
SSL_alert_type_string 160 1_1_0d EXIST::FUNCTION:
|
SSL_SESSION_get0_peer 160 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_certs_clear 161 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_set_cert_cb 161 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_set_default_passwd_cb_userdata 162 1_1_0d EXIST::FUNCTION:
|
SSL_SESSION_free 162 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_use_PrivateKey_ASN1 163 1_1_0d EXIST::FUNCTION:
|
SSL_ctrl 163 1_1_0d EXIST::FUNCTION:
|
||||||
DTLSv1_2_client_method 164 1_1_0d EXIST::FUNCTION:DEPRECATEDIN_1_1_0,DTLS1_2_METHOD
|
SSL_CTX_dane_enable 164 1_1_0d EXIST::FUNCTION:
|
||||||
TLSv1_client_method 165 1_1_0d EXIST::FUNCTION:DEPRECATEDIN_1_1_0,TLS1_METHOD
|
SSL_CTX_set_session_id_context 165 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_set_default_passwd_cb 166 1_1_0d EXIST::FUNCTION:
|
SSL_set_bio 166 1_1_0d EXIST::FUNCTION:
|
||||||
DTLSv1_method 167 1_1_0d EXIST::FUNCTION:DEPRECATEDIN_1_1_0,DTLS1_METHOD
|
SSL_state_string 167 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_state_string 168 1_1_0d EXIST::FUNCTION:
|
SSL_SESSION_get_ex_data 168 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_accept 169 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_free 169 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_sess_set_get_cb 170 1_1_0d EXIST::FUNCTION:
|
SSL_SESSION_get0_hostname 170 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_set_cert_store 171 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_set_not_resumable_session_callback 171 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_ctrl 172 1_1_0d EXIST::FUNCTION:
|
DTLSv1_server_method 172 1_1_0d EXIST::FUNCTION:DEPRECATEDIN_1_1_0,DTLS1_METHOD
|
||||||
SSL_set_tlsext_use_srtp 173 1_1_0d EXIST::FUNCTION:SRTP
|
SSL_CTX_add_server_custom_ext 173 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_get_options 174 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_set_default_verify_file 174 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_enable_ct 175 1_1_0d EXIST::FUNCTION:CT
|
SSL_free 175 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_get_finished 176 1_1_0d EXIST::FUNCTION:
|
SSL_get_error 176 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_renegotiate_abbreviated 177 1_1_0d EXIST::FUNCTION:
|
SSL_SESSION_get_time 177 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_COMP_get_id 178 1_1_0d EXIST::FUNCTION:
|
SSL_get_psk_identity 178 1_1_0d EXIST::FUNCTION:PSK
|
||||||
SSL_state_string_long 179 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_get_default_passwd_cb 179 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_SESSION_has_ticket 180 1_1_0d EXIST::FUNCTION:
|
SSL_set_session_ticket_ext 180 1_1_0d EXIST::FUNCTION:
|
||||||
OPENSSL_init_ssl 181 1_1_0d EXIST::FUNCTION:
|
TLSv1_1_client_method 181 1_1_0d EXIST::FUNCTION:DEPRECATEDIN_1_1_0,TLS1_1_METHOD
|
||||||
SSL_client_version 182 1_1_0d EXIST::FUNCTION:
|
SSL_get1_supported_ciphers 182 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_set_srp_client_pwd_callback 183 1_1_0d EXIST::FUNCTION:SRP
|
SSL_get_changed_async_fds 183 1_1_0d EXIST::FUNCTION:
|
||||||
TLSv1_1_method 184 1_1_0d EXIST::FUNCTION:DEPRECATEDIN_1_1_0,TLS1_1_METHOD
|
SSL_get_servername_type 184 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_dane_enable 185 1_1_0d EXIST::FUNCTION:
|
SSL_srp_server_param_with_username 185 1_1_0d EXIST::FUNCTION:SRP
|
||||||
SSL_CTX_add_session 186 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_set_verify 186 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_get_current_compression 187 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_new 187 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_get0_param 188 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_use_RSAPrivateKey_file 188 1_1_0d EXIST::FUNCTION:RSA
|
||||||
SSL_copy_session_id 189 1_1_0d EXIST::FUNCTION:
|
SSL_in_init 189 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_SESSION_get_master_key 190 1_1_0d EXIST::FUNCTION:
|
SSL_set_srp_server_param 190 1_1_0d EXIST::FUNCTION:SRP
|
||||||
SSL_alert_type_string_long 191 1_1_0d EXIST::FUNCTION:
|
SSL_clear 191 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_add_client_CA 192 1_1_0d EXIST::FUNCTION:
|
SSL_set_read_ahead 192 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_get0_security_ex_data 193 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_set_client_cert_engine 193 1_1_0d EXIST::FUNCTION:ENGINE
|
||||||
SSL_set_generate_session_id 194 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_set_srp_verify_param_callback 194 1_1_0d EXIST::FUNCTION:SRP
|
||||||
SSL_CTX_callback_ctrl 195 1_1_0d EXIST::FUNCTION:
|
SSL_add1_host 195 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_set_default_verify_dir 196 1_1_0d EXIST::FUNCTION:
|
SSL_get_client_CA_list 196 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_set_msg_callback 197 1_1_0d EXIST::FUNCTION:
|
SSL_get_privatekey 197 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_set_cookie_verify_cb 198 1_1_0d EXIST::FUNCTION:
|
SSL_set_trust 198 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_get1_session 199 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_dane_mtype_set 199 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_clear_options 200 1_1_0d EXIST::FUNCTION:
|
SSL_get_finished 200 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_waiting_for_async 201 1_1_0d EXIST::FUNCTION:
|
SSL_is_dtls 201 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_get_quiet_shutdown 202 1_1_0d EXIST::FUNCTION:
|
SSL_get_SSL_CTX 202 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_dup 203 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_set_srp_client_pwd_callback 203 1_1_0d EXIST::FUNCTION:SRP
|
||||||
TLSv1_2_client_method 204 1_1_0d EXIST::FUNCTION:DEPRECATEDIN_1_1_0,TLS1_2_METHOD
|
TLS_method 204 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_get_quiet_shutdown 205 1_1_0d EXIST::FUNCTION:
|
SSL_SESSION_set1_id 205 1_1_0d EXIST::FUNCTION:
|
||||||
TLSv1_2_server_method 206 1_1_0d EXIST::FUNCTION:DEPRECATEDIN_1_1_0,TLS1_2_METHOD
|
SSL_CONF_CTX_set_ssl 206 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_get_ciphers 207 1_1_0d EXIST::FUNCTION:
|
SSL_want 207 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_sess_get_remove_cb 208 1_1_0d EXIST::FUNCTION:
|
SSL_pending 208 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_get_verify_depth 209 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_get_client_CA_list 209 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_get_all_async_fds 210 1_1_0d EXIST::FUNCTION:
|
SSL_alert_desc_string 210 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_get_changed_async_fds 211 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_config 211 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_set_next_protos_advertised_cb 212 1_1_0d EXIST::FUNCTION:NEXTPROTONEG
|
SSL_get_client_ciphers 212 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_is_init_finished 213 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_set_cert_store 213 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_flush_sessions 214 1_1_0d EXIST::FUNCTION:
|
SSL_set_alpn_protos 214 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_set_ex_data 215 1_1_0d EXIST::FUNCTION:
|
DTLSv1_client_method 215 1_1_0d EXIST::FUNCTION:DEPRECATEDIN_1_1_0,DTLS1_METHOD
|
||||||
SSL_CTX_sess_get_new_cb 216 1_1_0d EXIST::FUNCTION:
|
SSL_get_ex_data_X509_STORE_CTX_idx 216 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_SESSION_free 217 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_set1_param 217 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_set_default_passwd_cb_userdata 218 1_1_0d EXIST::FUNCTION:
|
SSL_CONF_CTX_set1_prefix 218 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_set_client_cert_engine 219 1_1_0d EXIST::FUNCTION:ENGINE
|
SSL_CTX_use_certificate_ASN1 219 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CONF_cmd_argv 220 1_1_0d EXIST::FUNCTION:
|
BIO_ssl_shutdown 220 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_connect 221 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_set_ctlog_list_file 221 1_1_0d EXIST::FUNCTION:CT
|
||||||
SSL_COMP_add_compression_method 222 1_1_0d EXIST::FUNCTION:
|
SSL_SESSION_set_timeout 222 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_get0_privatekey 223 1_1_0d EXIST::FUNCTION:
|
PEM_write_bio_SSL_SESSION 223 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_set_tlsext_use_srtp 224 1_1_0d EXIST::FUNCTION:SRTP
|
SSL_get_srp_username 224 1_1_0d EXIST::FUNCTION:SRP
|
||||||
SSL_get_peer_certificate 225 1_1_0d EXIST::FUNCTION:
|
SSL_get_server_random 225 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_set_security_callback 226 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_set_default_read_buffer_len 226 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CONF_CTX_new 227 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_set_client_CA_list 227 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_set_security_callback 228 1_1_0d EXIST::FUNCTION:
|
SSL_set0_security_ex_data 228 1_1_0d EXIST::FUNCTION:
|
||||||
DTLS_method 229 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_get_verify_depth 229 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_SESSION_get_ex_data 230 1_1_0d EXIST::FUNCTION:
|
SSL_set_generate_session_id 230 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_export_keying_material 231 1_1_0d EXIST::FUNCTION:
|
SSL_set_debug 231 1_1_0d EXIST::FUNCTION:DEPRECATEDIN_1_1_0
|
||||||
SSL_get_srtp_profiles 232 1_1_0d EXIST::FUNCTION:SRTP
|
SSL_dane_enable 232 1_1_0d EXIST::FUNCTION:
|
||||||
SSLv3_method 233 1_1_0d EXIST::FUNCTION:DEPRECATEDIN_1_1_0,SSL3_METHOD
|
DTLSv1_method 233 1_1_0d EXIST::FUNCTION:DEPRECATEDIN_1_1_0,DTLS1_METHOD
|
||||||
SSL_want 234 1_1_0d EXIST::FUNCTION:
|
SSL_set_cipher_list 234 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CONF_CTX_set_ssl 235 1_1_0d EXIST::FUNCTION:
|
SSL_CONF_CTX_finish 235 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_set_tmp_dh_callback 236 1_1_0d EXIST::FUNCTION:DH
|
SSL_COMP_get0_name 236 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_use_certificate_ASN1 237 1_1_0d EXIST::FUNCTION:
|
SSL_CIPHER_get_cipher_nid 237 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_set_client_CA_list 238 1_1_0d EXIST::FUNCTION:
|
SSL_set_cert_cb 238 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_get_ssl_method 239 1_1_0d EXIST::FUNCTION:
|
SSL_COMP_get_compression_methods 239 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_set_msg_callback 240 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_use_RSAPrivateKey 240 1_1_0d EXIST::FUNCTION:RSA
|
||||||
SSL_CTX_set_session_id_context 241 1_1_0d EXIST::FUNCTION:
|
SSL_CIPHER_standard_name 241 1_1_0d EXIST::FUNCTION:SSL_TRACE
|
||||||
SSL_CIPHER_description 242 1_1_0d EXIST::FUNCTION:
|
SSL_get_wbio 242 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CIPHER_get_digest_nid 243 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_get_security_callback 243 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_get_SSL_CTX 244 1_1_0d EXIST::FUNCTION:
|
SSL_use_RSAPrivateKey_ASN1 244 1_1_0d EXIST::FUNCTION:RSA
|
||||||
SSL_SESSION_get_id 245 1_1_0d EXIST::FUNCTION:
|
BIO_f_ssl 245 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_use_psk_identity_hint 246 1_1_0d EXIST::FUNCTION:PSK
|
SSL_CTX_get_quiet_shutdown 246 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CIPHER_get_version 247 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_set_security_level 247 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CONF_CTX_finish 248 1_1_0d EXIST::FUNCTION:
|
SSL_get_srp_N 248 1_1_0d EXIST::FUNCTION:SRP
|
||||||
SSL_use_psk_identity_hint 249 1_1_0d EXIST::FUNCTION:PSK
|
SSL_dup 249 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_set_read_ahead 250 1_1_0d EXIST::FUNCTION:
|
SSL_get_fd 250 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CONF_CTX_clear_flags 251 1_1_0d EXIST::FUNCTION:
|
SSL_get_peer_cert_chain 251 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_set_bio 252 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_set_quiet_shutdown 252 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_set_options 253 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_get0_ctlog_store 253 1_1_0d EXIST::FUNCTION:CT
|
||||||
SSL_get_current_expansion 254 1_1_0d EXIST::FUNCTION:
|
SSL_CIPHER_get_auth_nid 254 1_1_0d EXIST::FUNCTION:
|
||||||
TLS_client_method 255 1_1_0d EXIST::FUNCTION:
|
SSL_accept 255 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_get_options 256 1_1_0d EXIST::FUNCTION:
|
GMTLS_client_method 256 1_1_0d EXIST::FUNCTION:GMTLS
|
||||||
SSL_CIPHER_standard_name 257 1_1_0d EXIST::FUNCTION:SSL_TRACE
|
SSL_dane_set_flags 257 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_remove_session 258 1_1_0d EXIST::FUNCTION:
|
SSL_CIPHER_get_id 258 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_get0_alpn_selected 259 1_1_0d EXIST::FUNCTION:
|
SSL_in_before 259 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_get_info_callback 260 1_1_0d EXIST::FUNCTION:
|
SSL_get_shutdown 260 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_set_info_callback 261 1_1_0d EXIST::FUNCTION:
|
SSL_set_session_id_context 261 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_set_srp_cb_arg 262 1_1_0d EXIST::FUNCTION:SRP
|
SSL_CTX_use_PrivateKey_ASN1 262 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_sess_get_get_cb 263 1_1_0d EXIST::FUNCTION:
|
SSL_set_options 263 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_set_purpose 264 1_1_0d EXIST::FUNCTION:
|
SSL_get_srp_g 264 1_1_0d EXIST::FUNCTION:SRP
|
||||||
DTLS_client_method 265 1_1_0d EXIST::FUNCTION:
|
SSL_set_not_resumable_session_callback 265 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_get0_dane_authority 266 1_1_0d EXIST::FUNCTION:
|
SSL_CONF_CTX_new 266 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_get_timeout 267 1_1_0d EXIST::FUNCTION:
|
SSL_new 267 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_get_default_passwd_cb_userdata 268 1_1_0d EXIST::FUNCTION:
|
SSL_SESSION_get_master_key 268 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_get_peer_finished 269 1_1_0d EXIST::FUNCTION:
|
SSL_peek 269 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_get_psk_identity 270 1_1_0d EXIST::FUNCTION:PSK
|
SSL_CTX_sessions 270 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_use_certificate 271 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_get_cert_store 271 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_get_client_random 272 1_1_0d EXIST::FUNCTION:
|
SSL_is_gmtls 272 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_set0_security_ex_data 273 1_1_0d EXIST::FUNCTION:
|
SSL_COMP_set0_compression_methods 273 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_get_cert_store 274 1_1_0d EXIST::FUNCTION:
|
SSL_get0_peer_scts 274 1_1_0d EXIST::FUNCTION:CT
|
||||||
SSL_CTX_set_quiet_shutdown 275 1_1_0d EXIST::FUNCTION:
|
SSL_callback_ctrl 275 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_set_session_id_context 276 1_1_0d EXIST::FUNCTION:
|
SSL_rstate_string_long 276 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_SESSION_get_protocol_version 277 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_set_default_ctlog_list_file 277 1_1_0d EXIST::FUNCTION:CT
|
||||||
SSL_get0_security_ex_data 278 1_1_0d EXIST::FUNCTION:
|
SSL_get_selected_srtp_profile 278 1_1_0d EXIST::FUNCTION:SRTP
|
||||||
SSL_get_client_CA_list 279 1_1_0d EXIST::FUNCTION:
|
SSL_SESSION_get_id 279 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_set_srp_server_param_pw 280 1_1_0d EXIST::FUNCTION:SRP
|
SSL_SESSION_print 280 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_get_ssl_method 281 1_1_0d EXIST::FUNCTION:
|
SSL_CONF_CTX_free 281 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_set_psk_client_callback 282 1_1_0d EXIST::FUNCTION:PSK
|
SSL_COMP_get_name 282 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_set_debug 283 1_1_0d EXIST::FUNCTION:DEPRECATEDIN_1_1_0
|
SSL_get_ex_data 283 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_set_cert_cb 284 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_use_psk_identity_hint 284 1_1_0d EXIST::FUNCTION:PSK
|
||||||
SSL_CTX_sess_set_new_cb 285 1_1_0d EXIST::FUNCTION:
|
SSL_config 285 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_COMP_get_compression_methods 286 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_get0_certificate 286 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_get_rbio 287 1_1_0d EXIST::FUNCTION:
|
SSL_set1_param 287 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_dane_mtype_set 288 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_set_cipher_list 288 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_get_sigalgs 289 1_1_0d EXIST::FUNCTION:
|
SSL_waiting_for_async 289 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_get_verify_depth 290 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_set_default_verify_dir 290 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_SESSION_print_fp 291 1_1_0d EXIST::FUNCTION:STDIO
|
SSL_get_options 291 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_get0_dane 292 1_1_0d EXIST::FUNCTION:
|
SSL_client_version 292 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_get0_peername 293 1_1_0d EXIST::FUNCTION:
|
TLSv1_2_client_method 293 1_1_0d EXIST::FUNCTION:DEPRECATEDIN_1_1_0,TLS1_2_METHOD
|
||||||
SSL_free 294 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_get_timeout 294 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_get_ex_data 295 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_clear_options 295 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_new 296 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_sess_get_remove_cb 296 1_1_0d EXIST::FUNCTION:
|
||||||
TLSv1_method 297 1_1_0d EXIST::FUNCTION:DEPRECATEDIN_1_1_0,TLS1_METHOD
|
SSL_SESSION_has_ticket 297 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_get_session 298 1_1_0d EXIST::FUNCTION:
|
SSL_SESSION_get_timeout 298 1_1_0d EXIST::FUNCTION:
|
||||||
BIO_f_ssl 299 1_1_0d EXIST::FUNCTION:
|
SSL_get_servername 299 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_set_psk_server_callback 300 1_1_0d EXIST::FUNCTION:PSK
|
SSL_set_SSL_CTX 300 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CIPHER_find 301 1_1_0d EXIST::FUNCTION:
|
SSL_set_security_callback 301 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_set_options 302 1_1_0d EXIST::FUNCTION:
|
SSL_connect 302 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_select_next_proto 303 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_ct_is_enabled 303 1_1_0d EXIST::FUNCTION:CT
|
||||||
SSL_CTX_sess_set_remove_cb 304 1_1_0d EXIST::FUNCTION:
|
SSL_get_ciphers 304 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_set_client_CA_list 305 1_1_0d EXIST::FUNCTION:
|
SSL_has_pending 305 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_get0_dane_tlsa 306 1_1_0d EXIST::FUNCTION:
|
SSL_renegotiate_pending 306 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_get_server_random 307 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_use_serverinfo 307 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_set1_param 308 1_1_0d EXIST::FUNCTION:
|
SSL_alert_type_string_long 308 1_1_0d EXIST::FUNCTION:
|
||||||
DTLSv1_server_method 309 1_1_0d EXIST::FUNCTION:DEPRECATEDIN_1_1_0,DTLS1_METHOD
|
SSL_use_psk_identity_hint 309 1_1_0d EXIST::FUNCTION:PSK
|
||||||
SSL_check_chain 310 1_1_0d EXIST::FUNCTION:
|
SSL_read 310 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_sessions 311 1_1_0d EXIST::FUNCTION:
|
SSL_SESSION_new 311 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CIPHER_get_id 312 1_1_0d EXIST::FUNCTION:
|
SSL_get_state 312 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_get_state 313 1_1_0d EXIST::FUNCTION:
|
SSL_SESSION_print_keylog 313 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_get_ciphers 314 1_1_0d EXIST::FUNCTION:
|
SSL_get_srp_userinfo 314 1_1_0d EXIST::FUNCTION:SRP
|
||||||
SSL_set_verify_result 315 1_1_0d EXIST::FUNCTION:
|
SSL_get1_session 315 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_get_srp_userinfo 316 1_1_0d EXIST::FUNCTION:SRP
|
SSL_CTX_set_psk_client_callback 316 1_1_0d EXIST::FUNCTION:PSK
|
||||||
SSL_set_quiet_shutdown 317 1_1_0d EXIST::FUNCTION:
|
PEM_read_SSL_SESSION 317 1_1_0d EXIST::FUNCTION:STDIO
|
||||||
SSL_CTX_add_server_custom_ext 318 1_1_0d EXIST::FUNCTION:
|
SSL_get0_security_ex_data 318 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_use_RSAPrivateKey_file 319 1_1_0d EXIST::FUNCTION:RSA
|
SSL_COMP_add_compression_method 319 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_ct_is_enabled 320 1_1_0d EXIST::FUNCTION:CT
|
SSL_write 320 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_get_security_callback 321 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_sess_set_remove_cb 321 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_get_selected_srtp_profile 322 1_1_0d EXIST::FUNCTION:SRTP
|
SSL_CONF_cmd_value_type 322 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_alert_desc_string_long 323 1_1_0d EXIST::FUNCTION:
|
SSL_use_PrivateKey_ASN1 323 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_version 324 1_1_0d EXIST::FUNCTION:
|
SSL_add_ssl_module 324 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_set_psk_server_callback 325 1_1_0d EXIST::FUNCTION:PSK
|
SSL_get_current_expansion 325 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_get_rfd 326 1_1_0d EXIST::FUNCTION:
|
SSL_get_client_random 326 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_is_gmtls 327 1_1_0d EXIST::FUNCTION:
|
SSL_use_PrivateKey_file 327 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_add_client_CA 328 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_get_security_level 328 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_set_session_secret_cb 329 1_1_0d EXIST::FUNCTION:
|
SSL_CIPHER_get_digest_nid 329 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_set_hostflags 330 1_1_0d EXIST::FUNCTION:
|
SSL_get_current_compression 330 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_set_accept_state 331 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_set_ct_validation_callback 331 1_1_0d EXIST::FUNCTION:CT
|
||||||
SSL_get_verify_result 332 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_set_info_callback 332 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_set_ssl_method 333 1_1_0d EXIST::FUNCTION:
|
SSL_get_shared_ciphers 333 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CIPHER_get_auth_nid 334 1_1_0d EXIST::FUNCTION:
|
SSL_get_wfd 334 1_1_0d EXIST::FUNCTION:
|
||||||
BIO_ssl_shutdown 335 1_1_0d EXIST::FUNCTION:
|
SSL_SRP_CTX_init 335 1_1_0d EXIST::FUNCTION:SRP
|
||||||
SSL_get_shared_ciphers 336 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_dane_clear_flags 336 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_session_reused 337 1_1_0d EXIST::FUNCTION:
|
SSL_set_default_passwd_cb_userdata 337 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_set_connect_state 338 1_1_0d EXIST::FUNCTION:
|
SSL_get_certificate 338 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_get0_next_proto_negotiated 339 1_1_0d EXIST::FUNCTION:NEXTPROTONEG
|
SSL_CTX_use_serverinfo_file 339 1_1_0d EXIST::FUNCTION:
|
||||||
GMTLS_method 340 1_1_0d EXIST::FUNCTION:GMTLS
|
SSL_set_ct_validation_callback 340 1_1_0d EXIST::FUNCTION:CT
|
||||||
SSL_get_cipher_list 341 1_1_0d EXIST::FUNCTION:
|
DTLS_method 341 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_get_srp_N 342 1_1_0d EXIST::FUNCTION:SRP
|
SSL_get_verify_depth 342 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_shutdown 343 1_1_0d EXIST::FUNCTION:
|
SRP_Calc_A_param 343 1_1_0d EXIST::FUNCTION:SRP
|
||||||
SSL_CTX_set_srp_username 344 1_1_0d EXIST::FUNCTION:SRP
|
SSL_COMP_get_id 344 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CIPHER_get_bits 345 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_set_srp_password 345 1_1_0d EXIST::FUNCTION:SRP
|
||||||
SSL_CTX_use_serverinfo_file 346 1_1_0d EXIST::FUNCTION:
|
SSL_get0_dane_tlsa 346 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CONF_cmd 347 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_set_tlsext_use_srtp 347 1_1_0d EXIST::FUNCTION:SRTP
|
||||||
SSL_CTX_use_certificate_chain_file 348 1_1_0d EXIST::FUNCTION:
|
SSL_get_security_level 348 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_up_ref 349 1_1_0d EXIST::FUNCTION:
|
SSL_load_client_CA_file 349 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CIPHER_get_kx_nid 350 1_1_0d EXIST::FUNCTION:
|
SSL_dup_CA_list 350 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_use_PrivateKey 351 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_set_alpn_select_cb 351 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_dane_set_flags 352 1_1_0d EXIST::FUNCTION:
|
SSL_get_default_passwd_cb_userdata 352 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_set_not_resumable_session_callback 353 1_1_0d EXIST::FUNCTION:
|
SSL_get_read_ahead 353 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_set_info_callback 354 1_1_0d EXIST::FUNCTION:
|
SSL_set_default_passwd_cb 354 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_set_default_read_buffer_len 355 1_1_0d EXIST::FUNCTION:
|
SSL_SESSION_set1_id_context 355 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_set_psk_client_callback 356 1_1_0d EXIST::FUNCTION:PSK
|
SSL_get_peer_finished 356 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_get_security_callback 357 1_1_0d EXIST::FUNCTION:
|
SSL_set_security_level 357 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_SESSION_set_ex_data 358 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_use_certificate_file 358 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_dane_set_flags 359 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_get0_param 359 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_alert_desc_string 360 1_1_0d EXIST::FUNCTION:
|
SSL_get_default_timeout 360 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_SESSION_get0_ticket 361 1_1_0d EXIST::FUNCTION:
|
SSL_set1_host 361 1_1_0d EXIST::FUNCTION:
|
||||||
BIO_new_ssl 362 1_1_0d EXIST::FUNCTION:
|
SSL_set_msg_callback 362 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_get0_param 363 1_1_0d EXIST::FUNCTION:
|
SSL_CONF_cmd_argv 363 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_get_client_CA_list 364 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_set_default_verify_paths 364 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_set_verify 365 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_set_next_protos_advertised_cb 365 1_1_0d EXIST::FUNCTION:NEXTPROTONEG
|
||||||
SSL_set_ct_validation_callback 366 1_1_0d EXIST::FUNCTION:CT
|
SSL_get0_alpn_selected 366 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_load_verify_locations 367 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_get_ciphers 367 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_set_srp_username_callback 368 1_1_0d EXIST::FUNCTION:SRP
|
SSL_CTX_get0_security_ex_data 368 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_set_session 369 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_add_client_custom_ext 369 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_set_wfd 370 1_1_0d EXIST::FUNCTION:SOCK
|
SSL_SRP_CTX_free 370 1_1_0d EXIST::FUNCTION:SRP
|
||||||
SSL_get_error 371 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_set_next_proto_select_cb 371 1_1_0d EXIST::FUNCTION:NEXTPROTONEG
|
||||||
SSL_use_RSAPrivateKey_ASN1 372 1_1_0d EXIST::FUNCTION:RSA
|
SSL_get_shared_sigalgs 372 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_SESSION_new 373 1_1_0d EXIST::FUNCTION:
|
TLSv1_2_server_method 373 1_1_0d EXIST::FUNCTION:DEPRECATEDIN_1_1_0,TLS1_2_METHOD
|
||||||
SSL_CTX_set_tmp_dh_callback 374 1_1_0d EXIST::FUNCTION:DH
|
SSL_get_default_passwd_cb 374 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_get_verify_callback 375 1_1_0d EXIST::FUNCTION:
|
SSL_check_chain 375 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_set_client_cert_cb 376 1_1_0d EXIST::FUNCTION:
|
SSL_use_certificate_file 376 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_add_dir_cert_subjects_to_stack 377 1_1_0d EXIST::FUNCTION:
|
SSL_get_session 377 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_add_file_cert_subjects_to_stack 378 1_1_0d EXIST::FUNCTION:
|
SSL_set_hostflags 378 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_SESSION_print_keylog 379 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_sess_get_get_cb 379 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_add_client_custom_ext 380 1_1_0d EXIST::FUNCTION:
|
SSL_set_rfd 380 1_1_0d EXIST::FUNCTION:SOCK
|
||||||
SSL_CTX_set_srp_password 381 1_1_0d EXIST::FUNCTION:SRP
|
SSL_CTX_get_ssl_method 381 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_SESSION_set1_id_context 382 1_1_0d EXIST::FUNCTION:
|
SSL_set_tlsext_use_srtp 382 1_1_0d EXIST::FUNCTION:SRTP
|
||||||
SSL_srp_server_param_with_username 383 1_1_0d EXIST::FUNCTION:SRP
|
SSL_SESSION_get0_cipher 383 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_dup_CA_list 384 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_set_trust 384 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_SESSION_get_timeout 385 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_get0_privatekey 385 1_1_0d EXIST::FUNCTION:
|
||||||
i2d_SSL_SESSION 386 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_set_security_callback 386 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CONF_CTX_set_ssl_ctx 387 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_set_default_passwd_cb 387 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_get_default_timeout 388 1_1_0d EXIST::FUNCTION:
|
SSL_use_RSAPrivateKey 388 1_1_0d EXIST::FUNCTION:RSA
|
||||||
TLSv1_1_server_method 389 1_1_0d EXIST::FUNCTION:DEPRECATEDIN_1_1_0,TLS1_1_METHOD
|
PEM_write_SSL_SESSION 389 1_1_0d EXIST::FUNCTION:STDIO
|
||||||
BIO_new_buffer_ssl_connect 390 1_1_0d EXIST::FUNCTION:
|
SSL_get0_next_proto_negotiated 390 1_1_0d EXIST::FUNCTION:NEXTPROTONEG
|
||||||
SSL_CTX_has_client_custom_ext 391 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_get_default_passwd_cb_userdata 391 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_get_privatekey 392 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_enable_ct 392 1_1_0d EXIST::FUNCTION:CT
|
||||||
SSL_get_default_passwd_cb_userdata 393 1_1_0d EXIST::FUNCTION:
|
SSL_set_psk_server_callback 393 1_1_0d EXIST::FUNCTION:PSK
|
||||||
SSL_CTX_use_PrivateKey_file 394 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_sess_get_new_cb 394 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_set_shutdown 395 1_1_0d EXIST::FUNCTION:
|
SSL_set_verify_depth 395 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_add1_host 396 1_1_0d EXIST::FUNCTION:
|
SSL_get_quiet_shutdown 396 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_get0_certificate 397 1_1_0d EXIST::FUNCTION:
|
SSL_do_handshake 397 1_1_0d EXIST::FUNCTION:
|
||||||
TLS_server_method 398 1_1_0d EXIST::FUNCTION:
|
SSLv3_server_method 398 1_1_0d EXIST::FUNCTION:DEPRECATEDIN_1_1_0,SSL3_METHOD
|
||||||
BIO_new_ssl_connect 399 1_1_0d EXIST::FUNCTION:
|
SSL_version 399 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CIPHER_is_aead 400 1_1_0d EXIST::FUNCTION:
|
GMTLS_server_method 400 1_1_0d EXIST::FUNCTION:GMTLS
|
||||||
SSL_SESSION_print 401 1_1_0d EXIST::FUNCTION:
|
SSL_test_functions 401 1_1_0d EXIST::FUNCTION:UNIT_TEST
|
||||||
SSL_CTX_set_cipher_list 402 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_set_srp_cb_arg 402 1_1_0d EXIST::FUNCTION:SRP
|
||||||
SSL_CTX_use_certificate_file 403 1_1_0d EXIST::FUNCTION:
|
SSL_SESSION_print_fp 403 1_1_0d EXIST::FUNCTION:STDIO
|
||||||
SSL_SESSION_set1_id 404 1_1_0d EXIST::FUNCTION:
|
SSL_CTX_load_verify_locations 404 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_set_cert_verify_callback 405 1_1_0d EXIST::FUNCTION:
|
SSL_get_security_callback 405 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_get_fd 406 1_1_0d EXIST::FUNCTION:
|
SSL_get_psk_identity_hint 406 1_1_0d EXIST::FUNCTION:PSK
|
||||||
SSL_use_RSAPrivateKey 407 1_1_0d EXIST::FUNCTION:RSA
|
SSL_CTX_set_alpn_protos 407 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_CTX_use_certificate_ASN1 408 1_1_0d EXIST::FUNCTION:
|
SSL_CIPHER_description 408 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_get0_verified_chain 409 1_1_0d EXIST::FUNCTION:
|
SSL_set_verify_result 409 1_1_0d EXIST::FUNCTION:
|
||||||
SSL_up_ref 410 1_1_0d EXIST::FUNCTION:
|
SSL_renegotiate 410 1_1_0d EXIST::FUNCTION:
|
||||||
TLSv1_server_method 411 1_1_0d EXIST::FUNCTION:DEPRECATEDIN_1_1_0,TLS1_METHOD
|
TLSv1_server_method 411 1_1_0d EXIST::FUNCTION:DEPRECATEDIN_1_1_0,TLS1_METHOD
|
||||||
|
|||||||
Reference in New Issue
Block a user