Cryptography for Intel(R) Integrated Performance Primitives Developer Reference

ID 768738
Date 12/16/2022
Document Table of Contents

ARCFour Functions


ARCFour algorithm functions are deprecated and will be removed in a future Intel® IPP release.

As the RC4* stream cipher, widely used for file encryption and secure communications, is the property of RSA Security Inc., a cipher discussed in this section and resulting in the same encryption/decryption as RC4* is called ARCFour.

The ARCFour stream cipher ([AC]) uses a variable length key of up to 256 octets (bytes). ARCFour operates in the Output Feedback mode (OFB), defined in [NIST SP 800-38A], which creates the keystream independently of both the plaintext and the ciphertext.

The ARCFour algorithm functions, described in this section, use the context IppsARCFourState as an operational vehicle to carry variables needed to execute the algorithm: S-Boxes and a current pair of indices.

The typical application code for conducting an encryption or decryption using ARCFour should follow the sequence of operations listed below:

  1. Get the buffer size required to configure the context IppsARCFourState by calling the function ARCFourGetSize.
  2. Call the operating system memory allocation service function to allocate a buffer whose size is not less than the one specified by the function ARCFourGetSize.
  3. Initialize the pointer pCtx to the IppsARCFourState context by calling the function ARCFourInit with the allocated buffer and the respective ARCFour cipher key of the specified size.
  4. Call the ARCFourEncrypt or ARCFourDecrypt function to encrypt or decrypt the input data stream, respectively.
  5. Clean up secret data stored in the context.
  6. Call the operating system memory free service function to release the buffer allocated for the IppsARCFourState context, if needed.

The ARCFourSpec context is position-dependent. The ARCFourPack/ARCFourUnpack functions transform the position-dependent context to a position-independent form and vice versa.

See Also

Did you find the information on this page useful?

Characters remaining:

Feedback Message