From aa4d426b4d3527d7e166df1a05058c9a4a0f6683 Mon Sep 17 00:00:00 2001 From: Wojtek Kosior Date: Fri, 30 Apr 2021 00:33:56 +0200 Subject: initial/final commit --- .../doc/crypto/BN_mod_mul_montgomery.pod | 90 ++++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 openssl-1.1.0h/doc/crypto/BN_mod_mul_montgomery.pod (limited to 'openssl-1.1.0h/doc/crypto/BN_mod_mul_montgomery.pod') diff --git a/openssl-1.1.0h/doc/crypto/BN_mod_mul_montgomery.pod b/openssl-1.1.0h/doc/crypto/BN_mod_mul_montgomery.pod new file mode 100644 index 0000000..81056c7 --- /dev/null +++ b/openssl-1.1.0h/doc/crypto/BN_mod_mul_montgomery.pod @@ -0,0 +1,90 @@ +=pod + +=head1 NAME + +BN_mod_mul_montgomery, BN_MONT_CTX_new, +BN_MONT_CTX_free, BN_MONT_CTX_set, BN_MONT_CTX_copy, +BN_from_montgomery, BN_to_montgomery - Montgomery multiplication + +=head1 SYNOPSIS + + #include + + BN_MONT_CTX *BN_MONT_CTX_new(void); + 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); + +=head1 DESCRIPTION + +These functions implement Montgomery multiplication. They are used +automatically when L is called with suitable input, +but they may be useful when several operations are to be performed +using the same modulus. + +BN_MONT_CTX_new() allocates and initializes a B structure. + +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 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. +If B is NULL, nothing is done. + +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 I = I*R^-1. + +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, I is a previously allocated B used for +temporary variables. + +=head1 RETURN VALUES + +BN_MONT_CTX_new() returns the newly allocated B, and NULL +on error. + +BN_MONT_CTX_free() has no return value. + +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 + +=head1 HISTORY + +BN_MONT_CTX_init() was removed in OpenSSL 1.1.0 + +=head1 COPYRIGHT + +Copyright 2000-2017 The OpenSSL Project Authors. All Rights Reserved. + +Licensed under the OpenSSL license (the "License"). You may not use +this file except in compliance with the License. You can obtain a copy +in the file LICENSE in the source distribution or at +L. + +=cut -- cgit v1.2.3