Cipher Fayadh
Block cipher Feistel 128-bit dengan fungsi putaran sigma-delta
Loading...
Searching...
No Matches
padding.hpp File Reference

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.

Detailed Description

Implementasi skema padding dan unpadding PKCS#7 untuk block cipher.

Function Documentation

◆ pkcs7_pad()

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.

Parameters
[in]inData masukan yang akan dipad.
Returns
util::Bytes Data hasil padding dengan panjang kelipatan BLOCK_SIZE.
util::Bytes pt = {0x01, 0x02};
util::Bytes padded = pkcs7_pad(pt); // ukuran 16, 14 byte terakhir bernilai 0x0E
util::Bytes pkcs7_pad(const util::Bytes &in)
Menambahkan padding PKCS#7 pada data masukan.
Definition padding.cpp:3
std::vector< uint8_t > Bytes
Alias untuk representasi urutan byte dalam memori.
Definition util.hpp:17

◆ pkcs7_unpad()

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.

Parameters
[in]inData berpadding yang akan diunpad.
Returns
util::Bytes Data asli setelah byte padding dihapus.
Exceptions
PaddingErrorJika format atau isi padding tidak valid.
util::Bytes original = pkcs7_unpad(padded);
util::Bytes pkcs7_unpad(const util::Bytes &in)
Memvalidasi dan menghapus padding PKCS#7 dari data masukan.
Definition padding.cpp:10