MCUXpresso SDK API Reference Manual  Rev. 0
NXP Semiconductors
 All Data Structures Functions Variables Typedefs Enumerations Enumerator Groups Pages
CAAM DES driver

Overview

This section describes the programming interface of the CAAM DES driver.

Macros

#define CAAM_DES_KEY_SIZE   8
 CAAM DES key size - 64 bits. More...
 
#define CAAM_DES_IV_SIZE   8
 CAAM DES IV size - 8 bytes.
 

Functions

status_t CAAM_DES_EncryptEcb (CAAM_Type *base, caam_handle_t *handle, const uint8_t *plaintext, uint8_t *ciphertext, size_t size, const uint8_t key[CAAM_DES_KEY_SIZE])
 Encrypts DES using ECB block mode. More...
 
status_t CAAM_DES_DecryptEcb (CAAM_Type *base, caam_handle_t *handle, const uint8_t *ciphertext, uint8_t *plaintext, size_t size, const uint8_t key[CAAM_DES_KEY_SIZE])
 Decrypts DES using ECB block mode. More...
 
status_t CAAM_DES_EncryptCbc (CAAM_Type *base, caam_handle_t *handle, const uint8_t *plaintext, uint8_t *ciphertext, size_t size, const uint8_t iv[CAAM_DES_IV_SIZE], const uint8_t key[CAAM_DES_KEY_SIZE])
 Encrypts DES using CBC block mode. More...
 
status_t CAAM_DES_DecryptCbc (CAAM_Type *base, caam_handle_t *handle, const uint8_t *ciphertext, uint8_t *plaintext, size_t size, const uint8_t iv[CAAM_DES_IV_SIZE], const uint8_t key[CAAM_DES_KEY_SIZE])
 Decrypts DES using CBC block mode. More...
 
status_t CAAM_DES_EncryptCfb (CAAM_Type *base, caam_handle_t *handle, const uint8_t *plaintext, uint8_t *ciphertext, size_t size, const uint8_t iv[CAAM_DES_IV_SIZE], const uint8_t key[CAAM_DES_KEY_SIZE])
 Encrypts DES using CFB block mode. More...
 
status_t CAAM_DES_DecryptCfb (CAAM_Type *base, caam_handle_t *handle, const uint8_t *ciphertext, uint8_t *plaintext, size_t size, const uint8_t iv[CAAM_DES_IV_SIZE], const uint8_t key[CAAM_DES_KEY_SIZE])
 Decrypts DES using CFB block mode. More...
 
status_t CAAM_DES_EncryptOfb (CAAM_Type *base, caam_handle_t *handle, const uint8_t *plaintext, uint8_t *ciphertext, size_t size, const uint8_t iv[CAAM_DES_IV_SIZE], const uint8_t key[CAAM_DES_KEY_SIZE])
 Encrypts DES using OFB block mode. More...
 
status_t CAAM_DES_DecryptOfb (CAAM_Type *base, caam_handle_t *handle, const uint8_t *ciphertext, uint8_t *plaintext, size_t size, const uint8_t iv[CAAM_DES_IV_SIZE], const uint8_t key[CAAM_DES_KEY_SIZE])
 Decrypts DES using OFB block mode. More...
 
status_t CAAM_DES2_EncryptEcb (CAAM_Type *base, caam_handle_t *handle, const uint8_t *plaintext, uint8_t *ciphertext, size_t size, const uint8_t key1[CAAM_DES_KEY_SIZE], const uint8_t key2[CAAM_DES_KEY_SIZE])
 Encrypts triple DES using ECB block mode with two keys. More...
 
status_t CAAM_DES2_DecryptEcb (CAAM_Type *base, caam_handle_t *handle, const uint8_t *ciphertext, uint8_t *plaintext, size_t size, const uint8_t key1[CAAM_DES_KEY_SIZE], const uint8_t key2[CAAM_DES_KEY_SIZE])
 Decrypts triple DES using ECB block mode with two keys. More...
 
status_t CAAM_DES2_EncryptCbc (CAAM_Type *base, caam_handle_t *handle, const uint8_t *plaintext, uint8_t *ciphertext, size_t size, const uint8_t iv[CAAM_DES_IV_SIZE], const uint8_t key1[CAAM_DES_KEY_SIZE], const uint8_t key2[CAAM_DES_KEY_SIZE])
 Encrypts triple DES using CBC block mode with two keys. More...
 
status_t CAAM_DES2_DecryptCbc (CAAM_Type *base, caam_handle_t *handle, const uint8_t *ciphertext, uint8_t *plaintext, size_t size, const uint8_t iv[CAAM_DES_IV_SIZE], const uint8_t key1[CAAM_DES_KEY_SIZE], const uint8_t key2[CAAM_DES_KEY_SIZE])
 Decrypts triple DES using CBC block mode with two keys. More...
 
status_t CAAM_DES2_EncryptCfb (CAAM_Type *base, caam_handle_t *handle, const uint8_t *plaintext, uint8_t *ciphertext, size_t size, const uint8_t iv[CAAM_DES_IV_SIZE], const uint8_t key1[CAAM_DES_KEY_SIZE], const uint8_t key2[CAAM_DES_KEY_SIZE])
 Encrypts triple DES using CFB block mode with two keys. More...
 
status_t CAAM_DES2_DecryptCfb (CAAM_Type *base, caam_handle_t *handle, const uint8_t *ciphertext, uint8_t *plaintext, size_t size, const uint8_t iv[CAAM_DES_IV_SIZE], const uint8_t key1[CAAM_DES_KEY_SIZE], const uint8_t key2[CAAM_DES_KEY_SIZE])
 Decrypts triple DES using CFB block mode with two keys. More...
 
status_t CAAM_DES2_EncryptOfb (CAAM_Type *base, caam_handle_t *handle, const uint8_t *plaintext, uint8_t *ciphertext, size_t size, const uint8_t iv[CAAM_DES_IV_SIZE], const uint8_t key1[CAAM_DES_KEY_SIZE], const uint8_t key2[CAAM_DES_KEY_SIZE])
 Encrypts triple DES using OFB block mode with two keys. More...
 
status_t CAAM_DES2_DecryptOfb (CAAM_Type *base, caam_handle_t *handle, const uint8_t *ciphertext, uint8_t *plaintext, size_t size, const uint8_t iv[CAAM_DES_IV_SIZE], const uint8_t key1[CAAM_DES_KEY_SIZE], const uint8_t key2[CAAM_DES_KEY_SIZE])
 Decrypts triple DES using OFB block mode with two keys. More...
 
status_t CAAM_DES3_EncryptEcb (CAAM_Type *base, caam_handle_t *handle, const uint8_t *plaintext, uint8_t *ciphertext, size_t size, const uint8_t key1[CAAM_DES_KEY_SIZE], const uint8_t key2[CAAM_DES_KEY_SIZE], const uint8_t key3[CAAM_DES_KEY_SIZE])
 Encrypts triple DES using ECB block mode with three keys. More...
 
status_t CAAM_DES3_DecryptEcb (CAAM_Type *base, caam_handle_t *handle, const uint8_t *ciphertext, uint8_t *plaintext, size_t size, const uint8_t key1[CAAM_DES_KEY_SIZE], const uint8_t key2[CAAM_DES_KEY_SIZE], const uint8_t key3[CAAM_DES_KEY_SIZE])
 Decrypts triple DES using ECB block mode with three keys. More...
 
status_t CAAM_DES3_EncryptCbc (CAAM_Type *base, caam_handle_t *handle, const uint8_t *plaintext, uint8_t *ciphertext, size_t size, const uint8_t iv[CAAM_DES_IV_SIZE], const uint8_t key1[CAAM_DES_KEY_SIZE], const uint8_t key2[CAAM_DES_KEY_SIZE], const uint8_t key3[CAAM_DES_KEY_SIZE])
 Encrypts triple DES using CBC block mode with three keys. More...
 
status_t CAAM_DES3_DecryptCbc (CAAM_Type *base, caam_handle_t *handle, const uint8_t *ciphertext, uint8_t *plaintext, size_t size, const uint8_t iv[CAAM_DES_IV_SIZE], const uint8_t key1[CAAM_DES_KEY_SIZE], const uint8_t key2[CAAM_DES_KEY_SIZE], const uint8_t key3[CAAM_DES_KEY_SIZE])
 Decrypts triple DES using CBC block mode with three keys. More...
 
status_t CAAM_DES3_EncryptCfb (CAAM_Type *base, caam_handle_t *handle, const uint8_t *plaintext, uint8_t *ciphertext, size_t size, const uint8_t iv[CAAM_DES_IV_SIZE], const uint8_t key1[CAAM_DES_KEY_SIZE], const uint8_t key2[CAAM_DES_KEY_SIZE], const uint8_t key3[CAAM_DES_KEY_SIZE])
 Encrypts triple DES using CFB block mode with three keys. More...
 
status_t CAAM_DES3_DecryptCfb (CAAM_Type *base, caam_handle_t *handle, const uint8_t *ciphertext, uint8_t *plaintext, size_t size, const uint8_t iv[CAAM_DES_IV_SIZE], const uint8_t key1[CAAM_DES_KEY_SIZE], const uint8_t key2[CAAM_DES_KEY_SIZE], const uint8_t key3[CAAM_DES_KEY_SIZE])
 Decrypts triple DES using CFB block mode with three keys. More...
 
status_t CAAM_DES3_EncryptOfb (CAAM_Type *base, caam_handle_t *handle, const uint8_t *plaintext, uint8_t *ciphertext, size_t size, const uint8_t iv[CAAM_DES_IV_SIZE], const uint8_t key1[CAAM_DES_KEY_SIZE], const uint8_t key2[CAAM_DES_KEY_SIZE], const uint8_t key3[CAAM_DES_KEY_SIZE])
 Encrypts triple DES using OFB block mode with three keys. More...
 
status_t CAAM_DES3_DecryptOfb (CAAM_Type *base, caam_handle_t *handle, const uint8_t *ciphertext, uint8_t *plaintext, size_t size, const uint8_t iv[CAAM_DES_IV_SIZE], const uint8_t key1[CAAM_DES_KEY_SIZE], const uint8_t key2[CAAM_DES_KEY_SIZE], const uint8_t key3[CAAM_DES_KEY_SIZE])
 Decrypts triple DES using OFB block mode with three keys. More...
 

Macro Definition Documentation

#define CAAM_DES_KEY_SIZE   8

Function Documentation

status_t CAAM_DES_EncryptEcb ( CAAM_Type *  base,
caam_handle_t handle,
const uint8_t *  plaintext,
uint8_t *  ciphertext,
size_t  size,
const uint8_t  key[CAAM_DES_KEY_SIZE] 
)

Encrypts DES using ECB block mode.

Parameters
baseCAAM peripheral base address
handleHandle used for this request. Specifies jobRing.
plaintextInput plaintext to encrypt
[out]ciphertextOutput ciphertext
sizeSize of input and output data in bytes. Must be multiple of 8 bytes.
keyInput key to use for encryption
Returns
Status from encrypt/decrypt operation
status_t CAAM_DES_DecryptEcb ( CAAM_Type *  base,
caam_handle_t handle,
const uint8_t *  ciphertext,
uint8_t *  plaintext,
size_t  size,
const uint8_t  key[CAAM_DES_KEY_SIZE] 
)

Decrypts DES using ECB block mode.

Parameters
baseCAAM peripheral base address
handleHandle used for this request. Specifies jobRing.
ciphertextInput ciphertext to decrypt
[out]plaintextOutput plaintext
sizeSize of input and output data in bytes. Must be multiple of 8 bytes.
keyInput key to use for decryption
Returns
Status from encrypt/decrypt operation
status_t CAAM_DES_EncryptCbc ( CAAM_Type *  base,
caam_handle_t handle,
const uint8_t *  plaintext,
uint8_t *  ciphertext,
size_t  size,
const uint8_t  iv[CAAM_DES_IV_SIZE],
const uint8_t  key[CAAM_DES_KEY_SIZE] 
)

Encrypts DES using CBC block mode.

Parameters
baseCAAM peripheral base address
handleHandle used for this request. Specifies jobRing.
plaintextInput plaintext to encrypt
[out]ciphertextOuput ciphertext
sizeSize of input and output data in bytes
ivInput initial vector to combine with the first plaintext block. The iv does not need to be secret, but it must be unpredictable.
keyInput key to use for encryption
Returns
Status from encrypt/decrypt operation
status_t CAAM_DES_DecryptCbc ( CAAM_Type *  base,
caam_handle_t handle,
const uint8_t *  ciphertext,
uint8_t *  plaintext,
size_t  size,
const uint8_t  iv[CAAM_DES_IV_SIZE],
const uint8_t  key[CAAM_DES_KEY_SIZE] 
)

Decrypts DES using CBC block mode.

Parameters
baseCAAM peripheral base address
handleHandle used for this request. Specifies jobRing.
ciphertextInput ciphertext to decrypt
[out]plaintextOutput plaintext
sizeSize of input data in bytes
ivInput initial vector to combine with the first plaintext block. The iv does not need to be secret, but it must be unpredictable.
keyInput key to use for decryption
Returns
Status from encrypt/decrypt operation
status_t CAAM_DES_EncryptCfb ( CAAM_Type *  base,
caam_handle_t handle,
const uint8_t *  plaintext,
uint8_t *  ciphertext,
size_t  size,
const uint8_t  iv[CAAM_DES_IV_SIZE],
const uint8_t  key[CAAM_DES_KEY_SIZE] 
)

Encrypts DES using CFB block mode.

Parameters
baseCAAM peripheral base address
handleHandle used for this request. Specifies jobRing.
plaintextInput plaintext to encrypt
sizeSize of input data in bytes
ivInput initial block.
keyInput key to use for encryption
[out]ciphertextOutput ciphertext
Returns
Status from encrypt/decrypt operation
status_t CAAM_DES_DecryptCfb ( CAAM_Type *  base,
caam_handle_t handle,
const uint8_t *  ciphertext,
uint8_t *  plaintext,
size_t  size,
const uint8_t  iv[CAAM_DES_IV_SIZE],
const uint8_t  key[CAAM_DES_KEY_SIZE] 
)

Decrypts DES using CFB block mode.

Parameters
baseCAAM peripheral base address
handleHandle used for this request. Specifies jobRing.
ciphertextInput ciphertext to decrypt
[out]plaintextOutput plaintext
sizeSize of input and output data in bytes
ivInput initial block.
keyInput key to use for decryption
Returns
Status from encrypt/decrypt operation
status_t CAAM_DES_EncryptOfb ( CAAM_Type *  base,
caam_handle_t handle,
const uint8_t *  plaintext,
uint8_t *  ciphertext,
size_t  size,
const uint8_t  iv[CAAM_DES_IV_SIZE],
const uint8_t  key[CAAM_DES_KEY_SIZE] 
)

Encrypts DES using OFB block mode.

Parameters
baseCAAM peripheral base address
handleHandle used for this request. Specifies jobRing.
plaintextInput plaintext to encrypt
[out]ciphertextOutput ciphertext
sizeSize of input and output data in bytes
ivInput unique input vector. The OFB mode requires that the IV be unique for each execution of the mode under the given key.
keyInput key to use for encryption
Returns
Status from encrypt/decrypt operation
status_t CAAM_DES_DecryptOfb ( CAAM_Type *  base,
caam_handle_t handle,
const uint8_t *  ciphertext,
uint8_t *  plaintext,
size_t  size,
const uint8_t  iv[CAAM_DES_IV_SIZE],
const uint8_t  key[CAAM_DES_KEY_SIZE] 
)

Decrypts DES using OFB block mode.

Parameters
baseCAAM peripheral base address
handleHandle used for this request. Specifies jobRing.
ciphertextInput ciphertext to decrypt
[out]plaintextOutput plaintext
sizeSize of input and output data in bytes. Must be multiple of 8 bytes.
ivInput unique input vector. The OFB mode requires that the IV be unique for each execution of the mode under the given key.
keyInput key to use for decryption
Returns
Status from encrypt/decrypt operation
status_t CAAM_DES2_EncryptEcb ( CAAM_Type *  base,
caam_handle_t handle,
const uint8_t *  plaintext,
uint8_t *  ciphertext,
size_t  size,
const uint8_t  key1[CAAM_DES_KEY_SIZE],
const uint8_t  key2[CAAM_DES_KEY_SIZE] 
)

Encrypts triple DES using ECB block mode with two keys.

Parameters
baseCAAM peripheral base address
handleHandle used for this request. Specifies jobRing.
plaintextInput plaintext to encrypt
[out]ciphertextOutput ciphertext
sizeSize of input and output data in bytes. Must be multiple of 8 bytes.
key1First input key for key bundle
key2Second input key for key bundle
Returns
Status from encrypt/decrypt operation
status_t CAAM_DES2_DecryptEcb ( CAAM_Type *  base,
caam_handle_t handle,
const uint8_t *  ciphertext,
uint8_t *  plaintext,
size_t  size,
const uint8_t  key1[CAAM_DES_KEY_SIZE],
const uint8_t  key2[CAAM_DES_KEY_SIZE] 
)

Decrypts triple DES using ECB block mode with two keys.

Parameters
baseCAAM peripheral base address
handleHandle used for this request. Specifies jobRing.
ciphertextInput ciphertext to decrypt
[out]plaintextOutput plaintext
sizeSize of input and output data in bytes. Must be multiple of 8 bytes.
key1First input key for key bundle
key2Second input key for key bundle
Returns
Status from encrypt/decrypt operation
status_t CAAM_DES2_EncryptCbc ( CAAM_Type *  base,
caam_handle_t handle,
const uint8_t *  plaintext,
uint8_t *  ciphertext,
size_t  size,
const uint8_t  iv[CAAM_DES_IV_SIZE],
const uint8_t  key1[CAAM_DES_KEY_SIZE],
const uint8_t  key2[CAAM_DES_KEY_SIZE] 
)

Encrypts triple DES using CBC block mode with two keys.

Parameters
baseCAAM peripheral base address
handleHandle used for this request. Specifies jobRing.
plaintextInput plaintext to encrypt
[out]ciphertextOutput ciphertext
sizeSize of input and output data in bytes
ivInput initial vector to combine with the first plaintext block. The iv does not need to be secret, but it must be unpredictable.
key1First input key for key bundle
key2Second input key for key bundle
Returns
Status from encrypt/decrypt operation
status_t CAAM_DES2_DecryptCbc ( CAAM_Type *  base,
caam_handle_t handle,
const uint8_t *  ciphertext,
uint8_t *  plaintext,
size_t  size,
const uint8_t  iv[CAAM_DES_IV_SIZE],
const uint8_t  key1[CAAM_DES_KEY_SIZE],
const uint8_t  key2[CAAM_DES_KEY_SIZE] 
)

Decrypts triple DES using CBC block mode with two keys.

Parameters
baseCAAM peripheral base address
handleHandle used for this request. Specifies jobRing.
ciphertextInput ciphertext to decrypt
[out]plaintextOutput plaintext
sizeSize of input and output data in bytes
ivInput initial vector to combine with the first plaintext block. The iv does not need to be secret, but it must be unpredictable.
key1First input key for key bundle
key2Second input key for key bundle
Returns
Status from encrypt/decrypt operation
status_t CAAM_DES2_EncryptCfb ( CAAM_Type *  base,
caam_handle_t handle,
const uint8_t *  plaintext,
uint8_t *  ciphertext,
size_t  size,
const uint8_t  iv[CAAM_DES_IV_SIZE],
const uint8_t  key1[CAAM_DES_KEY_SIZE],
const uint8_t  key2[CAAM_DES_KEY_SIZE] 
)

Encrypts triple DES using CFB block mode with two keys.

Parameters
baseCAAM peripheral base address
handleHandle used for this request. Specifies jobRing.
plaintextInput plaintext to encrypt
[out]ciphertextOutput ciphertext
sizeSize of input and output data in bytes
ivInput initial block.
key1First input key for key bundle
key2Second input key for key bundle
Returns
Status from encrypt/decrypt operation
status_t CAAM_DES2_DecryptCfb ( CAAM_Type *  base,
caam_handle_t handle,
const uint8_t *  ciphertext,
uint8_t *  plaintext,
size_t  size,
const uint8_t  iv[CAAM_DES_IV_SIZE],
const uint8_t  key1[CAAM_DES_KEY_SIZE],
const uint8_t  key2[CAAM_DES_KEY_SIZE] 
)

Decrypts triple DES using CFB block mode with two keys.

Parameters
baseCAAM peripheral base address
handleHandle used for this request. Specifies jobRing.
ciphertextInput ciphertext to decrypt
[out]plaintextOutput plaintext
sizeSize of input and output data in bytes
ivInput initial block.
key1First input key for key bundle
key2Second input key for key bundle
Returns
Status from encrypt/decrypt operation
status_t CAAM_DES2_EncryptOfb ( CAAM_Type *  base,
caam_handle_t handle,
const uint8_t *  plaintext,
uint8_t *  ciphertext,
size_t  size,
const uint8_t  iv[CAAM_DES_IV_SIZE],
const uint8_t  key1[CAAM_DES_KEY_SIZE],
const uint8_t  key2[CAAM_DES_KEY_SIZE] 
)

Encrypts triple DES using OFB block mode with two keys.

Parameters
baseCAAM peripheral base address
handleHandle used for this request. Specifies jobRing.
plaintextInput plaintext to encrypt
[out]ciphertextOutput ciphertext
sizeSize of input and output data in bytes
ivInput unique input vector. The OFB mode requires that the IV be unique for each execution of the mode under the given key.
key1First input key for key bundle
key2Second input key for key bundle
Returns
Status from encrypt/decrypt operation
status_t CAAM_DES2_DecryptOfb ( CAAM_Type *  base,
caam_handle_t handle,
const uint8_t *  ciphertext,
uint8_t *  plaintext,
size_t  size,
const uint8_t  iv[CAAM_DES_IV_SIZE],
const uint8_t  key1[CAAM_DES_KEY_SIZE],
const uint8_t  key2[CAAM_DES_KEY_SIZE] 
)

Decrypts triple DES using OFB block mode with two keys.

Parameters
baseCAAM peripheral base address
handleHandle used for this request. Specifies jobRing.
ciphertextInput ciphertext to decrypt
[out]plaintextOutput plaintext
sizeSize of input and output data in bytes
ivInput unique input vector. The OFB mode requires that the IV be unique for each execution of the mode under the given key.
key1First input key for key bundle
key2Second input key for key bundle
Returns
Status from encrypt/decrypt operation
status_t CAAM_DES3_EncryptEcb ( CAAM_Type *  base,
caam_handle_t handle,
const uint8_t *  plaintext,
uint8_t *  ciphertext,
size_t  size,
const uint8_t  key1[CAAM_DES_KEY_SIZE],
const uint8_t  key2[CAAM_DES_KEY_SIZE],
const uint8_t  key3[CAAM_DES_KEY_SIZE] 
)

Encrypts triple DES using ECB block mode with three keys.

Parameters
baseCAAM peripheral base address
handleHandle used for this request. Specifies jobRing.
plaintextInput plaintext to encrypt
[out]ciphertextOutput ciphertext
sizeSize of input and output data in bytes. Must be multiple of 8 bytes.
key1First input key for key bundle
key2Second input key for key bundle
key3Third input key for key bundle
Returns
Status from encrypt/decrypt operation
status_t CAAM_DES3_DecryptEcb ( CAAM_Type *  base,
caam_handle_t handle,
const uint8_t *  ciphertext,
uint8_t *  plaintext,
size_t  size,
const uint8_t  key1[CAAM_DES_KEY_SIZE],
const uint8_t  key2[CAAM_DES_KEY_SIZE],
const uint8_t  key3[CAAM_DES_KEY_SIZE] 
)

Decrypts triple DES using ECB block mode with three keys.

Parameters
baseCAAM peripheral base address
handleHandle used for this request. Specifies jobRing.
ciphertextInput ciphertext to decrypt
[out]plaintextOutput plaintext
sizeSize of input and output data in bytes. Must be multiple of 8 bytes.
key1First input key for key bundle
key2Second input key for key bundle
key3Third input key for key bundle
Returns
Status from encrypt/decrypt operation
status_t CAAM_DES3_EncryptCbc ( CAAM_Type *  base,
caam_handle_t handle,
const uint8_t *  plaintext,
uint8_t *  ciphertext,
size_t  size,
const uint8_t  iv[CAAM_DES_IV_SIZE],
const uint8_t  key1[CAAM_DES_KEY_SIZE],
const uint8_t  key2[CAAM_DES_KEY_SIZE],
const uint8_t  key3[CAAM_DES_KEY_SIZE] 
)

Encrypts triple DES using CBC block mode with three keys.

Parameters
baseCAAM peripheral base address
handleHandle used for this request. Specifies jobRing.
plaintextInput plaintext to encrypt
[out]ciphertextOutput ciphertext
sizeSize of input data in bytes
ivInput initial vector to combine with the first plaintext block. The iv does not need to be secret, but it must be unpredictable.
key1First input key for key bundle
key2Second input key for key bundle
key3Third input key for key bundle
Returns
Status from encrypt/decrypt operation
status_t CAAM_DES3_DecryptCbc ( CAAM_Type *  base,
caam_handle_t handle,
const uint8_t *  ciphertext,
uint8_t *  plaintext,
size_t  size,
const uint8_t  iv[CAAM_DES_IV_SIZE],
const uint8_t  key1[CAAM_DES_KEY_SIZE],
const uint8_t  key2[CAAM_DES_KEY_SIZE],
const uint8_t  key3[CAAM_DES_KEY_SIZE] 
)

Decrypts triple DES using CBC block mode with three keys.

Parameters
baseCAAM peripheral base address
handleHandle used for this request. Specifies jobRing.
ciphertextInput ciphertext to decrypt
[out]plaintextOutput plaintext
sizeSize of input and output data in bytes
ivInput initial vector to combine with the first plaintext block. The iv does not need to be secret, but it must be unpredictable.
key1First input key for key bundle
key2Second input key for key bundle
key3Third input key for key bundle
Returns
Status from encrypt/decrypt operation
status_t CAAM_DES3_EncryptCfb ( CAAM_Type *  base,
caam_handle_t handle,
const uint8_t *  plaintext,
uint8_t *  ciphertext,
size_t  size,
const uint8_t  iv[CAAM_DES_IV_SIZE],
const uint8_t  key1[CAAM_DES_KEY_SIZE],
const uint8_t  key2[CAAM_DES_KEY_SIZE],
const uint8_t  key3[CAAM_DES_KEY_SIZE] 
)

Encrypts triple DES using CFB block mode with three keys.

Parameters
baseCAAM peripheral base address
plaintextInput plaintext to encrypt
[out]ciphertextOutput ciphertext
sizeSize of input and ouput data in bytes
ivInput initial block.
key1First input key for key bundle
key2Second input key for key bundle
key3Third input key for key bundle
Returns
Status from encrypt/decrypt operation
status_t CAAM_DES3_DecryptCfb ( CAAM_Type *  base,
caam_handle_t handle,
const uint8_t *  ciphertext,
uint8_t *  plaintext,
size_t  size,
const uint8_t  iv[CAAM_DES_IV_SIZE],
const uint8_t  key1[CAAM_DES_KEY_SIZE],
const uint8_t  key2[CAAM_DES_KEY_SIZE],
const uint8_t  key3[CAAM_DES_KEY_SIZE] 
)

Decrypts triple DES using CFB block mode with three keys.

Parameters
baseCAAM peripheral base address
handleHandle used for this request. Specifies jobRing.
ciphertextInput ciphertext to decrypt
[out]plaintextOutput plaintext
sizeSize of input data in bytes
ivInput initial block.
key1First input key for key bundle
key2Second input key for key bundle
key3Third input key for key bundle
Returns
Status from encrypt/decrypt operation
status_t CAAM_DES3_EncryptOfb ( CAAM_Type *  base,
caam_handle_t handle,
const uint8_t *  plaintext,
uint8_t *  ciphertext,
size_t  size,
const uint8_t  iv[CAAM_DES_IV_SIZE],
const uint8_t  key1[CAAM_DES_KEY_SIZE],
const uint8_t  key2[CAAM_DES_KEY_SIZE],
const uint8_t  key3[CAAM_DES_KEY_SIZE] 
)

Encrypts triple DES using OFB block mode with three keys.

Parameters
baseCAAM peripheral base address
plaintextInput plaintext to encrypt
[out]ciphertextOutput ciphertext
sizeSize of input and output data in bytes
ivInput unique input vector. The OFB mode requires that the IV be unique for each execution of the mode under the given key.
key1First input key for key bundle
key2Second input key for key bundle
key3Third input key for key bundle
Returns
Status from encrypt/decrypt operation
status_t CAAM_DES3_DecryptOfb ( CAAM_Type *  base,
caam_handle_t handle,
const uint8_t *  ciphertext,
uint8_t *  plaintext,
size_t  size,
const uint8_t  iv[CAAM_DES_IV_SIZE],
const uint8_t  key1[CAAM_DES_KEY_SIZE],
const uint8_t  key2[CAAM_DES_KEY_SIZE],
const uint8_t  key3[CAAM_DES_KEY_SIZE] 
)

Decrypts triple DES using OFB block mode with three keys.

Parameters
baseCAAM peripheral base address
handleHandle used for this request. Specifies jobRing.
ciphertextInput ciphertext to decrypt
[out]plaintextOutput plaintext
sizeSize of input and output data in bytes
ivInput unique input vector. The OFB mode requires that the IV be unique for each execution of the mode under the given key.
key1First input key for key bundle
key2Second input key for key bundle
key3Third input key for key bundle
Returns
Status from encrypt/decrypt operation