123 #ifndef OPENSSL_HEADER_BN_H 124 #define OPENSSL_HEADER_BN_H 132 #if defined(__cplusplus) 148 #if defined(OPENSSL_64_BIT) 149 #define BN_ULONG uint64_t 151 #define BN_DEC_FMT1 "%" PRIu64 152 #define BN_DEC_FMT2 "%019" PRIu64 153 #define BN_HEX_FMT1 "%" PRIx64 154 #elif defined(OPENSSL_32_BIT) 155 #define BN_ULONG uint32_t 157 #define BN_DEC_FMT1 "%" PRIu32 158 #define BN_DEC_FMT2 "%09" PRIu32 159 #define BN_HEX_FMT1 "%" PRIx32 161 #error "Must define either OPENSSL_32_BIT or OPENSSL_64_BIT" 517 #define BN_mod(rem, numerator, divisor, ctx) \ 518 BN_div(NULL, (rem), (numerator), (divisor), (ctx)) 585 #define BN_RAND_TOP_ANY -1 586 #define BN_RAND_TOP_ONE 0 587 #define BN_RAND_TOP_TWO 1 590 #define BN_RAND_BOTTOM_ANY 0 591 #define BN_RAND_BOTTOM_ODD 1 618 const BIGNUM *max_exclusive);
652 #define BN_GENCB_GENERATED 0 653 #define BN_GENCB_PRIME_TEST 1 663 int (*
f)(
int event,
int n,
690 #define BN_prime_checks 0 910 #define BN_FLG_MALLOCED 0x01 911 #define BN_FLG_STATIC_DATA 0x02 915 #define BN_FLG_CONSTTIME 0x04 918 #if defined(__cplusplus) 935 #define BN_R_ARG2_LT_ARG3 100 936 #define BN_R_BAD_RECIPROCAL 101 937 #define BN_R_BIGNUM_TOO_LONG 102 938 #define BN_R_BITS_TOO_SMALL 103 939 #define BN_R_CALLED_WITH_EVEN_MODULUS 104 940 #define BN_R_DIV_BY_ZERO 105 941 #define BN_R_EXPAND_ON_STATIC_BIGNUM_DATA 106 942 #define BN_R_INPUT_NOT_REDUCED 107 943 #define BN_R_INVALID_RANGE 108 944 #define BN_R_NEGATIVE_NUMBER 109 945 #define BN_R_NOT_A_SQUARE 110 946 #define BN_R_NOT_INITIALIZED 111 947 #define BN_R_NO_INVERSE 112 948 #define BN_R_PRIVATE_KEY_TOO_LARGE 113 949 #define BN_R_P_IS_NOT_PRIME 114 950 #define BN_R_TOO_MANY_ITERATIONS 115 951 #define BN_R_TOO_MANY_TEMPORARY_VARIABLES 116 952 #define BN_R_BAD_ENCODING 117 953 #define BN_R_ENCODE_ERROR 118 int BN_mod_inverse_odd(BIGNUM *out, int *out_no_inverse, const BIGNUM *a, const BIGNUM *n, BN_CTX *ctx)
Definition: gcd.c:232
OPENSSL_EXPORT int BN_mask_bits(BIGNUM *a, int n)
Definition: shift.c:278
OPENSSL_EXPORT int BN_sub(BIGNUM *r, const BIGNUM *a, const BIGNUM *b)
Definition: add.c:204
OPENSSL_EXPORT ASN1_BIT_STRING * bits
Definition: x509v3.h:532
OPENSSL_EXPORT int BN_generate_prime_ex(BIGNUM *ret, int bits, int safe, const BIGNUM *add, const BIGNUM *rem, BN_GENCB *cb)
Definition: prime.c:355
OPENSSL_EXPORT unsigned BN_num_bits_word(BN_ULONG l)
Definition: bn.c:183
OPENSSL_EXPORT int BN_parse_asn1_unsigned(CBS *cbs, BIGNUM *ret)
Definition: bn_asn1.c:21
OPENSSL_EXPORT int BN_set_word(BIGNUM *bn, BN_ULONG value)
Definition: bn.c:253
unsigned long long uint64_t
Definition: ptypes.h:120
OPENSSL_EXPORT void BN_CTX_start(BN_CTX *ctx)
Definition: ctx.c:150
OPENSSL_EXPORT int BN_pseudo_rand_range(BIGNUM *rnd, const BIGNUM *range)
Definition: random.c:257
OPENSSL_EXPORT BIGNUM * BN_dup(const BIGNUM *src)
Definition: bn.c:123
DOMString p
Definition: WebCryptoAPI.idl:116
OPENSSL_EXPORT int BN_hex2bn(BIGNUM **outp, const char *in)
Definition: convert.c:365
OPENSSL_EXPORT int BN_asc2bn(BIGNUM **outp, const char *in)
Definition: convert.c:439
OPENSSL_EXPORT int BN_uadd(BIGNUM *r, const BIGNUM *a, const BIGNUM *b)
Definition: add.c:104
void * arg
Definition: bn.h:656
OPENSSL_EXPORT void BN_CTX_end(BN_CTX *ctx)
Definition: ctx.c:182
OPENSSL_EXPORT pem_password_cb * cb
Definition: pem.h:398
OPENSSL_EXPORT BIGNUM * BN_new(void)
Definition: bn.c:68
OPENSSL_EXPORT int BN_is_prime_ex(const BIGNUM *candidate, int checks, BN_CTX *ctx, BN_GENCB *cb)
Definition: prime.c:470
OPENSSL_EXPORT int BN_mod_sqr(BIGNUM *r, const BIGNUM *a, const BIGNUM *m, BN_CTX *ctx)
Definition: div.c:499
OPENSSL_EXPORT int BN_equal_consttime(const BIGNUM *a, const BIGNUM *b)
Definition: cmp.c:215
OPENSSL_EXPORT int BN_dec2bn(BIGNUM **outp, const char *in)
Definition: convert.c:435
OPENSSL_EXPORT int BN_mod_add(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, const BIGNUM *m, BN_CTX *ctx)
Definition: div.c:427
OPENSSL_EXPORT int BN_lshift1(BIGNUM *r, const BIGNUM *a)
Definition: shift.c:104
OPENSSL_EXPORT int BN_kronecker(const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx)
Definition: kronecker.c:62
uint8_t uint8_t CBS * cbs
Definition: internal.h:759
OPENSSL_EXPORT BIGNUM * BN_copy(BIGNUM *dest, const BIGNUM *src)
Definition: bn.c:143
OPENSSL_EXPORT int BN_marshal_asn1(CBB *cbb, const BIGNUM *bn)
Definition: bn_asn1.c:61
OPENSSL_EXPORT int BN_mod_exp_mont_word(BIGNUM *r, BN_ULONG a, const BIGNUM *p, const BIGNUM *m, BN_CTX *ctx, const BN_MONT_CTX *mont)
Definition: exponentiation.c:1200
dest
Definition: upload.py:394
OPENSSL_EXPORT char * BN_bn2dec(const BIGNUM *a)
Definition: convert.c:369
OPENSSL_EXPORT BN_CTX * BN_CTX_new(void)
Definition: ctx.c:124
OPENSSL_EXPORT BIGNUM * bn_wexpand(BIGNUM *bn, size_t words)
Definition: bn.c:315
OPENSSL_EXPORT int BN_is_bit_set(const BIGNUM *a, int n)
Definition: shift.c:263
const GLfloat * m
Definition: gl2ext.h:850
OPENSSL_EXPORT unsigned BN_num_bytes(const BIGNUM *bn)
Definition: bn.c:241
GLuint divisor
Definition: gl2ext.h:1105
OPENSSL_EXPORT int BN_bn2cbb_padded(CBB *out, size_t len, const BIGNUM *in)
Definition: convert.c:196
OPENSSL_EXPORT int BN_sqrt(BIGNUM *out_sqrt, const BIGNUM *in, BN_CTX *ctx)
Definition: sqrt.c:431
OPENSSL_EXPORT BN_ULONG BN_get_word(const BIGNUM *bn)
Definition: convert.c:507
OPENSSL_EXPORT int BN_mod_lshift(BIGNUM *r, const BIGNUM *a, int n, const BIGNUM *m, BN_CTX *ctx)
Definition: div.c:508
OPENSSL_EXPORT int BN_sqr(BIGNUM *r, const BIGNUM *a, BN_CTX *ctx)
Definition: mul.c:800
OPENSSL_EXPORT BN_MONT_CTX * BN_MONT_CTX_new(void)
Definition: montgomery.c:127
OPENSSL_EXPORT int BN_print(BIO *bio, const BIGNUM *a)
Definition: convert.c:462
OPENSSL_EXPORT size_t BN_bn2mpi(const BIGNUM *in, uint8_t *out)
Definition: convert.c:518
OPENSSL_EXPORT void BN_free(BIGNUM *bn)
Definition: bn.c:86
OPENSSL_EXPORT int BN_rand_range_ex(BIGNUM *r, BN_ULONG min_inclusive, const BIGNUM *max_exclusive)
Definition: random.c:195
int neg
Definition: bn.h:898
OPENSSL_EXPORT unsigned BN_num_bits(const BIGNUM *bn)
Definition: bn.c:231
OPENSSL_EXPORT void BN_with_flags(BIGNUM *out, const BIGNUM *in, int flags)
Definition: bn.c:175
OPENSSL_EXPORT int BN_mod_exp2_mont(BIGNUM *r, const BIGNUM *a1, const BIGNUM *p1, const BIGNUM *a2, const BIGNUM *p2, const BIGNUM *m, BN_CTX *ctx, const BN_MONT_CTX *mont)
Definition: exponentiation.c:1223
OPENSSL_EXPORT BN_ULONG BN_div_word(BIGNUM *numerator, BN_ULONG divisor)
Definition: div.c:596
GLint GLint bottom
Definition: gl2ext.h:3063
OPENSSL_EXPORT int BN_rand_range(BIGNUM *rnd, const BIGNUM *range)
Definition: random.c:253
OPENSSL_EXPORT BIGNUM * BN_mod_inverse(BIGNUM *out, const BIGNUM *a, const BIGNUM *n, BN_CTX *ctx)
Definition: gcd.c:400
OPENSSL_EXPORT int BN_get_flags(const BIGNUM *bn, int flags)
Definition: bn.c:373
Definition: RTCStatsReport.idl:42
EGLStreamKHR EGLint n
Definition: eglext.h:984
OPENSSL_EXPORT int BN_mod_mul_montgomery(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, const BN_MONT_CTX *mont, BN_CTX *ctx)
Definition: montgomery.c:363
int
Definition: runtests.py:53
OPENSSL_EXPORT void BN_clear_free(BIGNUM *bn)
Definition: bn.c:102
OPENSSL_EXPORT int BN_one(BIGNUM *bn)
Definition: bn.c:249
OPENSSL_EXPORT int BN_mod_lshift1(BIGNUM *r, const BIGNUM *a, const BIGNUM *m, BN_CTX *ctx)
Definition: div.c:577
OPENSSL_EXPORT int BN_rshift(BIGNUM *r, const BIGNUM *a, int n)
Definition: shift.c:135
int top
Definition: float-mm.c:109
OPENSSL_EXPORT const ASN1_OBJECT int const unsigned char int len
Definition: x509.h:1053
Definition: WebCryptoAPI.idl:29
int ret
Definition: test_unit_dft.c:69
Definition: bytestring.h:286
OPENSSL_EXPORT int BN_sub_word(BIGNUM *a, BN_ULONG w)
Definition: add.c:327
int BN_MONT_CTX_set_locked(BN_MONT_CTX **pmont, CRYPTO_MUTEX *lock, const BIGNUM *mod, BN_CTX *bn_ctx)
Definition: montgomery.c:222
int int * out
Definition: gcc-loops.cpp:206
#define OPENSSL_EXPORT
Definition: base.h:160
OPENSSL_EXPORT int BN_set_bit(BIGNUM *a, int n)
Definition: shift.c:221
EGLAttrib * value
Definition: eglext.h:120
OPENSSL_EXPORT char * BN_bn2hex(const BIGNUM *bn)
Definition: convert.c:203
EGLContext ctx
Definition: eglext.h:192
OPENSSL_EXPORT void BN_GENCB_set(BN_GENCB *callback, int(*f)(int event, int n, struct bn_gencb_st *), void *arg)
Definition: prime.c:340
unsigned char uint8_t
Definition: ptypes.h:89
OPENSSL_EXPORT int BN_is_zero(const BIGNUM *bn)
Definition: cmp.c:199
Definition: bytestring.h:37
OPENSSL_EXPORT int BN_MONT_CTX_set(BN_MONT_CTX *mont, const BIGNUM *mod, BN_CTX *ctx)
Definition: montgomery.c:170
OPENSSL_EXPORT int BN_mod_lshift_quick(BIGNUM *r, const BIGNUM *a, int n, const BIGNUM *m)
Definition: div.c:531
OPENSSL_EXPORT BIGNUM * BN_bin2bn(const uint8_t *in, size_t len, BIGNUM *ret)
Definition: convert.c:72
OPENSSL_EXPORT BIGNUM * BN_CTX_get(BN_CTX *ctx)
Definition: ctx.c:161
OPENSSL_EXPORT int BN_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx)
Definition: exponentiation.c:139
BN_ULONG * d
Definition: bn.h:894
OPENSSL_EXPORT void BN_clear(BIGNUM *bn)
Definition: bn.c:159
OPENSSL_EXPORT int BN_add(BIGNUM *r, const BIGNUM *a, const BIGNUM *b)
Definition: add.c:67
OPENSSL_EXPORT BIGNUM * BN_mpi2bn(const uint8_t *in, size_t len, BIGNUM *out)
Definition: convert.c:558
OPENSSL_EXPORT void BN_set_flags(BIGNUM *bn, int flags)
Definition: bn.c:377
int(* callback)(int event, int n, struct bn_gencb_st *)
Definition: bn.h:657
BIGNUM N
Definition: bn.h:904
OPENSSL_EXPORT int BN_is_word(const BIGNUM *bn, BN_ULONG w)
Definition: cmp.c:207
OPENSSL_EXPORT int BN_lshift(BIGNUM *r, const BIGNUM *a, int n)
Definition: shift.c:66
OPENSSL_EXPORT int BN_parse_asn1_unsigned_buggy(CBS *cbs, BIGNUM *ret)
Definition: bn_asn1.c:45
OPENSSL_EXPORT void BN_zero(BIGNUM *bn)
Definition: bn.c:245
int flags
Definition: bn.h:899
GLboolean GLboolean GLboolean GLboolean a
Definition: gl2ext.h:306
OPENSSL_EXPORT int BN_set_u64(BIGNUM *bn, uint64_t value)
Definition: bn.c:269
OPENSSL_EXPORT int BN_bn2bin_padded(uint8_t *out, size_t len, const BIGNUM *in)
Definition: convert.c:162
OPENSSL_EXPORT int BN_GENCB_call(BN_GENCB *callback, int event, int n)
Definition: prime.c:347
GLfloat f
Definition: gl2.h:417
OPENSSL_EXPORT int BN_mod_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, const BIGNUM *m, BN_CTX *ctx)
Definition: exponentiation.c:577
OPENSSL_EXPORT int BN_is_prime_fasttest_ex(const BIGNUM *candidate, int checks, BN_CTX *ctx, int do_trial_division, BN_GENCB *cb)
Definition: prime.c:474
OPENSSL_EXPORT int BN_to_montgomery(BIGNUM *ret, const BIGNUM *a, const BN_MONT_CTX *mont, BN_CTX *ctx)
Definition: montgomery.c:254
OPENSSL_EXPORT void BN_set_negative(BIGNUM *bn, int sign)
Definition: bn.c:307
OPENSSL_EXPORT int BN_mod_mul(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, const BIGNUM *m, BN_CTX *ctx)
Definition: div.c:467
OPENSSL_EXPORT int BN_mod_exp_mont(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, const BIGNUM *m, BN_CTX *ctx, const BN_MONT_CTX *mont)
Definition: exponentiation.c:586
OPENSSL_EXPORT int BN_pseudo_rand(BIGNUM *rnd, int bits, int top, int bottom)
Definition: random.c:191
int BN_mod_inverse_blinded(BIGNUM *out, int *out_no_inverse, const BIGNUM *a, const BN_MONT_CTX *mont, BN_CTX *ctx)
Definition: gcd.c:454
OPENSSL_EXPORT int BN_abs_is_word(const BIGNUM *bn, BN_ULONG w)
Definition: cmp.c:177
OPENSSL_EXPORT int BN_is_odd(const BIGNUM *bn)
Definition: cmp.c:211
GLenum src
Definition: gl2ext.h:304
OPENSSL_EXPORT int BN_cmp_word(const BIGNUM *a, BN_ULONG b)
Definition: cmp.c:188
OPENSSL_EXPORT int BN_from_montgomery(BIGNUM *ret, const BIGNUM *a, const BN_MONT_CTX *mont, BN_CTX *ctx)
Definition: montgomery.c:343
OPENSSL_EXPORT int BN_generate_dsa_nonce(BIGNUM *out, const BIGNUM *range, const BIGNUM *priv, const uint8_t *message, size_t message_len, BN_CTX *ctx)
Definition: random.c:261
OPENSSL_EXPORT size_t BN_bn2bin(const BIGNUM *in, uint8_t *out)
Definition: convert.c:121
OPENSSL_EXPORT BN_MONT_CTX * BN_MONT_CTX_copy(BN_MONT_CTX *to, const BN_MONT_CTX *from)
Definition: montgomery.c:151
OPENSSL_EXPORT int BN_print_fp(FILE *fp, const BIGNUM *a)
Definition: convert.c:492
Definition: bytestring_test.cc:31
std::vector< string > words
Definition: repeated_field_unittest.cc:1386
OPENSSL_EXPORT int BN_usub(BIGNUM *r, const BIGNUM *a, const BIGNUM *b)
Definition: add.c:261
OPENSSL_EXPORT int BN_rshift1(BIGNUM *r, const BIGNUM *a)
Definition: shift.c:188
OPENSSL_EXPORT int BN_is_negative(const BIGNUM *bn)
Definition: bn.c:303
OPENSSL_EXPORT int BN_mul(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx)
Definition: mul.c:562
GLboolean GLboolean GLboolean b
Definition: gl2ext.h:306
OPENSSL_EXPORT const BIGNUM * BN_value_one(void)
Definition: bn.c:168
int dmax
Definition: bn.h:897
OPENSSL_EXPORT int BN_mod_add_quick(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, const BIGNUM *m)
Definition: div.c:435
OPENSSL_EXPORT int BN_primality_test(int *is_probably_prime, const BIGNUM *candidate, int checks, BN_CTX *ctx, int do_trial_division, BN_GENCB *cb)
Definition: prime.c:454
OPENSSL_EXPORT int BN_add_word(BIGNUM *a, BN_ULONG w)
Definition: add.c:162
BIGNUM RR
Definition: bn.h:903
OPENSSL_EXPORT int BN_gcd(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx)
Definition: gcd.c:186
OPENSSL_EXPORT int BN_is_one(const BIGNUM *bn)
Definition: cmp.c:203
OPENSSL_EXPORT int BN_div(BIGNUM *quotient, BIGNUM *rem, const BIGNUM *numerator, const BIGNUM *divisor, BN_CTX *ctx)
Definition: div.c:186
OPENSSL_EXPORT int BN_rand(BIGNUM *rnd, int bits, int top, int bottom)
Definition: random.c:118
OPENSSL_EXPORT void BN_init(BIGNUM *bn)
Definition: bn.c:82
GLuint GLsizei const GLchar * message
Definition: gl2ext.h:137
OPENSSL_EXPORT BIGNUM * BN_mod_sqrt(BIGNUM *in, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx)
Definition: sqrt.c:60
Definition: bwe_rtp.cc:26
OPENSSL_EXPORT int BN_mod_sub(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, const BIGNUM *m, BN_CTX *ctx)
Definition: div.c:446
GLfloat GLfloat GLfloat GLfloat w
Definition: gl2.h:519
OPENSSL_EXPORT int BN_mod_exp_mont_consttime(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p, const BIGNUM *m, BN_CTX *ctx, const BN_MONT_CTX *mont)
Definition: exponentiation.c:867
OPENSSL_EXPORT void BN_CTX_free(BN_CTX *ctx)
Definition: ctx.c:140
OPENSSL_EXPORT int BN_ucmp(const BIGNUM *a, const BIGNUM *b)
Definition: cmp.c:64
int top
Definition: bn.h:896
OPENSSL_EXPORT int BN_mul_word(BIGNUM *bn, BN_ULONG w)
Definition: mul.c:776
OPENSSL_EXPORT int BN_mod_sub_quick(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, const BIGNUM *m)
Definition: div.c:456
GLboolean r
Definition: gl2ext.h:306
OPENSSL_EXPORT void bn_correct_top(BIGNUM *bn)
Definition: bn.c:355
GLenum GLint * range
Definition: gl2.h:450
OPENSSL_EXPORT BN_ULONG BN_mod_word(const BIGNUM *a, BN_ULONG w)
Definition: div.c:635
OPENSSL_EXPORT int BN_clear_bit(BIGNUM *a, int n)
Definition: shift.c:245
OPENSSL_EXPORT int BN_cmp(const BIGNUM *a, const BIGNUM *b)
Definition: cmp.c:86
OPENSSL_EXPORT int BN_mod_lshift1_quick(BIGNUM *r, const BIGNUM *a, const BIGNUM *m)
Definition: div.c:585
OPENSSL_EXPORT int BN_nnmod(BIGNUM *rem, const BIGNUM *numerator, const BIGNUM *divisor, BN_CTX *ctx)
Definition: div.c:415
OPENSSL_EXPORT void BN_MONT_CTX_free(BN_MONT_CTX *mont)
Definition: montgomery.c:141