Developer Guide and Reference for Intel® Integrated Performance Primitives Cryptography
A newer version of this document is available. Customers should click here to go to the newest version.
GFpECTstKeyPair
Tests private and public keys of the elliptic curve cryptosystem over GF(p).
Syntax
IppStatus ippsGFpECTstKeyPair(const IppsBigNumState* pPrivate, const IppsGFpECPoint* pPublic, IppECResult* pResult, IppsGFpECState* pEC, Ipp8u* pScratchBuffer);
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. |
pEC |
Pointer to the context of the elliptic curve. |
pScratchBuffer |
Pointer to the scratch buffer. |
Description
The function tests the private key privKey and public key pubKey of the elliptic curve 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 the functions: GFpECInitStd, GFpECInit, GFpECSet, or GFpECSetSubgroup.
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· G ≠ pubKey |
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 · pubKey ≠ O , 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 any of the contexts pointed by pPrivate, pPublic, or pEC does not match the operation. |
ippStsRangeErr |
Indicates an error condition if the public key point does not belong to the finite field over which the elliptic curve is initialized. |