Common
- urca.common.gen_bits(values: tuple[int], value_size: int) tuple[tuple[int], ...]
The bit representation of the values.
- Parameters:
values (tuple[int]) – integers whose bit representation is needed
value_size (int) – the bit size for each integer
- Returns:
a tuple whose size is (len(values), value_size)
- Return type:
tuple[tuple[int], …]
Examples
>>> from urca.common import gen_bits >>> gen_bits((0x6, 0xA, 0x1, 0xA), 4) ((0, 1, 1, 0), (1, 0, 1, 0), (0, 0, 0, 1), (1, 0, 1, 0))
- urca.common.gen_bytesbox(sbox: tuple[int]) tuple[int]
The byte sbox from the nibble one.
- Parameters:
sbox (tuple[int]) – the nibble s-box whose byte version is required
- Returns:
the byte version of the sbox
- Return type:
tuple[int]
- urca.common.invert_sbox(sbox: tuple[int]) tuple[int]
The inverted S-box.
- Parameters:
sbox (tuple[int]) – the S-box to be inverted
- Returns:
the inverted S-box
- Return type:
tuple[int]
Examples
>>> from urca.common import invert_sbox >>> gift_sbox = (0x1, 0xA, 0x4, 0xC, 0x6, 0xF, 0x3, 0x9, 0x2, 0xD, 0xB, 0x7, 0x5, 0x0, 0x8, 0xE) >>> invert_sbox(gift_sbox) (13, 0, 8, 6, 2, 12, 4, 11, 14, 7, 1, 10, 3, 9, 15, 5)