Latest update (add quic)
This commit is contained in:
@@ -19,7 +19,7 @@ struct evp_pkey_asn1_method_st {
|
||||
unsigned long pkey_flags;
|
||||
char *pem_str;
|
||||
char *info;
|
||||
int (*pub_decode) (EVP_PKEY *pk, X509_PUBKEY *pub);
|
||||
int (*pub_decode) (EVP_PKEY *pk, const X509_PUBKEY *pub);
|
||||
int (*pub_encode) (X509_PUBKEY *pub, const EVP_PKEY *pk);
|
||||
int (*pub_cmp) (const EVP_PKEY *a, const EVP_PKEY *b);
|
||||
int (*pub_print) (BIO *out, const EVP_PKEY *pkey, int indent,
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2019 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 2019-2020 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -7,7 +7,15 @@
|
||||
* https://www.openssl.org/source/license.html
|
||||
*/
|
||||
|
||||
#ifndef OPENSSL_NO_CMS
|
||||
|
||||
/* internal CMS-ESS related stuff */
|
||||
|
||||
int cms_add1_signing_cert(CMS_SignerInfo *si, ESS_SIGNING_CERT *sc);
|
||||
int cms_add1_signing_cert_v2(CMS_SignerInfo *si, ESS_SIGNING_CERT_V2 *sc);
|
||||
|
||||
int cms_signerinfo_get_signing_cert_v2(CMS_SignerInfo *si,
|
||||
ESS_SIGNING_CERT_V2 **psc);
|
||||
int cms_signerinfo_get_signing_cert(CMS_SignerInfo *si,
|
||||
ESS_SIGNING_CERT **psc);
|
||||
#endif
|
||||
@@ -32,3 +32,6 @@ int dh_check_priv_key(const DH *dh, const BIGNUM *priv_key, int *ret);
|
||||
int dh_check_pairwise(DH *dh);
|
||||
|
||||
const DH_METHOD *dh_get_method(const DH *dh);
|
||||
|
||||
int dh_buf2key(DH *key, const unsigned char *buf, size_t len);
|
||||
size_t dh_key2buf(const DH *dh, unsigned char **pbuf, size_t size, int alloc);
|
||||
+1
-1
@@ -62,7 +62,7 @@ const unsigned char *ecdsa_algorithmidentifier_encoding(int md_nid, size_t *len)
|
||||
int ec_key_fromdata(EC_KEY *ecx, const OSSL_PARAM params[], int include_private);
|
||||
int ec_key_domparams_fromdata(EC_KEY *ecx, const OSSL_PARAM params[]);
|
||||
int ec_key_otherparams_fromdata(EC_KEY *ec, const OSSL_PARAM params[]);
|
||||
int ec_set_param_ecdh_cofactor_mode(EC_KEY *ec, const OSSL_PARAM *p);
|
||||
int ec_set_ecdh_cofactor_mode(EC_KEY *ec, int mode);
|
||||
|
||||
# endif /* OPENSSL_NO_EC */
|
||||
#endif
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2019 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 2019-2020 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -24,6 +24,10 @@ ESS_SIGNING_CERT_V2 *ESS_SIGNING_CERT_V2_new_init(const EVP_MD *hash_alg,
|
||||
STACK_OF(X509) *certs,
|
||||
int issuer_needed);
|
||||
|
||||
/* Returns < 0 if certificate is not found, certificate index otherwise. */
|
||||
int ess_find_cert_v2(const STACK_OF(ESS_CERT_ID_V2) *cert_ids, const X509 *cert);
|
||||
int ess_find_cert(const STACK_OF(ESS_CERT_ID) *cert_ids, X509 *cert);
|
||||
|
||||
/*-
|
||||
* IssuerSerial ::= SEQUENCE {
|
||||
* issuer GeneralNames,
|
||||
|
||||
+18
-2
@@ -518,9 +518,25 @@ const EVP_CIPHER *EVP_##cname##_ecb(void) { return &cname##_ecb; }
|
||||
* (type != EVP_PKEY_NONE && pkey.ptr != NULL) ## legacy (libcrypto only)
|
||||
* || (keymgmt != NULL && keydata != NULL) ## provider side
|
||||
*
|
||||
* The easiest way to detect a legacy key is: type != EVP_PKEY_NONE
|
||||
* The easiest way to detect a provider side key is: keymgmt != NULL
|
||||
* The easiest way to detect a legacy key is:
|
||||
*
|
||||
* keymgmt == NULL && type != EVP_PKEY_NONE
|
||||
*
|
||||
* The easiest way to detect a provider side key is:
|
||||
*
|
||||
* keymgmt != NULL
|
||||
*/
|
||||
#define evp_pkey_is_blank(pk) \
|
||||
((pk)->type == EVP_PKEY_NONE && (pk)->keymgmt == NULL)
|
||||
#define evp_pkey_is_typed(pk) \
|
||||
((pk)->type != EVP_PKEY_NONE || (pk)->keymgmt != NULL)
|
||||
#define evp_pkey_is_assigned(pk) \
|
||||
((pk)->pkey.ptr != NULL || (pk)->keydata != NULL)
|
||||
#define evp_pkey_is_legacy(pk) \
|
||||
((pk)->type != EVP_PKEY_NONE && (pk)->keymgmt == NULL)
|
||||
#define evp_pkey_is_provided(pk) \
|
||||
((pk)->keymgmt != NULL)
|
||||
|
||||
struct evp_pkey_st {
|
||||
/* == Legacy attributes == */
|
||||
int type;
|
||||
|
||||
@@ -69,6 +69,13 @@ int rsa_padding_check_PKCS1_type_2_TLS(OPENSSL_CTX *ctx, unsigned char *to,
|
||||
size_t tlen, const unsigned char *from,
|
||||
size_t flen, int client_version,
|
||||
int alt_version);
|
||||
int rsa_padding_add_PKCS1_OAEP_mgf1_with_libctx(OPENSSL_CTX *libctx,
|
||||
unsigned char *to, int tlen,
|
||||
const unsigned char *from,
|
||||
int flen,
|
||||
const unsigned char *param,
|
||||
int plen, const EVP_MD *md,
|
||||
const EVP_MD *mgf1md);
|
||||
|
||||
int rsa_validate_public(const RSA *key);
|
||||
int rsa_validate_private(const RSA *key);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2019 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 2019-2020 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -50,9 +50,13 @@ void *ossl_method_construct(OPENSSL_CTX *ctx, int operation_id,
|
||||
|
||||
void ossl_algorithm_do_all(OPENSSL_CTX *libctx, int operation_id,
|
||||
OSSL_PROVIDER *provider,
|
||||
int (*pre)(OSSL_PROVIDER *, int operation_id,
|
||||
void *data, int *result),
|
||||
void (*fn)(OSSL_PROVIDER *provider,
|
||||
const OSSL_ALGORITHM *algo,
|
||||
int no_store, void *data),
|
||||
int (*post)(OSSL_PROVIDER *, int operation_id,
|
||||
int no_store, void *data, int *result),
|
||||
void *data);
|
||||
|
||||
#endif
|
||||
@@ -241,4 +241,8 @@ char *sk_ASN1_UTF8STRING2text(STACK_OF(ASN1_UTF8STRING) *text, const char *sep,
|
||||
size_t max_len);
|
||||
char *ipaddr_to_asc(unsigned char *p, int len);
|
||||
|
||||
char *openssl_buf2hexstr_sep(const unsigned char *buf, long buflen, char sep);
|
||||
unsigned char *openssl_hexstr2buf_sep(const char *str, long *buflen,
|
||||
const char sep);
|
||||
|
||||
#endif
|
||||
+191
-97
@@ -7,6 +7,19 @@
|
||||
* https://www.openssl.org/source/license.html
|
||||
*/
|
||||
|
||||
#if defined(OPENSSL_SYS_LINUX)
|
||||
# ifndef OPENSSL_NO_KTLS
|
||||
# include <linux/version.h>
|
||||
# if LINUX_VERSION_CODE < KERNEL_VERSION(4, 13, 0)
|
||||
# define OPENSSL_NO_KTLS
|
||||
# ifndef PEDANTIC
|
||||
# warning "KTLS requires Kernel Headers >= 4.13.0"
|
||||
# warning "Skipping Compilation of KTLS"
|
||||
# endif
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifndef OPENSSL_NO_KTLS
|
||||
# ifndef HEADER_INTERNAL_KTLS
|
||||
# define HEADER_INTERNAL_KTLS
|
||||
@@ -40,12 +53,12 @@ static ossl_inline int ktls_enable(int fd)
|
||||
* provided here.
|
||||
*/
|
||||
static ossl_inline int ktls_start(int fd,
|
||||
struct tls_enable *tls_en,
|
||||
void *tls_en,
|
||||
size_t len, int is_tx)
|
||||
{
|
||||
if (is_tx)
|
||||
return setsockopt(fd, IPPROTO_TCP, TCP_TXTLS_ENABLE,
|
||||
tls_en, sizeof(*tls_en)) ? 0 : 1;
|
||||
tls_en, len) ? 0 : 1;
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
@@ -109,94 +122,57 @@ static ossl_inline ossl_ssize_t ktls_sendfile(int s, int fd, off_t off,
|
||||
# endif /* __FreeBSD__ */
|
||||
|
||||
# if defined(OPENSSL_SYS_LINUX)
|
||||
# include <linux/version.h>
|
||||
|
||||
# define K_MAJ 4
|
||||
# define K_MIN1 13
|
||||
# define K_MIN2 0
|
||||
# if LINUX_VERSION_CODE < KERNEL_VERSION(K_MAJ, K_MIN1, K_MIN2)
|
||||
|
||||
# include <linux/tls.h>
|
||||
# if LINUX_VERSION_CODE < KERNEL_VERSION(4, 17, 0)
|
||||
# define OPENSSL_NO_KTLS_RX
|
||||
# ifndef PEDANTIC
|
||||
# warning "KTLS requires Kernel Headers >= 4.13.0"
|
||||
# warning "Skipping Compilation of KTLS"
|
||||
# warning "KTLS requires Kernel Headers >= 4.17.0 for receiving"
|
||||
# warning "Skipping Compilation of KTLS receive data path"
|
||||
# endif
|
||||
# endif
|
||||
# define OPENSSL_KTLS_AES_GCM_128
|
||||
# if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 1, 0)
|
||||
# define OPENSSL_KTLS_AES_GCM_256
|
||||
# define OPENSSL_KTLS_TLS13
|
||||
# if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 2, 0)
|
||||
# define OPENSSL_KTLS_AES_CCM_128
|
||||
# endif
|
||||
# endif
|
||||
|
||||
# define TLS_TX 1
|
||||
# include <sys/sendfile.h>
|
||||
# include <netinet/tcp.h>
|
||||
# include <linux/socket.h>
|
||||
# include "openssl/ssl3.h"
|
||||
# include "openssl/tls1.h"
|
||||
# include "openssl/evp.h"
|
||||
|
||||
# ifndef SOL_TLS
|
||||
# define SOL_TLS 282
|
||||
# endif
|
||||
|
||||
# ifndef TCP_ULP
|
||||
# define TCP_ULP 31
|
||||
# endif
|
||||
|
||||
# ifndef TLS_RX
|
||||
# define TLS_RX 2
|
||||
# endif
|
||||
|
||||
# define TLS_CIPHER_AES_GCM_128 51
|
||||
# define TLS_CIPHER_AES_GCM_128_IV_SIZE 8
|
||||
# define TLS_CIPHER_AES_GCM_128_KEY_SIZE 16
|
||||
# define TLS_CIPHER_AES_GCM_128_SALT_SIZE 4
|
||||
# define TLS_CIPHER_AES_GCM_128_TAG_SIZE 16
|
||||
# define TLS_CIPHER_AES_GCM_128_REC_SEQ_SIZE 8
|
||||
|
||||
# define TLS_SET_RECORD_TYPE 1
|
||||
|
||||
struct tls_crypto_info {
|
||||
unsigned short version;
|
||||
unsigned short cipher_type;
|
||||
struct tls_crypto_info_all {
|
||||
union {
|
||||
# ifdef OPENSSL_KTLS_AES_GCM_128
|
||||
struct tls12_crypto_info_aes_gcm_128 gcm128;
|
||||
# endif
|
||||
# ifdef OPENSSL_KTLS_AES_GCM_256
|
||||
struct tls12_crypto_info_aes_gcm_256 gcm256;
|
||||
# endif
|
||||
# ifdef OPENSSL_KTLS_AES_CCM_128
|
||||
struct tls12_crypto_info_aes_ccm_128 ccm128;
|
||||
# endif
|
||||
};
|
||||
size_t tls_crypto_info_len;
|
||||
};
|
||||
|
||||
struct tls12_crypto_info_aes_gcm_128 {
|
||||
struct tls_crypto_info info;
|
||||
unsigned char iv[TLS_CIPHER_AES_GCM_128_IV_SIZE];
|
||||
unsigned char key[TLS_CIPHER_AES_GCM_128_KEY_SIZE];
|
||||
unsigned char salt[TLS_CIPHER_AES_GCM_128_SALT_SIZE];
|
||||
unsigned char rec_seq[TLS_CIPHER_AES_GCM_128_REC_SEQ_SIZE];
|
||||
};
|
||||
|
||||
/* Dummy functions here */
|
||||
static ossl_inline int ktls_enable(int fd)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static ossl_inline int ktls_start(int fd,
|
||||
struct tls12_crypto_info_aes_gcm_128
|
||||
*crypto_info, size_t len, int is_tx)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static ossl_inline int ktls_send_ctrl_message(int fd, unsigned char record_type,
|
||||
const void *data, size_t length)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
static ossl_inline int ktls_read_record(int fd, void *data, size_t length)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
static ossl_inline ossl_ssize_t ktls_sendfile(int s, int fd, off_t off, size_t size, int flags)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
# else /* KERNEL_VERSION */
|
||||
|
||||
# include <sys/sendfile.h>
|
||||
# include <netinet/tcp.h>
|
||||
# include <linux/tls.h>
|
||||
# include <linux/socket.h>
|
||||
# include "openssl/ssl3.h"
|
||||
# include "openssl/tls1.h"
|
||||
# include "openssl/evp.h"
|
||||
|
||||
# ifndef SOL_TLS
|
||||
# define SOL_TLS 282
|
||||
# endif
|
||||
|
||||
# ifndef TCP_ULP
|
||||
# define TCP_ULP 31
|
||||
# endif
|
||||
|
||||
# ifndef TLS_RX
|
||||
# define TLS_RX 2
|
||||
# endif
|
||||
|
||||
/*
|
||||
* When successful, this socket option doesn't change the behaviour of the
|
||||
* TCP socket, except changing the TCP setsockopt handler to enable the
|
||||
@@ -216,12 +192,11 @@ static ossl_inline int ktls_enable(int fd)
|
||||
* If successful, then data received using this socket will be decrypted,
|
||||
* authenticated and decapsulated using the crypto_info provided here.
|
||||
*/
|
||||
static ossl_inline int ktls_start(int fd,
|
||||
struct tls12_crypto_info_aes_gcm_128
|
||||
*crypto_info, size_t len, int is_tx)
|
||||
static ossl_inline int ktls_start(int fd, void *crypto_info,
|
||||
size_t len, int is_tx)
|
||||
{
|
||||
return setsockopt(fd, SOL_TLS, is_tx ? TLS_TX : TLS_RX,
|
||||
crypto_info, sizeof(*crypto_info)) ? 0 : 1;
|
||||
crypto_info, len) ? 0 : 1;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -270,20 +245,15 @@ static ossl_inline ossl_ssize_t ktls_sendfile(int s, int fd, off_t off, size_t s
|
||||
return sendfile(s, fd, &off, size);
|
||||
}
|
||||
|
||||
# define K_MIN1_RX 17
|
||||
# if LINUX_VERSION_CODE < KERNEL_VERSION(K_MAJ, K_MIN1_RX, K_MIN2)
|
||||
# ifdef OPENSSL_NO_KTLS_RX
|
||||
|
||||
# ifndef PEDANTIC
|
||||
# warning "KTLS requires Kernel Headers >= 4.17.0 for receiving"
|
||||
# warning "Skipping Compilation of KTLS receive data path"
|
||||
# endif
|
||||
|
||||
static ossl_inline int ktls_read_record(int fd, void *data, size_t length)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
# else
|
||||
# else /* !defined(OPENSSL_NO_KTLS_RX) */
|
||||
|
||||
/*
|
||||
* Receive a TLS record using the crypto_info provided in ktls_start.
|
||||
@@ -338,8 +308,132 @@ static ossl_inline int ktls_read_record(int fd, void *data, size_t length)
|
||||
return ret;
|
||||
}
|
||||
|
||||
# endif
|
||||
# endif
|
||||
# endif /* OPENSSL_NO_KTLS_RX */
|
||||
|
||||
/* Function to check supported ciphers in Linux */
|
||||
static ossl_inline int ktls_check_supported_cipher(const EVP_CIPHER *c,
|
||||
const EVP_CIPHER_CTX *dd)
|
||||
{
|
||||
/* check that cipher is AES_GCM_128, AES_GCM_256, AES_CCM_128 */
|
||||
switch (EVP_CIPHER_nid(c))
|
||||
{
|
||||
# ifdef OPENSSL_KTLS_AES_CCM_128
|
||||
case NID_aes_128_ccm:
|
||||
if (EVP_CIPHER_CTX_tag_length(dd) != EVP_CCM_TLS_TAG_LEN)
|
||||
return 0;
|
||||
# endif
|
||||
# endif
|
||||
# ifdef OPENSSL_KTLS_AES_GCM_128
|
||||
case NID_aes_128_gcm:
|
||||
# endif
|
||||
# ifdef OPENSSL_KTLS_AES_GCM_256
|
||||
case NID_aes_256_gcm:
|
||||
# endif
|
||||
return 1;
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
/* Function to configure kernel TLS structure */
|
||||
static ossl_inline int ktls_configure_crypto(const EVP_CIPHER *c, int tls_version,
|
||||
EVP_CIPHER_CTX *dd, void *rl_sequence,
|
||||
struct tls_crypto_info_all *crypto_info,
|
||||
unsigned char **rec_seq, unsigned char *iv,
|
||||
unsigned char *key)
|
||||
{
|
||||
unsigned char geniv[12];
|
||||
unsigned char *iiv = iv;
|
||||
|
||||
if (tls_version == TLS1_2_VERSION &&
|
||||
EVP_CIPHER_mode(c) == EVP_CIPH_GCM_MODE) {
|
||||
EVP_CIPHER_CTX_ctrl(dd, EVP_CTRL_GET_IV,
|
||||
EVP_GCM_TLS_FIXED_IV_LEN + EVP_GCM_TLS_EXPLICIT_IV_LEN,
|
||||
geniv);
|
||||
iiv = geniv;
|
||||
}
|
||||
|
||||
memset(crypto_info, 0, sizeof(*crypto_info));
|
||||
switch (EVP_CIPHER_nid(c))
|
||||
{
|
||||
# ifdef OPENSSL_KTLS_AES_GCM_128
|
||||
case NID_aes_128_gcm:
|
||||
crypto_info->gcm128.info.cipher_type = TLS_CIPHER_AES_GCM_128;
|
||||
crypto_info->gcm128.info.version = tls_version;
|
||||
crypto_info->tls_crypto_info_len = sizeof(crypto_info->gcm128);
|
||||
memcpy(crypto_info->gcm128.iv, iiv + EVP_GCM_TLS_FIXED_IV_LEN,
|
||||
TLS_CIPHER_AES_GCM_128_IV_SIZE);
|
||||
memcpy(crypto_info->gcm128.salt, iiv, TLS_CIPHER_AES_GCM_128_SALT_SIZE);
|
||||
memcpy(crypto_info->gcm128.key, key, EVP_CIPHER_key_length(c));
|
||||
memcpy(crypto_info->gcm128.rec_seq, rl_sequence,
|
||||
TLS_CIPHER_AES_GCM_128_REC_SEQ_SIZE);
|
||||
if (rec_seq != NULL)
|
||||
*rec_seq = crypto_info->gcm128.rec_seq;
|
||||
return 1;
|
||||
# endif
|
||||
# ifdef OPENSSL_KTLS_AES_GCM_256
|
||||
case NID_aes_256_gcm:
|
||||
crypto_info->gcm256.info.cipher_type = TLS_CIPHER_AES_GCM_256;
|
||||
crypto_info->gcm256.info.version = tls_version;
|
||||
crypto_info->tls_crypto_info_len = sizeof(crypto_info->gcm256);
|
||||
memcpy(crypto_info->gcm256.iv, iiv + EVP_GCM_TLS_FIXED_IV_LEN,
|
||||
TLS_CIPHER_AES_GCM_256_IV_SIZE);
|
||||
memcpy(crypto_info->gcm256.salt, iiv, TLS_CIPHER_AES_GCM_256_SALT_SIZE);
|
||||
memcpy(crypto_info->gcm256.key, key, EVP_CIPHER_key_length(c));
|
||||
memcpy(crypto_info->gcm256.rec_seq, rl_sequence,
|
||||
TLS_CIPHER_AES_GCM_256_REC_SEQ_SIZE);
|
||||
if (rec_seq != NULL)
|
||||
*rec_seq = crypto_info->gcm256.rec_seq;
|
||||
return 1;
|
||||
# endif
|
||||
# ifdef OPENSSL_KTLS_AES_CCM_128
|
||||
case NID_aes_128_ccm:
|
||||
crypto_info->ccm128.info.cipher_type = TLS_CIPHER_AES_CCM_128;
|
||||
crypto_info->ccm128.info.version = tls_version;
|
||||
crypto_info->tls_crypto_info_len = sizeof(crypto_info->ccm128);
|
||||
memcpy(crypto_info->ccm128.iv, iiv + EVP_CCM_TLS_FIXED_IV_LEN,
|
||||
TLS_CIPHER_AES_CCM_128_IV_SIZE);
|
||||
memcpy(crypto_info->ccm128.salt, iiv, TLS_CIPHER_AES_CCM_128_SALT_SIZE);
|
||||
memcpy(crypto_info->ccm128.key, key, EVP_CIPHER_key_length(c));
|
||||
memcpy(crypto_info->ccm128.rec_seq, rl_sequence,
|
||||
TLS_CIPHER_AES_CCM_128_REC_SEQ_SIZE);
|
||||
if (rec_seq != NULL)
|
||||
*rec_seq = crypto_info->ccm128.rec_seq;
|
||||
return 1;
|
||||
# endif
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
# endif /* OPENSSL_SYS_LINUX */
|
||||
# endif /* HEADER_INTERNAL_KTLS */
|
||||
#else /* defined(OPENSSL_NO_KTLS) */
|
||||
/* Dummy functions here */
|
||||
static ossl_inline int ktls_enable(int fd)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static ossl_inline int ktls_start(int fd, void *crypto_info,
|
||||
size_t len, int is_tx)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static ossl_inline int ktls_send_ctrl_message(int fd, unsigned char record_type,
|
||||
const void *data, size_t length)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
static ossl_inline int ktls_read_record(int fd, void *data, size_t length)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
static ossl_inline ossl_ssize_t ktls_sendfile(int s, int fd, off_t off, size_t size, int flags)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
#endif
|
||||
@@ -64,6 +64,7 @@ const char *ossl_provider_name(const OSSL_PROVIDER *prov);
|
||||
const DSO *ossl_provider_dso(const OSSL_PROVIDER *prov);
|
||||
const char *ossl_provider_module_name(const OSSL_PROVIDER *prov);
|
||||
const char *ossl_provider_module_path(const OSSL_PROVIDER *prov);
|
||||
void *ossl_provider_prov_ctx(const OSSL_PROVIDER *prov);
|
||||
OPENSSL_CTX *ossl_provider_library_context(const OSSL_PROVIDER *prov);
|
||||
|
||||
/* Thin wrappers around calls to the provider */
|
||||
@@ -74,6 +75,11 @@ const OSSL_ALGORITHM *ossl_provider_query_operation(const OSSL_PROVIDER *prov,
|
||||
int operation_id,
|
||||
int *no_cache);
|
||||
|
||||
/* Cache of bits to see if we already queried an operation */
|
||||
int ossl_provider_set_operation_bit(OSSL_PROVIDER *provider, size_t bitnum);
|
||||
int ossl_provider_test_operation_bit(OSSL_PROVIDER *provider, size_t bitnum,
|
||||
int *result);
|
||||
|
||||
/* Configuration */
|
||||
void ossl_provider_add_conf_module(void);
|
||||
|
||||
|
||||
@@ -662,10 +662,7 @@ int BIO_dgram_sctp_msg_waiting(BIO *b);
|
||||
# ifndef OPENSSL_NO_SOCK
|
||||
int BIO_sock_should_retry(int i);
|
||||
int BIO_sock_non_fatal_error(int error);
|
||||
int BIO_socket_wait(int fd, int for_read, time_t max_time);
|
||||
# endif
|
||||
int BIO_wait(BIO *bio, time_t max_time, unsigned int milliseconds);
|
||||
int BIO_connect_retry(BIO *bio, int timeout);
|
||||
|
||||
int BIO_fd_should_retry(int i);
|
||||
int BIO_fd_non_fatal_error(int error);
|
||||
|
||||
@@ -92,7 +92,6 @@ int ERR_load_BIO_strings(void);
|
||||
# define BIO_R_BAD_FOPEN_MODE 101
|
||||
# define BIO_R_BROKEN_PIPE 124
|
||||
# define BIO_R_CONNECT_ERROR 103
|
||||
# define BIO_R_CONNECT_TIMEOUT 147
|
||||
# define BIO_R_GETHOSTBYNAME_ADDR_IS_NOT_AF_INET 107
|
||||
# define BIO_R_GETSOCKNAME_ERROR 132
|
||||
# define BIO_R_GETSOCKNAME_TRUNCATED_ADDRESS 133
|
||||
@@ -110,8 +109,6 @@ int ERR_load_BIO_strings(void);
|
||||
# define BIO_R_NO_PORT_DEFINED 113
|
||||
# define BIO_R_NO_SUCH_FILE 128
|
||||
# define BIO_R_NULL_PARAMETER 115
|
||||
# define BIO_R_TRANSFER_ERROR 104
|
||||
# define BIO_R_TRANSFER_TIMEOUT 105
|
||||
# define BIO_R_UNABLE_TO_BIND_SOCKET 117
|
||||
# define BIO_R_UNABLE_TO_CREATE_SOCKET 118
|
||||
# define BIO_R_UNABLE_TO_KEEPALIVE 137
|
||||
|
||||
+9
-11
@@ -18,7 +18,6 @@
|
||||
# include <openssl/crmf.h>
|
||||
# include <openssl/cmperr.h>
|
||||
# include <openssl/cmp_util.h>
|
||||
# include <openssl/http.h>
|
||||
|
||||
/* explicit #includes not strictly needed since implied by the above: */
|
||||
# include <openssl/types.h>
|
||||
@@ -271,14 +270,17 @@ int OSSL_CMP_CTX_get_option(const OSSL_CMP_CTX *ctx, int opt);
|
||||
int OSSL_CMP_CTX_set_log_cb(OSSL_CMP_CTX *ctx, OSSL_CMP_log_cb_t cb);
|
||||
# define OSSL_CMP_CTX_set_log_verbosity(ctx, level) \
|
||||
OSSL_CMP_CTX_set_option(ctx, OSSL_CMP_OPT_LOG_VERBOSITY, level)
|
||||
void OSSL_CMP_CTX_print_errors(OSSL_CMP_CTX *ctx);
|
||||
void OSSL_CMP_CTX_print_errors(const OSSL_CMP_CTX *ctx);
|
||||
/* message transfer: */
|
||||
int OSSL_CMP_CTX_set1_serverPath(OSSL_CMP_CTX *ctx, const char *path);
|
||||
int OSSL_CMP_CTX_set1_server(OSSL_CMP_CTX *ctx, const char *address);
|
||||
int OSSL_CMP_CTX_set1_serverName(OSSL_CMP_CTX *ctx, const char *name);
|
||||
int OSSL_CMP_CTX_set_serverPort(OSSL_CMP_CTX *ctx, int port);
|
||||
int OSSL_CMP_CTX_set1_proxy(OSSL_CMP_CTX *ctx, const char *name);
|
||||
int OSSL_CMP_CTX_set1_no_proxy(OSSL_CMP_CTX *ctx, const char *names);
|
||||
int OSSL_CMP_CTX_set_http_cb(OSSL_CMP_CTX *ctx, OSSL_HTTP_bio_cb_t cb);
|
||||
# define OSSL_CMP_DEFAULT_PORT 80
|
||||
int OSSL_CMP_CTX_set1_proxyName(OSSL_CMP_CTX *ctx, const char *name);
|
||||
int OSSL_CMP_CTX_set_proxyPort(OSSL_CMP_CTX *ctx, int port);
|
||||
typedef BIO *(*OSSL_CMP_http_cb_t) (OSSL_CMP_CTX *ctx, BIO *hbio,
|
||||
unsigned long detail);
|
||||
int OSSL_CMP_CTX_set_http_cb(OSSL_CMP_CTX *ctx, OSSL_CMP_http_cb_t cb);
|
||||
int OSSL_CMP_CTX_set_http_cb_arg(OSSL_CMP_CTX *ctx, void *arg);
|
||||
void *OSSL_CMP_CTX_get_http_cb_arg(const OSSL_CMP_CTX *ctx);
|
||||
typedef OSSL_CMP_MSG *(*OSSL_CMP_transfer_cb_t) (OSSL_CMP_CTX *ctx,
|
||||
@@ -359,13 +361,9 @@ int i2d_OSSL_CMP_MSG_bio(BIO *bio, const OSSL_CMP_MSG *msg);
|
||||
|
||||
/* from cmp_vfy.c */
|
||||
int OSSL_CMP_validate_msg(OSSL_CMP_CTX *ctx, const OSSL_CMP_MSG *msg);
|
||||
int OSSL_CMP_validate_cert_path(OSSL_CMP_CTX *ctx,
|
||||
int OSSL_CMP_validate_cert_path(const OSSL_CMP_CTX *ctx,
|
||||
X509_STORE *trusted_store, X509 *cert);
|
||||
|
||||
/* from cmp_http.c */
|
||||
OSSL_CMP_MSG *OSSL_CMP_MSG_http_perform(OSSL_CMP_CTX *ctx,
|
||||
const OSSL_CMP_MSG *req);
|
||||
|
||||
/* from cmp_server.c */
|
||||
typedef struct ossl_cmp_srv_ctx_st OSSL_CMP_SRV_CTX;
|
||||
OSSL_CMP_MSG *OSSL_CMP_SRV_process_request(OSSL_CMP_SRV_CTX *srv_ctx,
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
|
||||
# include <openssl/macros.h>
|
||||
# include <openssl/trace.h>
|
||||
# include <openssl/x509.h>
|
||||
|
||||
# ifdef __cplusplus
|
||||
extern "C" {
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
|
||||
#ifndef OPENSSL_CMPERR_H
|
||||
# define OPENSSL_CMPERR_H
|
||||
# pragma once
|
||||
|
||||
# include <openssl/opensslconf.h>
|
||||
# include <openssl/symhacks.h>
|
||||
@@ -68,6 +69,7 @@ int ERR_load_CMP_strings(void);
|
||||
# define CMP_R_ERROR_SETTING_CERTHASH 128
|
||||
# define CMP_R_ERROR_UNEXPECTED_CERTCONF 160
|
||||
# define CMP_R_ERROR_VALIDATING_PROTECTION 140
|
||||
# define CMP_R_ERROR_VALIDATING_SIGNATURE 171
|
||||
# define CMP_R_FAILED_EXTRACTING_PUBKEY 141
|
||||
# define CMP_R_FAILURE_OBTAINING_RANDOM 110
|
||||
# define CMP_R_FAIL_INFO_OUT_OF_RANGE 129
|
||||
|
||||
@@ -109,6 +109,7 @@ int ERR_load_CMS_strings(void);
|
||||
# define CMS_F_CMS_SIGN 0
|
||||
# define CMS_F_CMS_SIGNED_DATA_INIT 0
|
||||
# define CMS_F_CMS_SIGNERINFO_CONTENT_SIGN 0
|
||||
# define CMS_F_CMS_SIGNERINFO_GET_CHAIN 0
|
||||
# define CMS_F_CMS_SIGNERINFO_SIGN 0
|
||||
# define CMS_F_CMS_SIGNERINFO_VERIFY 0
|
||||
# define CMS_F_CMS_SIGNERINFO_VERIFY_CERT 0
|
||||
@@ -118,6 +119,7 @@ int ERR_load_CMS_strings(void);
|
||||
# define CMS_F_CMS_STREAM 0
|
||||
# define CMS_F_CMS_UNCOMPRESS 0
|
||||
# define CMS_F_CMS_VERIFY 0
|
||||
# define CMS_F_ESS_CHECK_SIGNING_CERTS 0
|
||||
# define CMS_F_KEK_UNWRAP_KEY 0
|
||||
# endif
|
||||
|
||||
@@ -147,6 +149,8 @@ int ERR_load_CMS_strings(void);
|
||||
# define CMS_R_ERROR_READING_MESSAGEDIGEST_ATTRIBUTE 114
|
||||
# define CMS_R_ERROR_SETTING_KEY 115
|
||||
# define CMS_R_ERROR_SETTING_RECIPIENTINFO 116
|
||||
# define CMS_R_ESS_NO_SIGNING_CERTID_ATTRIBUTE 182
|
||||
# define CMS_R_ESS_SIGNING_CERTID_MISMATCH_ERROR 183
|
||||
# define CMS_R_INVALID_ENCRYPTED_KEY_LENGTH 117
|
||||
# define CMS_R_INVALID_KEY_ENCRYPTION_PARAMETER 176
|
||||
# define CMS_R_INVALID_KEY_LENGTH 118
|
||||
|
||||
@@ -14,11 +14,15 @@
|
||||
extern "C" {
|
||||
# endif
|
||||
|
||||
/* Well known parameter names that core passes to providers */
|
||||
#define OSSL_PROV_PARAM_CORE_VERSION "openssl-version" /* utf8_ptr */
|
||||
#define OSSL_PROV_PARAM_CORE_PROV_NAME "provider-name" /* utf8_ptr */
|
||||
#define OSSL_PROV_PARAM_CORE_MODULE_FILENAME "module-filename" /* utf8_ptr */
|
||||
|
||||
/* Well known parameter names that Providers can define */
|
||||
#define OSSL_PROV_PARAM_NAME "name" /* utf8_string */
|
||||
#define OSSL_PROV_PARAM_VERSION "version" /* utf8_string */
|
||||
#define OSSL_PROV_PARAM_BUILDINFO "buildinfo" /* utf8_string */
|
||||
#define OSSL_PROV_PARAM_MODULE_FILENAME "module-filename" /* octet_string */
|
||||
|
||||
/* Self test callback parameters */
|
||||
#define OSSL_PROV_PARAM_SELF_TEST_PHASE "st-phase" /* utf8_string */
|
||||
@@ -29,6 +33,8 @@ extern "C" {
|
||||
* Algorithm parameters
|
||||
* If "engine" or "properties" are specified, they should always be paired
|
||||
* with the algorithm type.
|
||||
* Note these are common names that are shared by many types (such as kdf, mac,
|
||||
* and pkey) e.g: see OSSL_MAC_PARAM_DIGEST below.
|
||||
*/
|
||||
#define OSSL_ALG_PARAM_DIGEST "digest" /* utf8_string */
|
||||
#define OSSL_ALG_PARAM_CIPHER "cipher" /* utf8_string */
|
||||
@@ -123,11 +129,16 @@ extern "C" {
|
||||
#define OSSL_MAC_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES /* utf8 string */
|
||||
#define OSSL_MAC_PARAM_SIZE "size" /* size_t */
|
||||
|
||||
/* Known MAC names (not a complete list) */
|
||||
/* Known MAC names */
|
||||
#define OSSL_MAC_NAME_BLAKE2BMAC "BLAKE2BMAC"
|
||||
#define OSSL_MAC_NAME_BLAKE2SMAC "BLAKE2SMAC"
|
||||
#define OSSL_MAC_NAME_CMAC "CMAC"
|
||||
#define OSSL_MAC_NAME_GMAC "GMAC"
|
||||
#define OSSL_MAC_NAME_HMAC "HMAC"
|
||||
#define OSSL_MAC_NAME_KMAC128 "KMAC128"
|
||||
#define OSSL_MAC_NAME_KMAC256 "KMAC256"
|
||||
#define OSSL_MAC_NAME_POLY1305 "POLY1305"
|
||||
#define OSSL_MAC_NAME_SIPHASH "SIPHASH"
|
||||
|
||||
/* KDF / PRF parameters */
|
||||
#define OSSL_KDF_PARAM_SECRET "secret" /* octet string */
|
||||
@@ -179,12 +190,11 @@ extern "C" {
|
||||
#define OSSL_PKEY_PARAM_DEFAULT_DIGEST "default-digest" /* utf8 string */
|
||||
#define OSSL_PKEY_PARAM_MANDATORY_DIGEST "mandatory-digest" /* utf8 string */
|
||||
#define OSSL_PKEY_PARAM_PAD_MODE "pad-mode"
|
||||
#define OSSL_PKEY_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST
|
||||
#define OSSL_PKEY_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES
|
||||
#define OSSL_PKEY_PARAM_DIGEST_SIZE "digest-size"
|
||||
#define OSSL_PKEY_PARAM_MASKGENFUNC "mgf"
|
||||
#define OSSL_PKEY_PARAM_MGF1_DIGEST "mgf1-digest"
|
||||
#define OSSL_PKEY_PARAM_MGF1_PROPERTIES "mgf1-properties"
|
||||
#define OSSL_PKEY_PARAM_TLS_ENCODED_PT "tls-encoded-pt"
|
||||
|
||||
/* Diffie-Hellman/DSA public/private key */
|
||||
#define OSSL_PKEY_PARAM_PUB_KEY "pub"
|
||||
@@ -194,13 +204,6 @@ extern "C" {
|
||||
#define OSSL_PKEY_PARAM_FFC_P "p"
|
||||
#define OSSL_PKEY_PARAM_FFC_G "g"
|
||||
#define OSSL_PKEY_PARAM_FFC_Q "q"
|
||||
#define OSSL_PKEY_PARAM_FFC_GINDEX "gindex"
|
||||
#define OSSL_PKEY_PARAM_FFC_PCOUNTER "pcounter"
|
||||
#define OSSL_PKEY_PARAM_FFC_SEED "seed"
|
||||
#define OSSL_PKEY_PARAM_FFC_COFACTOR "j"
|
||||
#define OSSL_PKEY_PARAM_FFC_H "hindex"
|
||||
#define OSSL_PKEY_PARAM_FFC_GROUP "group"
|
||||
|
||||
#define OSSL_PKEY_PARAM_FFC_GINDEX "gindex"
|
||||
#define OSSL_PKEY_PARAM_FFC_PCOUNTER "pcounter"
|
||||
#define OSSL_PKEY_PARAM_FFC_SEED "seed"
|
||||
@@ -208,8 +211,8 @@ extern "C" {
|
||||
#define OSSL_PKEY_PARAM_FFC_H "hindex"
|
||||
|
||||
/* Diffie-Hellman params */
|
||||
#define OSSL_PKEY_PARAM_FFC_GROUP "group"
|
||||
#define OSSL_PKEY_PARAM_FFC_GENERATOR "safeprime-generator"
|
||||
#define OSSL_PKEY_PARAM_DH_GROUP "group"
|
||||
#define OSSL_PKEY_PARAM_DH_GENERATOR "safeprime-generator"
|
||||
#define OSSL_PKEY_PARAM_DH_PRIV_LEN "priv_len"
|
||||
|
||||
/* Elliptic Curve Domain Parameters */
|
||||
@@ -270,6 +273,18 @@ extern "C" {
|
||||
#define OSSL_PKEY_PARAM_RSA_COEFFICIENT8 OSSL_PKEY_PARAM_RSA_COEFFICIENT"8"
|
||||
#define OSSL_PKEY_PARAM_RSA_COEFFICIENT9 OSSL_PKEY_PARAM_RSA_COEFFICIENT"9"
|
||||
|
||||
/* RSA padding modes */
|
||||
#define OSSL_PKEY_RSA_PAD_MODE_NONE "none"
|
||||
#define OSSL_PKEY_RSA_PAD_MODE_PKCSV15 "pkcs1"
|
||||
#define OSSL_PKEY_RSA_PAD_MODE_SSLV23 "sslv23"
|
||||
#define OSSL_PKEY_RSA_PAD_MODE_OAEP "oaep"
|
||||
#define OSSL_PKEY_RSA_PAD_MODE_X931 "x931"
|
||||
#define OSSL_PKEY_RSA_PAD_MODE_PSS "pss"
|
||||
|
||||
/* RSA pss padding salt length */
|
||||
#define OSSL_PKEY_RSA_PSS_SALT_LEN_DIGEST "digest"
|
||||
#define OSSL_PKEY_RSA_PSS_SALT_LEN_MAX "max"
|
||||
#define OSSL_PKEY_RSA_PSS_SALT_LEN_AUTO "auto"
|
||||
|
||||
/* Key generation parameters */
|
||||
#define OSSL_PKEY_PARAM_RSA_BITS OSSL_PKEY_PARAM_BITS
|
||||
@@ -287,7 +302,6 @@ extern "C" {
|
||||
#define OSSL_PKEY_PARAM_FFC_DIGEST_PROPS OSSL_PKEY_PARAM_PROPERTIES
|
||||
|
||||
/* Key Exchange parameters */
|
||||
|
||||
#define OSSL_EXCHANGE_PARAM_PAD "pad" /* uint */
|
||||
#define OSSL_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE "ecdh-cofactor-mode" /* int */
|
||||
#define OSSL_EXCHANGE_PARAM_KDF_TYPE "kdf-type" /* utf8_string */
|
||||
|
||||
@@ -51,6 +51,7 @@ typedef struct ossl_crmf_poposigningkey_st OSSL_CRMF_POPOSIGNINGKEY;
|
||||
typedef struct ossl_crmf_certrequest_st OSSL_CRMF_CERTREQUEST;
|
||||
typedef struct ossl_crmf_certid_st OSSL_CRMF_CERTID;
|
||||
DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_CERTID)
|
||||
DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_CERTID)
|
||||
DEFINE_OR_DECLARE_STACK_OF(OSSL_CRMF_CERTID)
|
||||
|
||||
typedef struct ossl_crmf_pkipublicationinfo_st OSSL_CRMF_PKIPUBLICATIONINFO;
|
||||
|
||||
@@ -201,7 +201,7 @@ typedef void CRYPTO_EX_new (void *parent, void *ptr, CRYPTO_EX_DATA *ad,
|
||||
typedef void CRYPTO_EX_free (void *parent, void *ptr, CRYPTO_EX_DATA *ad,
|
||||
int idx, long argl, void *argp);
|
||||
typedef int CRYPTO_EX_dup (CRYPTO_EX_DATA *to, const CRYPTO_EX_DATA *from,
|
||||
void *from_d, int idx, long argl, void *argp);
|
||||
void **from_d, int idx, long argl, void *argp);
|
||||
__owur int CRYPTO_get_ex_new_index(int class_index, long argl, void *argp,
|
||||
CRYPTO_EX_new *new_func,
|
||||
CRYPTO_EX_dup *dup_func,
|
||||
|
||||
@@ -62,6 +62,7 @@ int ERR_load_DH_strings(void);
|
||||
/*
|
||||
* DH reason codes.
|
||||
*/
|
||||
# define DH_R_BAD_FFC_PARAMETERS 127
|
||||
# define DH_R_BAD_GENERATOR 101
|
||||
# define DH_R_BN_DECODE_ERROR 109
|
||||
# define DH_R_BN_ERROR 106
|
||||
|
||||
@@ -57,6 +57,7 @@ int ERR_load_DSA_strings(void);
|
||||
/*
|
||||
* DSA reason codes.
|
||||
*/
|
||||
# define DSA_R_BAD_FFC_PARAMETERS 114
|
||||
# define DSA_R_BAD_Q_VALUE 102
|
||||
# define DSA_R_BN_DECODE_ERROR 108
|
||||
# define DSA_R_BN_ERROR 109
|
||||
|
||||
+26
-27
@@ -47,7 +47,9 @@ typedef enum {
|
||||
POINT_CONVERSION_HYBRID = 6
|
||||
} point_conversion_form_t;
|
||||
|
||||
# ifndef OPENSSL_NO_DEPRECATED_3_0
|
||||
typedef struct ec_method_st EC_METHOD;
|
||||
# endif
|
||||
typedef struct ec_group_st EC_GROUP;
|
||||
typedef struct ec_point_st EC_POINT;
|
||||
typedef struct ecpk_parameters_st ECPKPARAMETERS;
|
||||
@@ -61,33 +63,33 @@ typedef struct ec_parameters_st ECPARAMETERS;
|
||||
* optimized methods.
|
||||
* \return EC_METHOD object
|
||||
*/
|
||||
const EC_METHOD *EC_GFp_simple_method(void);
|
||||
DEPRECATEDIN_3_0(const EC_METHOD *EC_GFp_simple_method(void))
|
||||
|
||||
/** Returns GFp methods using montgomery multiplication.
|
||||
* \return EC_METHOD object
|
||||
*/
|
||||
const EC_METHOD *EC_GFp_mont_method(void);
|
||||
DEPRECATEDIN_3_0(const EC_METHOD *EC_GFp_mont_method(void))
|
||||
|
||||
/** Returns GFp methods using optimized methods for NIST recommended curves
|
||||
* \return EC_METHOD object
|
||||
*/
|
||||
const EC_METHOD *EC_GFp_nist_method(void);
|
||||
DEPRECATEDIN_3_0(const EC_METHOD *EC_GFp_nist_method(void))
|
||||
|
||||
# ifndef OPENSSL_NO_EC_NISTP_64_GCC_128
|
||||
/** Returns 64-bit optimized methods for nistp224
|
||||
* \return EC_METHOD object
|
||||
*/
|
||||
const EC_METHOD *EC_GFp_nistp224_method(void);
|
||||
DEPRECATEDIN_3_0(const EC_METHOD *EC_GFp_nistp224_method(void))
|
||||
|
||||
/** Returns 64-bit optimized methods for nistp256
|
||||
* \return EC_METHOD object
|
||||
*/
|
||||
const EC_METHOD *EC_GFp_nistp256_method(void);
|
||||
DEPRECATEDIN_3_0(const EC_METHOD *EC_GFp_nistp256_method(void))
|
||||
|
||||
/** Returns 64-bit optimized methods for nistp521
|
||||
* \return EC_METHOD object
|
||||
*/
|
||||
const EC_METHOD *EC_GFp_nistp521_method(void);
|
||||
DEPRECATEDIN_3_0(const EC_METHOD *EC_GFp_nistp521_method(void))
|
||||
# endif
|
||||
|
||||
# ifndef OPENSSL_NO_EC2M
|
||||
@@ -98,7 +100,7 @@ const EC_METHOD *EC_GFp_nistp521_method(void);
|
||||
/** Returns the basic GF2m ec method
|
||||
* \return EC_METHOD object
|
||||
*/
|
||||
const EC_METHOD *EC_GF2m_simple_method(void);
|
||||
DEPRECATEDIN_3_0(const EC_METHOD *EC_GF2m_simple_method(void))
|
||||
|
||||
# endif
|
||||
|
||||
@@ -108,20 +110,10 @@ const EC_METHOD *EC_GF2m_simple_method(void);
|
||||
|
||||
/**
|
||||
* Creates a new EC_GROUP object
|
||||
* \param libctx The associated library context or NULL for the default
|
||||
* library context
|
||||
* \param meth EC_METHOD to use
|
||||
* \return newly created EC_GROUP object or NULL in case of an error.
|
||||
*/
|
||||
EC_GROUP *EC_GROUP_new_ex(OPENSSL_CTX *libctx, const EC_METHOD *meth);
|
||||
|
||||
/**
|
||||
* Creates a new EC_GROUP object. Same as EC_GROUP_new_ex with NULL for the
|
||||
* library context.
|
||||
* \param meth EC_METHOD to use
|
||||
* \return newly created EC_GROUP object or NULL in case of an error.
|
||||
*/
|
||||
EC_GROUP *EC_GROUP_new(const EC_METHOD *meth);
|
||||
DEPRECATEDIN_3_0(EC_GROUP *EC_GROUP_new(const EC_METHOD *meth))
|
||||
|
||||
/** Frees a EC_GROUP object
|
||||
* \param group EC_GROUP object to be freed.
|
||||
@@ -151,13 +143,13 @@ EC_GROUP *EC_GROUP_dup(const EC_GROUP *src);
|
||||
* \param group EC_GROUP object
|
||||
* \return EC_METHOD used in this EC_GROUP object.
|
||||
*/
|
||||
const EC_METHOD *EC_GROUP_method_of(const EC_GROUP *group);
|
||||
DEPRECATEDIN_3_0(const EC_METHOD *EC_GROUP_method_of(const EC_GROUP *group))
|
||||
|
||||
/** Returns the field type of the EC_METHOD.
|
||||
* \param meth EC_METHOD object
|
||||
* \return NID of the underlying field type OID.
|
||||
*/
|
||||
int EC_METHOD_get_field_type(const EC_METHOD *meth);
|
||||
DEPRECATEDIN_3_0(int EC_METHOD_get_field_type(const EC_METHOD *meth))
|
||||
|
||||
/** Sets the generator and its order/cofactor of a EC_GROUP object.
|
||||
* \param group EC_GROUP object
|
||||
@@ -235,6 +227,12 @@ int EC_GROUP_get_curve_name(const EC_GROUP *group);
|
||||
*/
|
||||
const BIGNUM *EC_GROUP_get0_field(const EC_GROUP *group);
|
||||
|
||||
/** Returns the field type of the EC_GROUP.
|
||||
* \param group EC_GROUP object
|
||||
* \return NID of the underlying field type OID.
|
||||
*/
|
||||
int EC_GROUP_get_field_type(const EC_GROUP *group);
|
||||
|
||||
void EC_GROUP_set_asn1_flag(EC_GROUP *group, int flag);
|
||||
int EC_GROUP_get_asn1_flag(const EC_GROUP *group);
|
||||
|
||||
@@ -493,7 +491,7 @@ EC_POINT *EC_POINT_dup(const EC_POINT *src, const EC_GROUP *group);
|
||||
* \param point EC_POINT object
|
||||
* \return the EC_METHOD used
|
||||
*/
|
||||
const EC_METHOD *EC_POINT_method_of(const EC_POINT *point);
|
||||
DEPRECATEDIN_3_0(const EC_METHOD *EC_POINT_method_of(const EC_POINT *point))
|
||||
|
||||
/** Sets a point to infinity (neutral element)
|
||||
* \param group underlying EC_GROUP object
|
||||
@@ -761,9 +759,10 @@ int EC_POINT_is_on_curve(const EC_GROUP *group, const EC_POINT *point,
|
||||
int EC_POINT_cmp(const EC_GROUP *group, const EC_POINT *a, const EC_POINT *b,
|
||||
BN_CTX *ctx);
|
||||
|
||||
int EC_POINT_make_affine(const EC_GROUP *group, EC_POINT *point, BN_CTX *ctx);
|
||||
int EC_POINTs_make_affine(const EC_GROUP *group, size_t num,
|
||||
EC_POINT *points[], BN_CTX *ctx);
|
||||
DEPRECATEDIN_3_0(int EC_POINT_make_affine(const EC_GROUP *group,
|
||||
EC_POINT *point, BN_CTX *ctx))
|
||||
DEPRECATEDIN_3_0(int EC_POINTs_make_affine(const EC_GROUP *group, size_t num,
|
||||
EC_POINT *points[], BN_CTX *ctx))
|
||||
|
||||
/** Computes r = generator * n + sum_{i=0}^{num-1} p[i] * m[i]
|
||||
* \param group underlying EC_GROUP object
|
||||
@@ -797,13 +796,13 @@ int EC_POINT_mul(const EC_GROUP *group, EC_POINT *r, const BIGNUM *n,
|
||||
* \param ctx BN_CTX object (optional)
|
||||
* \return 1 on success and 0 if an error occurred
|
||||
*/
|
||||
int EC_GROUP_precompute_mult(EC_GROUP *group, BN_CTX *ctx);
|
||||
DEPRECATEDIN_3_0(int EC_GROUP_precompute_mult(EC_GROUP *group, BN_CTX *ctx))
|
||||
|
||||
/** Reports whether a precomputation has been done
|
||||
* \param group EC_GROUP object
|
||||
* \return 1 if a pre-computation has been done and 0 otherwise
|
||||
*/
|
||||
int EC_GROUP_have_precompute_mult(const EC_GROUP *group);
|
||||
DEPRECATEDIN_3_0(int EC_GROUP_have_precompute_mult(const EC_GROUP *group))
|
||||
|
||||
/********************************************************************/
|
||||
/* ASN1 stuff */
|
||||
@@ -991,7 +990,7 @@ void EC_KEY_set_asn1_flag(EC_KEY *eckey, int asn1_flag);
|
||||
* \param ctx BN_CTX object (optional)
|
||||
* \return 1 on success and 0 if an error occurred.
|
||||
*/
|
||||
int EC_KEY_precompute_mult(EC_KEY *key, BN_CTX *ctx);
|
||||
DEPRECATEDIN_3_0(int EC_KEY_precompute_mult(EC_KEY *key, BN_CTX *ctx))
|
||||
|
||||
/** Creates a new ec private (and optional a new public) key.
|
||||
* \param key EC_KEY object
|
||||
|
||||
@@ -113,7 +113,6 @@ struct err_state_st {
|
||||
# define ERR_LIB_PROV 57
|
||||
# define ERR_LIB_CMP 58
|
||||
# define ERR_LIB_OSSL_SERIALIZER 59
|
||||
# define ERR_LIB_HTTP 60
|
||||
|
||||
# define ERR_LIB_USER 128
|
||||
|
||||
@@ -141,7 +140,6 @@ struct err_state_st {
|
||||
# define EVPerr(f, r) ERR_raise_data(ERR_LIB_EVP, (r), NULL)
|
||||
# define FIPSerr(f, r) ERR_raise_data(ERR_LIB_FIPS, (r), NULL)
|
||||
# define HMACerr(f, r) ERR_raise_data(ERR_LIB_HMAC, (r), NULL)
|
||||
# define HTTPerr(f, r) ERR_raise_data(ERR_LIB_HTTP, (r), NULL)
|
||||
# define KDFerr(f, r) ERR_raise_data(ERR_LIB_KDF, (r), NULL)
|
||||
# define OBJerr(f, r) ERR_raise_data(ERR_LIB_OBJ, (r), NULL)
|
||||
# define OCSPerr(f, r) ERR_raise_data(ERR_LIB_OCSP, (r), NULL)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
* Generated by util/mkerr.pl DO NOT EDIT
|
||||
* Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -10,6 +10,7 @@
|
||||
|
||||
#ifndef OPENSSL_ESSERR_H
|
||||
# define OPENSSL_ESSERR_H
|
||||
# pragma once
|
||||
|
||||
# include <openssl/opensslconf.h>
|
||||
# include <openssl/symhacks.h>
|
||||
|
||||
+18
-35
@@ -26,6 +26,8 @@
|
||||
# include <openssl/evperr.h>
|
||||
# include <openssl/params.h>
|
||||
|
||||
# include <openssl/mac.h>
|
||||
|
||||
# define EVP_MAX_MD_SIZE 64/* longest known is SHA512 */
|
||||
# define EVP_MAX_KEY_LENGTH 64
|
||||
# define EVP_MAX_IV_LENGTH 16
|
||||
@@ -72,6 +74,8 @@
|
||||
# define EVP_PKEY_ED25519 NID_ED25519
|
||||
# define EVP_PKEY_X448 NID_X448
|
||||
# define EVP_PKEY_ED448 NID_ED448
|
||||
/* Special indicator that the object is uniquely provider side */
|
||||
# define EVP_PKEY_KEYMGMT -1
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
@@ -153,6 +157,7 @@ int (*EVP_MD_meth_get_ctrl(const EVP_MD *md))(EVP_MD_CTX *ctx, int cmd,
|
||||
# define EVP_MD_CTRL_DIGALGID 0x1
|
||||
# define EVP_MD_CTRL_MICALG 0x2
|
||||
# define EVP_MD_CTRL_XOF_LEN 0x3
|
||||
# define EVP_MD_CTRL_TLSTREE 0x4
|
||||
|
||||
/* Minimum Algorithm specific ctrl value */
|
||||
|
||||
@@ -382,6 +387,8 @@ int (*EVP_CIPHER_meth_get_ctrl(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX *,
|
||||
# define EVP_CTRL_PROCESS_UNPROTECTED 0x28
|
||||
/* Get the supplementary wrap cipher */
|
||||
#define EVP_CTRL_GET_WRAP_CIPHER 0x29
|
||||
/* TLSTREE key diversification */
|
||||
#define EVP_CTRL_TLSTREE 0x2A
|
||||
|
||||
/* Padding modes */
|
||||
#define EVP_PADDING_PKCS7 1
|
||||
@@ -1065,40 +1072,6 @@ void EVP_MD_do_all_provided(OPENSSL_CTX *libctx,
|
||||
void (*fn)(EVP_MD *md, void *arg),
|
||||
void *arg);
|
||||
|
||||
/* MAC stuff */
|
||||
|
||||
EVP_MAC *EVP_MAC_fetch(OPENSSL_CTX *libctx, const char *algorithm,
|
||||
const char *properties);
|
||||
int EVP_MAC_up_ref(EVP_MAC *mac);
|
||||
void EVP_MAC_free(EVP_MAC *mac);
|
||||
int EVP_MAC_number(const EVP_MAC *mac);
|
||||
int EVP_MAC_is_a(const EVP_MAC *mac, const char *name);
|
||||
const OSSL_PROVIDER *EVP_MAC_provider(const EVP_MAC *mac);
|
||||
int EVP_MAC_get_params(EVP_MAC *mac, OSSL_PARAM params[]);
|
||||
|
||||
EVP_MAC_CTX *EVP_MAC_CTX_new(EVP_MAC *mac);
|
||||
void EVP_MAC_CTX_free(EVP_MAC_CTX *ctx);
|
||||
EVP_MAC_CTX *EVP_MAC_CTX_dup(const EVP_MAC_CTX *src);
|
||||
EVP_MAC *EVP_MAC_CTX_mac(EVP_MAC_CTX *ctx);
|
||||
int EVP_MAC_CTX_get_params(EVP_MAC_CTX *ctx, OSSL_PARAM params[]);
|
||||
int EVP_MAC_CTX_set_params(EVP_MAC_CTX *ctx, const OSSL_PARAM params[]);
|
||||
|
||||
size_t EVP_MAC_size(EVP_MAC_CTX *ctx);
|
||||
int EVP_MAC_init(EVP_MAC_CTX *ctx);
|
||||
int EVP_MAC_update(EVP_MAC_CTX *ctx, const unsigned char *data, size_t datalen);
|
||||
int EVP_MAC_final(EVP_MAC_CTX *ctx,
|
||||
unsigned char *out, size_t *outl, size_t outsize);
|
||||
const OSSL_PARAM *EVP_MAC_gettable_params(const EVP_MAC *mac);
|
||||
const OSSL_PARAM *EVP_MAC_gettable_ctx_params(const EVP_MAC *mac);
|
||||
const OSSL_PARAM *EVP_MAC_settable_ctx_params(const EVP_MAC *mac);
|
||||
|
||||
void EVP_MAC_do_all_provided(OPENSSL_CTX *libctx,
|
||||
void (*fn)(EVP_MAC *mac, void *arg),
|
||||
void *arg);
|
||||
void EVP_MAC_names_do_all(const EVP_MAC *mac,
|
||||
void (*fn)(const char *name, void *data),
|
||||
void *data);
|
||||
|
||||
/* PKEY stuff */
|
||||
DEPRECATEDIN_3_0(int EVP_PKEY_decrypt_old(unsigned char *dec_key,
|
||||
const unsigned char *enc_key,
|
||||
@@ -1187,9 +1160,15 @@ EVP_PKEY *d2i_KeyParams_bio(int type, EVP_PKEY **a, BIO *in);
|
||||
int EVP_PKEY_copy_parameters(EVP_PKEY *to, const EVP_PKEY *from);
|
||||
int EVP_PKEY_missing_parameters(const EVP_PKEY *pkey);
|
||||
int EVP_PKEY_save_parameters(EVP_PKEY *pkey, int mode);
|
||||
#ifndef OPENSSL_NO_DEPRECATED_3_0
|
||||
int EVP_PKEY_cmp_parameters(const EVP_PKEY *a, const EVP_PKEY *b);
|
||||
#endif
|
||||
int EVP_PKEY_parameters_eq(const EVP_PKEY *a, const EVP_PKEY *b);
|
||||
|
||||
#ifndef OPENSSL_NO_DEPRECATED_3_0
|
||||
int EVP_PKEY_cmp(const EVP_PKEY *a, const EVP_PKEY *b);
|
||||
#endif
|
||||
int EVP_PKEY_eq(const EVP_PKEY *a, const EVP_PKEY *b);
|
||||
|
||||
int EVP_PKEY_print_public(BIO *out, const EVP_PKEY *pkey,
|
||||
int indent, ASN1_PCTX *pctx);
|
||||
@@ -1302,7 +1281,7 @@ void EVP_PKEY_asn1_copy(EVP_PKEY_ASN1_METHOD *dst,
|
||||
void EVP_PKEY_asn1_free(EVP_PKEY_ASN1_METHOD *ameth);
|
||||
void EVP_PKEY_asn1_set_public(EVP_PKEY_ASN1_METHOD *ameth,
|
||||
int (*pub_decode) (EVP_PKEY *pk,
|
||||
X509_PUBKEY *pub),
|
||||
const X509_PUBKEY *pub),
|
||||
int (*pub_encode) (X509_PUBKEY *pub,
|
||||
const EVP_PKEY *pk),
|
||||
int (*pub_cmp) (const EVP_PKEY *a,
|
||||
@@ -1463,6 +1442,10 @@ int EVP_PKEY_CTX_set_signature_md(EVP_PKEY_CTX *ctx, const EVP_MD *md);
|
||||
*/
|
||||
# define EVP_PKEY_FLAG_SIGCTX_CUSTOM 4
|
||||
|
||||
/* Used by Chromium/QUIC */
|
||||
# define X25519_PRIVATE_KEY_LEN 32
|
||||
# define X25519_PUBLIC_VALUE_LEN 32
|
||||
|
||||
const EVP_PKEY_METHOD *EVP_PKEY_meth_find(int type);
|
||||
EVP_PKEY_METHOD *EVP_PKEY_meth_new(int id, int flags);
|
||||
void EVP_PKEY_meth_get0_info(int *ppkey_id, int *pflags,
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2019 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 2019-2020 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -22,7 +22,7 @@ extern "C" {
|
||||
* The calculated MAC of the module file (Used for FIPS Self Testing)
|
||||
* Type: OSSL_PARAM_UTF8_STRING
|
||||
*/
|
||||
# define OSSL_PROV_FIPS_PARAM_MODULE_MAC "module-checksum"
|
||||
# define OSSL_PROV_FIPS_PARAM_MODULE_MAC "module-mac"
|
||||
/*
|
||||
* A version number for the fips install process (Used for FIPS Self Testing)
|
||||
* Type: OSSL_PARAM_UTF8_STRING
|
||||
@@ -32,7 +32,7 @@ extern "C" {
|
||||
* The calculated MAC of the install status indicator (Used for FIPS Self Testing)
|
||||
* Type: OSSL_PARAM_UTF8_STRING
|
||||
*/
|
||||
# define OSSL_PROV_FIPS_PARAM_INSTALL_MAC "install-checksum"
|
||||
# define OSSL_PROV_FIPS_PARAM_INSTALL_MAC "install-mac"
|
||||
/*
|
||||
* The install status indicator (Used for FIPS Self Testing)
|
||||
* Type: OSSL_PARAM_UTF8_STRING
|
||||
|
||||
@@ -1,82 +0,0 @@
|
||||
/*
|
||||
* Copyright 2000-2020 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright Siemens AG 2018-2020
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
* in the file LICENSE in the source distribution or at
|
||||
* https://www.openssl.org/source/license.html
|
||||
*/
|
||||
|
||||
#ifndef OPENSSL_HTTP_H
|
||||
# define OPENSSL_HTTP_H
|
||||
# pragma once
|
||||
|
||||
# include <openssl/opensslconf.h>
|
||||
|
||||
# include <openssl/bio.h>
|
||||
# include <openssl/asn1.h>
|
||||
# include <openssl/conf.h>
|
||||
|
||||
|
||||
# ifdef __cplusplus
|
||||
extern "C" {
|
||||
# endif
|
||||
|
||||
typedef BIO *(*OSSL_HTTP_bio_cb_t)(BIO *bio, void *arg, int connect, int detail);
|
||||
|
||||
# define OSSL_HTTP_NAME "http"
|
||||
# define OSSL_HTTPS_NAME "https"
|
||||
# define OSSL_HTTP_PREFIX OSSL_HTTP_NAME"://"
|
||||
# define OSSL_HTTPS_PREFIX OSSL_HTTPS_NAME"://"
|
||||
# define OSSL_HTTP_PORT "80"
|
||||
# define OSSL_HTTPS_PORT "443"
|
||||
# define OPENSSL_NO_PROXY "NO_PROXY"
|
||||
# define OPENSSL_HTTP_PROXY "HTTP_PROXY"
|
||||
# define OPENSSL_HTTPS_PROXY "HTTPS_PROXY"
|
||||
|
||||
BIO *OSSL_HTTP_get(const char *url, const char *proxy, const char *no_proxy,
|
||||
BIO *bio, BIO *rbio,
|
||||
OSSL_HTTP_bio_cb_t bio_update_fn, void *arg,
|
||||
const STACK_OF(CONF_VALUE) *headers,
|
||||
int maxline, unsigned long max_resp_len, int timeout,
|
||||
const char *expected_content_type, int expect_asn1);
|
||||
ASN1_VALUE *OSSL_HTTP_get_asn1(const char *url,
|
||||
const char *proxy, const char *no_proxy,
|
||||
BIO *bio, BIO *rbio,
|
||||
OSSL_HTTP_bio_cb_t bio_update_fn, void *arg,
|
||||
const STACK_OF(CONF_VALUE) *headers,
|
||||
int maxline, unsigned long max_resp_len,
|
||||
int timeout, const char *expected_content_type,
|
||||
const ASN1_ITEM *it);
|
||||
ASN1_VALUE *OSSL_HTTP_post_asn1(const char *server, const char *port,
|
||||
const char *path, int use_ssl,
|
||||
const char *proxy, const char *no_proxy,
|
||||
BIO *bio, BIO *rbio,
|
||||
OSSL_HTTP_bio_cb_t bio_update_fn, void *arg,
|
||||
const STACK_OF(CONF_VALUE) *headers,
|
||||
const char *content_type,
|
||||
const ASN1_VALUE *req, const ASN1_ITEM *req_it,
|
||||
int maxline, unsigned long max_resp_len,
|
||||
int timeout, const char *expected_ct,
|
||||
const ASN1_ITEM *rsp_it);
|
||||
BIO *OSSL_HTTP_transfer(const char *server, const char *port, const char *path,
|
||||
int use_ssl, const char *proxy, const char *no_proxy,
|
||||
BIO *bio, BIO *rbio,
|
||||
OSSL_HTTP_bio_cb_t bio_update_fn, void *arg,
|
||||
const STACK_OF(CONF_VALUE) *headers,
|
||||
const char *content_type, BIO *req_mem,
|
||||
int maxline, unsigned long max_resp_len, int timeout,
|
||||
const char *expected_ct, int expect_asn1,
|
||||
char **redirection_url);
|
||||
int OSSL_HTTP_proxy_connect(BIO *bio, const char *server, const char *port,
|
||||
const char *proxyuser, const char *proxypass,
|
||||
int timeout, BIO *bio_err, const char *prog);
|
||||
|
||||
int OSSL_HTTP_parse_url(const char *url, char **phost, char **pport,
|
||||
char **ppath, int *pssl);
|
||||
|
||||
# ifdef __cplusplus
|
||||
}
|
||||
# endif
|
||||
#endif /* !defined(OPENSSL_HTTP_H) */
|
||||
@@ -1,56 +0,0 @@
|
||||
/*
|
||||
* Generated by util/mkerr.pl DO NOT EDIT
|
||||
* Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
* in the file LICENSE in the source distribution or at
|
||||
* https://www.openssl.org/source/license.html
|
||||
*/
|
||||
|
||||
#ifndef OPENSSL_HTTPERR_H
|
||||
# define OPENSSL_HTTPERR_H
|
||||
|
||||
# include <openssl/opensslconf.h>
|
||||
# include <openssl/symhacks.h>
|
||||
|
||||
|
||||
# ifdef __cplusplus
|
||||
extern "C"
|
||||
# endif
|
||||
int ERR_load_HTTP_strings(void);
|
||||
|
||||
/*
|
||||
* HTTP function codes.
|
||||
*/
|
||||
# ifndef OPENSSL_NO_DEPRECATED_3_0
|
||||
# endif
|
||||
|
||||
/*
|
||||
* HTTP reason codes.
|
||||
*/
|
||||
# define HTTP_R_ASN1_LEN_EXCEEDS_MAX_RESP_LEN 108
|
||||
# define HTTP_R_CONNECT_FAILURE 100
|
||||
# define HTTP_R_ERROR_PARSING_ASN1_LENGTH 109
|
||||
# define HTTP_R_ERROR_PARSING_CONTENT_LENGTH 119
|
||||
# define HTTP_R_ERROR_PARSING_URL 101
|
||||
# define HTTP_R_ERROR_RECEIVING 103
|
||||
# define HTTP_R_ERROR_SENDING 102
|
||||
# define HTTP_R_INCONSISTENT_CONTENT_LENGTH 120
|
||||
# define HTTP_R_MAX_RESP_LEN_EXCEEDED 117
|
||||
# define HTTP_R_MISSING_ASN1_ENCODING 110
|
||||
# define HTTP_R_MISSING_CONTENT_TYPE 121
|
||||
# define HTTP_R_MISSING_REDIRECT_LOCATION 111
|
||||
# define HTTP_R_RECEIVED_ERROR 105
|
||||
# define HTTP_R_RECEIVED_WRONG_HTTP_VERSION 106
|
||||
# define HTTP_R_REDIRECTION_FROM_HTTPS_TO_HTTP 112
|
||||
# define HTTP_R_REDIRECTION_NOT_ENABLED 116
|
||||
# define HTTP_R_RESPONSE_LINE_TOO_LONG 113
|
||||
# define HTTP_R_RESPONSE_PARSE_ERROR 104
|
||||
# define HTTP_R_SOCK_NOT_SUPPORTED 122
|
||||
# define HTTP_R_STATUS_CODE_UNSUPPORTED 114
|
||||
# define HTTP_R_TLS_NOT_ENABLED 107
|
||||
# define HTTP_R_TOO_MANY_REDIRECTIONS 115
|
||||
# define HTTP_R_UNEXPECTED_CONTENT_TYPE 118
|
||||
|
||||
#endif
|
||||
@@ -30,20 +30,20 @@ void EVP_KDF_free(EVP_KDF *kdf);
|
||||
EVP_KDF *EVP_KDF_fetch(OPENSSL_CTX *libctx, const char *algorithm,
|
||||
const char *properties);
|
||||
|
||||
EVP_KDF_CTX *EVP_KDF_CTX_new(EVP_KDF *kdf);
|
||||
void EVP_KDF_CTX_free(EVP_KDF_CTX *ctx);
|
||||
EVP_KDF_CTX *EVP_KDF_CTX_dup(const EVP_KDF_CTX *src);
|
||||
EVP_KDF_CTX *EVP_KDF_new_ctx(EVP_KDF *kdf);
|
||||
void EVP_KDF_free_ctx(EVP_KDF_CTX *ctx);
|
||||
EVP_KDF_CTX *EVP_KDF_dup_ctx(const EVP_KDF_CTX *src);
|
||||
int EVP_KDF_number(const EVP_KDF *kdf);
|
||||
int EVP_KDF_is_a(const EVP_KDF *kdf, const char *name);
|
||||
const OSSL_PROVIDER *EVP_KDF_provider(const EVP_KDF *kdf);
|
||||
const EVP_KDF *EVP_KDF_CTX_kdf(EVP_KDF_CTX *ctx);
|
||||
const EVP_KDF *EVP_KDF_get_ctx_kdf(EVP_KDF_CTX *ctx);
|
||||
|
||||
void EVP_KDF_reset(EVP_KDF_CTX *ctx);
|
||||
size_t EVP_KDF_size(EVP_KDF_CTX *ctx);
|
||||
int EVP_KDF_derive(EVP_KDF_CTX *ctx, unsigned char *key, size_t keylen);
|
||||
int EVP_KDF_get_params(EVP_KDF *kdf, OSSL_PARAM params[]);
|
||||
int EVP_KDF_CTX_get_params(EVP_KDF_CTX *ctx, OSSL_PARAM params[]);
|
||||
int EVP_KDF_CTX_set_params(EVP_KDF_CTX *ctx, const OSSL_PARAM params[]);
|
||||
int EVP_KDF_get_ctx_params(EVP_KDF_CTX *ctx, OSSL_PARAM params[]);
|
||||
int EVP_KDF_set_ctx_params(EVP_KDF_CTX *ctx, const OSSL_PARAM params[]);
|
||||
const OSSL_PARAM *EVP_KDF_gettable_params(const EVP_KDF *kdf);
|
||||
const OSSL_PARAM *EVP_KDF_gettable_ctx_params(const EVP_KDF *kdf);
|
||||
const OSSL_PARAM *EVP_KDF_settable_ctx_params(const EVP_KDF *kdf);
|
||||
|
||||
@@ -230,6 +230,7 @@ DEFINE_LHASH_OF(OPENSSL_CSTRING);
|
||||
*/
|
||||
# ifdef __SUNPRO_C
|
||||
# pragma weak OPENSSL_LH_new
|
||||
# pragma weak OPENSSL_LH_flush
|
||||
# pragma weak OPENSSL_LH_free
|
||||
# pragma weak OPENSSL_LH_insert
|
||||
# pragma weak OPENSSL_LH_delete
|
||||
|
||||
@@ -0,0 +1,59 @@
|
||||
/*
|
||||
* Copyright 2019=-2020 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
* in the file LICENSE in the source distribution or at
|
||||
* https://www.openssl.org/source/license.html
|
||||
*/
|
||||
|
||||
/* MAC stuff */
|
||||
|
||||
#ifndef OPENSSL_EVP_MAC_H
|
||||
# define OPENSSL_EVP_MAC_H
|
||||
# pragma once
|
||||
|
||||
# include <openssl/opensslconf.h>
|
||||
# include <openssl/types.h>
|
||||
# include <openssl/core.h>
|
||||
|
||||
# ifdef __cplusplus
|
||||
extern "C" {
|
||||
# endif
|
||||
|
||||
EVP_MAC *EVP_MAC_fetch(OPENSSL_CTX *libctx, const char *algorithm,
|
||||
const char *properties);
|
||||
int EVP_MAC_up_ref(EVP_MAC *mac);
|
||||
void EVP_MAC_free(EVP_MAC *mac);
|
||||
int EVP_MAC_number(const EVP_MAC *mac);
|
||||
int EVP_MAC_is_a(const EVP_MAC *mac, const char *name);
|
||||
const OSSL_PROVIDER *EVP_MAC_provider(const EVP_MAC *mac);
|
||||
int EVP_MAC_get_params(EVP_MAC *mac, OSSL_PARAM params[]);
|
||||
|
||||
EVP_MAC_CTX *EVP_MAC_new_ctx(EVP_MAC *mac);
|
||||
void EVP_MAC_free_ctx(EVP_MAC_CTX *ctx);
|
||||
EVP_MAC_CTX *EVP_MAC_dup_ctx(const EVP_MAC_CTX *src);
|
||||
EVP_MAC *EVP_MAC_get_ctx_mac(EVP_MAC_CTX *ctx);
|
||||
int EVP_MAC_get_ctx_params(EVP_MAC_CTX *ctx, OSSL_PARAM params[]);
|
||||
int EVP_MAC_set_ctx_params(EVP_MAC_CTX *ctx, const OSSL_PARAM params[]);
|
||||
|
||||
size_t EVP_MAC_size(EVP_MAC_CTX *ctx);
|
||||
int EVP_MAC_init(EVP_MAC_CTX *ctx);
|
||||
int EVP_MAC_update(EVP_MAC_CTX *ctx, const unsigned char *data, size_t datalen);
|
||||
int EVP_MAC_final(EVP_MAC_CTX *ctx,
|
||||
unsigned char *out, size_t *outl, size_t outsize);
|
||||
const OSSL_PARAM *EVP_MAC_gettable_params(const EVP_MAC *mac);
|
||||
const OSSL_PARAM *EVP_MAC_gettable_ctx_params(const EVP_MAC *mac);
|
||||
const OSSL_PARAM *EVP_MAC_settable_ctx_params(const EVP_MAC *mac);
|
||||
|
||||
void EVP_MAC_do_all_provided(OPENSSL_CTX *libctx,
|
||||
void (*fn)(EVP_MAC *mac, void *arg),
|
||||
void *arg);
|
||||
void EVP_MAC_names_do_all(const EVP_MAC *mac,
|
||||
void (*fn)(const char *name, void *data),
|
||||
void *data);
|
||||
|
||||
# ifdef __cplusplus
|
||||
}
|
||||
# endif
|
||||
#endif /* OPENSSL_EVP_MAC_H */
|
||||
@@ -4859,7 +4859,7 @@
|
||||
|
||||
#define SN_chacha20_poly1305_draft "ChaCha20-Poly1305-D"
|
||||
#define LN_chacha20_poly1305_draft "chacha20-poly1305-draft"
|
||||
#define NID_chacha20_poly1305_draft 1218
|
||||
#define NID_chacha20_poly1305_draft 1219
|
||||
|
||||
#define SN_chacha20 "ChaCha20"
|
||||
#define LN_chacha20 "chacha20"
|
||||
@@ -5106,6 +5106,10 @@
|
||||
#define LN_kx_gost "kx-gost"
|
||||
#define NID_kx_gost 1045
|
||||
|
||||
#define SN_kx_gost18 "KxGOST18"
|
||||
#define LN_kx_gost18 "kx-gost18"
|
||||
#define NID_kx_gost18 1218
|
||||
|
||||
#define SN_kx_any "KxANY"
|
||||
#define LN_kx_any "kx-any"
|
||||
#define NID_kx_any 1063
|
||||
|
||||
+31
-43
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2000-2020 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 2000-2018 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -16,7 +16,7 @@
|
||||
# define HEADER_OCSP_H
|
||||
# endif
|
||||
|
||||
# include <openssl/opensslconf.h>
|
||||
#include <openssl/opensslconf.h>
|
||||
|
||||
/*
|
||||
* These definitions are outside the OPENSSL_NO_OCSP guard because although for
|
||||
@@ -37,53 +37,30 @@
|
||||
* privilegeWithdrawn (9),
|
||||
* aACompromise (10) }
|
||||
*/
|
||||
# define OCSP_REVOKED_STATUS_NOSTATUS -1
|
||||
# define OCSP_REVOKED_STATUS_UNSPECIFIED 0
|
||||
# define OCSP_REVOKED_STATUS_KEYCOMPROMISE 1
|
||||
# define OCSP_REVOKED_STATUS_CACOMPROMISE 2
|
||||
# define OCSP_REVOKED_STATUS_AFFILIATIONCHANGED 3
|
||||
# define OCSP_REVOKED_STATUS_SUPERSEDED 4
|
||||
# define OCSP_REVOKED_STATUS_CESSATIONOFOPERATION 5
|
||||
# define OCSP_REVOKED_STATUS_CERTIFICATEHOLD 6
|
||||
# define OCSP_REVOKED_STATUS_REMOVEFROMCRL 8
|
||||
# define OCSP_REVOKED_STATUS_PRIVILEGEWITHDRAWN 9
|
||||
# define OCSP_REVOKED_STATUS_AACOMPROMISE 10
|
||||
|
||||
/*
|
||||
* These definitions are outside the OPENSSL_NO_OCSP guard because although for
|
||||
* historical reasons they have OCSP_* names, they are used for the HTTP client.
|
||||
*/
|
||||
# include <openssl/asn1.h>
|
||||
/* The following functions are used only internally */
|
||||
OCSP_REQ_CTX *OCSP_REQ_CTX_new(BIO *wbio, BIO *rbio,
|
||||
int method_GET, int maxline,
|
||||
unsigned long max_resp_len, int timeout,
|
||||
const char *expected_content_type,
|
||||
int expect_asn1);
|
||||
void OCSP_REQ_CTX_free(OCSP_REQ_CTX *rctx);
|
||||
int OCSP_REQ_CTX_http(OCSP_REQ_CTX *rctx,
|
||||
const char *server, const char *port, const char *path);
|
||||
int OCSP_REQ_CTX_add1_header(OCSP_REQ_CTX *rctx,
|
||||
const char *name, const char *value);
|
||||
int OCSP_REQ_CTX_i2d(OCSP_REQ_CTX *rctx, const char *content_type,
|
||||
const ASN1_ITEM *it, ASN1_VALUE *req);
|
||||
int OCSP_REQ_CTX_nbio(OCSP_REQ_CTX *rctx);
|
||||
ASN1_VALUE *OCSP_REQ_CTX_nbio_d2i(OCSP_REQ_CTX *rctx, const ASN1_ITEM *it);
|
||||
BIO *OCSP_REQ_CTX_get0_mem_bio(OCSP_REQ_CTX *rctx);
|
||||
void OCSP_set_max_response_length(OCSP_REQ_CTX *rctx, unsigned long len);
|
||||
/* End of functions used only internally */
|
||||
# define OCSP_REVOKED_STATUS_NOSTATUS -1
|
||||
# define OCSP_REVOKED_STATUS_UNSPECIFIED 0
|
||||
# define OCSP_REVOKED_STATUS_KEYCOMPROMISE 1
|
||||
# define OCSP_REVOKED_STATUS_CACOMPROMISE 2
|
||||
# define OCSP_REVOKED_STATUS_AFFILIATIONCHANGED 3
|
||||
# define OCSP_REVOKED_STATUS_SUPERSEDED 4
|
||||
# define OCSP_REVOKED_STATUS_CESSATIONOFOPERATION 5
|
||||
# define OCSP_REVOKED_STATUS_CERTIFICATEHOLD 6
|
||||
# define OCSP_REVOKED_STATUS_REMOVEFROMCRL 8
|
||||
# define OCSP_REVOKED_STATUS_PRIVILEGEWITHDRAWN 9
|
||||
# define OCSP_REVOKED_STATUS_AACOMPROMISE 10
|
||||
|
||||
|
||||
# ifndef OPENSSL_NO_OCSP
|
||||
|
||||
# include <openssl/types.h>
|
||||
# include <openssl/x509.h>
|
||||
# include <openssl/x509v3.h>
|
||||
# include <openssl/safestack.h>
|
||||
# include <openssl/ocsperr.h>
|
||||
|
||||
# ifdef __cplusplus
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* Various flags and values */
|
||||
|
||||
@@ -182,10 +159,20 @@ DECLARE_ASN1_DUP_FUNCTION(OCSP_CERTID)
|
||||
OCSP_RESPONSE *OCSP_sendreq_bio(BIO *b, const char *path, OCSP_REQUEST *req);
|
||||
OCSP_REQ_CTX *OCSP_sendreq_new(BIO *io, const char *path, OCSP_REQUEST *req,
|
||||
int maxline);
|
||||
int OCSP_REQ_CTX_nbio(OCSP_REQ_CTX *rctx);
|
||||
int OCSP_sendreq_nbio(OCSP_RESPONSE **presp, OCSP_REQ_CTX *rctx);
|
||||
|
||||
/* TODO: remove this (documented but) meanwhile obsolete function? */
|
||||
int OCSP_REQ_CTX_set1_req(OCSP_REQ_CTX *rctx, const OCSP_REQUEST *req);
|
||||
OCSP_REQ_CTX *OCSP_REQ_CTX_new(BIO *io, int maxline);
|
||||
void OCSP_REQ_CTX_free(OCSP_REQ_CTX *rctx);
|
||||
void OCSP_set_max_response_length(OCSP_REQ_CTX *rctx, unsigned long len);
|
||||
int OCSP_REQ_CTX_i2d(OCSP_REQ_CTX *rctx, const ASN1_ITEM *it,
|
||||
ASN1_VALUE *val);
|
||||
int OCSP_REQ_CTX_nbio_d2i(OCSP_REQ_CTX *rctx, ASN1_VALUE **pval,
|
||||
const ASN1_ITEM *it);
|
||||
BIO *OCSP_REQ_CTX_get0_mem_bio(OCSP_REQ_CTX *rctx);
|
||||
int OCSP_REQ_CTX_http(OCSP_REQ_CTX *rctx, const char *op, const char *path);
|
||||
int OCSP_REQ_CTX_set1_req(OCSP_REQ_CTX *rctx, OCSP_REQUEST *req);
|
||||
int OCSP_REQ_CTX_add1_header(OCSP_REQ_CTX *rctx,
|
||||
const char *name, const char *value);
|
||||
|
||||
OCSP_CERTID *OCSP_cert_to_id(const EVP_MD *dgst, const X509 *subject,
|
||||
const X509 *issuer);
|
||||
@@ -247,7 +234,8 @@ int OCSP_check_validity(ASN1_GENERALIZEDTIME *thisupd,
|
||||
int OCSP_request_verify(OCSP_REQUEST *req, STACK_OF(X509) *certs,
|
||||
X509_STORE *store, unsigned long flags);
|
||||
|
||||
# define OCSP_parse_url OSSL_HTTP_parse_url /* for backward compatibility */
|
||||
int OCSP_parse_url(const char *url, char **phost, char **pport, char **ppath,
|
||||
int *pssl);
|
||||
|
||||
int OCSP_id_issuer_cmp(const OCSP_CERTID *a, const OCSP_CERTID *b);
|
||||
int OCSP_id_cmp(const OCSP_CERTID *a, const OCSP_CERTID *b);
|
||||
|
||||
@@ -40,9 +40,11 @@ int ERR_load_OCSP_strings(void);
|
||||
# define OCSP_F_OCSP_CHECK_ISSUER 0
|
||||
# define OCSP_F_OCSP_CHECK_VALIDITY 0
|
||||
# define OCSP_F_OCSP_MATCH_ISSUERID 0
|
||||
# define OCSP_F_OCSP_PARSE_URL 0
|
||||
# define OCSP_F_OCSP_REQUEST_SIGN 0
|
||||
# define OCSP_F_OCSP_REQUEST_VERIFY 0
|
||||
# define OCSP_F_OCSP_RESPONSE_GET1_BASIC 0
|
||||
# define OCSP_F_PARSE_HTTP_LINE1 0
|
||||
# endif
|
||||
|
||||
/*
|
||||
@@ -52,6 +54,7 @@ int ERR_load_OCSP_strings(void);
|
||||
# define OCSP_R_DIGEST_ERR 102
|
||||
# define OCSP_R_ERROR_IN_NEXTUPDATE_FIELD 122
|
||||
# define OCSP_R_ERROR_IN_THISUPDATE_FIELD 123
|
||||
# define OCSP_R_ERROR_PARSING_URL 121
|
||||
# define OCSP_R_MISSING_OCSPSIGNING_USAGE 103
|
||||
# define OCSP_R_NEXTUPDATE_BEFORE_THISUPDATE 124
|
||||
# define OCSP_R_NOT_BASIC_RESPONSE 104
|
||||
@@ -63,6 +66,8 @@ int ERR_load_OCSP_strings(void);
|
||||
# define OCSP_R_REQUEST_NOT_SIGNED 128
|
||||
# define OCSP_R_RESPONSE_CONTAINS_NO_REVOCATION_DATA 111
|
||||
# define OCSP_R_ROOT_CA_NOT_TRUSTED 112
|
||||
# define OCSP_R_SERVER_RESPONSE_ERROR 114
|
||||
# define OCSP_R_SERVER_RESPONSE_PARSE_ERROR 115
|
||||
# define OCSP_R_SIGNATURE_FAILURE 117
|
||||
# define OCSP_R_SIGNER_CERTIFICATE_NOT_FOUND 118
|
||||
# define OCSP_R_STATUS_EXPIRED 125
|
||||
|
||||
@@ -23,10 +23,18 @@ int OSSL_PROVIDER_set_default_search_path(OPENSSL_CTX *, const char *path);
|
||||
OSSL_PROVIDER *OSSL_PROVIDER_load(OPENSSL_CTX *, const char *name);
|
||||
int OSSL_PROVIDER_unload(OSSL_PROVIDER *prov);
|
||||
int OSSL_PROVIDER_available(OPENSSL_CTX *, const char *name);
|
||||
int OSSL_PROVIDER_do_all(OPENSSL_CTX *ctx,
|
||||
int (*cb)(OSSL_PROVIDER *provider, void *cbdata),
|
||||
void *cbdata);
|
||||
|
||||
const OSSL_PARAM *OSSL_PROVIDER_gettable_params(const OSSL_PROVIDER *prov);
|
||||
int OSSL_PROVIDER_get_params(const OSSL_PROVIDER *prov, OSSL_PARAM params[]);
|
||||
|
||||
const OSSL_ALGORITHM *OSSL_PROVIDER_query_operation(const OSSL_PROVIDER *prov,
|
||||
int operation_id,
|
||||
int *no_cache);
|
||||
void *OSSL_PROVIDER_get0_provider_ctx(const OSSL_PROVIDER *prov);
|
||||
|
||||
/* Add a built in providers */
|
||||
int OSSL_PROVIDER_add_builtin(OPENSSL_CTX *, const char *name,
|
||||
OSSL_provider_init_fn *init_fn);
|
||||
|
||||
@@ -39,7 +39,7 @@ extern "C" {
|
||||
# define OPENSSL_RSA_MAX_MODULUS_BITS 16384
|
||||
# endif
|
||||
|
||||
# define OPENSSL_RSA_FIPS_MIN_MODULUS_BITS 1024
|
||||
# define OPENSSL_RSA_FIPS_MIN_MODULUS_BITS 2048
|
||||
|
||||
# ifndef OPENSSL_RSA_SMALL_MODULUS_BITS
|
||||
# define OPENSSL_RSA_SMALL_MODULUS_BITS 3072
|
||||
|
||||
+53
-9
@@ -87,6 +87,7 @@ extern "C" {
|
||||
# define SSL_TXT_kECDHEPSK "kECDHEPSK"
|
||||
# define SSL_TXT_kDHEPSK "kDHEPSK"
|
||||
# define SSL_TXT_kGOST "kGOST"
|
||||
# define SSL_TXT_kGOST18 "kGOST18"
|
||||
# define SSL_TXT_kSRP "kSRP"
|
||||
|
||||
# define SSL_TXT_aRSA "aRSA"
|
||||
@@ -138,6 +139,7 @@ extern "C" {
|
||||
# define SSL_TXT_ARIA128 "ARIA128"
|
||||
# define SSL_TXT_ARIA256 "ARIA256"
|
||||
# define SSL_TXT_GOST2012_GOST8912_GOST8912 "GOST2012-GOST8912-GOST8912"
|
||||
# define SSL_TXT_CBC "CBC"
|
||||
|
||||
# define SSL_TXT_MD5 "MD5"
|
||||
# define SSL_TXT_SHA1 "SHA1"
|
||||
@@ -325,14 +327,9 @@ typedef int (*SSL_async_callback_fn)(SSL *s, void *arg);
|
||||
/* Allow initial connection to servers that don't support RI */
|
||||
# define SSL_OP_LEGACY_SERVER_CONNECT 0x00000004U
|
||||
|
||||
/* Reserved value (until OpenSSL 3.0.0) 0x00000008U */
|
||||
# define SSL_OP_TLSEXT_PADDING 0x00000010U
|
||||
/* Reserved value (until OpenSSL 3.0.0) 0x00000020U */
|
||||
# define SSL_OP_SAFARI_ECDHE_ECDSA_BUG 0x00000040U
|
||||
/*
|
||||
* Reserved value (until OpenSSL 3.0.0) 0x00000080U
|
||||
* Reserved value (until OpenSSL 3.0.0) 0x00000100U
|
||||
*/
|
||||
# define SSL_OP_IGNORE_UNEXPECTED_EOF 0x00000080U
|
||||
|
||||
# define SSL_OP_DISABLE_TLSEXT_CA_NAMES 0x00000200U
|
||||
|
||||
@@ -934,6 +931,8 @@ __owur int SSL_extension_supported(unsigned int ext_type);
|
||||
|
||||
# define SSL_MAC_FLAG_READ_MAC_STREAM 1
|
||||
# define SSL_MAC_FLAG_WRITE_MAC_STREAM 2
|
||||
# define SSL_MAC_FLAG_READ_MAC_TLSTREE 4
|
||||
# define SSL_MAC_FLAG_WRITE_MAC_TLSTREE 8
|
||||
|
||||
/*
|
||||
* A callback for logging out TLS key material. This callback should log out
|
||||
@@ -2029,9 +2028,9 @@ __owur int SSL_CTX_set_default_verify_store(SSL_CTX *ctx);
|
||||
__owur int SSL_CTX_load_verify_file(SSL_CTX *ctx, const char *CAfile);
|
||||
__owur int SSL_CTX_load_verify_dir(SSL_CTX *ctx, const char *CApath);
|
||||
__owur int SSL_CTX_load_verify_store(SSL_CTX *ctx, const char *CAstore);
|
||||
DEPRECATEDIN_3_0(__owur int SSL_CTX_load_verify_locations(SSL_CTX *ctx,
|
||||
__owur int SSL_CTX_load_verify_locations(SSL_CTX *ctx,
|
||||
const char *CAfile,
|
||||
const char *CApath))
|
||||
const char *CApath);
|
||||
# define SSL_get0_session SSL_get_session/* just peek at pointer */
|
||||
__owur SSL_SESSION *SSL_get_session(const SSL *ssl);
|
||||
__owur SSL_SESSION *SSL_get1_session(SSL *ssl); /* obtain a reference count */
|
||||
@@ -2170,7 +2169,7 @@ void SSL_CTX_set_record_padding_callback_arg(SSL_CTX *ctx, void *arg);
|
||||
void *SSL_CTX_get_record_padding_callback_arg(const SSL_CTX *ctx);
|
||||
int SSL_CTX_set_block_padding(SSL_CTX *ctx, size_t block_size);
|
||||
|
||||
void SSL_set_record_padding_callback(SSL *ssl,
|
||||
int SSL_set_record_padding_callback(SSL *ssl,
|
||||
size_t (*cb) (SSL *ssl, int type,
|
||||
size_t len, void *arg));
|
||||
void SSL_set_record_padding_callback_arg(SSL *ssl, void *arg);
|
||||
@@ -2481,6 +2480,51 @@ void SSL_set_allow_early_data_cb(SSL *s,
|
||||
const char *OSSL_default_cipher_list(void);
|
||||
const char *OSSL_default_ciphersuites(void);
|
||||
|
||||
# ifndef OPENSSL_NO_QUIC
|
||||
/*
|
||||
* QUIC integration - The QUIC interface matches BoringSSL
|
||||
*
|
||||
* ssl_encryption_level_t represents a specific QUIC encryption level used to
|
||||
* transmit handshake messages. BoringSSL has this as an 'enum'.
|
||||
*/
|
||||
typedef enum ssl_encryption_level_t {
|
||||
ssl_encryption_initial = 0,
|
||||
ssl_encryption_early_data,
|
||||
ssl_encryption_handshake,
|
||||
ssl_encryption_application
|
||||
} OSSL_ENCRYPTION_LEVEL;
|
||||
|
||||
struct ssl_quic_method_st {
|
||||
int (*set_encryption_secrets)(SSL *ssl, OSSL_ENCRYPTION_LEVEL level,
|
||||
const uint8_t *read_secret,
|
||||
const uint8_t *write_secret, size_t secret_len);
|
||||
int (*add_handshake_data)(SSL *ssl, OSSL_ENCRYPTION_LEVEL level,
|
||||
const uint8_t *data, size_t len);
|
||||
int (*flush_flight)(SSL *ssl);
|
||||
int (*send_alert)(SSL *ssl, enum ssl_encryption_level_t level, uint8_t alert);
|
||||
};
|
||||
|
||||
__owur int SSL_CTX_set_quic_method(SSL_CTX *ctx, const SSL_QUIC_METHOD *quic_method);
|
||||
__owur int SSL_set_quic_method(SSL *ssl, const SSL_QUIC_METHOD *quic_method);
|
||||
__owur int SSL_set_quic_transport_params(SSL *ssl,
|
||||
const uint8_t *params,
|
||||
size_t params_len);
|
||||
void SSL_get_peer_quic_transport_params(const SSL *ssl,
|
||||
const uint8_t **out_params,
|
||||
size_t *out_params_len);
|
||||
__owur size_t SSL_quic_max_handshake_flight_len(const SSL *ssl, OSSL_ENCRYPTION_LEVEL level);
|
||||
__owur OSSL_ENCRYPTION_LEVEL SSL_quic_read_level(const SSL *ssl);
|
||||
__owur OSSL_ENCRYPTION_LEVEL SSL_quic_write_level(const SSL *ssl);
|
||||
__owur int SSL_provide_quic_data(SSL *ssl, OSSL_ENCRYPTION_LEVEL level,
|
||||
const uint8_t *data, size_t len);
|
||||
__owur int SSL_process_quic_post_handshake(SSL *ssl);
|
||||
|
||||
__owur int SSL_is_quic(SSL *ssl);
|
||||
|
||||
# endif
|
||||
|
||||
int SSL_CIPHER_get_prf_nid(const SSL_CIPHER *c);
|
||||
|
||||
# ifdef __cplusplus
|
||||
}
|
||||
# endif
|
||||
|
||||
@@ -297,6 +297,9 @@ extern "C" {
|
||||
|
||||
# define TLS1_FLAGS_STATELESS 0x0800
|
||||
|
||||
/* Set if extended master secret extension required on renegotiation */
|
||||
# define TLS1_FLAGS_REQUIRED_EXTMS 0x1000
|
||||
|
||||
# define SSL3_MT_HELLO_REQUEST 0
|
||||
# define SSL3_MT_CLIENT_HELLO 1
|
||||
# define SSL3_MT_SERVER_HELLO 2
|
||||
|
||||
@@ -97,6 +97,9 @@ int ERR_load_SSL_strings(void);
|
||||
# define SSL_F_PITEM_NEW 0
|
||||
# define SSL_F_PQUEUE_NEW 0
|
||||
# define SSL_F_PROCESS_KEY_SHARE_EXT 0
|
||||
# define SSL_F_QUIC_CHANGE_CIPHER_STATE 0
|
||||
# define SSL_F_QUIC_GET_MESSAGE 0
|
||||
# define SSL_F_QUIC_SET_ENCRYPTION_SECRETS 0
|
||||
# define SSL_F_READ_STATE_MACHINE 0
|
||||
# define SSL_F_SET_CLIENT_CIPHERSUITE 0
|
||||
# define SSL_F_SRP_GENERATE_CLIENT_MASTER_SECRET 0
|
||||
@@ -107,7 +110,9 @@ int ERR_load_SSL_strings(void);
|
||||
# define SSL_F_SSL3_CTRL 0
|
||||
# define SSL_F_SSL3_CTX_CTRL 0
|
||||
# define SSL_F_SSL3_DIGEST_CACHED_RECORDS 0
|
||||
# define SSL_F_SSL3_DISPATCH_ALERT 0
|
||||
# define SSL_F_SSL3_DO_CHANGE_CIPHER_SPEC 0
|
||||
# define SSL_F_SSL3_DO_WRITE 0
|
||||
# define SSL_F_SSL3_ENC 0
|
||||
# define SSL_F_SSL3_FINAL_FINISH_MAC 0
|
||||
# define SSL_F_SSL3_FINISH_MAC 0
|
||||
@@ -212,6 +217,8 @@ int ERR_load_SSL_strings(void);
|
||||
# define SSL_F_SSL_PEEK 0
|
||||
# define SSL_F_SSL_PEEK_EX 0
|
||||
# define SSL_F_SSL_PEEK_INTERNAL 0
|
||||
# define SSL_F_SSL_PROCESS_QUIC_POST_HANDSHAKE 0
|
||||
# define SSL_F_SSL_PROVIDE_QUIC_DATA 0
|
||||
# define SSL_F_SSL_READ 0
|
||||
# define SSL_F_SSL_READ_EARLY_DATA 0
|
||||
# define SSL_F_SSL_READ_EX 0
|
||||
@@ -262,6 +269,7 @@ int ERR_load_SSL_strings(void);
|
||||
# define SSL_F_SSL_WRITE_EARLY_FINISH 0
|
||||
# define SSL_F_SSL_WRITE_EX 0
|
||||
# define SSL_F_SSL_WRITE_INTERNAL 0
|
||||
# define SSL_F_STATEM_FLUSH 0
|
||||
# define SSL_F_STATE_MACHINE 0
|
||||
# define SSL_F_TLS12_CHECK_PEER_SIGALG 0
|
||||
# define SSL_F_TLS12_COPY_SIGALGS 0
|
||||
@@ -298,6 +306,7 @@ int ERR_load_SSL_strings(void);
|
||||
# define SSL_F_TLS_CONSTRUCT_CKE_DHE 0
|
||||
# define SSL_F_TLS_CONSTRUCT_CKE_ECDHE 0
|
||||
# define SSL_F_TLS_CONSTRUCT_CKE_GOST 0
|
||||
# define SSL_F_TLS_CONSTRUCT_CKE_GOST18 0
|
||||
# define SSL_F_TLS_CONSTRUCT_CKE_PSK_PREAMBLE 0
|
||||
# define SSL_F_TLS_CONSTRUCT_CKE_RSA 0
|
||||
# define SSL_F_TLS_CONSTRUCT_CKE_SRP 0
|
||||
@@ -321,6 +330,7 @@ int ERR_load_SSL_strings(void);
|
||||
# define SSL_F_TLS_CONSTRUCT_CTOS_POST_HANDSHAKE_AUTH 0
|
||||
# define SSL_F_TLS_CONSTRUCT_CTOS_PSK 0
|
||||
# define SSL_F_TLS_CONSTRUCT_CTOS_PSK_KEX_MODES 0
|
||||
# define SSL_F_TLS_CONSTRUCT_CTOS_QUIC_TRANSPORT_PARAMS 0
|
||||
# define SSL_F_TLS_CONSTRUCT_CTOS_RENEGOTIATE 0
|
||||
# define SSL_F_TLS_CONSTRUCT_CTOS_SCT 0
|
||||
# define SSL_F_TLS_CONSTRUCT_CTOS_SERVER_NAME 0
|
||||
@@ -360,6 +370,7 @@ int ERR_load_SSL_strings(void);
|
||||
# define SSL_F_TLS_CONSTRUCT_STOC_MAXFRAGMENTLEN 0
|
||||
# define SSL_F_TLS_CONSTRUCT_STOC_NEXT_PROTO_NEG 0
|
||||
# define SSL_F_TLS_CONSTRUCT_STOC_PSK 0
|
||||
# define SSL_F_TLS_CONSTRUCT_STOC_QUIC_TRANSPORT_PARAMS 0
|
||||
# define SSL_F_TLS_CONSTRUCT_STOC_RENEGOTIATE 0
|
||||
# define SSL_F_TLS_CONSTRUCT_STOC_SERVER_NAME 0
|
||||
# define SSL_F_TLS_CONSTRUCT_STOC_SESSION_TICKET 0
|
||||
@@ -385,6 +396,7 @@ int ERR_load_SSL_strings(void);
|
||||
# define SSL_F_TLS_PARSE_CTOS_POST_HANDSHAKE_AUTH 0
|
||||
# define SSL_F_TLS_PARSE_CTOS_PSK 0
|
||||
# define SSL_F_TLS_PARSE_CTOS_PSK_KEX_MODES 0
|
||||
# define SSL_F_TLS_PARSE_CTOS_QUIC_TRANSPORT_PARAMS 0
|
||||
# define SSL_F_TLS_PARSE_CTOS_RENEGOTIATE 0
|
||||
# define SSL_F_TLS_PARSE_CTOS_SERVER_NAME 0
|
||||
# define SSL_F_TLS_PARSE_CTOS_SESSION_TICKET 0
|
||||
@@ -403,6 +415,7 @@ int ERR_load_SSL_strings(void);
|
||||
# define SSL_F_TLS_PARSE_STOC_MAXFRAGMENTLEN 0
|
||||
# define SSL_F_TLS_PARSE_STOC_NPN 0
|
||||
# define SSL_F_TLS_PARSE_STOC_PSK 0
|
||||
# define SSL_F_TLS_PARSE_STOC_QUIC_TRANSPORT_PARAMS 0
|
||||
# define SSL_F_TLS_PARSE_STOC_RENEGOTIATE 0
|
||||
# define SSL_F_TLS_PARSE_STOC_SCT 0
|
||||
# define SSL_F_TLS_PARSE_STOC_SERVER_NAME 0
|
||||
@@ -422,6 +435,7 @@ int ERR_load_SSL_strings(void);
|
||||
# define SSL_F_TLS_PROCESS_CKE_DHE 0
|
||||
# define SSL_F_TLS_PROCESS_CKE_ECDHE 0
|
||||
# define SSL_F_TLS_PROCESS_CKE_GOST 0
|
||||
# define SSL_F_TLS_PROCESS_CKE_GOST18 0
|
||||
# define SSL_F_TLS_PROCESS_CKE_PSK_PREAMBLE 0
|
||||
# define SSL_F_TLS_PROCESS_CKE_RSA 0
|
||||
# define SSL_F_TLS_PROCESS_CKE_SRP 0
|
||||
@@ -569,6 +583,7 @@ int ERR_load_SSL_strings(void);
|
||||
# define SSL_R_INCONSISTENT_EARLY_DATA_SNI 231
|
||||
# define SSL_R_INCONSISTENT_EXTMS 104
|
||||
# define SSL_R_INSUFFICIENT_SECURITY 241
|
||||
# define SSL_R_INTERNAL_ERROR 296
|
||||
# define SSL_R_INVALID_ALERT 205
|
||||
# define SSL_R_INVALID_CCS_MESSAGE 260
|
||||
# define SSL_R_INVALID_CERTIFICATE_OR_ALG 238
|
||||
@@ -606,8 +621,8 @@ int ERR_load_SSL_strings(void);
|
||||
# define SSL_R_MISSING_TMP_DH_KEY 171
|
||||
# define SSL_R_MISSING_TMP_ECDH_KEY 311
|
||||
# define SSL_R_MIXED_HANDSHAKE_AND_NON_HANDSHAKE_DATA 293
|
||||
# define SSL_R_MIXED_SPECIAL_OPERATOR_WITH_GROUPS 296
|
||||
# define SSL_R_NESTED_GROUP 297
|
||||
# define SSL_R_MIXED_SPECIAL_OPERATOR_WITH_GROUPS 297
|
||||
# define SSL_R_NESTED_GROUP 299
|
||||
# define SSL_R_NOT_ON_RECORD_BOUNDARY 182
|
||||
# define SSL_R_NOT_REPLACING_CERTIFICATE 289
|
||||
# define SSL_R_NOT_SERVER 284
|
||||
@@ -739,9 +754,9 @@ int ERR_load_SSL_strings(void);
|
||||
# define SSL_R_UNEXPECTED_CCS_MESSAGE 262
|
||||
# define SSL_R_UNEXPECTED_END_OF_EARLY_DATA 178
|
||||
# define SSL_R_UNEXPECTED_EOF_WHILE_READING 294
|
||||
# define SSL_R_UNEXPECTED_GROUP_CLOSE 299
|
||||
# define SSL_R_UNEXPECTED_GROUP_CLOSE 305
|
||||
# define SSL_R_UNEXPECTED_MESSAGE 244
|
||||
# define SSL_R_UNEXPECTED_OPERATOR_IN_GROUP 305
|
||||
# define SSL_R_UNEXPECTED_OPERATOR_IN_GROUP 310
|
||||
# define SSL_R_UNEXPECTED_RECORD 245
|
||||
# define SSL_R_UNINITIALIZED 276
|
||||
# define SSL_R_UNKNOWN_ALERT_TYPE 246
|
||||
@@ -769,6 +784,7 @@ int ERR_load_SSL_strings(void);
|
||||
# define SSL_R_WRONG_CERTIFICATE_TYPE 383
|
||||
# define SSL_R_WRONG_CIPHER_RETURNED 261
|
||||
# define SSL_R_WRONG_CURVE 378
|
||||
# define SSL_R_WRONG_ENCRYPTION_LEVEL_RECEIVED 313
|
||||
# define SSL_R_WRONG_SIGNATURE_LENGTH 264
|
||||
# define SSL_R_WRONG_SIGNATURE_SIZE 265
|
||||
# define SSL_R_WRONG_SIGNATURE_TYPE 370
|
||||
|
||||
@@ -153,6 +153,9 @@ extern "C" {
|
||||
/* Temporary extension type */
|
||||
# define TLSEXT_TYPE_renegotiate 0xff01
|
||||
|
||||
/* ExtensionType value from draft-ietf-quic-tls-13 */
|
||||
# define TLSEXT_TYPE_quic_transport_parameters 0xffa5
|
||||
|
||||
# ifndef OPENSSL_NO_NEXTPROTONEG
|
||||
/* This is not an IANA defined extension number */
|
||||
# define TLSEXT_TYPE_next_proto_neg 13172
|
||||
|
||||
@@ -186,7 +186,7 @@ typedef struct NAME_CONSTRAINTS_st NAME_CONSTRAINTS;
|
||||
|
||||
typedef struct crypto_ex_data_st CRYPTO_EX_DATA;
|
||||
|
||||
typedef struct ossl_http_req_ctx_st OCSP_REQ_CTX; /* backward compatibility */
|
||||
typedef struct ocsp_req_ctx_st OCSP_REQ_CTX;
|
||||
typedef struct ocsp_response_st OCSP_RESPONSE;
|
||||
typedef struct ocsp_responder_id_st OCSP_RESPID;
|
||||
|
||||
@@ -214,6 +214,8 @@ typedef struct ossl_serializer_ctx_st OSSL_SERIALIZER_CTX;
|
||||
|
||||
typedef struct ossl_self_test_st OSSL_SELF_TEST;
|
||||
|
||||
typedef struct ssl_quic_method_st SSL_QUIC_METHOD;
|
||||
|
||||
#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L && \
|
||||
defined(INTMAX_MAX) && defined(UINTMAX_MAX)
|
||||
typedef intmax_t ossl_intmax_t;
|
||||
|
||||
+10
-10
@@ -365,10 +365,16 @@ int X509_signature_print(BIO *bp, const X509_ALGOR *alg,
|
||||
|
||||
int X509_sign(X509 *x, EVP_PKEY *pkey, const EVP_MD *md);
|
||||
int X509_sign_ctx(X509 *x, EVP_MD_CTX *ctx);
|
||||
# ifndef OPENSSL_NO_OCSP
|
||||
int X509_http_nbio(OCSP_REQ_CTX *rctx, X509 **pcert);
|
||||
# endif
|
||||
int X509_REQ_sign(X509_REQ *x, EVP_PKEY *pkey, const EVP_MD *md);
|
||||
int X509_REQ_sign_ctx(X509_REQ *x, EVP_MD_CTX *ctx);
|
||||
int X509_CRL_sign(X509_CRL *x, EVP_PKEY *pkey, const EVP_MD *md);
|
||||
int X509_CRL_sign_ctx(X509_CRL *x, EVP_MD_CTX *ctx);
|
||||
# ifndef OPENSSL_NO_OCSP
|
||||
int X509_CRL_http_nbio(OCSP_REQ_CTX *rctx, X509_CRL **pcrl);
|
||||
# endif
|
||||
int NETSCAPE_SPKI_sign(NETSCAPE_SPKI *x, EVP_PKEY *pkey, const EVP_MD *md);
|
||||
|
||||
int X509_pubkey_digest(const X509 *data, const EVP_MD *type,
|
||||
@@ -383,13 +389,6 @@ int X509_REQ_digest(const X509_REQ *data, const EVP_MD *type,
|
||||
int X509_NAME_digest(const X509_NAME *data, const EVP_MD *type,
|
||||
unsigned char *md, unsigned int *len);
|
||||
|
||||
# if !defined(OPENSSL_NO_SOCK)
|
||||
X509 *X509_load_http(const char *url, BIO *bio, BIO *rbio, int timeout);
|
||||
# define X509_http_nbio(url) X509_load_http(url, NULL, NULL, 0)
|
||||
X509_CRL *X509_CRL_load_http(const char *url, BIO *bio, BIO *rbio, int timeout);
|
||||
# define X509_CRL_http_nbio(url) X509_CRL_load_http(url, NULL, NULL, 0)
|
||||
# endif
|
||||
|
||||
# ifndef OPENSSL_NO_STDIO
|
||||
X509 *d2i_X509_fp(FILE *fp, X509 **x509);
|
||||
int i2d_X509_fp(FILE *fp, const X509 *x509);
|
||||
@@ -519,8 +518,8 @@ DECLARE_ASN1_FUNCTIONS(X509_VAL)
|
||||
DECLARE_ASN1_FUNCTIONS(X509_PUBKEY)
|
||||
|
||||
int X509_PUBKEY_set(X509_PUBKEY **x, EVP_PKEY *pkey);
|
||||
EVP_PKEY *X509_PUBKEY_get0(X509_PUBKEY *key);
|
||||
EVP_PKEY *X509_PUBKEY_get(X509_PUBKEY *key);
|
||||
EVP_PKEY *X509_PUBKEY_get0(const X509_PUBKEY *key);
|
||||
EVP_PKEY *X509_PUBKEY_get(const X509_PUBKEY *key);
|
||||
int X509_get_pubkey_parameters(EVP_PKEY *pkey, STACK_OF(X509) *chain);
|
||||
long X509_get_pathlen(X509 *x);
|
||||
DECLARE_ASN1_ENCODE_FUNCTIONS_only(EVP_PKEY, PUBKEY)
|
||||
@@ -1052,7 +1051,8 @@ int X509_PUBKEY_set0_param(X509_PUBKEY *pub, ASN1_OBJECT *aobj,
|
||||
unsigned char *penc, int penclen);
|
||||
int X509_PUBKEY_get0_param(ASN1_OBJECT **ppkalg,
|
||||
const unsigned char **pk, int *ppklen,
|
||||
X509_ALGOR **pa, X509_PUBKEY *pub);
|
||||
X509_ALGOR **pa, const X509_PUBKEY *pub);
|
||||
int X509_PUBKEY_eq(const X509_PUBKEY *a, const X509_PUBKEY *b);
|
||||
|
||||
int X509_check_trust(X509 *x, int id, int flags);
|
||||
int X509_TRUST_get_count(void);
|
||||
|
||||
@@ -510,9 +510,9 @@ int X509_LOOKUP_shutdown(X509_LOOKUP *ctx);
|
||||
int X509_STORE_load_file(X509_STORE *ctx, const char *file);
|
||||
int X509_STORE_load_path(X509_STORE *ctx, const char *path);
|
||||
int X509_STORE_load_store(X509_STORE *ctx, const char *store);
|
||||
DEPRECATEDIN_3_0(int X509_STORE_load_locations(X509_STORE *ctx,
|
||||
int X509_STORE_load_locations(X509_STORE *ctx,
|
||||
const char *file,
|
||||
const char *dir))
|
||||
const char *dir);
|
||||
int X509_STORE_set_default_paths(X509_STORE *ctx);
|
||||
|
||||
#define X509_STORE_CTX_get_ex_new_index(l, p, newf, dupf, freef) \
|
||||
|
||||
@@ -28,6 +28,7 @@ int ERR_load_X509_strings(void);
|
||||
# define X509_F_ADD_CERT_DIR 0
|
||||
# define X509_F_BUILD_CHAIN 0
|
||||
# define X509_F_BY_FILE_CTRL 0
|
||||
# define X509_F_CACHE_OBJECTS 0
|
||||
# define X509_F_CHECK_NAME_CONSTRAINTS 0
|
||||
# define X509_F_CHECK_POLICY 0
|
||||
# define X509_F_COMMON_VERIFY_SM2 0
|
||||
@@ -68,6 +69,7 @@ int ERR_load_X509_strings(void);
|
||||
# define X509_F_X509_OBJECT_NEW 0
|
||||
# define X509_F_X509_PRINT_EX_FP 0
|
||||
# define X509_F_X509_PUBKEY_DECODE 0
|
||||
# define X509_F_X509_PUBKEY_GET 0
|
||||
# define X509_F_X509_PUBKEY_GET0 0
|
||||
# define X509_F_X509_PUBKEY_SET 0
|
||||
# define X509_F_X509_REQ_CHECK_PRIVATE_KEY 0
|
||||
@@ -101,8 +103,8 @@ int ERR_load_X509_strings(void);
|
||||
# define X509_R_BAD_X509_FILETYPE 100
|
||||
# define X509_R_BASE64_DECODE_ERROR 118
|
||||
# define X509_R_CANT_CHECK_DH_KEY 114
|
||||
# define X509_R_CERT_ALREADY_IN_HASH_TABLE 101
|
||||
# define X509_R_CERTIFICATE_VERIFICATION_FAILED 139
|
||||
# define X509_R_CERT_ALREADY_IN_HASH_TABLE 101
|
||||
# define X509_R_CRL_ALREADY_DELTA 127
|
||||
# define X509_R_CRL_VERIFY_FAILURE 131
|
||||
# define X509_R_IDP_MISMATCH 128
|
||||
|
||||
Reference in New Issue
Block a user