# Vault 7: Projects

This publication series is about specific projects related to the Vault 7 main publication.

### Protego

# MLA -- Crypto Library

1 January, 2012

- 1
- 2
…
- 82
- 83
- 84
- 85
- 86
…
- 119
- 120

Parameters
Parameters Description
handle A handle that is passed to the block cipher's encrypt/decrypt
functions to specify which instance of the block cipher
module to use. This parameter can be specified as NULL if
the block cipher does not have multiple instances.
plainText The cipher text produced by the decryption. This buffer must
be at least numBytes long.
cipherText The cipher test to decrypt. Must be at least numBytes long.
numBytes The number of cipher text bytes that must be decrypted.
authenticationTag Pointer to a structure containing the authentication tag
generated by an encrypt/authenticate operation. The tag
calculated during decryption will be checked against this
buffer when the user specifies the
BLOCK_CIPHER_OPTION_STREAM_COMPLETE option.
tagLen The length of the authentication tag, in bytes.
key The key to use when encrypting/decrypting the data. The
format of this key will depend on the block cipher you are
using.
context Pointer to a context structure for this decryption. The first call
of this function should have the context->initializationVector
set to the initializationVector. The same context structure
instance should be used for every call used for the same
data stream. The contents of this structure should not be
changed by the user once the encryption/decryption has
started.
options Block cipher decryption options that the user can specify,
or'd together. If no option is specified then
BLOCK_CIPHER_OPTION_STREAM_CONTINUE is
assumed. Valid options for this function are
• BLOCK_CIPHER_OPTION_AUTHENTICATE_ONLY
• BLOCK_CIPHER_OPTION_STREAM_CONTINUE
• BLOCK_CIPHER_OPTION_STREAM_COMPLETE
Function
BLOCK_CIPHER_ERRORS BLOCK_CIPHER_GCM_Decrypt (DRV_HANDLE handle,
uint8_t * plainText, uint8_t * cipherText, uint32_t numBytes,
uint8_t * authenticationTag, uint8_t tagLen, void * key,
BLOCK_CIPHER_GCM_CONTEXT * context, uint32_t options)
1.7.2 AES
This section describes the Application Programming Interface (API) functions of the AES module.
Functions
Name Description
DRV_AES_Initialize Initializes the data for the instance of the AES module.
DRV_AES_Deinitialize Deinitializes the instance of the AES module
DRV_AES_Open Opens a new client for the device instance.
DRV_AES_Close Closes an opened client
1.7 Library Interface MLA - Crypto Library Help AES
84

- 1
- 2
…
- 82
- 83
- 84
- 85
- 86
…
- 119
- 120