BN_RECP_CTX_free man page on OpenDarwin

Man page or keyword search:  
man Server   3202 pages
apropos Keyword Search (all sections)
Output format
OpenDarwin logo
[printable version]

BN_mod_mul_reciprocal(3)	    OpenSSL	      BN_mod_mul_reciprocal(3)

       BN_mod_mul_reciprocal,  BN_div_recp, BN_RECP_CTX_new, BN_RECP_CTX_init,
       BN_RECP_CTX_free, BN_RECP_CTX_set - modular multiplication using recip‐

	#include <openssl/bn.h>

	BN_RECP_CTX *BN_RECP_CTX_new(void);
	void BN_RECP_CTX_init(BN_RECP_CTX *recp);
	void BN_RECP_CTX_free(BN_RECP_CTX *recp);

	int BN_RECP_CTX_set(BN_RECP_CTX *recp, const BIGNUM *m, BN_CTX *ctx);

	int BN_div_recp(BIGNUM *dv, BIGNUM *rem, BIGNUM *a, BN_RECP_CTX *recp,
	       BN_CTX *ctx);

	int BN_mod_mul_reciprocal(BIGNUM *r, BIGNUM *a, BIGNUM *b,
	       BN_RECP_CTX *recp, BN_CTX *ctx);

       BN_mod_mul_reciprocal() can be used to perform an efficient
       BN_mod_mul(3) operation when the operation will be performed repeatedly
       with the same modulus. It computes r=(a*b)%m using recp=1/m, which is
       set as described below.	ctx is a previously allocated BN_CTX used for
       temporary variables.

       BN_RECP_CTX_new() allocates and initializes a BN_RECP structure.
       BN_RECP_CTX_init() initializes an existing uninitialized BN_RECP.

       BN_RECP_CTX_free() frees the components of the BN_RECP, and, if it was
       created by BN_RECP_CTX_new(), also the structure itself.

       BN_RECP_CTX_set() stores m in recp and sets it up for computing 1/m and
       shifting it left by BN_num_bits(m)+1 to make it an integer. The result
       and the number of bits it was shifted left will later be stored in

       BN_div_recp() divides a by m using recp. It places the quotient in dv
       and the remainder in rem.

       The BN_RECP_CTX structure is defined as follows:

	typedef struct bn_recp_ctx_st
	       BIGNUM N;       /* the divisor */
	       BIGNUM Nr;      /* the reciprocal */
	       int num_bits;
	       int shift;
	       int flags;
	       } BN_RECP_CTX;

       It cannot be shared between threads.

       BN_RECP_CTX_new() returns the newly allocated BN_RECP_CTX, and NULL on

       BN_RECP_CTX_init() and BN_RECP_CTX_free() have no return values.

       For the other functions, 1 is returned for success, 0 on error.	The
       error codes can be obtained by ERR_get_error(3).

       bn(3), ERR_get_error(3), BN_add(3), BN_CTX_new(3)

       BN_RECP_CTX was added in SSLeay 0.9.0. Before that, the function
       BN_reciprocal() was used instead, and the BN_mod_mul_reciprocal() argu‐
       ments were different.

0.9.7d				  2003-11-20	      BN_mod_mul_reciprocal(3)

List of man pages available for OpenDarwin

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
Vote for polarhome
Free Shell Accounts :: the biggest list on the net