Intel® Integrated Performance Primitives Cryptography Developer Reference
Total Page:16
File Type:pdf, Size:1020Kb
Intel® Integrated Performance Primitives Cryptography Developer Reference Intel Integrated Performance Primitives 2018 Legal Information Contents Contents Legal Information.............................................................................. 13 Getting Help and Support................................................................... 15 Introducing Intel® Integrated Performance Primitives Cryptography..................................................................................17 What's New........................................................................................ 19 Notational Conventions...................................................................... 21 Related Products................................................................................ 23 Chapter 1: Overview Basic Features......................................................................................... 25 Function Context Structures...................................................................... 25 Data Security Considerations..................................................................... 26 Chapter 2: Symmetric Cryptography Primitive Functions Block Cipher Modes of Operation................................................................27 Rijndael Functions....................................................................................28 AESGetSize.....................................................................................28 AESInit...........................................................................................29 AESSetKey......................................................................................29 AESPack, AESUnpack....................................................................... 30 AESEncryptECB............................................................................... 31 AESDecryptECB............................................................................... 32 AESEncryptCBC............................................................................... 32 AESDecryptCBC...............................................................................33 AESEncryptCFB............................................................................... 34 AESDecryptCFB............................................................................... 35 AESEncryptOFB............................................................................... 35 AESDecryptOFB...............................................................................36 AESEncryptCTR............................................................................... 37 AESDecryptCTR............................................................................... 38 AESEncryptXTS_Direct, AESDecryptXTS_Direct....................................39 Example of Using AES Functions........................................................ 41 AES-CCM Functions.................................................................................. 42 AES_CCMGetSize.............................................................................42 AES_CCMInit...................................................................................43 AES_CCMStart................................................................................ 43 AES_CCMEncrypt.............................................................................44 AES_CCMDecrypt.............................................................................45 AES_CCMGetTag..............................................................................46 AES_CCMMessageLen.......................................................................46 AES_CCMTagLen..............................................................................47 AES-GCM Functions..................................................................................47 AES_GCMGetSize.............................................................................48 AES_GCMInit.................................................................................. 49 AES_GCMStart................................................................................ 50 3 Intel® Integrated Performance Primitives Cryptography Developer Reference AES_GCMReset............................................................................... 50 AES_GCMProcessIV..........................................................................51 AES_GCMProcessAAD.......................................................................51 AES_GCMEncrypt.............................................................................52 AES_GCMDecrypt............................................................................ 53 AES_GCMGetTag..............................................................................53 AES-SIV Functions................................................................................... 54 AES_S2V_CMAC.............................................................................. 54 AES_SIVEncrypt.............................................................................. 55 AES_SIVDecrypt..............................................................................56 Usage Example................................................................................57 TDES Functions....................................................................................... 58 DESGetSize ................................................................................... 59 DESInit.......................................................................................... 60 DESPack, DESUnpack.......................................................................60 TDESEncryptECB............................................................................. 61 TDESDecryptECB............................................................................. 62 TDESEncryptCBC............................................................................. 62 TDESDecryptCBC.............................................................................63 TDESEncryptCFB............................................................................. 64 TDESDecryptCFB............................................................................. 65 TDESEncryptOFB............................................................................. 66 TDESDecryptOFB.............................................................................67 TDESEncryptCTR............................................................................. 68 TDESDecryptCTR............................................................................. 69 Example of Using TDES Functions...................................................... 70 SMS4 Functions....................................................................................... 71 SMS4GetSize.................................................................................. 71 SMS4Init........................................................................................ 72 SMS4SetKey................................................................................... 72 SMS4EncryptECB.............................................................................73 SMS4DecryptECB.............................................................................74 SMS4EncryptCBC.............................................................................75 SMS4DecryptCBC............................................................................ 75 SMS4EncryptCFB............................................................................. 76 SMS4DecryptCFB.............................................................................77 SMS4EncryptOFB.............................................................................78 SMS4DecryptOFB.............................................................................78 SMS4EncryptCTR.............................................................................79 SMS4DecryptCTR.............................................................................80 ARCFour Functions................................................................................... 81 ARCFourGetSize.............................................................................. 81 ARCFourCheckKey............................................................................82 ARCFourInit.................................................................................... 82 ARCFourPack, ARCFourUnpack...........................................................83 ARCFourEncrypt.............................................................................. 84 ARCFourDecrypt.............................................................................. 84 ARCFourReset................................................................................. 85 Chapter 3: One-Way Hash Primitives 4 Contents Hash Functions........................................................................................ 88 HashGetSize................................................................................... 89 HashInit......................................................................................... 90 HashPack, HashUnpack.....................................................................91 HashDuplicate................................................................................. 92 HashUpdate.................................................................................... 92 HashFinal....................................................................................... 93 HashGetTag...................................................................................