BN_mod_mul_reciprocal 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_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 - modu-
     lar 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 struc-
     ture. BN_RECP_CTX_init() initializes an existing uninitial-
     ized 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 com-
     puting 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 quo-
     tient in dv and the remainder in rem.

     The BN_RECP_CTX structure is defined as follows:

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

BN_MOD_MUL_RECIPROCAL(3)     OpenSSL	 BN_MOD_MUL_RECIPROCAL(3)

      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.

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