-callback generate_key(Parameters) -> KTY when Parameters :: any(), KTY :: any().
-callback generate_key(KTY, Fields) -> NewKTY when KTY :: any(), Fields :: map(), NewKTY :: any().
-callback key_encryptor(KTY, Fields, Key) -> JWEMap when KTY :: any(), Fields :: map(), Key :: any(), JWEMap :: map().