Cipher Fayadh
Block cipher Feistel 128-bit dengan fungsi putaran sigma-delta
Loading...
Searching...
No Matches
util.hpp
Go to the documentation of this file.
1#ifndef UTIL_HPP
2#define UTIL_HPP
3
4#include <cstddef>
5#include <cstdint>
6#include <string>
7#include <vector>
8
13
14namespace util {
15
17using Bytes = std::vector<uint8_t>;
18
30void secure_random(uint8_t* out, size_t len);
31
39Bytes secure_random(size_t len);
40
48std::string to_hex(const uint8_t* data, size_t len);
49
56std::string to_hex(const Bytes& data);
57
67Bytes from_hex(const std::string& hex);
68
78Bytes read_file(const std::string& path);
79
91void write_file(const std::string& path, const Bytes& data);
92
104void xor_block(const uint8_t* a, const uint8_t* b, uint8_t* out, size_t len);
105
117bool constant_time_equal(const uint8_t* a, const uint8_t* b, size_t len);
118
128void secure_zero(void* p, size_t len);
129
130} // namespace util
131
132#endif // UTIL_HPP
void secure_random(uint8_t *out, size_t len)
Mengisi buffer dengan byte acak kriptografis yang aman dari sistem operasi.
Definition random.cpp:13
bool constant_time_equal(const uint8_t *a, const uint8_t *b, size_t len)
Membandingkan dua buffer byte dalam waktu konstan (constant time).
Definition bytes.cpp:20
void write_file(const std::string &path, const Bytes &data)
Menuliskan seluruh isi byte ke berkas secara atomik (atomic-ish).
Definition file_io.cpp:42
std::string to_hex(const uint8_t *data, size_t len)
Mengonversi deretan byte menjadi representasi string heksadesimal huruf kecil (lowercase).
Definition hex.cpp:24
std::vector< uint8_t > Bytes
Alias untuk representasi urutan byte dalam memori.
Definition util.hpp:17
Bytes read_file(const std::string &path)
Membaca seluruh isi berkas secara biner.
Definition file_io.cpp:10
void xor_block(const uint8_t *a, const uint8_t *b, uint8_t *out, size_t len)
Melakukan operasi XOR bitwise antara dua blok byte: out[i] = a[i] ^ b[i].
Definition bytes.cpp:7
Bytes from_hex(const std::string &hex)
Mengonversi string heksadesimal menjadi deretan byte (Bytes).
Definition hex.cpp:46
void secure_zero(void *p, size_t len)
Membersihkan memori dengan mengisi byte nol (0) menggunakan volatile pointer.
Definition bytes.cpp:36