GFpECSetPointHash, GFpECSetPointHashBackCompatible, GFpECSetPointHash_rmf, GFpECSetPointHashBackCompatible_rmf

Constructs a point on an elliptic curve based on the hash of the input message.

Syntax

IppStatus ippsGFpECSetPointHash(Ipp32u hdr, const Ipp8u* pMsg, int msgLen, IppsGFpECPoint* pPoint, IppsGFpECState* pEC, IppHashAlgId hashID, Ipp8u* pScratchBuffer);

IppStatus ippsGFpECSetPointHash_rmf(Ipp32u hdr, const Ipp8u* pMsg, int msgLen, IppsGFpECPoint* pPoint, IppsGFpECState* pEC, const IppsHashMethod* pMethod, Ipp8u* pScratchBuffer);

IppStatus ippsGFpECSetPointHashBackCompatible(Ipp32u hdr, const Ipp8u* pMsg, int msgLen, IppsGFpECPoint* pPoint, IppsGFpECState* pEC, IppHashAlgId hashID , Ipp8u* pScratchBuffer);

IppStatus ippsGFpECSetPointHashBackCompatible_rmf(Ipp32u hdr, const Ipp8u* pMsg, int msgLen, IppsGFpECPoint* pPoint, IppsGFpECState* pEC, const IppsHashMethod* pMethod, Ipp8u* pScratchBuffer);

Include Files

ippcp.h

Parameters

hdr

Header of the input message.

pMsg

Pointer to the input message.

msgLen

Length of the input message.

pPoint

Pointer to the IppsGFpECPoint context.

pEC

Pointer to the context of the elliptic curve.

hashID

ID of the hash algorithm used. For details, see Supported Hash Algorithms.

pMethod

Predefined Hash Algorithm method. For details, see Supported Hash Algorithms.

pScratchBuffer

Pointer to the scratch buffer of size produced by ippsGFpECScratchBufferSize.

Description

This function makes the coordinates of a point on the elliptic curve over the finite field from a hash of the X-coordinate.

The X-coordinate is computed by the following pseudocode formula: X = hash(hdr || message).

The ippsGFpECScratchBufferSize function should be called with nScalars equal to at least 1 to get the valid pScratchBuffer.

Return Values

ippStsNoErr

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

ippStsNullPtrErr

Indicates an error condition in the following cases:

  • pPoint or pEC is NULL.

  • Length of the message is more than zero, and the pointer pMsg is NULL.

ippStsContextMatchErr

Indicates an error condition if either pPoint or pEC context parameter does not match the operation.

ippStsBadArgErr

Indicates an error condition if the finite field over which the elliptic curve is initialized is not prime.

ippStsOutOfRangeErr

Indicates an error condition if the coordinates of the point pPoint do not belong to the finite field over which the elliptic curve is initialized.

ippStsLengthErr

Indicates an error condition if msgLen is negative.

ippStsQuadraticNonResidueErr

Indicates an error condition if the square of the Y-coordinate of the point is a quadratic non-residue modulo p.