X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=doc%2Fcrypto%2FBN_mod_mul_montgomery.pod;h=6b16351b92e4bd67967762e3f0de7858c5a620e8;hb=a12a6b99629e29d6f8f2e6731e29627a89839715;hp=0f0c1375af2327dba6fa144fe3ad485b0d7d3f90;hpb=6535eb1728a7d30673d0a95da5fd18126b7d0b71;p=oweals%2Fopenssl.git diff --git a/doc/crypto/BN_mod_mul_montgomery.pod b/doc/crypto/BN_mod_mul_montgomery.pod index 0f0c1375af..6b16351b92 100644 --- a/doc/crypto/BN_mod_mul_montgomery.pod +++ b/doc/crypto/BN_mod_mul_montgomery.pod @@ -36,22 +36,23 @@ using the same modulus. BN_MONT_CTX_new() allocates and initializes a B structure. BN_MONT_CTX_init() initializes an existing uninitialized B. -BN_MONT_CTX_set() sets up the B structure from the modulus B +BN_MONT_CTX_set() sets up the I structure from the modulus I by precomputing its inverse and a value R. -BN_MONT_CTX_copy() copies the B B to B. +BN_MONT_CTX_copy() copies the B I to I. BN_MONT_CTX_free() frees the components of the B, and, if it was created by BN_MONT_CTX_new(), also the structure itself. -BN_mod_mul_montgomery() computes Mont(B,B):=B*B*R^-1 and places -the result in B. +BN_mod_mul_montgomery() computes Mont(I,I):=I*I*R^-1 and places +the result in I. -BN_from_montgomery() performs the Montgomery reduction B = B*R^-1. +BN_from_montgomery() performs the Montgomery reduction I = I*R^-1. -BN_to_montgomery() computes Mont(B,R^2). +BN_to_montgomery() computes Mont(I,R^2), i.e. I*R. +Note that I must be non-negative and smaller than the modulus. -For all functions, B is a previously allocated B used for +For all functions, I is a previously allocated B used for temporary variables. The B structure is defined as follows: @@ -79,9 +80,14 @@ 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 L. +=head1 WARNING + +The inputs must be reduced modulo B, otherwise the result will be +outside the expected range. + =head1 SEE ALSO -L, L, L, +L, L, L, L =head1 HISTORY