8 #include <botan/x919_mac.h>
15 void ANSI_X919_MAC::add_data(
const uint8_t input[],
size_t length)
17 size_t xored =
std::min(8 - m_position, length);
18 xor_buf(&m_state[m_position], input, xored);
21 if(m_position < 8)
return;
23 m_des1->encrypt(m_state);
29 m_des1->encrypt(m_state);
34 xor_buf(m_state, input, length);
41 void ANSI_X919_MAC::final_result(uint8_t mac[])
44 m_des1->encrypt(m_state);
45 m_des2->decrypt(m_state.data(), mac);
54 void ANSI_X919_MAC::key_schedule(
const uint8_t key[],
size_t length)
56 m_des1->set_key(key, 8);
61 m_des2->set_key(key, 8);
91 m_state(8), m_position(0)
void xor_buf(T out[], const T in[], size_t length)
std::string name() const override
MessageAuthenticationCode * clone() const override
void zeroise(std::vector< T, Alloc > &vec)