Cipher Fayadh
Block cipher Feistel 128-bit dengan fungsi putaran sigma-delta
Loading...
Searching...
No Matches
SecureEnvelope Class Reference

Pengelola enkripsi dan autentikasi kontainer berkas (Encrypt-then-MAC). More...

#include <container.hpp>

Public Member Functions

 SecureEnvelope (const uint8_t master_key[KEY_SIZE])
 Inisialisasi envelope dan derivasi kunci enkripsi serta kunci MAC.
util::Bytes seal (const util::Bytes &plaintext, Mode mode, const uint8_t *custom_iv=nullptr) const
 Mengenkripsi plaintext ke format kontainer v1 terautentikasi.
util::Bytes open (const util::Bytes &blob) const
 Memverifikasi integritas kontainer dan mendekripsi isinya.

Detailed Description

Pengelola enkripsi dan autentikasi kontainer berkas (Encrypt-then-MAC).

Constructor & Destructor Documentation

◆ SecureEnvelope()

SecureEnvelope::SecureEnvelope ( const uint8_t master_key[KEY_SIZE])
explicit

Inisialisasi envelope dan derivasi kunci enkripsi serta kunci MAC.

Parameters
[in]master_keyMaster key berukuran 16 byte (128 bit).

Member Function Documentation

◆ open()

util::Bytes SecureEnvelope::open ( const util::Bytes & blob) const

Memverifikasi integritas kontainer dan mendekripsi isinya.

Parameters
[in]blobKontainer biner lengkap.
Returns
util::Bytes Plaintext hasil dekripsi.
Exceptions
FormatErrorjika struktur/panjang header kontainer cacat.
AuthenticationErrorjika verifikasi tag CMAC gagal.

◆ seal()

util::Bytes SecureEnvelope::seal ( const util::Bytes & plaintext,
Mode mode,
const uint8_t * custom_iv = nullptr ) const

Mengenkripsi plaintext ke format kontainer v1 terautentikasi.

Parameters
[in]plaintextData yang akan dienkripsi.
[in]modeMode operasi yang digunakan.
[in]custom_ivIV/Counter kustom 16 byte opsional (null = dibangkitkan acak via CSPRNG).
Returns
util::Bytes Blob kontainer lengkap.

The documentation for this class was generated from the following files: