X-Git-Url: https://git.openssl.org/gitweb/?p=openssl.git;a=blobdiff_plain;f=doc%2Fcrypto%2FBN_mod_mul_montgomery.pod;h=6b16351b92e4bd67967762e3f0de7858c5a620e8;hp=f237f7264ed86bd7cd3e37dc1fef5ff46f8b4869;hb=2d780dfd81b47107bd2f2eaa4206994d0fc0ab42;hpb=6c2c3e9ba9146ef8c9b1fd2b660357b657706969 diff --git a/doc/crypto/BN_mod_mul_montgomery.pod b/doc/crypto/BN_mod_mul_montgomery.pod index f237f7264e..6b16351b92 100644 --- a/doc/crypto/BN_mod_mul_montgomery.pod +++ b/doc/crypto/BN_mod_mul_montgomery.pod @@ -36,29 +36,29 @@ 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: typedef struct bn_mont_ctx_st { - int use_word; /* 0 for word form, 1 for bignum form */ int ri; /* number of bits in R */ BIGNUM RR; /* R^2 (used to convert to Montgomery form) */ BIGNUM N; /* The modulus */ @@ -80,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