From: Nils Larsch Date: Tue, 26 Apr 2005 22:33:36 +0000 (+0000) Subject: add docu for BN_BLINDING functions X-Git-Tag: OpenSSL_0_9_8-beta1~13^2~112 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=9ca46ff609d87cd929337b159a79c951429d2b56;p=oweals%2Fopenssl.git add docu for BN_BLINDING functions --- diff --git a/doc/crypto/BN_BLINDING_new.pod b/doc/crypto/BN_BLINDING_new.pod new file mode 100644 index 0000000000..7b087f7288 --- /dev/null +++ b/doc/crypto/BN_BLINDING_new.pod @@ -0,0 +1,109 @@ +=pod + +=head1 NAME + +BN_BLINDING_new, BN_BLINDING_free, BN_BLINDING_update, BN_BLINDING_convert, +BN_BLINDING_invert, BN_BLINDING_convert_ex, BN_BLINDING_invert_ex, +BN_BLINDING_get_thread_id, BN_BLINDING_set_thread_id, BN_BLINDING_get_flags, +BN_BLINDING_set_flags, BN_BLINDING_create_param - blinding related BIGNUM +functions. + +=head1 SYNOPSIS + + #include + + BN_BLINDING *BN_BLINDING_new(const BIGNUM *A, const BIGNUM *Ai, + BIGNUM *mod); + void BN_BLINDING_free(BN_BLINDING *b); + int BN_BLINDING_update(BN_BLINDING *b,BN_CTX *ctx); + int BN_BLINDING_convert(BIGNUM *n, BN_BLINDING *b, BN_CTX *ctx); + int BN_BLINDING_invert(BIGNUM *n, BN_BLINDING *b, BN_CTX *ctx); + int BN_BLINDING_convert_ex(BIGNUM *n, BIGNUM *r, BN_BLINDING *b, + BN_CTX *ctx); + int BN_BLINDING_invert_ex(BIGNUM *n, const BIGNUM *r, BN_BLINDING *b, + BN_CTX *ctx); + unsigned long BN_BLINDING_get_thread_id(const BN_BLINDING *); + void BN_BLINDING_set_thread_id(BN_BLINDING *, unsigned long); + unsigned long BN_BLINDING_get_flags(const BN_BLINDING *); + void BN_BLINDING_set_flags(BN_BLINDING *, unsigned long); + BN_BLINDING *BN_BLINDING_create_param(BN_BLINDING *b, + const BIGNUM *e, BIGNUM *m, BN_CTX *ctx, + int (*bn_mod_exp)(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, + const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *m_ctx), + BN_MONT_CTX *m_ctx); + +=head1 DESCRIPTION + +BN_BLINDING_new() allocates a new B structure and copies +the B and B values into the newly created B object. + +BN_BLINDING_free() frees the B structure. + +BN_BLINDING_update() updates the B parameters by squaring +the B and B or, after specific number of uses and if the +necessary parameters are set, by re-creating the blinding parameters. + +BN_BLINDING_convert_ex() multiplies B with the blinding factor B. +If B is not NULL a copy the inverse blinding factor B will be +returned in B (this is useful if a B object is shared amoung +several threads). BN_BLINDING_invert_ex() multiplies B with the +inverse blinding factor B. If B is not NULL it will be used as +the inverse blinding. + +BN_BLINDING_convert() and BN_BLINDING_invert() are wrapper +functions for BN_BLINDING_convert_ex() and BN_BLINDING_invert_ex() +with B set to NULL. + +BN_BLINDING_set_thread_id() and BN_BLINDING_get_thread_id() +set and get the "thread id" value of the B structure, +a field provided to users of B structure to help them +provide proper locking if needed for multi-threaded use. The +"thread id" of a newly allocated B structure is zero. + +BN_BLINDING_get_flags() returns the BN_BLINDING flags. Currently +there are two supported flags: B and +B. B inhibits the +automatic update of the B parameters after each use +and B inhibits the automatic re-creation +of the B parameters after a fixed number of uses (currently +32). In newly allocated B objects no flags are set. +BN_BLINDING_set_flags() sets the B parameters flags. + +BN_BLINDING_create_param() creates new B parameters +using the exponent B and the modulus B. B and +B can be used to pass special functions for exponentiation +(normally BN_mod_exp_mont() and B). + +=head1 RETURN VALUES + +BN_BLINDING_new() returns the newly allocated B structure +or NULL in case of an error. + +BN_BLINDING_update(), BN_BLINDING_convert(), BN_BLINDING_invert(), +BN_BLINDING_convert_ex() and BN_BLINDING_invert_ex() return 1 on +success and 0 if an error occured. + +BN_BLINDING_get_thread_id() returns the thread id (a B +value) or 0 if not set. + +BN_BLINDING_get_flags() returns the currently set B flags +(a B value). + +BN_BLINDING_create_param() returns the newly created B +parameters or NULL on error. + +=head1 SEE ALSO + +L + +=head1 HISTORY + +BN_BLINDING_convert_ex, BN_BLINDIND_invert_ex, BN_BLINDING_get_thread_id, +BN_BLINDING_set_thread_id, BN_BLINDING_set_flags, BN_BLINDING_get_flags +and BN_BLINDING_create_param were first introduced in OpenSSL 0.9.8 + +=head1 AUTHOR + +Nils Larsch for the OpenSSL project (http://www.openssl.org). + +=cut diff --git a/doc/crypto/bn.pod b/doc/crypto/bn.pod index c3b0d08918..8929aba2e6 100644 --- a/doc/crypto/bn.pod +++ b/doc/crypto/bn.pod @@ -121,6 +121,25 @@ bn - multiprecision integer arithmetics int BN_to_montgomery(BIGNUM *r, BIGNUM *a, BN_MONT_CTX *mont, BN_CTX *ctx); + BN_BLINDING *BN_BLINDING_new(const BIGNUM *A, const BIGNUM *Ai, + BIGNUM *mod); + void BN_BLINDING_free(BN_BLINDING *b); + int BN_BLINDING_update(BN_BLINDING *b,BN_CTX *ctx); + int BN_BLINDING_convert(BIGNUM *n, BN_BLINDING *b, BN_CTX *ctx); + int BN_BLINDING_invert(BIGNUM *n, BN_BLINDING *b, BN_CTX *ctx); + int BN_BLINDING_convert_ex(BIGNUM *n, BIGNUM *r, BN_BLINDING *b, + BN_CTX *ctx); + int BN_BLINDING_invert_ex(BIGNUM *n,const BIGNUM *r,BN_BLINDING *b, + BN_CTX *ctx); + unsigned long BN_BLINDING_get_thread_id(const BN_BLINDING *); + void BN_BLINDING_set_thread_id(BN_BLINDING *, unsigned long); + unsigned long BN_BLINDING_get_flags(const BN_BLINDING *); + void BN_BLINDING_set_flags(BN_BLINDING *, unsigned long); + BN_BLINDING *BN_BLINDING_create_param(BN_BLINDING *b, + const BIGNUM *e, BIGNUM *m, BN_CTX *ctx, + int (*bn_mod_exp)(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, + const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *m_ctx), + BN_MONT_CTX *m_ctx); =head1 DESCRIPTION