GFpECUserIDHashSM2

Computes the hash value of the distinguished identifier of a user.

Syntax

IppStatus ippsGFpECUserIDHashSM2, (Ipp8u * pZaDigest, const Ipp8u* pUserID, int userIDLen, const IppsGFpECPoint* pPublicKey, IppsGFpECState* pEC, Ipp8u* pScratchBuffer)

Include Files

ippcp.h

Parameters

pZaDigest

Pointer to the resulting digest Za.

pUserID

User ID data.

userIDLen

Length of user ID data.

pMsg

Pointer to the input message.

pPublicKey

Public key.

pEC

Pointer to the elliptic curve context.

pScratchBuffer

Pointer to the scratch buffer for the elliptic curve.

Description

Computes the hash value of the distinguish identifier of a user Za = SM3( ENTL||ID||a||b||Gx||Gy||Px||Py).

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 are NULL.

ippStsContextMatchErr

Indicates an error condition if the IppsGFpECState context parameter does not match the operation.

ippStsNotSupportedModeErr

Indicates an error condition if the IppsGFpECState context parameter defines an elliptic curve over an extension of the prime finite field.

ippStsOutOfRangeErr

Indicates an error condition if the invalid input argument range - inpLen < 0 or maxOutLen is not enough for the encryption.

ippStsInvalidPoint

Indicates an error condition if pPublicKey is not on the curve.

ippStsBadArgErr

Indicates an error condition if userIDLen value <= 0.

ippStsOutOfRangeErr

Indicates an error condition if userIDLen value is less or equal to zero or public key length is out of range.