protocol
block_cipher_prepared_key_protocol
Protocol for block ciphers supporting opaque prepared keys for repeated block operations.
Availability:
logtalk_load(block_ciphers(loader))Author: Paulo Moura
Version: 1:0:0
Date: 2026-08-08
Compilation flags:
staticExtends:
public block_cipher_protocolRemarks:
(none)
Inherited public predicates:
Public predicates
prepare_key/2
Validates and prepares a key for repeated block encryption or decryption.
Compilation flags:
staticTemplate:
prepare_key(Key,PreparedKey)Mode and number of proofs:
prepare_key(+list(byte),--compound) - one_or_errorExceptions:
Key is a variable or a partial list:instantiation_errorKey is a list but not with the required number of bytes:type_error(list(byte,KeySize),Key)Key contains a non-integer byte:type_error(integer,Byte)Key contains an integer outside the byte range:domain_error(byte,Byte)encrypt_prepared_block/3
Encrypts a plaintext block using an opaque prepared key created by the same cipher object.
Compilation flags:
staticTemplate:
encrypt_prepared_block(PreparedKey,PlaintextBlock,CiphertextBlock)Mode and number of proofs:
encrypt_prepared_block(+compound,+list(byte),--list(byte)) - one_or_errorExceptions:
PreparedKey was not created by this cipher object:domain_error(block_cipher_prepared_key,PreparedKey)PlaintextBlock is a variable or a partial list:instantiation_errorPlaintextBlock is not a list of the required number of bytes:type_error(list(byte,BlockSize),PlaintextBlock)PlaintextBlock contains a non-integer byte:type_error(integer,Byte)PlaintextBlock contains an integer outside the byte range:domain_error(byte,Byte)decrypt_prepared_block/3
Decrypts a ciphertext block using an opaque prepared key created by the same cipher object.
Compilation flags:
staticTemplate:
decrypt_prepared_block(PreparedKey,CiphertextBlock,PlaintextBlock)Mode and number of proofs:
decrypt_prepared_block(+compound,+list(byte),--list(byte)) - one_or_errorExceptions:
PreparedKey was not created by this cipher object:domain_error(block_cipher_prepared_key,PreparedKey)CiphertextBlock is a variable or a partial list:instantiation_errorCiphertextBlock is not a list of the required number of bytes:type_error(list(byte,BlockSize),CiphertextBlock)CiphertextBlock contains a non-integer byte:type_error(integer,Byte)CiphertextBlock contains an integer outside the byte range:domain_error(byte,Byte)Protected predicates
(no local declarations; see entity ancestors if any)
Private predicates
(no local declarations; see entity ancestors if any)
Operators
(none)