Software AES-128 with Matyas-Meyer-Oseas as a PRG.
More...
|
| | Aes128Soft (const uint8_t keys[][16], const uint32_t *te0, const uint8_t *sbox) |
| | Constructor.
|
| cuda::std::array< int4, mul/2 > | GenHalf (int4 seed, bool right) |
| | Return the selected half of Gen() with the same call requirements.
|
template<int mul>
class fss::prg::Aes128Soft< mul >
Software AES-128 with Matyas-Meyer-Oseas as a PRG.
Works on both host and device side.
- Template Parameters
-
◆ Aes128Soft()
template<int mul>
| fss::prg::Aes128Soft< mul >::Aes128Soft |
( |
const uint8_t | keys[][16], |
|
|
const uint32_t * | te0, |
|
|
const uint8_t * | sbox ) |
|
inline |
Constructor.
- Parameters
-
| keys | mul 16-byte AES-128 keys. |
| te0 | Pointer to the 256-entry AES T-table (uint32_t[256]). |
| sbox | Pointer to the AES S-box (uint8_t[256]). |
On device, both should point to shared memory initialized via InitTe0() and InitSbox(). On host, call InitTe0()/InitSbox() on stack arrays and pass them.
◆ GenHalf()
template<int mul>
requires (mul > 0 && mul % 2 == 0)
Return the selected half of Gen() with the same call requirements.
- Parameters
-
| seed | Seed block to expand, the same input Gen() takes. |
| right | false selects the first half, true selects the second half. |
The documentation for this class was generated from the following files: