Developer Reference

Contents

SMS4 Functions

You can use the functions described in this section for various operational modes of SMS4 cipher systems [SM4].
Intel IPP for cryptography supports ECB, CBC, CFB, CTR, and OFB modes. You can tell which algorithm a given function supports from the function base name, for example, the
SMS4EncryptECB
function operates under the ECB mode.
All functions for the SMS4 block cipher use the context
IppsSMS4Spec
, which serves as an operational vehicle to carry the material required for various modes of operation.
Application code for conducting a typical encryption under the CBC mode using the SMS4 scheme must perform the following sequence of operations:
  1. Get the size required to configure the context
    IppsSMS4Spec
    by calling the function
    SMS4GetSize
    .
  2. Call an operating system memory allocation service function to allocate a buffer of size not less than the one specified by the function
    SMS4GetSize
    .
  3. Initialize the pointer to the context by calling the function
    SMS4Init
    .
  4. Specify the initialization vector and then call the function
    SMS4EncryptCBC
    to encrypt the input data stream under CBC mode using SMS4 scheme.
  5. Clean up secret data stored in the context.
  6. Free the memory allocated to the buffer once SMS4 encryption under the CBC mode has been completed.
You can apply a similar procedure to ECB, CFB, CTR, and OFB modes of operation.
A similar scheme also holds for decryption.

Product and Performance Information

1

Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex.