57 #ifndef OPENSSL_HEADER_RSA_H 58 #define OPENSSL_HEADER_RSA_H 66 #if defined(__cplusplus) 137 #define RSA_PKCS1_PADDING 1 138 #define RSA_NO_PADDING 3 139 #define RSA_PKCS1_OAEP_PADDING 4 141 #define RSA_PKCS1_PSS_PADDING 6 215 unsigned int *out_len,
RSA *rsa);
228 size_t in_len,
int padding);
242 const uint8_t *sig,
size_t sig_len,
RSA *rsa);
256 size_t in_len,
int padding);
355 uint8_t *to,
unsigned to_len,
const uint8_t *from,
unsigned from_len,
364 int *is_alloced,
int hash_nid,
365 const uint8_t *msg,
size_t msg_len);
415 size_t *out_len,
const RSA *rsa);
435 #define RSA_FLAG_OPAQUE 1 438 #define RSA_FLAG_CACHE_PUBLIC 2 441 #define RSA_FLAG_CACHE_PRIVATE 4 449 #define RSA_FLAG_NO_BLINDING 8 452 #define RSA_FLAG_EXT_PKEY 0x20 456 #define RSA_FLAG_SIGN_VER 0x40 462 #define RSA_F4 0x10001 509 const EVP_MD *Hash,
int sLen);
539 uint8_t *sigret,
unsigned int *siglen,
const RSA *rsa);
543 const uint8_t *sigbuf,
unsigned int siglen,
const RSA *rsa);
548 const uint8_t *in,
size_t in_len,
int padding);
550 const uint8_t *in,
size_t in_len,
int padding);
553 const uint8_t *in,
size_t in_len,
int padding);
556 const uint8_t *in,
size_t in_len,
int padding);
637 #if defined(__cplusplus) 652 #define RSA_R_BAD_ENCODING 100 653 #define RSA_R_BAD_E_VALUE 101 654 #define RSA_R_BAD_FIXED_HEADER_DECRYPT 102 655 #define RSA_R_BAD_PAD_BYTE_COUNT 103 656 #define RSA_R_BAD_RSA_PARAMETERS 104 657 #define RSA_R_BAD_SIGNATURE 105 658 #define RSA_R_BAD_VERSION 106 659 #define RSA_R_BLOCK_TYPE_IS_NOT_01 107 660 #define RSA_R_BN_NOT_INITIALIZED 108 661 #define RSA_R_CANNOT_RECOVER_MULTI_PRIME_KEY 109 662 #define RSA_R_CRT_PARAMS_ALREADY_GIVEN 110 663 #define RSA_R_CRT_VALUES_INCORRECT 111 664 #define RSA_R_DATA_LEN_NOT_EQUAL_TO_MOD_LEN 112 665 #define RSA_R_DATA_TOO_LARGE 113 666 #define RSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE 114 667 #define RSA_R_DATA_TOO_LARGE_FOR_MODULUS 115 668 #define RSA_R_DATA_TOO_SMALL 116 669 #define RSA_R_DATA_TOO_SMALL_FOR_KEY_SIZE 117 670 #define RSA_R_DIGEST_TOO_BIG_FOR_RSA_KEY 118 671 #define RSA_R_D_E_NOT_CONGRUENT_TO_1 119 672 #define RSA_R_EMPTY_PUBLIC_KEY 120 673 #define RSA_R_ENCODE_ERROR 121 674 #define RSA_R_FIRST_OCTET_INVALID 122 675 #define RSA_R_INCONSISTENT_SET_OF_CRT_VALUES 123 676 #define RSA_R_INTERNAL_ERROR 124 677 #define RSA_R_INVALID_MESSAGE_LENGTH 125 678 #define RSA_R_KEY_SIZE_TOO_SMALL 126 679 #define RSA_R_LAST_OCTET_INVALID 127 680 #define RSA_R_MODULUS_TOO_LARGE 128 681 #define RSA_R_MUST_HAVE_AT_LEAST_TWO_PRIMES 129 682 #define RSA_R_NO_PUBLIC_EXPONENT 130 683 #define RSA_R_NULL_BEFORE_BLOCK_MISSING 131 684 #define RSA_R_N_NOT_EQUAL_P_Q 132 685 #define RSA_R_OAEP_DECODING_ERROR 133 686 #define RSA_R_ONLY_ONE_OF_P_Q_GIVEN 134 687 #define RSA_R_OUTPUT_BUFFER_TOO_SMALL 135 688 #define RSA_R_PADDING_CHECK_FAILED 136 689 #define RSA_R_PKCS_DECODING_ERROR 137 690 #define RSA_R_SLEN_CHECK_FAILED 138 691 #define RSA_R_SLEN_RECOVERY_FAILED 139 692 #define RSA_R_TOO_LONG 140 693 #define RSA_R_TOO_MANY_ITERATIONS 141 694 #define RSA_R_UNKNOWN_ALGORITHM_TYPE 142 695 #define RSA_R_UNKNOWN_PADDING_TYPE 143 696 #define RSA_R_VALUE_MISSING 144 697 #define RSA_R_WRONG_SIGNATURE_LENGTH 145 OPENSSL_EXPORT void RSA_get0_factors(const RSA *rsa, const BIGNUM **out_p, const BIGNUM **out_q)
Definition: rsa.c:185
int CRYPTO_EX_dup(CRYPTO_EX_DATA *to, const CRYPTO_EX_DATA *from, void **from_d, int index, long argl, void *argp)
Definition: ex_data.h:188
OPENSSL_EXPORT int i2d_RSAPrivateKey(const RSA *in, uint8_t **outp)
Definition: rsa_asn1.c:416
OPENSSL_EXPORT ASN1_BIT_STRING * bits
Definition: x509v3.h:532
int(* sign_raw)(RSA *rsa, size_t *out_len, uint8_t *out, size_t max_out, const uint8_t *in, size_t in_len, int padding)
Definition: rsa.h:549
OPENSSL_EXPORT int RSA_verify(int hash_nid, const uint8_t *msg, size_t msg_len, const uint8_t *sig, size_t sig_len, RSA *rsa)
Definition: rsa.c:500
OPENSSL_EXPORT RSA * RSA_parse_private_key(CBS *cbs)
Definition: rsa_asn1.c:202
EGLStreamKHR EGLint EGLint EGLint size
Definition: eglext.h:984
OPENSSL_EXPORT unsigned RSA_size(const RSA *rsa)
Definition: rsa.c:312
OPENSSL_EXPORT int i2d_RSAPublicKey(const RSA *in, uint8_t **outp)
Definition: rsa_asn1.c:388
int(* verify)(int dtype, const uint8_t *m, unsigned int m_length, const uint8_t *sigbuf, unsigned int siglen, const RSA *rsa)
Definition: rsa.h:542
OPENSSL_EXPORT int RSA_padding_add_PKCS1_OAEP(uint8_t *to, unsigned to_len, const uint8_t *from, unsigned from_len, const uint8_t *param, unsigned param_len)
Definition: rsa_decrepit.c:98
DOMString p
Definition: WebCryptoAPI.idl:116
OPENSSL_EXPORT int RSA_marshal_private_key(CBB *cbb, const RSA *rsa)
Definition: rsa_asn1.c:306
OPENSSL_EXPORT int RSA_add_pkcs1_prefix(uint8_t **out_msg, size_t *out_msg_len, int *is_alloced, int hash_nid, const uint8_t *msg, size_t msg_len)
Definition: rsa.c:408
OPENSSL_EXPORT pem_password_cb * cb
Definition: pem.h:398
Definition: internal.h:126
OPENSSL_EXPORT RSA * RSA_parse_public_key_buggy(CBS *cbs)
Definition: rsa_asn1.c:125
OPENSSL_EXPORT int RSA_private_encrypt(size_t flen, const uint8_t *from, uint8_t *to, RSA *rsa, int padding)
Definition: rsa.c:258
int flags
Definition: rsa.h:581
OPENSSL_EXPORT int RSA_marshal_public_key(CBB *cbb, const RSA *rsa)
Definition: rsa_asn1.c:145
BN_BLINDING ** blindings
Definition: rsa.h:632
OPENSSL_EXPORT int RSA_public_encrypt(size_t flen, const uint8_t *from, uint8_t *to, RSA *rsa, int padding)
Definition: rsa.c:234
OPENSSL_EXPORT RSA * d2i_RSAPrivateKey(RSA **out, const uint8_t **inp, long len)
Definition: rsa_asn1.c:398
Definition: internal.h:67
uint8_t uint8_t CBS * cbs
Definition: internal.h:759
#define max_out
Definition: test_opus_api.c:1436
AVCFAssetRef CFArrayRef AVCFAssetLoadValuesCompletionCallback callback
Definition: AVFoundationCFSoftLinking.h:99
uint32_t CRYPTO_refcount_t
Definition: thread.h:101
OPENSSL_EXPORT void RSA_get0_crt_params(const RSA *rsa, const BIGNUM **out_dmp1, const BIGNUM **out_dmq1, const BIGNUM **out_iqmp)
Definition: rsa.c:195
OPENSSL_EXPORT int RSA_verify_raw(RSA *rsa, size_t *out_len, uint8_t *out, size_t max_out, const uint8_t *in, size_t in_len, int padding)
Definition: rsa_impl.c:429
OPENSSL_EXPORT RSA * RSA_private_key_from_bytes(const uint8_t *in, size_t in_len)
Definition: rsa_asn1.c:294
const GLfloat * m
Definition: gl2ext.h:850
OPENSSL_EXPORT int RSA_verify_PKCS1_PSS_mgf1(RSA *rsa, const uint8_t *mHash, const EVP_MD *Hash, const EVP_MD *mgf1Hash, const uint8_t *EM, int sLen)
Definition: padding.c:491
CRYPTO_refcount_t references
Definition: rsa.h:614
int(* keygen)(RSA *rsa, int bits, BIGNUM *e, BN_GENCB *cb)
Definition: rsa.h:583
std::integral_constant< std::size_t, V > size_t
Definition: Brigand.h:447
OPENSSL_EXPORT int RSA_private_key_to_bytes(uint8_t **out_bytes, size_t *out_len, const RSA *rsa)
Definition: rsa_asn1.c:356
OPENSSL_EXPORT int RSA_private_decrypt(size_t flen, const uint8_t *from, uint8_t *to, RSA *rsa, int padding)
Definition: rsa.c:282
RSA_METHOD * meth
Definition: rsa.h:599
BIGNUM * e
Definition: rsa.h:602
int(* multi_prime_keygen)(RSA *rsa, int bits, int num_primes, BIGNUM *e, BN_GENCB *cb)
Definition: rsa.h:585
OPENSSL_EXPORT int RSA_padding_add_PKCS1_PSS_mgf1(RSA *rsa, uint8_t *EM, const uint8_t *mHash, const EVP_MD *Hash, const EVP_MD *mgf1Hash, int sLen)
Definition: padding.c:596
OPENSSL_EXPORT void RSA_free(RSA *rsa)
Definition: rsa.c:125
#define STACK_OF(type)
Definition: stack.h:112
OPENSSL_EXPORT int RSA_generate_multi_prime_key(RSA *rsa, int bits, int num_primes, BIGNUM *e, BN_GENCB *cb)
Definition: rsa.c:216
OPENSSL_EXPORT int RSA_get_ex_new_index(long argl, void *argp, CRYPTO_EX_unused *unused, CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func)
Definition: rsa.c:331
OPENSSL_EXPORT RSA * RSA_parse_public_key(CBS *cbs)
Definition: rsa_asn1.c:121
int(* finish)(RSA *rsa)
Definition: rsa.h:533
int(* init)(RSA *rsa)
Definition: rsa.h:532
int
Definition: runtests.py:53
int(* decrypt)(RSA *rsa, size_t *out_len, uint8_t *out, size_t max_out, const uint8_t *in, size_t in_len, int padding)
Definition: rsa.h:552
int(* bn_mod_exp)(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, const BIGNUM *m, BN_CTX *ctx, const BN_MONT_CTX *mont)
Definition: rsa.h:577
OPENSSL_EXPORT int RSA_decrypt(RSA *rsa, size_t *out_len, uint8_t *out, size_t max_out, const uint8_t *in, size_t in_len, int padding)
Definition: rsa.c:273
OPENSSL_EXPORT int RSA_verify_PKCS1_PSS(RSA *rsa, const uint8_t *mHash, const EVP_MD *Hash, const uint8_t *EM, int sLen)
Definition: rsa_decrepit.c:93
OPENSSL_EXPORT const ASN1_OBJECT int const unsigned char int len
Definition: x509.h:1053
OPENSSL_EXPORT int RSA_generate_key_ex(RSA *rsa, int bits, BIGNUM *e, BN_GENCB *cb)
Definition: rsa.c:208
Definition: bytestring.h:286
void CRYPTO_EX_free(void *parent, void *ptr, CRYPTO_EX_DATA *ad, int index, long argl, void *argp)
Definition: ex_data.h:176
void * app_data
Definition: rsa.h:530
int int * out
Definition: gcc-loops.cpp:206
#define OPENSSL_EXPORT
Definition: base.h:160
OPENSSL_EXPORT int RSA_padding_add_PKCS1_OAEP_mgf1(uint8_t *to, unsigned to_len, const uint8_t *from, unsigned from_len, const uint8_t *param, unsigned param_len, const EVP_MD *md, const EVP_MD *mgf1md)
Definition: padding.c:320
BIGNUM * q
Definition: rsa.h:605
EGLContext ctx
Definition: eglext.h:192
OPENSSL_EXPORT RSA * RSA_public_key_from_bytes(const uint8_t *in, size_t in_len)
Definition: rsa_asn1.c:133
OPENSSL_EXPORT int RSA_public_key_to_bytes(uint8_t **out_bytes, size_t *out_len, const RSA *rsa)
Definition: rsa_asn1.c:157
unsigned char uint8_t
Definition: ptypes.h:89
BN_MONT_CTX * mont_p
Definition: rsa.h:622
OPENSSL_EXPORT void RSA_get0_key(const RSA *rsa, const BIGNUM **out_n, const BIGNUM **out_e, const BIGNUM **out_d)
Definition: rsa.c:172
Definition: bytestring.h:37
int(* supports_digest)(const RSA *rsa, const EVP_MD *md)
Definition: rsa.h:590
OPENSSL_EXPORT int RSA_sign(int hash_nid, const uint8_t *in, unsigned int in_len, uint8_t *out, unsigned int *out_len, RSA *rsa)
OPENSSL_EXPORT int RSA_blinding_on(RSA *rsa, BN_CTX *ctx)
Definition: rsa.c:828
int(* verify_raw)(RSA *rsa, size_t *out_len, uint8_t *out, size_t max_out, const uint8_t *in, size_t in_len, int padding)
Definition: rsa.h:555
OPENSSL_EXPORT RSA * RSAPrivateKey_dup(const RSA *rsa)
Definition: rsa_asn1.c:437
BIGNUM * iqmp
Definition: rsa.h:608
OPENSSL_EXPORT int RSA_set_ex_data(RSA *r, int idx, void *arg)
Definition: rsa.c:341
OPENSSL_EXPORT int RSA_check_key(const RSA *rsa)
Definition: rsa.c:555
BIGNUM * dmp1
Definition: rsa.h:606
int flags
Definition: rsa.h:615
GLboolean GLboolean GLboolean GLboolean a
Definition: gl2ext.h:306
unsigned char * blindings_inuse
Definition: rsa.h:633
int(* mod_exp)(BIGNUM *r0, const BIGNUM *I, RSA *rsa, BN_CTX *ctx)
Definition: rsa.h:574
int(* private_transform)(RSA *rsa, uint8_t *out, const uint8_t *in, size_t len)
Definition: rsa.h:570
OPENSSL_EXPORT int RSA_supports_digest(const RSA *rsa, const EVP_MD *md)
Definition: rsa.c:324
OPENSSL_EXPORT int RSA_padding_add_PKCS1_PSS(RSA *rsa, uint8_t *EM, const uint8_t *mHash, const EVP_MD *Hash, int sLen)
Definition: rsa_decrepit.c:88
BIGNUM * n
Definition: rsa.h:601
int(* sign)(int type, const uint8_t *m, unsigned int m_length, uint8_t *sigret, unsigned int *siglen, const RSA *rsa)
Definition: rsa.h:538
BIGNUM * d
Definition: rsa.h:603
int(* encrypt)(RSA *rsa, size_t *out_len, uint8_t *out, size_t max_out, const uint8_t *in, size_t in_len, int padding)
Definition: rsa.h:547
unsigned num_blindings
Definition: rsa.h:628
EGLenum type
Definition: eglext.h:63
CRYPTO_EX_DATA ex_data
Definition: rsa.h:613
BIGNUM * dmq1
Definition: rsa.h:607
Definition: blinding.c:122
OPENSSL_EXPORT int RSA_recover_crt_params(RSA *rsa)
Definition: rsa.c:686
OPENSSL_EXPORT RSA * d2i_RSAPublicKey(RSA **out, const uint8_t **inp, long len)
Definition: rsa_asn1.c:370
OPENSSL_EXPORT RSA * RSA_generate_key(int bits, unsigned long e, void *callback, void *cb_arg)
Definition: rsa_decrepit.c:64
Definition: bytestring_test.cc:31
GLint param
Definition: gl2.h:471
OPENSSL_EXPORT int RSA_sign_raw(RSA *rsa, size_t *out_len, uint8_t *out, size_t max_out, const uint8_t *in, size_t in_len, int padding)
Definition: rsa.c:249
OPENSSL_EXPORT int RSA_up_ref(RSA *rsa)
Definition: rsa.c:167
DOMString e
Definition: WebCryptoAPI.idl:115
OPENSSL_EXPORT int RSA_encrypt(RSA *rsa, size_t *out_len, uint8_t *out, size_t max_out, const uint8_t *in, size_t in_len, int padding)
Definition: rsa.c:225
BIGNUM * p
Definition: rsa.h:604
#define I(b, c, d)
Definition: md5.c:128
Definition: ex_data.h:204
OPENSSL_EXPORT RSA * RSA_new(void)
Definition: rsa.c:76
CRYPTO_MUTEX lock
Definition: rsa.h:617
OPENSSL_EXPORT RSA * RSAPublicKey_dup(const RSA *rsa)
Definition: rsa_asn1.c:426
BN_MONT_CTX * mont_n
Definition: rsa.h:621
OPENSSL_EXPORT void * RSA_get_ex_data(const RSA *r, int idx)
Definition: rsa.c:345
OPENSSL_EXPORT int RSA_is_opaque(const RSA *rsa)
Definition: rsa.c:320
BN_MONT_CTX * mont_q
Definition: rsa.h:623
OPENSSL_EXPORT RSA * RSA_new_method(const ENGINE *engine)
Definition: rsa.c:78
OPENSSL_EXPORT int RSA_public_decrypt(size_t flen, const uint8_t *from, uint8_t *to, RSA *rsa, int padding)
Definition: rsa.c:297
int CRYPTO_EX_unused
Definition: ex_data.h:202
GLboolean r
Definition: gl2ext.h:306