BN_from_montgomery man page on MirBSD

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



BN_MOD_MUL_MONTGOMERY(3)     OpenSSL	 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_montgomery, BN_to_montgomery - Montgomery multipli-
     cation

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_montgomery(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(3) is called with
     suitable input, but they may be useful when several opera-
     tions are to be performed using the same modulus.

     BN_MONT_CTX_new() allocates and initializes a BN_MONT_CTX
     structure. BN_MONT_CTX_init() initializes an existing unini-
     tialized BN_MONT_CTX.

     BN_MONT_CTX_set() sets up the mont structure from the
     modulus m by precomputing its inverse and a value R.

     BN_MONT_CTX_copy() copies the BN_MONT_CTX from to to.

     BN_MONT_CTX_free() frees the components of the BN_MONT_CTX,
     and, if it was created by BN_MONT_CTX_new(), also the struc-
     ture itself.

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

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

     BN_to_montgomery() computes Mont(a,R^2), i.e. a*R. Note that
     a must be non-negative and smaller than the modulus.

MirOS BSD #10-current	   2005-02-05				1

BN_MOD_MUL_MONTGOMERY(3)     OpenSSL	 BN_MOD_MUL_MONTGOMERY(3)

     For all functions, ctx is a previously allocated BN_CTX used
     for temporary 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
     BN_MONT_CTX_new() returns the newly allocated BN_MONT_CTX,
     and NULL on error.

     BN_MONT_CTX_init() and BN_MONT_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).

WARNING
     The inputs must be reduced modulo m, otherwise the result
     will be outside the expected range.

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

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

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

MirOS BSD #10-current	   2005-02-05				2

[top]

List of man pages available for MirBSD

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