| Did you know ... | Search Documentation: |
| Pack logtalk -- logtalk-3.102.0/docs/apis/_sources/block_cipher_modes_common_0.rst.txt |
.. index:: single: block_cipher_modes_common .. _block_cipher_modes_common/0:
.. rst-class:: right
category
block_cipher_modes_commonShared validation, block, XOR, and PKCS#7 predicates for block cipher modes.
| Availability:
| logtalk_load(block_ciphers(loader))
| Author: Paulo Moura | Version: 1:0:0 | Date: 2026-08-08
| Compilation flags:
| static
| Uses: | :ref:`list <list/0>` | :ref:`type <type/0>`
| Remarks: | (none)
| Inherited public predicates: | (none)
.. contents:: :local: :backlinks: top
(no local declarations; see entity ancestors if any)
.. index:: prepare_cipher/4 .. _block_cipher_modes_common/0::prepare_cipher/4:
prepare_cipher/4 ^^^^^^^^^^^^^^^^^^^^
Validates a cipher object, queries its block size, and prepares a key.
| Compilation flags:
| static
| Template:
| prepare_cipher(Cipher,Key,BlockSize,PreparedKey)
| Mode and number of proofs:
| prepare_cipher(+object_identifier,+list(byte),--positive_integer,--compound) - one_or_error
| Exceptions:
| Cipher is a variable:
| instantiation_error
| Cipher is not a variable but does not implement the prepared-key block cipher protocol:
| domain_error(block_cipher,Cipher)
| Cipher implements he prepared-key block cipher protocol but reports an invalid block size:
| domain_error(block_cipher_block_size,BlockSize)
| Key is invalid for Cipher:
| type_error(list(byte,KeySize),Key)
.. index:: check_bytes/1 .. _block_cipher_modes_common/0::check_bytes/1:
check_bytes/1 ^^^^^^^^^^^^^^^^^
Checks a list of bytes.
| Compilation flags:
| static
| Template:
| check_bytes(Bytes)
| Mode and number of proofs:
| check_bytes(+list(byte)) - one_or_error
| Exceptions:
| Bytes is a variable or a partial list:
| instantiation_error
| Bytes is neither a partial list nor a list:
| type_error(list,Bytes)
| An element Byte of the Bytes list is neither a variable nor an integer:
| type_error(integer,Byte)
| An element Byte of the Bytes list is an integer but not a valid byte:
| domain_error(byte,Byte)
.. index:: check_block/2 .. _block_cipher_modes_common/0::check_block/2:
check_block/2 ^^^^^^^^^^^^^^^^^
Checks a byte list whose length is exactly one block.
| Compilation flags:
| static
| Template:
| check_block(BlockSize,Block)
| Mode and number of proofs:
| check_block(+positive_integer,+list(byte)) - one_or_error
| Exceptions:
| BlockSize is a variable:
| instantiation_error
| BlockSize is neither a variable nor an integer:
| type_error(integer,BlockSize)
| BlockSize is an integer but not a positive integer:
| domain_error(positive_integer,BlockSize)
| Block is a variable or a partial list:
| instantiation_error
| Block is not a list of exactly BlockSize bytes:
| type_error(list(byte,BlockSize),Block)
| An element Byte of the Block` list is neither a variable nor an integer:
| type_error(integer,Byte)
| An element Byte of the Block list is an integer but not a valid byte:
| domain_error(byte,Byte)
.. index:: check_aligned/2 .. _block_cipher_modes_common/0::check_aligned/2:
check_aligned/2 ^^^^^^^^^^^^^^^^^^^
Checks that a byte-list length is a multiple of the block size.
| Compilation flags:
| static
| Template:
| check_aligned(BlockSize,Bytes)
| Mode and number of proofs:
| check_aligned(+positive_integer,+list(byte)) - one_or_error
| Exceptions:
| BlockSize is a variable:
| instantiation_error
| BlockSize is neither a variable nor an integer:
| type_error(integer,BlockSize)
| BlockSize is an integer but not a positive integer:
| domain_error(positive_integer,BlockSize)
| Bytes length is not a multiple of BlockSize:
| domain_error(block_aligned_byte_length(BlockSize),Bytes)
.. index:: blocks/3 .. _block_cipher_modes_common/0::blocks/3:
blocks/3 ^^^^^^^^^^^^
Splits an aligned byte list into blocks.
| Compilation flags:
| static
| Template:
| blocks(BlockSize,Bytes,Blocks)
| Mode and number of proofs:
| blocks(+positive_integer,+list(byte),--list(list(byte))) - one
.. index:: xor_bytes/3 .. _block_cipher_modes_common/0::xor_bytes/3:
xor_bytes/3 ^^^^^^^^^^^^^^^
XORs equal-length byte lists.
| Compilation flags:
| static
| Template:
| xor_bytes(Bytes1,Bytes2,Bytes)
| Mode and number of proofs:
| xor_bytes(+list(byte),+list(byte),--list(byte)) - one
.. index:: pkcs7_pad/3 .. _block_cipher_modes_common/0::pkcs7_pad/3:
pkcs7_pad/3 ^^^^^^^^^^^^^^^
Pads bytes using PKCS#7.
| Compilation flags:
| static
| Template:
| pkcs7_pad(BlockSize,Bytes,PaddedBytes)
| Mode and number of proofs:
| pkcs7_pad(+positive_integer,+list(byte),--list(byte)) - one_or_error
| Exceptions:
| BlockSize exceeds the maximum PKCS#7 block size:
| domain_error(pkcs7_block_size,BlockSize)
.. index:: pkcs7_unpad/4 .. _block_cipher_modes_common/0::pkcs7_unpad/4:
pkcs7_unpad/4 ^^^^^^^^^^^^^^^^^
Validates and removes PKCS#7 padding, reporting the supplied error value when padding is invalid.
| Compilation flags:
| static
| Template:
| pkcs7_unpad(BlockSize,PaddedBytes,ErrorValue,Bytes)
| Mode and number of proofs:
| pkcs7_unpad(+positive_integer,+list(byte),+term,--list(byte)) - one_or_error
| Exceptions:
| BlockSize exceeds the maximum PKCS#7 block size:
| domain_error(pkcs7_block_size,BlockSize)
| PaddedBytes does not contain valid PKCS#7 padding:
| domain_error(pkcs7_padding,ErrorValue)
(no local declarations; see entity ancestors if any)
(none)