# 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
…
- 26
- 27
- 28
- 29
- 30
…
- 119
- 120

Enumerations
Name Description
BLOCK_CIPHER_ERRORS Enumeration defining potential errors the can occur when using a block
cipher mode of operation. Modes that do not use keystreams will not
generate errors.
BLOCK_CIPHER_MODES Enumeration defining available block cipher modes of operation
Types
Name Description
BLOCK_CIPHER_FunctionEncrypt Function pointer for a block cipher's encryption function. When using the
block cipher modes of operation module, you will configure it to use the
encrypt function of the block cipher module that you are using with a
pointer to that block cipher's encrypt function.
None
BLOCK_CIPHER_FunctionDecrypt Function pointer for a block cipher's decryption function. When using the
block cipher modes of operation module, you will configure it to use the
decrypt function of the block cipher module that you are using with a
pointer to that block cipher's encrypt function.
None
Description
Describes general functionality used by the block cipher mode module.
1.7.1.1.1 Options
Describes general options that can be selected when encrypting/decrypting a message.
Macros
Name Description
BLOCK_CIPHER_OPTION_AUTHENTICATE_ONLY This option is used to pass data that will be
authenticated but not encrypted into an authenticating
block cipher mode function.
BLOCK_CIPHER_OPTION_STREAM_START This should be passed when a new stream is starting
BLOCK_CIPHER_OPTION_STREAM_CONTINUE The stream is still in progress.
BLOCK_CIPHER_OPTION_STREAM_COMPLETE The stream is complete. Padding will be applied if
required.
BLOCK_CIPHER_OPTION_OPTIONS_DEFAULT A definition to specify the default set of options.
BLOCK_CIPHER_OPTION_PAD_MASK Mask to determine the padding option that is selected.
BLOCK_CIPHER_OPTION_PAD_NONE Pad with whatever data is already in the RAM. This flag
is normally set only for the last block of data.
BLOCK_CIPHER_OPTION_PAD_NULLS Pad with 0x00 bytes if the current and previous data
lengths do not end on a block boundary (multiple of 16
bytes). This flag is normally set only for the last block of
data.
BLOCK_CIPHER_OPTION_PAD_8000 Pad with 0x80 followed by 0x00 bytes (a 1 bit followed
by several 0 bits) if the current and previous data
lengths do not end on a block boundary (multiple of 16
bytes). This flag is normally set only for the last block of
data.
BLOCK_CIPHER_OPTION_PAD_NUMBER Pad with three 0x03's, four 0x04's, five 0x05's, six
0x06's, etc. set by the number of padding bytes needed
if the current and previous data lengths do not end on a
block boundary (multiple of 16 bytes). This flag is
normally set only for the last block of data.
1.7 Library Interface MLA - Crypto Library Help Block Cipher Modes
28

- 1
- 2
…
- 26
- 27
- 28
- 29
- 30
…
- 119
- 120