GFpECTstKeyPair
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 becauseprivKey·G≠pubKey
- ippECInvalidPrivateKey
- KeyprivKeyfalls outside the range of [1,n-1].
- ippECPointIsAtInfinite
- KeypubKeyis the point at infinity.
- ippECInvalidPublicKey
- KeypubKeyis not valid becausen·pubKey≠O, whereOis 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 isNULL.
- ippStsContextMatchErr
- Indicates an error condition if any of the contexts pointed bypPrivate,pPublic, orpECdoes 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.