BN_mod_mul_reciprocal man page on Ultrix

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

BN_mod_mul_reciprocal(3)	    OpenSSL	      BN_mod_mul_reciprocal(3)

NAME
       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
       reciprocal

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

DESCRIPTION
       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
       recp.

       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.

RETURN VALUES
       BN_RECP_CTX_new() returns the newly allocated BN_RECP_CTX, and NULL on
       error.

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

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

HISTORY
       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()
       arguments were different.

3rd Berkeley Distribution	    0.9.6m	      BN_mod_mul_reciprocal(3)
[top]

List of man pages available for Ultrix

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]
Tweet
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