]> git.ipfire.org Git - thirdparty/openssl.git/blame - doc/man3/BN_BLINDING_new.pod
Fix many doc L<> errors
[thirdparty/openssl.git] / doc / man3 / BN_BLINDING_new.pod
CommitLineData
9ca46ff6
NL
1=pod
2
3=head1 NAME
4
1bc74519
RS
5BN_BLINDING_new, BN_BLINDING_free, BN_BLINDING_update, BN_BLINDING_convert,
6BN_BLINDING_invert, BN_BLINDING_convert_ex, BN_BLINDING_invert_ex,
0b1a07c8
AG
7BN_BLINDING_is_current_thread, BN_BLINDING_set_current_thread,
8BN_BLINDING_lock, BN_BLINDING_unlock, BN_BLINDING_get_flags,
bb9ad09e 9BN_BLINDING_set_flags, BN_BLINDING_create_param - blinding related BIGNUM functions
9ca46ff6
NL
10
11=head1 SYNOPSIS
12
13 #include <openssl/bn.h>
14
15 BN_BLINDING *BN_BLINDING_new(const BIGNUM *A, const BIGNUM *Ai,
1bc74519 16 BIGNUM *mod);
9ca46ff6 17 void BN_BLINDING_free(BN_BLINDING *b);
aebb9aac 18 int BN_BLINDING_update(BN_BLINDING *b, BN_CTX *ctx);
9ca46ff6
NL
19 int BN_BLINDING_convert(BIGNUM *n, BN_BLINDING *b, BN_CTX *ctx);
20 int BN_BLINDING_invert(BIGNUM *n, BN_BLINDING *b, BN_CTX *ctx);
21 int BN_BLINDING_convert_ex(BIGNUM *n, BIGNUM *r, BN_BLINDING *b,
1bc74519 22 BN_CTX *ctx);
9ca46ff6 23 int BN_BLINDING_invert_ex(BIGNUM *n, const BIGNUM *r, BN_BLINDING *b,
1bc74519 24 BN_CTX *ctx);
0b1a07c8
AG
25 int BN_BLINDING_is_current_thread(BN_BLINDING *b);
26 void BN_BLINDING_set_current_thread(BN_BLINDING *b);
27 int BN_BLINDING_lock(BN_BLINDING *b);
28 int BN_BLINDING_unlock(BN_BLINDING *b);
9ca46ff6
NL
29 unsigned long BN_BLINDING_get_flags(const BN_BLINDING *);
30 void BN_BLINDING_set_flags(BN_BLINDING *, unsigned long);
31 BN_BLINDING *BN_BLINDING_create_param(BN_BLINDING *b,
1bc74519
RS
32 const BIGNUM *e, BIGNUM *m, BN_CTX *ctx,
33 int (*bn_mod_exp)(BIGNUM *r, const BIGNUM *a, const BIGNUM *p,
34 const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *m_ctx),
35 BN_MONT_CTX *m_ctx);
9ca46ff6
NL
36
37=head1 DESCRIPTION
38
39BN_BLINDING_new() allocates a new B<BN_BLINDING> structure and copies
40the B<A> and B<Ai> values into the newly created B<BN_BLINDING> object.
41
42BN_BLINDING_free() frees the B<BN_BLINDING> structure.
23a1d5e9 43If B<b> is NULL, nothing is done.
9ca46ff6
NL
44
45BN_BLINDING_update() updates the B<BN_BLINDING> parameters by squaring
46the B<A> and B<Ai> or, after specific number of uses and if the
47necessary parameters are set, by re-creating the blinding parameters.
48
49BN_BLINDING_convert_ex() multiplies B<n> with the blinding factor B<A>.
50If B<r> is not NULL a copy the inverse blinding factor B<Ai> will be
2b4ffc65 51returned in B<r> (this is useful if a B<RSA> object is shared among
9ca46ff6
NL
52several threads). BN_BLINDING_invert_ex() multiplies B<n> with the
53inverse blinding factor B<Ai>. If B<r> is not NULL it will be used as
54the inverse blinding.
55
56BN_BLINDING_convert() and BN_BLINDING_invert() are wrapper
57functions for BN_BLINDING_convert_ex() and BN_BLINDING_invert_ex()
58with B<r> set to NULL.
59
0b1a07c8
AG
60BN_BLINDING_is_current_thread() returns whether the B<BN_BLINDING>
61structure is owned by the current thread. This is to help users
62provide proper locking if needed for multi-threaded use.
63
64BN_BLINDING_set_current_thread() sets the current thread as the
65owner of the B<BN_BLINDING> structure.
66
67BN_BLINDING_lock() locks the B<BN_BLINDING> structure.
68
69BN_BLINDING_unlock() unlocks the B<BN_BLINDING> structure.
9ca46ff6
NL
70
71BN_BLINDING_get_flags() returns the BN_BLINDING flags. Currently
72there are two supported flags: B<BN_BLINDING_NO_UPDATE> and
73B<BN_BLINDING_NO_RECREATE>. B<BN_BLINDING_NO_UPDATE> inhibits the
74automatic update of the B<BN_BLINDING> parameters after each use
75and B<BN_BLINDING_NO_RECREATE> inhibits the automatic re-creation
76of the B<BN_BLINDING> parameters after a fixed number of uses (currently
7732). In newly allocated B<BN_BLINDING> objects no flags are set.
78BN_BLINDING_set_flags() sets the B<BN_BLINDING> parameters flags.
79
80BN_BLINDING_create_param() creates new B<BN_BLINDING> parameters
81using the exponent B<e> and the modulus B<m>. B<bn_mod_exp> and
82B<m_ctx> can be used to pass special functions for exponentiation
83(normally BN_mod_exp_mont() and B<BN_MONT_CTX>).
84
85=head1 RETURN VALUES
86
87BN_BLINDING_new() returns the newly allocated B<BN_BLINDING> structure
88or NULL in case of an error.
89
90BN_BLINDING_update(), BN_BLINDING_convert(), BN_BLINDING_invert(),
91BN_BLINDING_convert_ex() and BN_BLINDING_invert_ex() return 1 on
478b50cf 92success and 0 if an error occurred.
9ca46ff6 93
0b1a07c8
AG
94BN_BLINDING_is_current_thread() returns 1 if the current thread owns
95the B<BN_BLINDING> object, 0 otherwise.
96
97BN_BLINDING_set_current_thread() doesn't return anything.
98
99BN_BLINDING_lock(), BN_BLINDING_unlock() return 1 if the operation
b9b6a7e5 100succeeded or 0 on error.
9ca46ff6
NL
101
102BN_BLINDING_get_flags() returns the currently set B<BN_BLINDING> flags
103(a B<unsigned long> value).
104
1bc74519 105BN_BLINDING_create_param() returns the newly created B<BN_BLINDING>
9ca46ff6
NL
106parameters or NULL on error.
107
9ca46ff6
NL
108=head1 HISTORY
109
a528d4f0
RS
110BN_BLINDING_thread_id() was first introduced in OpenSSL 1.0.0, and it
111deprecates BN_BLINDING_set_thread_id() and BN_BLINDING_get_thread_id().
9ca46ff6 112
e2f92610
RS
113=head1 COPYRIGHT
114
9e183d22 115Copyright 2005-2017 The OpenSSL Project Authors. All Rights Reserved.
e2f92610
RS
116
117Licensed under the OpenSSL license (the "License"). You may not use
118this file except in compliance with the License. You can obtain a copy
119in the file LICENSE in the source distribution or at
120L<https://www.openssl.org/source/license.html>.
121
122=cut