From 2a123dcce9d149040798e4f30e71203257651571 Mon Sep 17 00:00:00 2001 From: Aster Seker Date: Sat, 6 Sep 2025 08:49:14 +0300 Subject: [PATCH] docs(readme-ru): add secret_string example --- README-RU.md | 15 +++++++++++++++ README.md | 15 +++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/README-RU.md b/README-RU.md index 68b8606..66f9d99 100644 --- a/README-RU.md +++ b/README-RU.md @@ -141,6 +141,21 @@ secure_buffer key(std::move(secret_string)); // обнуляет перемещ auto mac = hmac::get_hmac(key, payload, hmac::TypeHash::SHA256); ``` +Для дополнительной защиты в памяти можно использовать `hmac_cpp::secret_string`, который +обфусцирует данные и по возможности закрепляет их в RAM: + +```cpp +#include + +hmac_cpp::secret_string token("super-secret-token"); + +token.with_plaintext([](const uint8_t* p, size_t n){ + // p действует только внутри коллбэка +}); + +token.clear(); +``` + ### HMAC (сырой буфер) ```cpp diff --git a/README.md b/README.md index 70390ac..7c4071e 100644 --- a/README.md +++ b/README.md @@ -142,6 +142,21 @@ secure_buffer key(std::move(secret_string)); // zeroizes moved-from string auto mac = hmac::get_hmac(key, payload, hmac::TypeHash::SHA256); ``` +For additional protection in memory, `hmac_cpp::secret_string` obfuscates +the data and tries to keep it locked in RAM: + +```cpp +#include + +hmac_cpp::secret_string token("super-secret-token"); + +token.with_plaintext([](const uint8_t* p, size_t n){ + // p is valid only inside the callback +}); + +token.clear(); +``` + ### HMAC (raw buffer) ```cpp