@ -18,59 +18,58 @@
# include <openssl / opensslconf.h>
# ifndef OPENSSL_NO_RSA
# include <openssl / asn1.h>
# include <openssl / bio.h>
# include <openssl / crypto.h>
# include <openssl / types.h>
# ifndef OPENSSL_NO_DEPRECATED_1_1_0
# include <openssl / bn.h>
# endif
# include <openssl / rsaerr.h>
# include <openssl / safestack.h>
# include <openssl / asn1.h>
# include <openssl / bio.h>
# include <openssl / crypto.h>
# include <openssl / types.h>
# ifndef OPENSSL_NO_DEPRECATED_1_1_0
# include <openssl / bn.h>
# endif
# include <openssl / rsaerr.h>
# include <openssl / safestack.h>
# ifdef __cplusplus
# ifdef __cplusplus
extern " C " {
# endif
# endif
# ifndef OPENSSL_RSA_MAX_MODULUS_BITS
# define OPENSSL_RSA_MAX_MODULUS_BITS 16384
# endif
# ifndef OPENSSL_RSA_MAX_MODULUS_BITS
# define OPENSSL_RSA_MAX_MODULUS_BITS 16384
# endif
# define RSA_3 0x3L
# define RSA_F4 0x10001L
# define RSA_3 0x3L
# define RSA_F4 0x10001L
# ifndef OPENSSL_NO_DEPRECATED_3_0
# ifndef OPENSSL_NO_DEPRECATED_3_0
/* The types RSA and RSA_METHOD are defined in ossl_typ.h */
# define OPENSSL_RSA_FIPS_MIN_MODULUS_BITS 2048
# define OPENSSL_RSA_FIPS_MIN_MODULUS_BITS 2048
# ifndef OPENSSL_RSA_SMALL_MODULUS_BITS
# define OPENSSL_RSA_SMALL_MODULUS_BITS 3072
# endif
# ifndef OPENSSL_RSA_SMALL_MODULUS_BITS
# define OPENSSL_RSA_SMALL_MODULUS_BITS 3072
# endif
/* exponent limit enforced for "large" modulus only */
# ifndef OPENSSL_RSA_MAX_PUBEXP_BITS
# define OPENSSL_RSA_MAX_PUBEXP_BITS 64
# endif
# ifndef OPENSSL_RSA_MAX_PUBEXP_BITS
# define OPENSSL_RSA_MAX_PUBEXP_BITS 64
# endif
/* based on RFC 8017 appendix A.1.2 */
# define RSA_ASN1_VERSION_DEFAULT 0
# define RSA_ASN1_VERSION_MULTI 1
# define RSA_ASN1_VERSION_DEFAULT 0
# define RSA_ASN1_VERSION_MULTI 1
# define RSA_DEFAULT_PRIME_NUM 2
# define RSA_DEFAULT_PRIME_NUM 2
# define RSA_METHOD_FLAG_NO_CHECK 0x0001
# define RSA_FLAG_CACHE_PUBLIC 0x0002
# define RSA_FLAG_CACHE_PRIVATE 0x0004
# define RSA_FLAG_BLINDING 0x0008
# define RSA_FLAG_THREAD_SAFE 0x0010
# define RSA_METHOD_FLAG_NO_CHECK 0x0001
# define RSA_FLAG_CACHE_PUBLIC 0x0002
# define RSA_FLAG_CACHE_PRIVATE 0x0004
# define RSA_FLAG_BLINDING 0x0008
# define RSA_FLAG_THREAD_SAFE 0x0010
/*
* This flag means the private key operations will be handled by rsa_mod_exp
* and that they do not depend on the private key components being present :
* for example a key stored in external hardware . Without this flag
* bn_mod_exp gets called when private key components are absent .
*/
# define RSA_FLAG_EXT_PKEY 0x0020
# define RSA_FLAG_EXT_PKEY 0x0020
/*
* new with 0.9 .6 j and 0.9 .7 b ; the built - in
@ -78,14 +77,14 @@ extern "C" {
* default ( ignoring RSA_FLAG_BLINDING ) ,
* but other engines might not need it
*/
# define RSA_FLAG_NO_BLINDING 0x0080
# endif /* OPENSSL_NO_DEPRECATED_3_0 */
# define RSA_FLAG_NO_BLINDING 0x0080
# endif /* OPENSSL_NO_DEPRECATED_3_0 */
/*
* Does nothing . Previously this switched off constant time behaviour .
*/
# ifndef OPENSSL_NO_DEPRECATED_1_1_0
# define RSA_FLAG_NO_CONSTTIME 0x0000
# endif
# ifndef OPENSSL_NO_DEPRECATED_1_1_0
# define RSA_FLAG_NO_CONSTTIME 0x0000
# endif
/* deprecated name for the flag*/
/*
* new with 0.9 .7 h ; the built - in RSA
@ -95,9 +94,9 @@ extern "C" {
* faster variable sliding window method to
* be used for all exponents .
*/
# ifndef OPENSSL_NO_DEPRECATED_0_9_8
# define RSA_FLAG_NO_EXP_CONSTTIME RSA_FLAG_NO_CONSTTIME
# endif
# ifndef OPENSSL_NO_DEPRECATED_0_9_8
# define RSA_FLAG_NO_EXP_CONSTTIME RSA_FLAG_NO_CONSTTIME
# endif
/*-
* New with 3.0 : use part of the flags to denote exact type of RSA key ,
@ -112,10 +111,10 @@ extern "C" {
*
* 4 bits allow for 16 types
*/
# define RSA_FLAG_TYPE_MASK 0xF000
# define RSA_FLAG_TYPE_RSA 0x0000
# define RSA_FLAG_TYPE_RSASSAPSS 0x1000
# define RSA_FLAG_TYPE_RSAESOAEP 0x2000
# define RSA_FLAG_TYPE_MASK 0xF000
# define RSA_FLAG_TYPE_RSA 0x0000
# define RSA_FLAG_TYPE_RSASSAPSS 0x1000
# define RSA_FLAG_TYPE_RSAESOAEP 0x2000
int EVP_PKEY_CTX_set_rsa_padding ( EVP_PKEY_CTX * ctx , int pad_mode ) ;
int EVP_PKEY_CTX_get_rsa_padding ( EVP_PKEY_CTX * ctx , int * pad_mode ) ;
@ -127,19 +126,19 @@ int EVP_PKEY_CTX_set_rsa_keygen_bits(EVP_PKEY_CTX *ctx, int bits);
int EVP_PKEY_CTX_set1_rsa_keygen_pubexp ( EVP_PKEY_CTX * ctx , BIGNUM * pubexp ) ;
int EVP_PKEY_CTX_set_rsa_keygen_primes ( EVP_PKEY_CTX * ctx , int primes ) ;
int EVP_PKEY_CTX_set_rsa_pss_keygen_saltlen ( EVP_PKEY_CTX * ctx , int saltlen ) ;
# ifndef OPENSSL_NO_DEPRECATED_3_0
# ifndef OPENSSL_NO_DEPRECATED_3_0
OSSL_DEPRECATEDIN_3_0
int EVP_PKEY_CTX_set_rsa_keygen_pubexp ( EVP_PKEY_CTX * ctx , BIGNUM * pubexp ) ;
# endif
# endif
/* Salt length matches digest */
# define RSA_PSS_SALTLEN_DIGEST -1
# define RSA_PSS_SALTLEN_DIGEST -1
/* Verify only: auto detect salt length */
# define RSA_PSS_SALTLEN_AUTO -2
# define RSA_PSS_SALTLEN_AUTO -2
/* Set salt length to maximum possible */
# define RSA_PSS_SALTLEN_MAX -3
# define RSA_PSS_SALTLEN_MAX -3
/* Old compatible max salt length for sign only */
# define RSA_PSS_SALTLEN_MAX_SIGN -2
# define RSA_PSS_SALTLEN_MAX_SIGN -2
int EVP_PKEY_CTX_set_rsa_mgf1_md ( EVP_PKEY_CTX * ctx , const EVP_MD * md ) ;
int EVP_PKEY_CTX_set_rsa_mgf1_md_name ( EVP_PKEY_CTX * ctx , const char * mdname ,
@ -160,47 +159,47 @@ int EVP_PKEY_CTX_get_rsa_oaep_md_name(EVP_PKEY_CTX *ctx, char *name,
int EVP_PKEY_CTX_set0_rsa_oaep_label ( EVP_PKEY_CTX * ctx , void * label , int llen ) ;
int EVP_PKEY_CTX_get0_rsa_oaep_label ( EVP_PKEY_CTX * ctx , unsigned char * * label ) ;
# define EVP_PKEY_CTX_set_rsa_pss_keygen_md(ctx, md) \
# define EVP_PKEY_CTX_set_rsa_pss_keygen_md(ctx, md) \
EVP_PKEY_CTX_ctrl ( ctx , EVP_PKEY_RSA_PSS , \
EVP_PKEY_OP_KEYGEN , EVP_PKEY_CTRL_MD , \
0 , ( void * ) ( md ) )
# define EVP_PKEY_CTRL_RSA_PADDING (EVP_PKEY_ALG_CTRL + 1)
# define EVP_PKEY_CTRL_RSA_PSS_SALTLEN (EVP_PKEY_ALG_CTRL + 2)
# define EVP_PKEY_CTRL_RSA_PADDING (EVP_PKEY_ALG_CTRL + 1)
# define EVP_PKEY_CTRL_RSA_PSS_SALTLEN (EVP_PKEY_ALG_CTRL + 2)
# define EVP_PKEY_CTRL_RSA_KEYGEN_BITS (EVP_PKEY_ALG_CTRL + 3)
# define EVP_PKEY_CTRL_RSA_KEYGEN_PUBEXP (EVP_PKEY_ALG_CTRL + 4)
# define EVP_PKEY_CTRL_RSA_MGF1_MD (EVP_PKEY_ALG_CTRL + 5)
# define EVP_PKEY_CTRL_RSA_KEYGEN_BITS (EVP_PKEY_ALG_CTRL + 3)
# define EVP_PKEY_CTRL_RSA_KEYGEN_PUBEXP (EVP_PKEY_ALG_CTRL + 4)
# define EVP_PKEY_CTRL_RSA_MGF1_MD (EVP_PKEY_ALG_CTRL + 5)
# define EVP_PKEY_CTRL_GET_RSA_PADDING (EVP_PKEY_ALG_CTRL + 6)
# define EVP_PKEY_CTRL_GET_RSA_PSS_SALTLEN (EVP_PKEY_ALG_CTRL + 7)
# define EVP_PKEY_CTRL_GET_RSA_MGF1_MD (EVP_PKEY_ALG_CTRL + 8)
# define EVP_PKEY_CTRL_GET_RSA_PADDING (EVP_PKEY_ALG_CTRL + 6)
# define EVP_PKEY_CTRL_GET_RSA_PSS_SALTLEN (EVP_PKEY_ALG_CTRL + 7)
# define EVP_PKEY_CTRL_GET_RSA_MGF1_MD (EVP_PKEY_ALG_CTRL + 8)
# define EVP_PKEY_CTRL_RSA_OAEP_MD (EVP_PKEY_ALG_CTRL + 9)
# define EVP_PKEY_CTRL_RSA_OAEP_LABEL (EVP_PKEY_ALG_CTRL + 10)
# define EVP_PKEY_CTRL_RSA_OAEP_MD (EVP_PKEY_ALG_CTRL + 9)
# define EVP_PKEY_CTRL_RSA_OAEP_LABEL (EVP_PKEY_ALG_CTRL + 10)
# define EVP_PKEY_CTRL_GET_RSA_OAEP_MD (EVP_PKEY_ALG_CTRL + 11)
# define EVP_PKEY_CTRL_GET_RSA_OAEP_LABEL (EVP_PKEY_ALG_CTRL + 12)
# define EVP_PKEY_CTRL_GET_RSA_OAEP_MD (EVP_PKEY_ALG_CTRL + 11)
# define EVP_PKEY_CTRL_GET_RSA_OAEP_LABEL (EVP_PKEY_ALG_CTRL + 12)
# define EVP_PKEY_CTRL_RSA_KEYGEN_PRIMES (EVP_PKEY_ALG_CTRL + 13)
# define EVP_PKEY_CTRL_RSA_KEYGEN_PRIMES (EVP_PKEY_ALG_CTRL + 13)
# define RSA_PKCS1_PADDING 1
# define RSA_SSLV23_PADDING 2
# define RSA_NO_PADDING 3
# define RSA_PKCS1_OAEP_PADDING 4
# define RSA_X931_PADDING 5
# define RSA_PKCS1_PADDING 1
# define RSA_SSLV23_PADDING 2
# define RSA_NO_PADDING 3
# define RSA_PKCS1_OAEP_PADDING 4
# define RSA_X931_PADDING 5
/* EVP_PKEY_ only */
# define RSA_PKCS1_PSS_PADDING 6
# define RSA_PKCS1_WITH_TLS_PADDING 7
# define RSA_PKCS1_PSS_PADDING 6
# define RSA_PKCS1_WITH_TLS_PADDING 7
# define RSA_PKCS1_PADDING_SIZE 11
# define RSA_PKCS1_PADDING_SIZE 11
# define RSA_set_app_data(s,arg) RSA_set_ex_data(s,0,arg)
# define RSA_get_app_data(s) RSA_get_ex_data(s,0)
# define RSA_set_app_data(s,arg) RSA_set_ex_data(s,0,arg)
# define RSA_get_app_data(s) RSA_get_ex_data(s,0)
# ifndef OPENSSL_NO_DEPRECATED_3_0
# ifndef OPENSSL_NO_DEPRECATED_3_0
OSSL_DEPRECATEDIN_3_0 RSA * RSA_new ( void ) ;
OSSL_DEPRECATEDIN_3_0 RSA * RSA_new_method ( ENGINE * engine ) ;
OSSL_DEPRECATEDIN_3_0 int RSA_bits ( const RSA * rsa ) ;
@ -246,17 +245,17 @@ OSSL_DEPRECATEDIN_3_0 int RSA_test_flags(const RSA *r, int flags);
OSSL_DEPRECATEDIN_3_0 void RSA_set_flags ( RSA * r , int flags ) ;
OSSL_DEPRECATEDIN_3_0 int RSA_get_version ( RSA * r ) ;
OSSL_DEPRECATEDIN_3_0 ENGINE * RSA_get0_engine ( const RSA * r ) ;
# endif /* !OPENSSL_NO_DEPRECATED_3_0 */
# endif /* !OPENSSL_NO_DEPRECATED_3_0 */
/* Deprecated version */
# ifndef OPENSSL_NO_DEPRECATED_0_9_8
# ifndef OPENSSL_NO_DEPRECATED_0_9_8
OSSL_DEPRECATEDIN_0_9_8 RSA * RSA_generate_key ( int bits , unsigned long e , void
( * callback ) ( int , int , void * ) ,
void * cb_arg ) ;
# endif
# endif
/* New version */
# ifndef OPENSSL_NO_DEPRECATED_3_0
# ifndef OPENSSL_NO_DEPRECATED_3_0
OSSL_DEPRECATEDIN_3_0 int RSA_generate_key_ex ( RSA * rsa , int bits , BIGNUM * e ,
BN_GENCB * cb ) ;
/* Multi-prime version */
@ -308,7 +307,7 @@ DECLARE_ASN1_ENCODE_FUNCTIONS_name_attr(OSSL_DEPRECATEDIN_3_0,
RSA , RSAPublicKey )
DECLARE_ASN1_ENCODE_FUNCTIONS_name_attr ( OSSL_DEPRECATEDIN_3_0 ,
RSA , RSAPrivateKey )
# endif /* !OPENSSL_NO_DEPRECATED_3_0 */
# endif /* !OPENSSL_NO_DEPRECATED_3_0 */
int RSA_pkey_ctx_ctrl ( EVP_PKEY_CTX * ctx , int optype , int cmd , int p1 , void * p2 ) ;
@ -333,10 +332,10 @@ typedef struct rsa_oaep_params_st {
DECLARE_ASN1_FUNCTIONS ( RSA_OAEP_PARAMS )
# ifndef OPENSSL_NO_DEPRECATED_3_0
# ifndef OPENSSL_NO_STDIO
# ifndef OPENSSL_NO_DEPRECATED_3_0
# ifndef OPENSSL_NO_STDIO
OSSL_DEPRECATEDIN_3_0 int RSA_print_fp ( FILE * fp , const RSA * r , int offset ) ;
# endif
# endif
OSSL_DEPRECATEDIN_3_0 int RSA_print ( BIO * bp , const RSA * r , int offset ) ;
@ -446,7 +445,7 @@ int RSA_padding_add_PKCS1_PSS_mgf1(RSA *rsa, unsigned char *EM,
const EVP_MD * Hash , const EVP_MD * mgf1Hash ,
int sLen ) ;
# define RSA_get_ex_new_index(l, p, newf, dupf, freef) \
# define RSA_get_ex_new_index(l, p, newf, dupf, freef) \
CRYPTO_get_ex_new_index ( CRYPTO_EX_INDEX_RSA , l , p , newf , dupf , freef )
OSSL_DEPRECATEDIN_3_0 int RSA_set_ex_data ( RSA * r , int idx , void * arg ) ;
OSSL_DEPRECATEDIN_3_0 void * RSA_get_ex_data ( const RSA * r , int idx ) ;
@ -461,7 +460,7 @@ DECLARE_ASN1_DUP_FUNCTION_name_attr(OSSL_DEPRECATEDIN_3_0, RSA, RSAPrivateKey)
* result is compliant .
*/
# define RSA_FLAG_FIPS_METHOD 0x0400
# define RSA_FLAG_FIPS_METHOD 0x0400
/*
* If this flag is set the operations normally disabled in FIPS mode are
@ -469,12 +468,12 @@ DECLARE_ASN1_DUP_FUNCTION_name_attr(OSSL_DEPRECATEDIN_3_0, RSA, RSAPrivateKey)
* usage is compliant .
*/
# define RSA_FLAG_NON_FIPS_ALLOW 0x0400
# define RSA_FLAG_NON_FIPS_ALLOW 0x0400
/*
* Application has decided PRNG is good enough to generate a key : don ' t
* check .
*/
# define RSA_FLAG_CHECKED 0x0800
# define RSA_FLAG_CHECKED 0x0800
OSSL_DEPRECATEDIN_3_0 RSA_METHOD * RSA_meth_new ( const char * name , int flags ) ;
OSSL_DEPRECATEDIN_3_0 void RSA_meth_free ( RSA_METHOD * meth ) ;
@ -604,8 +603,7 @@ int RSA_meth_set_multi_prime_keygen(RSA_METHOD *meth,
BN_GENCB * cb ) ) ;
# endif /* !OPENSSL_NO_DEPRECATED_3_0 */
# ifdef __cplusplus
# ifdef __cplusplus
}
# endif
# endif
# endif