From 9294cd7b7b410b08585b38a3dcadb218a78eb8b7 Mon Sep 17 00:00:00 2001 From: "andrey.bychkov" Date: Mon, 10 Aug 2026 16:26:08 +0300 Subject: [PATCH] fix(picrypt): use crypto_box_* constants for public-key decrypt The decrypt() function for crypto_box (public-key) used crypto_secretbox_NONCEBYTES and crypto_secretbox_MACBYTES (secret-key constants) instead of crypto_box_* constants. These happen to be equal in libsodium but are semantically different APIs. Fix ensures consistency with the encrypt() counterpart. --- libs/crypt/picrypt.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libs/crypt/picrypt.cpp b/libs/crypt/picrypt.cpp index c31560dc..63b65efe 100644 --- a/libs/crypt/picrypt.cpp +++ b/libs/crypt/picrypt.cpp @@ -317,10 +317,10 @@ PIByteArray PICrypt::decrypt(const PIByteArray & crypt_data, const PIByteArray & return PIByteArray(); } PIByteArray n; - n.resize(crypto_secretbox_NONCEBYTES); + n.resize(crypto_box_NONCEBYTES); const ullong data_size = crypt_data.size() - n.size(); PIByteArray ret; - ret.resize(data_size - crypto_secretbox_MACBYTES); + ret.resize(data_size - crypto_box_MACBYTES); memcpy(n.data(), crypt_data.data(data_size), n.size()); if (crypto_box_open_easy(ret.data(), crypt_data.data(), data_size, n.data(), public_key.data(), secret_key.data()) != 0) { // Bad key