ModInv_BN

Computes multiplicative inverse of a positive integer big number with respect to specified modulus.

Syntax

IppStatus ippsModInv_BN(IppsBigNumState* pA, IppsBigNumState* pM, IppsBigNumState* pInv);

Include Files

ippcp.h

Parameters

pA

Pointer to the integer big number of IppsBigNumState.

pM

Pointer to the modulus integer of IppsBigNumState.

pInv

Pointer to the multiplicative inverse.

Description

The function uses the extended Euclidean algorithm to compute the multiplicative inverse of a given positive integer big number pA with respect to the modulus specified by another positive integer big number pM, where gcd (pA, pM) = 1.

The following pseudocode represents this function:

compute pInv such that pInv*pA = 1 modpM.

Return Values

ippStsNoErr

Indicates no error. Any other value indicates an error or warning.

ippStsBadArgErr

Indicates an error condition if pA is less than or equal to 0.

ippStsNullPtrErr

Indicates an error condition if any of the specified pointers is NULL.

ippStsBadModulusErr

Indicates an error condition if the modulus pA is greater than pM, or gcd (pA,pM) is greater than 1, or pM is less than or equal to 0.

ippStsOutOfRangeErr

Indicates an error condition if IppsBigNumState *pInv is smaller than the length of IppsBigNumState *pM.

ippStsContextMatchErr

Indicates an error condition if any of the context parameters does not match the operation.

ippStsScaleRangeErr

Indicates an error condition if pA is greater than or equal to pM

Note

The size of IppsBigNumState *pInv should not be less than the length of IppsBigNumState *pM.