42 lines
1.0 KiB
Plaintext
42 lines
1.0 KiB
Plaintext
note
|
|
description: "A block cipher that can be the target of CBC mode"
|
|
author: "Colin LeMahieu"
|
|
date: "$Date$"
|
|
revision: "$Revision$"
|
|
quote: "I don't make jokes. I just watch the government and report the facts. - Will Rogers"
|
|
|
|
deferred class
|
|
CBC_TARGET
|
|
|
|
feature
|
|
block_size: INTEGER_32
|
|
deferred
|
|
ensure
|
|
Result > 0
|
|
end
|
|
|
|
cbc_ready: BOOLEAN
|
|
deferred
|
|
end
|
|
|
|
decrypt_block (in: SPECIAL [NATURAL_8] in_offset: INTEGER_32 out_array: SPECIAL [NATURAL_8] out_offset: INTEGER_32)
|
|
require
|
|
cbc_ready
|
|
in.valid_index (in_offset)
|
|
in.valid_index (in_offset + block_size - 1)
|
|
out_array.valid_index (out_offset)
|
|
out_array.valid_index (out_offset + block_size - 1)
|
|
deferred
|
|
end
|
|
|
|
encrypt_block (in: SPECIAL [NATURAL_8] in_offset: INTEGER_32 out_array: SPECIAL [NATURAL_8] out_offset: INTEGER_32)
|
|
require
|
|
cbc_ready
|
|
in.valid_index (in_offset)
|
|
in.valid_index (in_offset + block_size - 1)
|
|
out_array.valid_index (out_offset)
|
|
out_array.valid_index (out_offset + block_size - 1)
|
|
deferred
|
|
end
|
|
end
|