DLPValidateDSA

Validates domain parameters of the DL-based cryptosystem over GF(p) to use DSA.

Syntax

IppStatus ippsDLPValidateDSA(int nTrials, IppDLResult* pResult, IppsDLPState* pCtx, IppBitSupplier rndFunc, void* pRndParam);

Include Files

ippcp.h

Parameters

nTrials

Security parameter specified for the Miller-Rabin probable primality.

pResult

Pointer to the validation result.

pCtx

Pointer to the cryptosystem context.

rndFunc

Specified Random Generator.

pRndParam

Pointer to the Random Generator context.

Description

The function validates domain parameters of the DL-based cryptosystem over GF(p) to use DSA. The result of validation is stored in the *pResult and may be assigned to one of the enumerators listed below:

ippDLValid

Validation has passed successfully.

ippDLBaseIsEven

P is even.

ippDLOrderIsEven

R is even.

ippDLInvalidBaseRange

P≤ 2peBits-1or P≥ 2peBits.

ippDLInvalidOrderRange

R≤ 2reBits-1or R≥ 2reBits.

ippDLCompositeBase

P is not a prime.

ippDLCompositeOrder

R is not a prime.

ippDLInvalidCofactor

R is not divisible by (P -1).

ippDLInvalidGenerator

(1 < ``G`` < (P -1)) is false or ``G``^R != 1 (mod P).

To ensure that both p and r are primes, the function applies nTrial-round Miller-Rabin primality test. Test data for primality test is provided by the specified rndFunc Random Generator.

Return Values

ippStsNoErr

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

ippStsNullPtrErr

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

ippStsContextMatchErr

Indicates an error condition if the context parameter does not match the operation.

ippStsIncompleteContextErr

Indicates an error condition if the cryptosystem context has not been properly set up.

ippStsBadArgErr

Indicates an error condition if nTrials < 1.