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

Overview

This section describes the programming interface of the CAAM Non-blocking DES driver.

Functions

status_t CAAM_DES_EncryptEcbNonBlocking (CAAM_Type *base, caam_handle_t *handle, caam_desc_cipher_des_t descriptor, 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_DecryptEcbNonBlocking (CAAM_Type *base, caam_handle_t *handle, caam_desc_cipher_des_t descriptor, 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_EncryptCbcNonBlocking (CAAM_Type *base, caam_handle_t *handle, caam_desc_cipher_des_t descriptor, 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_DecryptCbcNonBlocking (CAAM_Type *base, caam_handle_t *handle, caam_desc_cipher_des_t descriptor, 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_EncryptCfbNonBlocking (CAAM_Type *base, caam_handle_t *handle, caam_desc_cipher_des_t descriptor, 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_DecryptCfbNonBlocking (CAAM_Type *base, caam_handle_t *handle, caam_desc_cipher_des_t descriptor, 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_EncryptOfbNonBlocking (CAAM_Type *base, caam_handle_t *handle, caam_desc_cipher_des_t descriptor, 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_DecryptOfbNonBlocking (CAAM_Type *base, caam_handle_t *handle, caam_desc_cipher_des_t descriptor, 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_EncryptEcbNonBlocking (CAAM_Type *base, caam_handle_t *handle, caam_desc_cipher_des_t descriptor, 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_DecryptEcbNonBlocking (CAAM_Type *base, caam_handle_t *handle, caam_desc_cipher_des_t descriptor, 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_EncryptCbcNonBlocking (CAAM_Type *base, caam_handle_t *handle, caam_desc_cipher_des_t descriptor, 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_DecryptCbcNonBlocking (CAAM_Type *base, caam_handle_t *handle, caam_desc_cipher_des_t descriptor, 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_EncryptCfbNonBlocking (CAAM_Type *base, caam_handle_t *handle, caam_desc_cipher_des_t descriptor, 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_DecryptCfbNonBlocking (CAAM_Type *base, caam_handle_t *handle, caam_desc_cipher_des_t descriptor, 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_EncryptOfbNonBlocking (CAAM_Type *base, caam_handle_t *handle, caam_desc_cipher_des_t descriptor, 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_DecryptOfbNonBlocking (CAAM_Type *base, caam_handle_t *handle, caam_desc_cipher_des_t descriptor, 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_EncryptEcbNonBlocking (CAAM_Type *base, caam_handle_t *handle, caam_desc_cipher_des_t descriptor, 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_DecryptEcbNonBlocking (CAAM_Type *base, caam_handle_t *handle, caam_desc_cipher_des_t descriptor, 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_EncryptCbcNonBlocking (CAAM_Type *base, caam_handle_t *handle, caam_desc_cipher_des_t descriptor, 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_DecryptCbcNonBlocking (CAAM_Type *base, caam_handle_t *handle, caam_desc_cipher_des_t descriptor, 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_EncryptCfbNonBlocking (CAAM_Type *base, caam_handle_t *handle, caam_desc_cipher_des_t descriptor, 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_DecryptCfbNonBlocking (CAAM_Type *base, caam_handle_t *handle, caam_desc_cipher_des_t descriptor, 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_EncryptOfbNonBlocking (CAAM_Type *base, caam_handle_t *handle, caam_desc_cipher_des_t descriptor, 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_DecryptOfbNonBlocking (CAAM_Type *base, caam_handle_t *handle, caam_desc_cipher_des_t descriptor, 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...
 

Function Documentation

status_t CAAM_DES_EncryptEcbNonBlocking ( CAAM_Type *  base,
caam_handle_t handle,
caam_desc_cipher_des_t  descriptor,
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.
[out]descriptormemory for CAAM commands
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 descriptor push
status_t CAAM_DES_DecryptEcbNonBlocking ( CAAM_Type *  base,
caam_handle_t handle,
caam_desc_cipher_des_t  descriptor,
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.
[out]descriptormemory for CAAM commands
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 descriptor push
status_t CAAM_DES_EncryptCbcNonBlocking ( CAAM_Type *  base,
caam_handle_t handle,
caam_desc_cipher_des_t  descriptor,
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.
[out]descriptormemory for CAAM commands
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 descriptor push
status_t CAAM_DES_DecryptCbcNonBlocking ( CAAM_Type *  base,
caam_handle_t handle,
caam_desc_cipher_des_t  descriptor,
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.
[out]descriptormemory for CAAM commands
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 descriptor push
status_t CAAM_DES_EncryptCfbNonBlocking ( CAAM_Type *  base,
caam_handle_t handle,
caam_desc_cipher_des_t  descriptor,
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.
[out]descriptormemory for CAAM commands
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 descriptor push
status_t CAAM_DES_DecryptCfbNonBlocking ( CAAM_Type *  base,
caam_handle_t handle,
caam_desc_cipher_des_t  descriptor,
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.
[out]descriptormemory for CAAM commands
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 descriptor push
status_t CAAM_DES_EncryptOfbNonBlocking ( CAAM_Type *  base,
caam_handle_t handle,
caam_desc_cipher_des_t  descriptor,
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.
[out]descriptormemory for CAAM commands
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 descriptor push
status_t CAAM_DES_DecryptOfbNonBlocking ( CAAM_Type *  base,
caam_handle_t handle,
caam_desc_cipher_des_t  descriptor,
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.
[out]descriptormemory for CAAM commands
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 descriptor push
status_t CAAM_DES2_EncryptEcbNonBlocking ( CAAM_Type *  base,
caam_handle_t handle,
caam_desc_cipher_des_t  descriptor,
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.
[out]descriptormemory for CAAM commands
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 descriptor push
status_t CAAM_DES2_DecryptEcbNonBlocking ( CAAM_Type *  base,
caam_handle_t handle,
caam_desc_cipher_des_t  descriptor,
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.
[out]descriptormemory for CAAM commands
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 descriptor push
status_t CAAM_DES2_EncryptCbcNonBlocking ( CAAM_Type *  base,
caam_handle_t handle,
caam_desc_cipher_des_t  descriptor,
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.
[out]descriptormemory for CAAM commands
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 descriptor push
status_t CAAM_DES2_DecryptCbcNonBlocking ( CAAM_Type *  base,
caam_handle_t handle,
caam_desc_cipher_des_t  descriptor,
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.
[out]descriptormemory for CAAM commands
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 descriptor push
status_t CAAM_DES2_EncryptCfbNonBlocking ( CAAM_Type *  base,
caam_handle_t handle,
caam_desc_cipher_des_t  descriptor,
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.
[out]descriptormemory for CAAM commands
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 descriptor push
status_t CAAM_DES2_DecryptCfbNonBlocking ( CAAM_Type *  base,
caam_handle_t handle,
caam_desc_cipher_des_t  descriptor,
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.
[out]descriptormemory for CAAM commands
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 descriptor push
status_t CAAM_DES2_EncryptOfbNonBlocking ( CAAM_Type *  base,
caam_handle_t handle,
caam_desc_cipher_des_t  descriptor,
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.
[out]descriptormemory for CAAM commands
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 descriptor push
status_t CAAM_DES2_DecryptOfbNonBlocking ( CAAM_Type *  base,
caam_handle_t handle,
caam_desc_cipher_des_t  descriptor,
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.
[out]descriptormemory for CAAM commands
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 descriptor push
status_t CAAM_DES3_EncryptEcbNonBlocking ( CAAM_Type *  base,
caam_handle_t handle,
caam_desc_cipher_des_t  descriptor,
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.
[out]descriptormemory for CAAM commands
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 descriptor push
status_t CAAM_DES3_DecryptEcbNonBlocking ( CAAM_Type *  base,
caam_handle_t handle,
caam_desc_cipher_des_t  descriptor,
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.
[out]descriptormemory for CAAM commands
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 descriptor push
status_t CAAM_DES3_EncryptCbcNonBlocking ( CAAM_Type *  base,
caam_handle_t handle,
caam_desc_cipher_des_t  descriptor,
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.
[out]descriptormemory for CAAM commands
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 descriptor push
status_t CAAM_DES3_DecryptCbcNonBlocking ( CAAM_Type *  base,
caam_handle_t handle,
caam_desc_cipher_des_t  descriptor,
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.
[out]descriptormemory for CAAM commands
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 descriptor push
status_t CAAM_DES3_EncryptCfbNonBlocking ( CAAM_Type *  base,
caam_handle_t handle,
caam_desc_cipher_des_t  descriptor,
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
handleHandle used for this request. Specifies jobRing.
[out]descriptormemory for CAAM commands
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 descriptor push
status_t CAAM_DES3_DecryptCfbNonBlocking ( CAAM_Type *  base,
caam_handle_t handle,
caam_desc_cipher_des_t  descriptor,
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.
[out]descriptormemory for CAAM commands
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 descriptor push
status_t CAAM_DES3_EncryptOfbNonBlocking ( CAAM_Type *  base,
caam_handle_t handle,
caam_desc_cipher_des_t  descriptor,
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
handleHandle used for this request. Specifies jobRing.
[out]descriptormemory for CAAM commands
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 descriptor push
status_t CAAM_DES3_DecryptOfbNonBlocking ( CAAM_Type *  base,
caam_handle_t handle,
caam_desc_cipher_des_t  descriptor,
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.
[out]descriptormemory for CAAM commands
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 descriptor push