Generator dan verifikator Message Authentication Code berbasis CMAC (RFC 4493).
More...
#include <mac.hpp>
|
| | Cmac (const BlockCipher &cipher) |
| | Membuat objek CMAC dan menurunkan subkey K1 dan K2 dari cipher.
|
|
| Cmac (const BlockCipher &&)=delete |
|
| Cmac (const Cmac &)=delete |
|
Cmac & | operator= (const Cmac &)=delete |
| void | update (const uint8_t *data, size_t len) |
| | Menambahkan chunk data ke dalam perhitungan CMAC secara inkremental.
|
| void | finalize (uint8_t tag[MAC_TAG_SIZE]) |
| | Menyelesaikan perhitungan tag CMAC, menuliskan tag ke buffer keluaran, dan mereset state internal agar objek siap digunakan kembali.
|
|
| static void | compute (const BlockCipher &cipher, const uint8_t *data, size_t len, uint8_t tag[MAC_TAG_SIZE]) |
| | Menghitung tag CMAC untuk seluruh data dalam satu pemanggilan (one-shot).
|
| static bool | verify (const BlockCipher &cipher, const uint8_t *data, size_t len, const uint8_t tag[MAC_TAG_SIZE]) |
| | Memverifikasi keabsahan tag CMAC dalam waktu konstan (constant-time).
|
Generator dan verifikator Message Authentication Code berbasis CMAC (RFC 4493).
◆ Cmac()
Membuat objek CMAC dan menurunkan subkey K1 dan K2 dari cipher.
- Parameters
-
| [in] | cipher | Block cipher 128-bit yang dipakai. Hanya disimpan sebagai referensi, jadi objek ini harus tetap hidup selama Cmac dipakai. |
◆ compute()
| void Cmac::compute |
( |
const BlockCipher & | cipher, |
|
|
const uint8_t * | data, |
|
|
size_t | len, |
|
|
uint8_t | tag[MAC_TAG_SIZE] ) |
|
static |
Menghitung tag CMAC untuk seluruh data dalam satu pemanggilan (one-shot).
- Parameters
-
| [in] | cipher | Block cipher 128-bit yang dipakai. |
| [in] | data | Data yang diautentikasi. |
| [in] | len | Panjang data dalam byte. |
| [out] | tag | Buffer 16-byte untuk tag hasil perhitungan. |
- Exceptions
-
| std::invalid_argument | jika data nullptr saat len > 0, atau tag nullptr. |
◆ finalize()
| void Cmac::finalize |
( |
uint8_t | tag[MAC_TAG_SIZE] | ) |
|
Menyelesaikan perhitungan tag CMAC, menuliskan tag ke buffer keluaran, dan mereset state internal agar objek siap digunakan kembali.
- Parameters
-
| [out] | tag | Buffer 16-byte untuk menyimpan tag hasil perhitungan. |
- Exceptions
-
| std::invalid_argument | jika tag bernilai nullptr. |
◆ update()
| void Cmac::update |
( |
const uint8_t * | data, |
|
|
size_t | len ) |
Menambahkan chunk data ke dalam perhitungan CMAC secara inkremental.
- Parameters
-
| [in] | data | Pointer ke data byte masukan. |
| [in] | len | Panjang data byte masukan. |
- Exceptions
-
| std::invalid_argument | jika data bernilai nullptr saat len > 0. |
◆ verify()
| bool Cmac::verify |
( |
const BlockCipher & | cipher, |
|
|
const uint8_t * | data, |
|
|
size_t | len, |
|
|
const uint8_t | tag[MAC_TAG_SIZE] ) |
|
static |
Memverifikasi keabsahan tag CMAC dalam waktu konstan (constant-time).
- Parameters
-
| [in] | cipher | Block cipher 128-bit yang dipakai. |
| [in] | data | Data yang diautentikasi. |
| [in] | len | Panjang data dalam byte. |
| [in] | tag | Tag 16-byte yang akan dicocokkan. |
- Returns
true jika tag cocok dengan hasil perhitungan, false jika tidak.
- Exceptions
-
| std::invalid_argument | jika tag nullptr, atau data nullptr saat len > 0. |
The documentation for this class was generated from the following files: