"Fossies" - the Fresh Open Source Software Archive

Member "libressl-2.9.2/man/BN_BLINDING_new.3" (24 Mar 2018, 7913 Bytes) of package /linux/misc/libressl-2.9.2.tar.gz:


Caution: As a special service "Fossies" has tried to format the requested manual source page into HTML format but links to other man pages may be missing or even errorneous. Alternatively you can here view or download the uninterpreted manual source code. A member file download can also be achieved by clicking within a package contents listing on the according byte size field.

BN_BLINDING_NEW(3) BSD Library Functions Manual BN_BLINDING_NEW(3)

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_thread_id, BN_BLINDING_get_flags, BN_BLINDING_set_flags, BN_BLINDING_create_param — blinding related BIGNUM functions

SYNOPSIS

#include <openssl/bn.h>

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);

#ifndef OPENSSL_NO_DEPRECATED

unsigned long

BN_BLINDING_get_thread_id(const BN_BLINDING *);

void

BN_BLINDING_set_thread_id(BN_BLINDING *, unsigned long);

#endif

CRYPTO_THREADID *

BN_BLINDING_thread_id(BN_BLINDING *);

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);

DESCRIPTION

BN_BLINDING_new() allocates a new BN_BLINDING structure and copies the A and Ai values into the newly created BN_BLINDING object.

BN_BLINDING_free() frees the BN_BLINDING structure. If b is a NULL pointer, no action occurs.

BN_BLINDING_update() updates the BN_BLINDING parameters by squaring the A and Ai or, after a specific number of uses and if the necessary parameters are set, by re-creating the blinding parameters.

BN_BLINDING_convert_ex() multiplies n with the blinding factor A. If r is not NULL, a copy of the inverse blinding factor Ai will be returned in r (this is useful if an RSA object is shared among several threads). BN_BLINDING_invert_ex() multiplies n with the inverse blinding factor Ai. If r 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 r set to NULL.

BN_BLINDING_thread_id() provides access to the CRYPTO_THREADID object within the BN_BLINDING structure. This is to help users provide proper locking if needed for multi-threaded use. The thread ID object of a newly allocated BN_BLINDING structure is initialised to the thread ID in which BN_BLINDING_new() was called.

BN_BLINDING_get_flags() returns the BN_BLINDING_* flags. Currently there are two supported flags: BN_BLINDING_NO_UPDATE and BN_BLINDING_NO_RECREATE. BN_BLINDING_NO_UPDATE inhibits the automatic update of the BN_BLINDING parameters after each use and BN_BLINDING_NO_RECREATE inhibits the automatic re-creation of the BN_BLINDING parameters after a fixed number of uses (currently 32). In newly allocated BN_BLINDING objects no flags are set. BN_BLINDING_set_flags() sets the BN_BLINDING_* parameters flags.

BN_BLINDING_create_param() creates new BN_BLINDING parameters using the exponent e and the modulus m. bn_mod_exp and m_ctx can be used to pass special functions for exponentiation (normally BN_mod_exp(3) and BN_MONT_CTX).

RETURN VALUES

BN_BLINDING_new() returns the newly allocated BN_BLINDING 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 occurred.

BN_BLINDING_thread_id() returns a pointer to the thread ID object within a BN_BLINDING object.

BN_BLINDING_get_flags() returns the currently set BN_BLINDING_* flags (an unsigned long value).

BN_BLINDING_create_param() returns the newly created BN_BLINDING parameters or NULL on error.

SEE ALSO

BN_new(3)

HISTORY

BN_BLINDING_new(), BN_BLINDING_free(), BN_BLINDING_update(), BN_BLINDING_convert(), and BN_BLINDING_invert() first appeared in SSLeay 0.9.0 and have been available since OpenBSD 2.4.

BN_BLINDING_convert_ex(), BN_BLINDIND_invert_ex(), BN_BLINDING_get_thread_id(), BN_BLINDING_set_thread_id(), BN_BLINDING_get_flags(), BN_BLINDING_set_flags(), and BN_BLINDING_create_param() first appeared in OpenSSL 0.9.8 and have been available since OpenBSD 4.5.

BN_BLINDING_thread_id() first appeared in OpenSSL 1.0.0 and has been available since OpenBSD 4.9.

AUTHORS

Nils Larsch <nils@openssl.org>

BSD March 23, 2018 BSD