X-Git-Url: https://git.openssl.org/gitweb/?p=openssl.git;a=blobdiff_plain;f=doc%2Fcrypto%2FBN_mod_mul_reciprocal.pod;h=a28925f8a93a1154aed655ec5c019333df1b5c6c;hp=9e66e82aca074132ab12e189d2fbf16a5cda660f;hb=89681b183d8be8230c1cf4f908ead44e0d31dfd1;hpb=dd8dec69b825c9fdafc26a200961702d850496b5 diff --git a/doc/crypto/BN_mod_mul_reciprocal.pod b/doc/crypto/BN_mod_mul_reciprocal.pod index 9e66e82aca..a28925f8a9 100644 --- a/doc/crypto/BN_mod_mul_reciprocal.pod +++ b/doc/crypto/BN_mod_mul_reciprocal.pod @@ -2,8 +2,8 @@ =head1 NAME -BN_mod_mul_reciprocal, BN_RECP_CTX_new, BN_RECP_CTX_init, -BN_RECP_CTX_free, BN_RECP_CTX_set - Modular multiplication using +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 =head1 SYNOPSIS @@ -16,13 +16,16 @@ reciprocal 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); =head1 DESCRIPTION BN_mod_mul_reciprocal() can be used to perform an efficient -BN_mod_mul(3) operation when the operation will be performed +L operation when the operation will be performed repeatedly with the same modulus. It computes B=(B*B)%B using B=1/B, which is set as described below. B is a previously allocated B used for temporary variables. @@ -33,9 +36,13 @@ BN_RECP_CTX_init() initializes an existing uninitialized B. BN_RECP_CTX_free() frees the components of the B, and, if it was created by BN_RECP_CTX_new(), also the structure itself. -BN_RECP_CTX_set() computes 1/B and shifts it left by -BN_num_bits(B)+1 to make it an integer. The result and the -number of bits it was shifted left are stored in B. +BN_RECP_CTX_set() stores B in B and sets it up for computing +1/B and shifting it left by BN_num_bits(B)+1 to make it an +integer. The result and the number of bits it was shifted left will +later be stored in B. + +BN_div_recp() divides B by B using B. It places the quotient +in B and the remainder in B. The B structure is defined as follows: @@ -58,16 +65,17 @@ 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). +The error codes can be obtained by L. =head1 SEE ALSO -bn(3), err(3), BN_add(3), BN_CTX_new(3) +L, L, L, +L =head1 HISTORY B was added in SSLeay 0.9.0. Before that, the function BN_reciprocal() was used instead, and the BN_mod_mul_reciprocal() -arguments werde different. +arguments were different. =cut