|
Cipher Fayadh
Block cipher Feistel 128-bit dengan fungsi putaran sigma-delta
|
Implementasi skema padding dan unpadding PKCS#7 untuk block cipher. More...
#include "cipher.hpp"#include "util.hpp"#include <cstddef>#include <cstdint>#include <stdexcept>#include <string>Go to the source code of this file.
Classes | |
| class | PaddingError |
| Exception yang dilempar saat verifikasi padding PKCS#7 gagal. More... | |
Functions | |
| util::Bytes | pkcs7_pad (const util::Bytes &in) |
| Menambahkan padding PKCS#7 pada data masukan. | |
| util::Bytes | pkcs7_unpad (const util::Bytes &in) |
| Memvalidasi dan menghapus padding PKCS#7 dari data masukan. | |
Implementasi skema padding dan unpadding PKCS#7 untuk block cipher.
| util::Bytes pkcs7_pad | ( | const util::Bytes & | in | ) |
Menambahkan padding PKCS#7 pada data masukan.
Selalu menambahkan 1 sampai BLOCK_SIZE (16) byte ke dalam data masukan sehingga panjang keluaran selalu merupakan kelipatan dari ukuran blok. Jika masukan sudah merupakan kelipatan ukuran blok (termasuk 0 byte), satu blok penuh berisi byte 0x10 (16) akan ditambahkan.
| [in] | in | Data masukan yang akan dipad. |
| util::Bytes pkcs7_unpad | ( | const util::Bytes & | in | ) |
Memvalidasi dan menghapus padding PKCS#7 dari data masukan.
Memeriksa apakah data masukan tidak kosong, panjangnya kelipatan BLOCK_SIZE, nilai byte padding terakhir berada di rentang 1..BLOCK_SIZE, serta seluruh byte padding di akhir bernilai seragam.
| [in] | in | Data berpadding yang akan diunpad. |
| PaddingError | Jika format atau isi padding tidak valid. |