BN_MONT_CTX_set man page on DigitalUNIX

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

BN_mod_mul_montgomery(3)			      BN_mod_mul_montgomery(3)

NAME
       BN_mod_mul_montgomery,	     BN_MONT_CTX_new,	     BN_MONT_CTX_init,
       BN_MONT_CTX_free,  BN_MONT_CTX_set,   BN_MONT_CTX_copy,	 BN_from_mont‐
       gomery, BN_to_montgomery - Montgomery multiplication

SYNOPSIS
       #include <openssl/bn.h>

       BN_MONT_CTX *BN_MONT_CTX_new(
	       void ); void BN_MONT_CTX_init(
	       BN_MONT_CTX *ctx ); void BN_MONT_CTX_free(
	       BN_MONT_CTX *mont ); int BN_MONT_CTX_set(
	       BN_MONT_CTX  *mont, const BIGNUM *m, BN_CTX *ctx ); BN_MONT_CTX
       *BN_MONT_CTX_copy(
	       BN_MONT_CTX *to,	 BN_MONT_CTX  *from  );	 int  BN_mod_mul_mont‐
       gomery(
	       BIGNUM *r, BIGNUM *a, BIGNUM *b, BN_MONT_CTX *mont, BN_CTX *ctx
       ); int BN_from_montgomery(
	       BIGNUM *r, BIGNUM *a, BN_MONT_CTX *mont,	 BN_CTX	 *ctx  );  int
       BN_to_montgomery(
	       BIGNUM *r, BIGNUM *a, BN_MONT_CTX *mont, BN_CTX *ctx );

DESCRIPTION
       These  functions	 implement  Montgomery	multiplication.	 They are used
       automatically when BN_mod_exp() is called with suitable input, but they
       may be useful when several operations are performed using the same mod‐
       ulus.

       The BN_MONT_CTX_new() function allocates and initializes a  BN_MONT_CTX
       structure.  The	BN_MONT_CTX_init()  function  initializes  an existing
       uninitialized BN_MONT_CTX.

       The BN_MONT_CTX_set() function sets up the mont structure from the mod‐
       ulus m by precomputing its inverse and a value R.

       The BN_MONT_CTX_copy() function copies the BN_MONT_CTX from to to.

       The   BN_MONT_CTX_free()	  function   frees   the   components  of  the
       BN_MONT_CTX, and, if it was  created  by	 BN_MONT_CTX_new(),  also  the
       structure itself.

       The  BN_mod_mul_montgomery()  function computes Mont(a,b):=a*b*R^-1 and
       places the result in r.

       The BN_from_montgomery() function performs the Montgomery reduction r =
       a*R^-1.

       The BN_to_montgomery() function computes Mont(a,R^2), i.e.  a*R.

       For all functions, ctx is a previously allocated BN_CTX used for tempo‐
       rary variables.

       The BN_MONT_CTX structure is defined as follows:
	typedef struct bn_mont_ctx_st
	       {
	       int ri;	       /* number of bits in R */
	       BIGNUM RR;      /* R^2 (used to convert to Montgomery form) */
	       BIGNUM N;       /* The modulus */
	       BIGNUM Ni;      /* R*(1/R mod N) - N*Ni = 1
				* (Ni is only stored for bignum algorithm) */
	       BN_ULONG n0;    /* least significant word of Ni */
	       int flags;
	       } BN_MONT_CTX;

       BN_to_montgomery() is a macro.

RETURN VALUES
       The BN_MONT_CTX_new() function returns the newly allocated BN_MONT_CTX,
       and NULL on error.

       The  BN_MONT_CTX_init() and BN_MONT_CTX_free() functions have no return
       values.

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

HISTORY
       The     BN_MONT_CTX_new(),    BN_MONT_CTX_free(),    BN_MONT_CTX_set(),
       BN_mod_mul_montgomery(), BN_from_montgomery(),  and  BN_to_montgomery()
       functions are available in all versions of SSLeay and OpenSSL.

       The  BN_MONT_CTX_init()	and BN_MONT_CTX_copy() functions were added in
       SSLeay 0.9.1b.

SEE ALSO
       Functions: bn(3), err(3), BN_add(3), BN_CTX_new(3)

						      BN_mod_mul_montgomery(3)
[top]

List of man pages available for DigitalUNIX

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