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