Developer Guide and Reference for Intel® Integrated Performance Primitives Cryptography
GFpECMessageRepresentationSM2
Computes the SM2 digest of a message.
Syntax
IppStatus ippsGFpECMessageRepresentationSM2, (IppsBigNumState * pMsgDigest, const Ipp8u * pMsg, int msgLen, const Ipp8u * pUserID, int userIDLen, const IppsGFpECPoint * pRegPublic, IppsGFpECState * pEC, Ipp8u * pScratchBuffer)
Include Files
ippcp.h
Parameters
| pMsgDigest | Pointer to the resulting message digest. | 
| pMsg | Pointer to the input message. | 
| msgLen | Length of the input message. | 
| pUserID | User ID data. | 
| userIDLen | Length of user ID data. | 
| pMsg | Pointer to the input message. | 
| pRegPublic | Public key. | 
| pEC | Pointer to the elliptic curve context. | 
| pScratchBuffer | Pointer to the scratch buffer for the elliptic curve. | 
Description
The function compresses message M’, including Za and M, using a cryptographic hash function before the signature process. Therefore, do the first two steps of the algorithm that helps obtain a signature (r, s).
GM/T 0003.2-2012. Public Key cryptographic algorithm SM2 based on the elliptic curves.
Part 2: Digital signature algorithm
6.1 Digital signature generation algorithm
A1: compute Za = SM3( ENTL || ID || a || b || xG || yG || xA || yA )
A2: e = SM3(Za || M)
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. | 
| ippStsMessageErr | Indicates an error condition if bitsize(pMsgDigest) > bitsize(order). | 
| ippStsNotSupportedModeErr | Indicates an error condition if the IppsGFpECState context parameter defines an elliptic curve over an extension of the prime finite field. |