@ -17,21 +17,74 @@
# endif
# include <openssl / opensslconf.h>
# include <openssl / types.h>
# ifdef __cplusplus
extern " C " {
# endif
# include <stdlib.h>
/* DH parameter generation types used by EVP_PKEY_CTX_set_dh_paramgen_type() */
# define DH_PARAMGEN_TYPE_GENERATOR 0 /* Use a safe prime generator */
# define DH_PARAMGEN_TYPE_FIPS_186_2 1 /* Use FIPS186-2 standard */
# define DH_PARAMGEN_TYPE_FIPS_186_4 2 /* Use FIPS186-4 standard */
# define DH_PARAMGEN_TYPE_GROUP 3 /* Use a named safe prime group */
int EVP_PKEY_CTX_set_dh_paramgen_type ( EVP_PKEY_CTX * ctx , int typ ) ;
int EVP_PKEY_CTX_set_dh_paramgen_gindex ( EVP_PKEY_CTX * ctx , int gindex ) ;
int EVP_PKEY_CTX_set_dh_paramgen_seed ( EVP_PKEY_CTX * ctx ,
const unsigned char * seed ,
size_t seedlen ) ;
int EVP_PKEY_CTX_set_dh_paramgen_prime_len ( EVP_PKEY_CTX * ctx , int pbits ) ;
int EVP_PKEY_CTX_set_dh_paramgen_subprime_len ( EVP_PKEY_CTX * ctx , int qlen ) ;
int EVP_PKEY_CTX_set_dh_paramgen_generator ( EVP_PKEY_CTX * ctx , int gen ) ;
int EVP_PKEY_CTX_set_dh_nid ( EVP_PKEY_CTX * ctx , int nid ) ;
int EVP_PKEY_CTX_set_dh_rfc5114 ( EVP_PKEY_CTX * ctx , int gen ) ;
int EVP_PKEY_CTX_set_dhx_rfc5114 ( EVP_PKEY_CTX * ctx , int gen ) ;
int EVP_PKEY_CTX_set_dh_pad ( EVP_PKEY_CTX * ctx , int pad ) ;
int EVP_PKEY_CTX_set_dh_kdf_type ( EVP_PKEY_CTX * ctx , int kdf ) ;
int EVP_PKEY_CTX_get_dh_kdf_type ( EVP_PKEY_CTX * ctx ) ;
int EVP_PKEY_CTX_set0_dh_kdf_oid ( EVP_PKEY_CTX * ctx , ASN1_OBJECT * oid ) ;
int EVP_PKEY_CTX_get0_dh_kdf_oid ( EVP_PKEY_CTX * ctx , ASN1_OBJECT * * oid ) ;
int EVP_PKEY_CTX_set_dh_kdf_md ( EVP_PKEY_CTX * ctx , const EVP_MD * md ) ;
int EVP_PKEY_CTX_get_dh_kdf_md ( EVP_PKEY_CTX * ctx , const EVP_MD * * md ) ;
int EVP_PKEY_CTX_set_dh_kdf_outlen ( EVP_PKEY_CTX * ctx , int len ) ;
int EVP_PKEY_CTX_get_dh_kdf_outlen ( EVP_PKEY_CTX * ctx , int * len ) ;
int EVP_PKEY_CTX_set0_dh_kdf_ukm ( EVP_PKEY_CTX * ctx , unsigned char * ukm , int len ) ;
int EVP_PKEY_CTX_get0_dh_kdf_ukm ( EVP_PKEY_CTX * ctx , unsigned char * * ukm ) ;
# define EVP_PKEY_CTRL_DH_PARAMGEN_PRIME_LEN (EVP_PKEY_ALG_CTRL + 1)
# define EVP_PKEY_CTRL_DH_PARAMGEN_GENERATOR (EVP_PKEY_ALG_CTRL + 2)
# define EVP_PKEY_CTRL_DH_RFC5114 (EVP_PKEY_ALG_CTRL + 3)
# define EVP_PKEY_CTRL_DH_PARAMGEN_SUBPRIME_LEN (EVP_PKEY_ALG_CTRL + 4)
# define EVP_PKEY_CTRL_DH_PARAMGEN_TYPE (EVP_PKEY_ALG_CTRL + 5)
# define EVP_PKEY_CTRL_DH_KDF_TYPE (EVP_PKEY_ALG_CTRL + 6)
# define EVP_PKEY_CTRL_DH_KDF_MD (EVP_PKEY_ALG_CTRL + 7)
# define EVP_PKEY_CTRL_GET_DH_KDF_MD (EVP_PKEY_ALG_CTRL + 8)
# define EVP_PKEY_CTRL_DH_KDF_OUTLEN (EVP_PKEY_ALG_CTRL + 9)
# define EVP_PKEY_CTRL_GET_DH_KDF_OUTLEN (EVP_PKEY_ALG_CTRL + 10)
# define EVP_PKEY_CTRL_DH_KDF_UKM (EVP_PKEY_ALG_CTRL + 11)
# define EVP_PKEY_CTRL_GET_DH_KDF_UKM (EVP_PKEY_ALG_CTRL + 12)
# define EVP_PKEY_CTRL_DH_KDF_OID (EVP_PKEY_ALG_CTRL + 13)
# define EVP_PKEY_CTRL_GET_DH_KDF_OID (EVP_PKEY_ALG_CTRL + 14)
# define EVP_PKEY_CTRL_DH_NID (EVP_PKEY_ALG_CTRL + 15)
# define EVP_PKEY_CTRL_DH_PAD (EVP_PKEY_ALG_CTRL + 16)
/* KDF types */
# define EVP_PKEY_DH_KDF_NONE 1
# define EVP_PKEY_DH_KDF_X9_42 2
# ifndef OPENSSL_NO_DH
# include <openssl / e_os2.h>
# include <openssl / bio.h>
# include <openssl / asn1.h>
# include <openssl / types.h>
# ifndef OPENSSL_NO_DEPRECATED_1_1_0
# include <openssl / bn.h>
# endif
# include <openssl / dherr.h>
# ifdef __cplusplus
extern " C " {
# endif
# ifndef OPENSSL_DH_MAX_MODULUS_BITS
# define OPENSSL_DH_MAX_MODULUS_BITS 10000
# endif
@ -107,12 +160,6 @@ DECLARE_ASN1_ITEM(DHparams)
*/
# define DH_CHECK_P_NOT_STRONG_PRIME DH_CHECK_P_NOT_SAFE_PRIME
/* DH parameter generation types used by EVP_PKEY_CTX_set_dh_paramgen_type() */
# define DH_PARAMGEN_TYPE_GENERATOR 0 /* Use a safe prime generator */
# define DH_PARAMGEN_TYPE_FIPS_186_2 1 /* Use FIPS186-2 standard */
# define DH_PARAMGEN_TYPE_FIPS_186_4 2 /* Use FIPS186-4 standard */
# define DH_PARAMGEN_TYPE_GROUP 3 /* Use a named safe prime group */
# define d2i_DHparams_fp(fp, x) \
( DH * ) ASN1_d2i_fp ( ( char * ( * ) ( ) ) DH_new , \
( char * ( * ) ( ) ) d2i_DHparams , \
@ -271,53 +318,8 @@ OSSL_DEPRECATEDIN_0_9_8 DH *DH_generate_parameters(int prime_len, int generator,
void * cb_arg ) ;
# endif
int EVP_PKEY_CTX_set_dh_paramgen_type ( EVP_PKEY_CTX * ctx , int typ ) ;
int EVP_PKEY_CTX_set_dh_paramgen_gindex ( EVP_PKEY_CTX * ctx , int gindex ) ;
int EVP_PKEY_CTX_set_dh_paramgen_seed ( EVP_PKEY_CTX * ctx ,
const unsigned char * seed ,
size_t seedlen ) ;
int EVP_PKEY_CTX_set_dh_paramgen_prime_len ( EVP_PKEY_CTX * ctx , int pbits ) ;
int EVP_PKEY_CTX_set_dh_paramgen_subprime_len ( EVP_PKEY_CTX * ctx , int qlen ) ;
int EVP_PKEY_CTX_set_dh_paramgen_generator ( EVP_PKEY_CTX * ctx , int gen ) ;
int EVP_PKEY_CTX_set_dh_nid ( EVP_PKEY_CTX * ctx , int nid ) ;
int EVP_PKEY_CTX_set_dh_rfc5114 ( EVP_PKEY_CTX * ctx , int gen ) ;
int EVP_PKEY_CTX_set_dhx_rfc5114 ( EVP_PKEY_CTX * ctx , int gen ) ;
int EVP_PKEY_CTX_set_dh_pad ( EVP_PKEY_CTX * ctx , int pad ) ;
int EVP_PKEY_CTX_set_dh_kdf_type ( EVP_PKEY_CTX * ctx , int kdf ) ;
int EVP_PKEY_CTX_get_dh_kdf_type ( EVP_PKEY_CTX * ctx ) ;
int EVP_PKEY_CTX_set0_dh_kdf_oid ( EVP_PKEY_CTX * ctx , ASN1_OBJECT * oid ) ;
int EVP_PKEY_CTX_get0_dh_kdf_oid ( EVP_PKEY_CTX * ctx , ASN1_OBJECT * * oid ) ;
int EVP_PKEY_CTX_set_dh_kdf_md ( EVP_PKEY_CTX * ctx , const EVP_MD * md ) ;
int EVP_PKEY_CTX_get_dh_kdf_md ( EVP_PKEY_CTX * ctx , const EVP_MD * * md ) ;
int EVP_PKEY_CTX_set_dh_kdf_outlen ( EVP_PKEY_CTX * ctx , int len ) ;
int EVP_PKEY_CTX_get_dh_kdf_outlen ( EVP_PKEY_CTX * ctx , int * len ) ;
int EVP_PKEY_CTX_set0_dh_kdf_ukm ( EVP_PKEY_CTX * ctx , unsigned char * ukm , int len ) ;
int EVP_PKEY_CTX_get0_dh_kdf_ukm ( EVP_PKEY_CTX * ctx , unsigned char * * ukm ) ;
# define EVP_PKEY_CTRL_DH_PARAMGEN_PRIME_LEN (EVP_PKEY_ALG_CTRL + 1)
# define EVP_PKEY_CTRL_DH_PARAMGEN_GENERATOR (EVP_PKEY_ALG_CTRL + 2)
# define EVP_PKEY_CTRL_DH_RFC5114 (EVP_PKEY_ALG_CTRL + 3)
# define EVP_PKEY_CTRL_DH_PARAMGEN_SUBPRIME_LEN (EVP_PKEY_ALG_CTRL + 4)
# define EVP_PKEY_CTRL_DH_PARAMGEN_TYPE (EVP_PKEY_ALG_CTRL + 5)
# define EVP_PKEY_CTRL_DH_KDF_TYPE (EVP_PKEY_ALG_CTRL + 6)
# define EVP_PKEY_CTRL_DH_KDF_MD (EVP_PKEY_ALG_CTRL + 7)
# define EVP_PKEY_CTRL_GET_DH_KDF_MD (EVP_PKEY_ALG_CTRL + 8)
# define EVP_PKEY_CTRL_DH_KDF_OUTLEN (EVP_PKEY_ALG_CTRL + 9)
# define EVP_PKEY_CTRL_GET_DH_KDF_OUTLEN (EVP_PKEY_ALG_CTRL + 10)
# define EVP_PKEY_CTRL_DH_KDF_UKM (EVP_PKEY_ALG_CTRL + 11)
# define EVP_PKEY_CTRL_GET_DH_KDF_UKM (EVP_PKEY_ALG_CTRL + 12)
# define EVP_PKEY_CTRL_DH_KDF_OID (EVP_PKEY_ALG_CTRL + 13)
# define EVP_PKEY_CTRL_GET_DH_KDF_OID (EVP_PKEY_ALG_CTRL + 14)
# define EVP_PKEY_CTRL_DH_NID (EVP_PKEY_ALG_CTRL + 15)
# define EVP_PKEY_CTRL_DH_PAD (EVP_PKEY_ALG_CTRL + 16)
/* KDF types */
# define EVP_PKEY_DH_KDF_NONE 1
# define EVP_PKEY_DH_KDF_X9_42 2
# ifdef __cplusplus
# endif
# ifdef __cplusplus
}
# endif
# endif
# endif