-spec hp_block(reference(), binary()) -> binary() | {error, atom()}.
-spec is_loaded() -> boolean().
-spec new_aead_ctx(atom(), binary(), boolean()) -> {ok, reference()} | {error, atom()}.
-spec new_hp_ctx(atom(), binary()) -> {ok, reference()} | {error, atom()}.
-spec open(reference(), binary(), iodata(), iodata(), binary()) -> binary() | error | {error, atom()}.
-spec open_packet(reference(), reference(), binary(), integer(), 0 | 1, binary(), binary()) -> {non_neg_integer(), byte(), binary()} | error | key_phase | {error, atom()}.
-spec open_run(reference(), reference(), binary(), integer(), 0 | 1, non_neg_integer(), [binary()]) -> {ok, [{non_neg_integer(), byte(), [term()] | {raw, binary()}}]} | {error, atom()}.
-spec protect_run(reference(), reference(), binary(), non_neg_integer(), byte(), iodata(), [iodata()]) -> [binary()] | {error, atom()}.
-spec seal(reference(), binary(), iodata(), iodata()) -> binary() | {error, atom()}.