ECCPValidate

Checks validity of the elliptic curve domain parameters over GF(p).

Syntax

IppStatus ippsECCPValidate(int nTrials, IppECResult* pResult, IppsECCPState* pECC, IppBitSupplier rndFunc, void* pRndParam);

Include Files

ippcp.h

Parameters

nTrials

A number of attempts made to check the number for primality.

pResult

Pointer to the result received upon the check of the elliptic curve domain parameters.

pECC

Pointer to the cryptosystem context.

rndFunc

Specified Random Generator.

pRndParam

Pointer to Random Generator context.

Description

The function checks validity of the elliptic curve domain parameters over a prime finite field GF(p) and stores the result of the check in accordance with the pointer pResult.

Elliptic curve domain parameters must be hitherto defined by one of the functions: ECCPSet or ECCPSetStd. The purpose of the parameters rndFunc, pRndParam, and nTrials is analogous to that of the parameters rndFunc, pRndParam, and nTrials in the PrimeTest function.

The result of the elliptic curve domain parameters check can take one of the following values:

ippECValid

The parameters are valid.

ippECCompositeBase

The prime finite field characterisitc p is a composite number.

ippECIsNotAG

The solutions of the elliptic curve equation do not form the abelian group because the only requirement that 4 ·a3 + 27 ·b3≠ 0 is not met.

ippECPointIsNotValid

The base point G is not on the elliptic curve.

ippECCompositeOrder

The order n of the base point G is a composite number.

ippECInvalidOrder

The order n of the base point G is not valid because the requirement that n ·G = O where O is the point at infinity is not met.

ippECIsWeakSSSA

The order n of the base point G is equal to the finite field characteristic p.

ippECIsWeakMOV

The curve is excluded because it is subject to the MOV reduction attack.

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 one of the contexts pointed by c or pECC is not valid.

ippStsBadArgErr

Indicates an error condition if the memory size of the parameter seed is less than five words (32 bytes in each) or the value of the parameter nTrails is less than 1.