1=pod 2 3=head1 NAME 4 5BN_mod_inverse - compute inverse modulo n 6 7=head1 SYNOPSIS 8 9 #include <openssl/bn.h> 10 11 BIGNUM *BN_mod_inverse(BIGNUM *r, BIGNUM *a, const BIGNUM *n, 12 BN_CTX *ctx); 13 14=head1 DESCRIPTION 15 16BN_mod_inverse() computes the inverse of B<a> modulo B<n> 17places the result in B<r> (C<(a*r)%n==1>). If B<r> is NULL, 18a new B<BIGNUM> is created. 19 20B<ctx> is a previously allocated B<BN_CTX> used for temporary 21variables. B<r> may be the same B<BIGNUM> as B<a>. 22 23=head1 NOTES 24 25It is an error to use the same B<BIGNUM> as B<n>. 26 27=head1 RETURN VALUES 28 29BN_mod_inverse() returns the B<BIGNUM> containing the inverse, and 30NULL on error. The error codes can be obtained by L<ERR_get_error(3)>. 31 32=head1 SEE ALSO 33 34L<ERR_get_error(3)>, L<BN_add(3)> 35 36=head1 COPYRIGHT 37 38Copyright 2000-2017 The OpenSSL Project Authors. All Rights Reserved. 39 40Licensed under the Apache License 2.0 (the "License"). You may not use 41this file except in compliance with the License. You can obtain a copy 42in the file LICENSE in the source distribution or at 43L<https://www.openssl.org/source/license.html>. 44 45=cut 46