Latest update.
This commit is contained in:
@@ -212,7 +212,7 @@ static int cipher_cleanup(EVP_CIPHER_CTX *ctx)
|
||||
struct cipher_ctx *cipher_ctx =
|
||||
(struct cipher_ctx *)EVP_CIPHER_CTX_get_cipher_data(ctx);
|
||||
|
||||
if (ioctl(cipher_ctx->cfd, CIOCFSESSION, &cipher_ctx->sess) < 0) {
|
||||
if (ioctl(cipher_ctx->cfd, CIOCFSESSION, &cipher_ctx->sess.ses) < 0) {
|
||||
SYSerr(SYS_F_IOCTL, errno);
|
||||
return 0;
|
||||
}
|
||||
@@ -255,7 +255,7 @@ static void prepare_cipher_methods()
|
||||
sess.cipher = cipher_data[i].devcryptoid;
|
||||
sess.keylen = cipher_data[i].keylen;
|
||||
if (ioctl(cfd, CIOCGSESSION, &sess) < 0
|
||||
|| ioctl(cfd, CIOCFSESSION, &sess) < 0)
|
||||
|| ioctl(cfd, CIOCFSESSION, &sess.ses) < 0)
|
||||
continue;
|
||||
|
||||
if ((known_cipher_methods[i] =
|
||||
@@ -472,7 +472,7 @@ static int digest_final(EVP_MD_CTX *ctx, unsigned char *md)
|
||||
SYSerr(SYS_F_IOCTL, errno);
|
||||
return 0;
|
||||
}
|
||||
if (ioctl(digest_ctx->cfd, CIOCFSESSION, &digest_ctx->sess) < 0) {
|
||||
if (ioctl(digest_ctx->cfd, CIOCFSESSION, &digest_ctx->sess.ses) < 0) {
|
||||
SYSerr(SYS_F_IOCTL, errno);
|
||||
return 0;
|
||||
}
|
||||
@@ -522,7 +522,7 @@ static void prepare_digest_methods()
|
||||
*/
|
||||
sess.mac = digest_data[i].devcryptoid;
|
||||
if (ioctl(cfd, CIOCGSESSION, &sess) < 0
|
||||
|| ioctl(cfd, CIOCFSESSION, &sess) < 0)
|
||||
|| ioctl(cfd, CIOCFSESSION, &sess.ses) < 0)
|
||||
continue;
|
||||
|
||||
if ((known_digest_methods[i] = EVP_MD_meth_new(digest_data[i].nid,
|
||||
|
||||
@@ -261,6 +261,7 @@ void openssl_add_all_ciphers_int(void)
|
||||
EVP_add_cipher(EVP_chacha20());
|
||||
# ifndef OPENSSL_NO_POLY1305
|
||||
EVP_add_cipher(EVP_chacha20_poly1305());
|
||||
EVP_add_cipher(EVP_chacha20_poly1305_draft());
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
@@ -154,6 +154,7 @@ typedef struct {
|
||||
struct { uint64_t aad, text; } len;
|
||||
int aad, mac_inited, tag_len, nonce_len;
|
||||
size_t tls_payload_length;
|
||||
unsigned char draft:1;
|
||||
} EVP_CHACHA_AEAD_CTX;
|
||||
|
||||
# define NO_TLS_PAYLOAD_LENGTH ((size_t)-1)
|
||||
@@ -174,6 +175,7 @@ static int chacha20_poly1305_init_key(EVP_CIPHER_CTX *ctx,
|
||||
actx->aad = 0;
|
||||
actx->mac_inited = 0;
|
||||
actx->tls_payload_length = NO_TLS_PAYLOAD_LENGTH;
|
||||
actx->draft = 0;
|
||||
|
||||
if (iv != NULL) {
|
||||
unsigned char temp[CHACHA_CTR_SIZE] = { 0 };
|
||||
@@ -195,6 +197,27 @@ static int chacha20_poly1305_init_key(EVP_CIPHER_CTX *ctx,
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int chacha20_poly1305_draft_init_key(EVP_CIPHER_CTX *ctx,
|
||||
const unsigned char *inkey,
|
||||
const unsigned char *iv, int enc)
|
||||
{
|
||||
EVP_CHACHA_AEAD_CTX *actx = aead_data(ctx);
|
||||
|
||||
if (!inkey)
|
||||
return 1;
|
||||
|
||||
actx->len.aad = 0;
|
||||
actx->len.text = 0;
|
||||
actx->aad = 0;
|
||||
actx->mac_inited = 0;
|
||||
actx->tls_payload_length = NO_TLS_PAYLOAD_LENGTH;
|
||||
actx->draft = 1;
|
||||
|
||||
chacha_init_key(ctx, inkey, NULL, enc);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
# if !defined(OPENSSL_SMALL_FOOTPRINT)
|
||||
|
||||
# if defined(POLY1305_ASM) && (defined(__x86_64) || defined(__x86_64__) || \
|
||||
@@ -365,10 +388,11 @@ static int chacha20_poly1305_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
|
||||
{
|
||||
EVP_CHACHA_AEAD_CTX *actx = aead_data(ctx);
|
||||
size_t rem, plen = actx->tls_payload_length;
|
||||
uint64_t thirteen = EVP_AEAD_TLS1_AAD_LEN;
|
||||
|
||||
if (!actx->mac_inited) {
|
||||
# if !defined(OPENSSL_SMALL_FOOTPRINT)
|
||||
if (plen != NO_TLS_PAYLOAD_LENGTH && out != NULL)
|
||||
if (plen != NO_TLS_PAYLOAD_LENGTH && out != NULL && !actx->draft)
|
||||
return chacha20_poly1305_tls_cipher(ctx, out, in, len);
|
||||
# endif
|
||||
actx->key.counter[0] = 0;
|
||||
@@ -395,9 +419,14 @@ static int chacha20_poly1305_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
|
||||
return len;
|
||||
} else { /* plain- or ciphertext */
|
||||
if (actx->aad) { /* wrap up aad */
|
||||
if ((rem = (size_t)actx->len.aad % POLY1305_BLOCK_SIZE))
|
||||
Poly1305_Update(POLY1305_ctx(actx), zero,
|
||||
POLY1305_BLOCK_SIZE - rem);
|
||||
if (actx->draft) {
|
||||
thirteen = actx->len.aad;
|
||||
Poly1305_Update(POLY1305_ctx(actx), (const unsigned char *)&thirteen, sizeof(thirteen));
|
||||
} else {
|
||||
if ((rem = (size_t)actx->len.aad % POLY1305_BLOCK_SIZE))
|
||||
Poly1305_Update(POLY1305_ctx(actx), zero,
|
||||
POLY1305_BLOCK_SIZE - rem);
|
||||
}
|
||||
actx->aad = 0;
|
||||
}
|
||||
|
||||
@@ -430,40 +459,52 @@ static int chacha20_poly1305_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
|
||||
} is_endian = { 1 };
|
||||
unsigned char temp[POLY1305_BLOCK_SIZE];
|
||||
|
||||
if (actx->draft) {
|
||||
thirteen = actx->len.text;
|
||||
Poly1305_Update(POLY1305_ctx(actx), (const unsigned char *)&thirteen, sizeof(thirteen));
|
||||
}
|
||||
|
||||
if (actx->aad) { /* wrap up aad */
|
||||
if ((rem = (size_t)actx->len.aad % POLY1305_BLOCK_SIZE))
|
||||
Poly1305_Update(POLY1305_ctx(actx), zero,
|
||||
POLY1305_BLOCK_SIZE - rem);
|
||||
if (actx->draft) {
|
||||
thirteen = actx->len.aad;
|
||||
Poly1305_Update(POLY1305_ctx(actx), (const unsigned char *)&thirteen, sizeof(thirteen));
|
||||
} else {
|
||||
if ((rem = (size_t)actx->len.aad % POLY1305_BLOCK_SIZE))
|
||||
Poly1305_Update(POLY1305_ctx(actx), zero,
|
||||
POLY1305_BLOCK_SIZE - rem);
|
||||
}
|
||||
actx->aad = 0;
|
||||
}
|
||||
|
||||
if ((rem = (size_t)actx->len.text % POLY1305_BLOCK_SIZE))
|
||||
Poly1305_Update(POLY1305_ctx(actx), zero,
|
||||
POLY1305_BLOCK_SIZE - rem);
|
||||
if (!actx->draft) {
|
||||
if ((rem = (size_t)actx->len.text % POLY1305_BLOCK_SIZE))
|
||||
Poly1305_Update(POLY1305_ctx(actx), zero,
|
||||
POLY1305_BLOCK_SIZE - rem);
|
||||
|
||||
if (is_endian.little) {
|
||||
Poly1305_Update(POLY1305_ctx(actx),
|
||||
(unsigned char *)&actx->len, POLY1305_BLOCK_SIZE);
|
||||
} else {
|
||||
temp[0] = (unsigned char)(actx->len.aad);
|
||||
temp[1] = (unsigned char)(actx->len.aad>>8);
|
||||
temp[2] = (unsigned char)(actx->len.aad>>16);
|
||||
temp[3] = (unsigned char)(actx->len.aad>>24);
|
||||
temp[4] = (unsigned char)(actx->len.aad>>32);
|
||||
temp[5] = (unsigned char)(actx->len.aad>>40);
|
||||
temp[6] = (unsigned char)(actx->len.aad>>48);
|
||||
temp[7] = (unsigned char)(actx->len.aad>>56);
|
||||
if (is_endian.little) {
|
||||
Poly1305_Update(POLY1305_ctx(actx),
|
||||
(unsigned char *)&actx->len, POLY1305_BLOCK_SIZE);
|
||||
} else {
|
||||
temp[0] = (unsigned char)(actx->len.aad);
|
||||
temp[1] = (unsigned char)(actx->len.aad>>8);
|
||||
temp[2] = (unsigned char)(actx->len.aad>>16);
|
||||
temp[3] = (unsigned char)(actx->len.aad>>24);
|
||||
temp[4] = (unsigned char)(actx->len.aad>>32);
|
||||
temp[5] = (unsigned char)(actx->len.aad>>40);
|
||||
temp[6] = (unsigned char)(actx->len.aad>>48);
|
||||
temp[7] = (unsigned char)(actx->len.aad>>56);
|
||||
|
||||
temp[8] = (unsigned char)(actx->len.text);
|
||||
temp[9] = (unsigned char)(actx->len.text>>8);
|
||||
temp[10] = (unsigned char)(actx->len.text>>16);
|
||||
temp[11] = (unsigned char)(actx->len.text>>24);
|
||||
temp[12] = (unsigned char)(actx->len.text>>32);
|
||||
temp[13] = (unsigned char)(actx->len.text>>40);
|
||||
temp[14] = (unsigned char)(actx->len.text>>48);
|
||||
temp[15] = (unsigned char)(actx->len.text>>56);
|
||||
temp[8] = (unsigned char)(actx->len.text);
|
||||
temp[9] = (unsigned char)(actx->len.text>>8);
|
||||
temp[10] = (unsigned char)(actx->len.text>>16);
|
||||
temp[11] = (unsigned char)(actx->len.text>>24);
|
||||
temp[12] = (unsigned char)(actx->len.text>>32);
|
||||
temp[13] = (unsigned char)(actx->len.text>>40);
|
||||
temp[14] = (unsigned char)(actx->len.text>>48);
|
||||
temp[15] = (unsigned char)(actx->len.text>>56);
|
||||
|
||||
Poly1305_Update(POLY1305_ctx(actx), temp, POLY1305_BLOCK_SIZE);
|
||||
Poly1305_Update(POLY1305_ctx(actx), temp, POLY1305_BLOCK_SIZE);
|
||||
}
|
||||
}
|
||||
Poly1305_Final(POLY1305_ctx(actx), ctx->encrypt ? actx->tag
|
||||
: temp);
|
||||
@@ -533,12 +574,14 @@ static int chacha20_poly1305_ctrl(EVP_CIPHER_CTX *ctx, int type, int arg,
|
||||
return 1;
|
||||
|
||||
case EVP_CTRL_AEAD_SET_IVLEN:
|
||||
if (actx->draft) return -1;
|
||||
if (arg <= 0 || arg > CHACHA_CTR_SIZE)
|
||||
return 0;
|
||||
actx->nonce_len = arg;
|
||||
return 1;
|
||||
|
||||
case EVP_CTRL_AEAD_SET_IV_FIXED:
|
||||
if (actx->draft) return -1;
|
||||
if (arg != 12)
|
||||
return 0;
|
||||
actx->nonce[0] = actx->key.counter[1]
|
||||
@@ -622,9 +665,32 @@ static EVP_CIPHER chacha20_poly1305 = {
|
||||
NULL /* app_data */
|
||||
};
|
||||
|
||||
static EVP_CIPHER chacha20_poly1305_draft = {
|
||||
NID_chacha20_poly1305_draft,
|
||||
1, /* block_size */
|
||||
CHACHA_KEY_SIZE, /* key_len */
|
||||
0, /* iv_len, none */
|
||||
EVP_CIPH_FLAG_AEAD_CIPHER | EVP_CIPH_CUSTOM_IV |
|
||||
EVP_CIPH_ALWAYS_CALL_INIT | EVP_CIPH_CTRL_INIT |
|
||||
EVP_CIPH_CUSTOM_COPY | EVP_CIPH_FLAG_CUSTOM_CIPHER,
|
||||
chacha20_poly1305_draft_init_key,
|
||||
chacha20_poly1305_cipher,
|
||||
chacha20_poly1305_cleanup,
|
||||
0, /* 0 moves context-specific structure allocation to ctrl */
|
||||
NULL, /* set_asn1_parameters */
|
||||
NULL, /* get_asn1_parameters */
|
||||
chacha20_poly1305_ctrl,
|
||||
NULL /* app_data */
|
||||
};
|
||||
|
||||
const EVP_CIPHER *EVP_chacha20_poly1305(void)
|
||||
{
|
||||
return(&chacha20_poly1305);
|
||||
}
|
||||
|
||||
const EVP_CIPHER *EVP_chacha20_poly1305_draft(void)
|
||||
{
|
||||
return(&chacha20_poly1305_draft);
|
||||
}
|
||||
# endif
|
||||
#endif
|
||||
+23
-27
@@ -20,12 +20,8 @@
|
||||
|
||||
#include <string.h>
|
||||
|
||||
/* e_os.h includes unistd.h, which defines _POSIX_VERSION */
|
||||
#if !defined(OPENSSL_NO_SECURE_MEMORY) && defined(OPENSSL_SYS_UNIX) \
|
||||
&& ( (defined(_POSIX_VERSION) && _POSIX_VERSION >= 200112L) \
|
||||
|| defined(__sun) || defined(__hpux) || defined(__sgi) \
|
||||
|| defined(__osf__) )
|
||||
# define IMPLEMENTED
|
||||
/* e_os.h defines OPENSSL_SECURE_MEMORY if secure memory can be implemented */
|
||||
#ifdef OPENSSL_SECURE_MEMORY
|
||||
# include <stdlib.h>
|
||||
# include <assert.h>
|
||||
# include <unistd.h>
|
||||
@@ -51,7 +47,7 @@
|
||||
# define MAP_ANON MAP_ANONYMOUS
|
||||
#endif
|
||||
|
||||
#ifdef IMPLEMENTED
|
||||
#ifdef OPENSSL_SECURE_MEMORY
|
||||
static size_t secure_mem_used;
|
||||
|
||||
static int secure_mem_initialized;
|
||||
@@ -71,7 +67,7 @@ static int sh_allocated(const char *ptr);
|
||||
|
||||
int CRYPTO_secure_malloc_init(size_t size, int minsize)
|
||||
{
|
||||
#ifdef IMPLEMENTED
|
||||
#ifdef OPENSSL_SECURE_MEMORY
|
||||
int ret = 0;
|
||||
|
||||
if (!secure_mem_initialized) {
|
||||
@@ -89,12 +85,12 @@ int CRYPTO_secure_malloc_init(size_t size, int minsize)
|
||||
return ret;
|
||||
#else
|
||||
return 0;
|
||||
#endif /* IMPLEMENTED */
|
||||
#endif /* OPENSSL_SECURE_MEMORY */
|
||||
}
|
||||
|
||||
int CRYPTO_secure_malloc_done(void)
|
||||
{
|
||||
#ifdef IMPLEMENTED
|
||||
#ifdef OPENSSL_SECURE_MEMORY
|
||||
if (secure_mem_used == 0) {
|
||||
sh_done();
|
||||
secure_mem_initialized = 0;
|
||||
@@ -102,22 +98,22 @@ int CRYPTO_secure_malloc_done(void)
|
||||
sec_malloc_lock = NULL;
|
||||
return 1;
|
||||
}
|
||||
#endif /* IMPLEMENTED */
|
||||
#endif /* OPENSSL_SECURE_MEMORY */
|
||||
return 0;
|
||||
}
|
||||
|
||||
int CRYPTO_secure_malloc_initialized(void)
|
||||
{
|
||||
#ifdef IMPLEMENTED
|
||||
#ifdef OPENSSL_SECURE_MEMORY
|
||||
return secure_mem_initialized;
|
||||
#else
|
||||
return 0;
|
||||
#endif /* IMPLEMENTED */
|
||||
#endif /* OPENSSL_SECURE_MEMORY */
|
||||
}
|
||||
|
||||
void *CRYPTO_secure_malloc(size_t num, const char *file, int line)
|
||||
{
|
||||
#ifdef IMPLEMENTED
|
||||
#ifdef OPENSSL_SECURE_MEMORY
|
||||
void *ret;
|
||||
size_t actual_size;
|
||||
|
||||
@@ -132,12 +128,12 @@ void *CRYPTO_secure_malloc(size_t num, const char *file, int line)
|
||||
return ret;
|
||||
#else
|
||||
return CRYPTO_malloc(num, file, line);
|
||||
#endif /* IMPLEMENTED */
|
||||
#endif /* OPENSSL_SECURE_MEMORY */
|
||||
}
|
||||
|
||||
void *CRYPTO_secure_zalloc(size_t num, const char *file, int line)
|
||||
{
|
||||
#ifdef IMPLEMENTED
|
||||
#ifdef OPENSSL_SECURE_MEMORY
|
||||
if (secure_mem_initialized)
|
||||
/* CRYPTO_secure_malloc() zeroes allocations when it is implemented */
|
||||
return CRYPTO_secure_malloc(num, file, line);
|
||||
@@ -147,7 +143,7 @@ void *CRYPTO_secure_zalloc(size_t num, const char *file, int line)
|
||||
|
||||
void CRYPTO_secure_free(void *ptr, const char *file, int line)
|
||||
{
|
||||
#ifdef IMPLEMENTED
|
||||
#ifdef OPENSSL_SECURE_MEMORY
|
||||
size_t actual_size;
|
||||
|
||||
if (ptr == NULL)
|
||||
@@ -164,13 +160,13 @@ void CRYPTO_secure_free(void *ptr, const char *file, int line)
|
||||
CRYPTO_THREAD_unlock(sec_malloc_lock);
|
||||
#else
|
||||
CRYPTO_free(ptr, file, line);
|
||||
#endif /* IMPLEMENTED */
|
||||
#endif /* OPENSSL_SECURE_MEMORY */
|
||||
}
|
||||
|
||||
void CRYPTO_secure_clear_free(void *ptr, size_t num,
|
||||
const char *file, int line)
|
||||
{
|
||||
#ifdef IMPLEMENTED
|
||||
#ifdef OPENSSL_SECURE_MEMORY
|
||||
size_t actual_size;
|
||||
|
||||
if (ptr == NULL)
|
||||
@@ -191,12 +187,12 @@ void CRYPTO_secure_clear_free(void *ptr, size_t num,
|
||||
return;
|
||||
OPENSSL_cleanse(ptr, num);
|
||||
CRYPTO_free(ptr, file, line);
|
||||
#endif /* IMPLEMENTED */
|
||||
#endif /* OPENSSL_SECURE_MEMORY */
|
||||
}
|
||||
|
||||
int CRYPTO_secure_allocated(const void *ptr)
|
||||
{
|
||||
#ifdef IMPLEMENTED
|
||||
#ifdef OPENSSL_SECURE_MEMORY
|
||||
int ret;
|
||||
|
||||
if (!secure_mem_initialized)
|
||||
@@ -207,21 +203,21 @@ int CRYPTO_secure_allocated(const void *ptr)
|
||||
return ret;
|
||||
#else
|
||||
return 0;
|
||||
#endif /* IMPLEMENTED */
|
||||
#endif /* OPENSSL_SECURE_MEMORY */
|
||||
}
|
||||
|
||||
size_t CRYPTO_secure_used(void)
|
||||
{
|
||||
#ifdef IMPLEMENTED
|
||||
#ifdef OPENSSL_SECURE_MEMORY
|
||||
return secure_mem_used;
|
||||
#else
|
||||
return 0;
|
||||
#endif /* IMPLEMENTED */
|
||||
#endif /* OPENSSL_SECURE_MEMORY */
|
||||
}
|
||||
|
||||
size_t CRYPTO_secure_actual_size(void *ptr)
|
||||
{
|
||||
#ifdef IMPLEMENTED
|
||||
#ifdef OPENSSL_SECURE_MEMORY
|
||||
size_t actual_size;
|
||||
|
||||
CRYPTO_THREAD_write_lock(sec_malloc_lock);
|
||||
@@ -239,7 +235,7 @@ size_t CRYPTO_secure_actual_size(void *ptr)
|
||||
/*
|
||||
* SECURE HEAP IMPLEMENTATION
|
||||
*/
|
||||
#ifdef IMPLEMENTED
|
||||
#ifdef OPENSSL_SECURE_MEMORY
|
||||
|
||||
|
||||
/*
|
||||
@@ -647,4 +643,4 @@ static size_t sh_actual_size(char *ptr)
|
||||
OPENSSL_assert(sh_testbit(ptr, list, sh.bittable));
|
||||
return sh.arena_size / (ONE << list);
|
||||
}
|
||||
#endif /* IMPLEMENTED */
|
||||
#endif /* OPENSSL_SECURE_MEMORY */
|
||||
@@ -1078,7 +1078,7 @@ static const unsigned char so[7762] = {
|
||||
0x2A,0x86,0x48,0x86,0xF7,0x0D,0x02,0x0D, /* [ 7753] OBJ_hmacWithSHA512_256 */
|
||||
};
|
||||
|
||||
#define NUM_NID 1195
|
||||
#define NUM_NID 1196
|
||||
static const ASN1_OBJECT nid_objs[NUM_NID] = {
|
||||
{"UNDEF", "undefined", NID_undef},
|
||||
{"rsadsi", "RSA Data Security, Inc.", NID_rsadsi, 6, &so[0]},
|
||||
@@ -2275,9 +2275,10 @@ static const ASN1_OBJECT nid_objs[NUM_NID] = {
|
||||
{"magma-mac", "magma-mac", NID_magma_mac},
|
||||
{"hmacWithSHA512-224", "hmacWithSHA512-224", NID_hmacWithSHA512_224, 8, &so[7745]},
|
||||
{"hmacWithSHA512-256", "hmacWithSHA512-256", NID_hmacWithSHA512_256, 8, &so[7753]},
|
||||
{"ChaCha20-Poly1305-D", "chacha20-poly1305-draft", NID_chacha20_poly1305_draft },
|
||||
};
|
||||
|
||||
#define NUM_SN 1186
|
||||
#define NUM_SN 1187
|
||||
static const unsigned int sn_objs[NUM_SN] = {
|
||||
364, /* "AD_DVCS" */
|
||||
419, /* "AES-128-CBC" */
|
||||
@@ -2395,6 +2396,7 @@ static const unsigned int sn_objs[NUM_SN] = {
|
||||
417, /* "CSPName" */
|
||||
1019, /* "ChaCha20" */
|
||||
1018, /* "ChaCha20-Poly1305" */
|
||||
1195, /* "chacha20-poly1305-draft" */
|
||||
367, /* "CrlID" */
|
||||
391, /* "DC" */
|
||||
31, /* "DES-CBC" */
|
||||
@@ -3467,7 +3469,7 @@ static const unsigned int sn_objs[NUM_SN] = {
|
||||
1093, /* "x509ExtAdmission" */
|
||||
};
|
||||
|
||||
#define NUM_LN 1186
|
||||
#define NUM_LN 1187
|
||||
static const unsigned int ln_objs[NUM_LN] = {
|
||||
363, /* "AD Time Stamping" */
|
||||
405, /* "ANSI X9.62" */
|
||||
@@ -3846,6 +3848,7 @@ static const unsigned int ln_objs[NUM_LN] = {
|
||||
883, /* "certificateRevocationList" */
|
||||
1019, /* "chacha20" */
|
||||
1018, /* "chacha20-poly1305" */
|
||||
1195, /* "ChaCha20-Poly1305-D" */
|
||||
54, /* "challengePassword" */
|
||||
407, /* "characteristic-two-field" */
|
||||
395, /* "clearance" */
|
||||
|
||||
@@ -1192,3 +1192,4 @@ magma_cfb 1191
|
||||
magma_mac 1192
|
||||
hmacWithSHA512_224 1193
|
||||
hmacWithSHA512_256 1194
|
||||
chacha20_poly1305_draft 1195
|
||||
@@ -1534,6 +1534,7 @@ sm-scheme 104 7 : SM4-CTR : sm4-ctr
|
||||
: AES-192-CBC-HMAC-SHA256 : aes-192-cbc-hmac-sha256
|
||||
: AES-256-CBC-HMAC-SHA256 : aes-256-cbc-hmac-sha256
|
||||
: ChaCha20-Poly1305 : chacha20-poly1305
|
||||
: ChaCha20-Poly1305-D : chacha20-poly1305-draft
|
||||
: ChaCha20 : chacha20
|
||||
|
||||
ISO-US 10046 2 1 : dhpublicnumber : X9.42 DH
|
||||
|
||||
Reference in New Issue
Block a user