ECCPValidateKeyPair

Validates private and public keys of the elliptic cryptosystem over GF(p).

Syntax

IppStatus ippsECCPValidateKeyPair(const IppsBigNumState* pPrivate, const IppsECCPPointState* pPublic, IppECResult* pResult, IppsECCPState* pECC);

Include Files

ippcp.h

Parameters

pPrivate

Pointer to the private key privKey.

pPublic

Pointer to the public key pubKey.

pResult

Pointer to the validation result.

pECC

Pointer to the context of the elliptic cryptosystem.

Description

The function validates the private key privKey and public key pubKey of the elliptic cryptosystem over a finite field GF(p) and allocates the result of the validation in accordance with the pointer pResult.

The private key privKey is a number that lies in the range of [1, n-1] where n is the order of the elliptic curve base point. The public key pubKey is an elliptic curve point such that pubKey = privKey· G, where G is the base point of the elliptic curve.

The elliptic curve domain parameters must be hitherto defined by one of the functions: ECCPSet or ECCPSetStd.

The result of the cryptosystem keys validation for correctness can take one of the following values:

ippECValid

Keys are valid.

ippECInvalidKeyPair

Keys are not valid because privKey· GpubKey

ippECInvalidPrivateKey

Key privKey falls outside the range of [1, n-1].

ippECPointIsAtInfinite

Key pubKey is the point at infinity.

ippECInvalidPublicKey

Key pubKey is not valid because n · pubKeyO , where O is the point at infinity.

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 pPrivate, pPublic, or pECC is not valid.