Intel® Integrated Performance Primitives Cryptography documentation
Getting Help and Support
What’s New
Notational Conventions
Related Products
Overview
Basic Features
Function Context Structures
Data Security Considerations
Symmetric Cryptography Primitive Functions
Block Cipher Modes of Operation
Rijndael Functions
AESGetSize
AESInit
AESSetKey
AESPack, AESUnpack
AESEncryptECB
AESDecryptECB
AESEncryptCBC
AESDecryptCBC
AESEncryptCBC_CS
AESDecryptCBC_CS
AESEncryptCFB
AES_EncryptCFB16_MB
AESDecryptCFB
AESEncryptOFB
AESDecryptOFB
AESEncryptCTR
AESDecryptCTR
AESEncryptXTS_Direct, AESDecryptXTS_Direct
Example of Using AES Functions
AES-CCM Functions
AES_CCMGetSize
AES_CCMInit
AES_CCMStart
AES_CCMEncrypt
AES_CCMDecrypt
AES_CCMGetTag
AES_CCMMessageLen
AES_CCMTagLen
AES-GCM Functions
AES_GCMGetSize
AES_GCMInit
AES_GCMStart
AES_GCMReset
AES_GCMProcessIV
AES_GCMProcessAAD
AES_GCMEncrypt
AES_GCMDecrypt
AES_GCMGetTag
AES-SIV Functions
AES_S2V_CMAC
AES_SIVEncrypt
AES_SIVDecrypt
Usage Example
AES-XTS Functions
AES_XTSGetSize
AES_XTSInit
AES_XTSEncrypt
AES_XTSDecrypt
TDES Functions
DESGetSize
DESInit
DESPack, DESUnpack
TDESEncryptECB
TDESDecryptECB
TDESEncryptCBC
TDESDecryptCBC
TDESEncryptCFB
TDESDecryptCFB
TDESEncryptOFB
TDESDecryptOFB
TDESEncryptCTR
TDESDecryptCTR
Example of Using TDES Functions
SMS4 Functions
SMS4GetSize
SMS4Init
SMS4SetKey
SMS4EncryptECB
SMS4DecryptECB
SMS4EncryptCBC
SMS4DecryptCBC
SMS4EncryptCBC_CS
SMS4DecryptCBC_CS
SMS4EncryptCFB
SMS4DecryptCFB
SMS4EncryptOFB
SMS4DecryptOFB
SMS4EncryptCTR
SMS4DecryptCTR
ARCFour Functions
ARCFourGetSize
ARCFourCheckKey
ARCFourInit
ARCFourPack, ARCFourUnpack
ARCFourEncrypt
ARCFourDecrypt
ARCFourReset
One-Way Hash Primitives
Hash Functions
HashGetSize
HashInit
HashPack, HashUnpack
HashDuplicate
HashUpdate
HashFinal
HashGetTag
HashMethod
HashMethodSet
HashStateMethodSet
HashMethodGetSize
SM3GetSize
SM3Init
SM3Pack, SM3Unpack
SM3Duplicate
SM3Update
SM3Final
SM3GetTag
MD5GetSize
MD5Init
MD5Pack, MD5Unpack
MD5Duplicate
MD5Update
MD5Final
MD5GetTag
SHA1GetSize
SHA1Init
SHA1Pack, SHA1Unpack
SHA1Duplicate
SHA1Update
SHA1Final
SHA1GetTag
SHA224GetSize
SHA224Init
SHA224Pack, SHA224Unpack
SHA224Duplicate
SHA224Update
SHA224Final
SHA224GetTag
SHA256GetSize
SHA256Init
SHA256Pack, SHA256Unpack
SHA256Duplicate
SHA256Update
SHA256Final
SHA256GetTag
SHA384GetSize
SHA384Init
SHA384Pack, SHA384Unpack
SHA384Duplicate
SHA384Update
SHA384Final
SHA384GetTag
SHA512GetSize
SHA512Init
SHA512Pack, SHA512Unpack
SHA512Duplicate
SHA512Update
SHA512Final
SHA512GetTag
Hash Functions for Non-Streaming Messages
General Definition of a Hash Function
HashMessage
SM3MessageDigest
MD5MessageDigest
SHA1MessageDigest
SHA224MessageDigest
SHA256MessageDigest
SHA384MessageDigest
SHA512MessageDigest
Mask Generation Functions
User’s Implementation of a Mask Generation Function
MGF
MGF1_rmf, MGF2_rmf
Data Authentication Primitive Functions
Message Authentication Functions
Keyed Hash Functions
HMAC_GetSize
HMAC_Init
HMAC_Pack, HMAC_Unpack
HMAC_Duplicate
HMAC_Update
HMAC_Final
HMAC_GetTag
HMAC_Message
CMAC Functions
AES_CMACGetSize
AES_CMACInit
AES_CMACUpdate
AES_CMACFinal
AES_CMACGetTag
Public Key Cryptography Functions
Big Number Arithmetic
BigNumGetSize
BigNumInit
Set_BN
SetOctString_BN
GetSize_BN
Get_BN
ExtGet_BN
Ref_BN
GetOctString_BN
Cmp_BN
CmpZero_BN
Add_BN
Sub_BN
Mul_BN
MAC_BN_I
Div_BN
Mod_BN
Gcd_BN
ModInv_BN
Montgomery Reduction Scheme Functions
MontGetSize
MontInit
MontSet
MontGet
MontForm
MontMul
Example of Using Montgomery Reduction Scheme Functions
MontExp
Pseudorandom Number Generation Functions
User’s Implementation of a Pseudorandom Number Generator
PRNGGetSize
PRNGInit
PRNGSetSeed
PRNGGetSeed
PRNGSetAugment
PRNGSetModulus
PRNGSetH0
PRNGen
PRNGenRDRAND
TRNGenRDSEED
PRNGen_BN
PRNGenRDRAND_BN
TRNGenRDSEED_BN
Example of Using Pseudorandom Number Generation Functions
Prime Number Generation Functions
PrimeGetSize
PrimeInit
PrimeGen_BN
PrimeTest_BN
PrimeGen
PrimeTest
PrimeSet
PrimeSet_BN
PrimeGet
PrimeGet_BN
Example of Using Prime Number Generation Functions
RSA Algorithm Functions
Functions for Building RSA System
RSA_GetSizePublicKey, RSA_GetSizePrivateKeyType1, RSA_GetSizePrivateKeyType2
RSA_InitPublicKey, RSA_InitPrivateKeyType1, RSA_InitPrivateKeyType2
RSA_SetPublicKey, RSA_SetPrivateKeyType1, RSA_SetPrivateKeyType2
RSA_GetPublicKey, RSA_GetPrivateKeyType1, RSA_GetPrivateKeyType2
RSA_GetBufferSizePublicKey, RSA_GetBufferSizePrivateKey
RSA_MB_GetBufferSizePublicKey, RSA_MB_GetBufferSizePrivateKey
RSA_GenerateKeys
RSA_ValidateKeys
RSA Primitives
RSA_Encrypt
RSA_MB_Encrypt
RSA_Decrypt
RSA_MB_Decrypt
Example of Using RSA Primitive Functions
RSA Encryption Schemes
RSA-OAEP Scheme Functions
PKCS V1.5 Encryption Scheme Functions
RSA Signature Schemes
RSA-SSA Scheme Functions
PKCS V1.5 Signature Scheme Functions
Discrete-Logarithm-Based Cryptography Functions
DLPGetSize
DLPInit
DLPPack, DLPUnpack
DLPSet
DLPGet
DLPSetDP
DLPGetDP
DLPGenKeyPair
DLPPublicKey
DLPValidateKeyPair
DLPSetKeyPair
DLPGenerateDSA
DLPValidateDSA
DLPSignDSA
DLPVerifyDSA
Example of Using Discrete-logarithm Based Primitive Functions
DLPGenerateDH
DLPValidateDH
DLPSharedSecretDH
DLGetResultString
Elliptic Curve Cryptography Functions
Functions Based on GF(
p
)
ECCPGetSize
ECCPGetSizeStd
ECCPInit
ECCPInitStd
ECCPBindGxyTblStd
ECCPSet
ECCPSetStd
ECCPGet
ECCPGetOrderBitSize
ECCPValidate
ECCPPointGetSize
ECCPPointInit
ECCPSetPoint
ECCPSetPointAtInfinity
ECCPGetPoint
ECCPCheckPoint
ECCPComparePoint
ECCPNegativePoint
ECCPAddPoint
ECCPMulPointScalar
ECCPGenKeyPair
ECCPPublicKey
ECCPValidateKeyPair
ECCPSetKeyPair
ECCPSharedSecretDH
ECCPSharedSecretDHC
ECCPSignDSA
ECCPVerifyDSA
ECCPSignNR
ECCPVerifyNR
ECCPSignSM2
ECCPVerifySM2
Signing/Verification Using the Elliptic Curve Cryptography Functions over a Prime Finite Field
Functions based on SM2
GFpECESGetSize_SM2
GFpECESInit_SM2
GFpECESSetKey_SM2
GFpECESStart_SM2
GFpECESEncrypt_SM2
GFpECESDecrypt_SM2
GFpECESFinal_SM2
GFpECESGetBufferSize_SM2
GFpECEncryptSM2_Ext_EncMsgSize
GFpECDecryptSM2_Ext_DecMsgSize
GFpECEncryptSM2_Ext
GFpECDecryptSM2_Ext
GFpECMessageRepresentationSM2
GFpECUserIDHashSM2
GFpECKeyExchangeSM2_GetSize
GFpECKeyExchangeSM2_Init
GFpECKeyExchangeSM2_Setup
GFpECKeyExchangeSM2_SharedKey
GFpECKeyExchangeSM2_Confirm
Arithmetic of the Group of Elliptic Curve Points
GFpECGetSize
GFpECInit
GFpECSet
GFpECSetSubgroup
GFpECInitStd
GFpECGet
GFpECGetSubgroup
GFpECScratchBufferSize
GFpECVerify
GFpECPointGetSize
GFpECPointInit
GFpECSetPointAtInfinity
GFpECSetPoint, GFpECSetPointREgular
GFpECSetPointOctString
GFpECSetPointRandom
GFpECMakePoint
GFpECSetPointHash, GFpECSetPointHashBackCompatible, GFpECSetPointHash_rmf, GFpECSetPointHashBackCompatible_rmf
GFpECGetPoint , GFpECGetPointRegular
GFpECGetPointOctString
GFpECTstPoint
GFpECTstPointInSubgroup
GFpECCpyPoint
GFpECCmpPoint
GFpECNegPoint
GFpECAddPoint
GFpECMulPoint
GFpECPrivateKey, GFpECPublicKey, GFpECTstKeyPair
GFpECPublicKey
GFpECTstKeyPair
GFpECPSharedSecretDH, GFpECPSharedSecretDHC
GFpECSharedSecretDHC
GFpECPSignDSA, GFpECPSignNR, GFpECPSignSM2
GFpECPVerifyDSA, GFpECPVerifyNR, GFpECPVerifySM2
GFpECSignNR
GFpECVerifyNR
GFpECSignSM2
GFpECVerifySM2
ECCGetResultString
Finite Field Arithmetic
GFpInit
GFpMethod
GFpGetSize
GFpxInitBinomial
GFpxInit
GFpxMethod
GFpxGetSize
GFpScratchBufferSize
GFpElementGetSize
GFpElementInit
GFpSetElement
GFpSetElementOctString
GFpSetElementRandom
GFpSetElementHash
GFpCpyElement
GFpGetElement
GFpGetElementOctString
GFpCmpElement
GFpIsZeroElement
GFpIsUnityElement
GFpConj
GFpNeg
GFpInv
GFpSqrt
GFpAdd
GFpSub
GFpMul
GFpSqr
GFpExp
GFpMultiExp
GFpAdd_PE
GFpSub_PE
GFpMul_PE
Mitigation for Frequency Throttling Side-Channel Attack
ippsAESSetupNoise
ippsAES_GCMSetupNoise
ippsAES_CMACSetupNoise
Multi-buffer Cryptography Functions
RSA Algorithm Functions (MBX)
mbx_rsa_public
mbx_rsa_private
mbx_rsa_private_crt
mbx_RSA_Method_BufSize
NIST Recommended Elliptic Curve Functions
mbx_nistp256/384/521_ecdsa_sign_setup
mbx_nistp256/384/521_ecdsa_sign_complete
mbx_nistp256/384/521_ecdsa_sign
mbx_nistp256/384/521_ecdsa_verify
mbx_nistp256/384/521_ecpublic_key
mbx_nistp256/384/521_ecdh
Montgomery Curve25519 Elliptic Curve Functions
mbx_x25519_public_key
mbx_x25519
Edwards Curve25519 Elliptic Curve Functions
mbx_ed25519_public_key_mb8
mbx_ed25519_sign_mb8
mbx_ed25519_verify_mb8
SM2 Elliptic Curve Functions
mbx_sm2_ecdsa_sign
mbx_sm2_ecdsa_verify
mbx_sm2_ecpublic_key
mbx_sm2_ecdh
SM3 Hash Functions
mbx_sm3_msg_digest_mb16
mbx_sm3_init_mb16
mbx_sm3_update_mb16
mbx_sm3_final_mb16
SM4 Algorithm Functions
mbx_sm4_set_key_mb16
mbx_sm4_encrypt/decrypt_ecb_mb16
mbx_sm4_encrypt/decrypt_cbc_mb16
mbx_sm4_encrypt/decrypt_ctr128_mb16
mbx_sm4_encrypt/decrypt_ofb_mb16
mbx_sm4_encrypt/decrypt_cfb128_mb16
SM4 CCM Algorithm Functions
mbx_sm4_ccm_init_mb16
mbx_sm4_ccm_update_aad_mb16
mbx_sm4_ccm_encrypt/decrypt_mb16
mbx_sm4_ccm_get_tag_mb16
SM4 GCM Algorithm Functions
mbx_sm4_gcm_init_context_mb16
mbx_sm4_gcm_update_iv_mb16
mbx_sm4_gcm_update_aad_mb16
mbx_sm4_gcm_encrypt/decrypt_mb16
mbx_sm4_gcm_get_tag_mb16
Modular Exponentiation
mbx_exp/1024/2048/3072/4096_mb8
mbx_exp_BufferSize
Appendix A: Support Functions and Classes
Security Validation of Library Functions
Version Information Function
GetLibVersion
Dispatcher Control Functions
Init
Other Functions
GetCpuFeatures
SetCpuFeatures
GetEnabledCpuFeatures
GetCpuClocks
GetNumThreads
GetEnabledNumThreads
SetNumThreads
GetStatusString
Classes and Functions Used in Examples
BigNumber Class
Functions for Creation of Cryptographic Contexts
Removed Functions
Bibliography
Notices and Disclaimers
open issue
Index