with AUnit.Test_Fixtures;
with AUnit.Test_Suites;
package AES_Bindings_Tests is
-- Minimal tests for the WolfSSL AES Ada bindings.
--
-- Goal: keep it simple and exercise the basic CBC encrypt/decrypt path:
-- - Create_AES
-- - AES_Set_Key
-- - AES_Set_IV
-- - AES_Set_Cbc_Encrypt
-- - AES_Set_Cbc_Decrypt
-- - AES_Free
--
-- Tests are designed after `aes_verify_main.adb` and the API contracts in
-- `wolfssl.ads`. We avoid making assumptions about padding: the test uses
-- a plaintext size that is a multiple of 16 bytes (AES block size).
type Fixture is new AUnit.Test_Fixtures.Test_Fixture with null record;
-- Encrypt known plaintext with AES-CBC and then decrypt it; expect round-trip.
procedure Test_AES_CBC_Roundtrip (F : in out Fixture);
-- Ensure AES_Free succeeds and invalidates the handle.
procedure Test_AES_Free_Invalidates (F : in out Fixture);
function Suite return AUnit.Test_Suites.Access_Test_Suite;
end AES_Bindings_Tests;