30 ISO_9796_DS2(std::unique_ptr<HashFunction> hash,
bool implicit,
size_t salt_size) :
31 m_hash(std::move(hash)), m_implicit(implicit), m_salt_len(salt_size) {}
35 std::string
name()
const override;
38 void update(
const uint8_t input[],
size_t length)
override;
40 std::vector<uint8_t> raw_data()
override;
42 std::vector<uint8_t> encoding_of(std::span<const uint8_t> msg,
46 bool verify(std::span<const uint8_t> coded, std::span<const uint8_t> raw,
size_t key_bits)
override;
48 std::unique_ptr<HashFunction> m_hash;
51 std::vector<uint8_t> m_msg_buffer;
63 explicit ISO_9796_DS3(std::unique_ptr<HashFunction> hash,
bool implicit =
false) :
64 m_hash(std::move(hash)), m_implicit(implicit) {}
66 std::string
name()
const override;
71 void update(
const uint8_t input[],
size_t length)
override;
73 std::vector<uint8_t> raw_data()
override;
75 std::vector<uint8_t> encoding_of(std::span<const uint8_t> msg,
79 bool verify(std::span<const uint8_t> coded, std::span<const uint8_t> raw,
size_t key_bits)
override;
81 std::unique_ptr<HashFunction> m_hash;
83 std::vector<uint8_t> m_msg_buffer;