Я использую пакет nuget PgpCore для шифрования и дешифрования PGP.
Случай, с которым я столкнулся, заключается в следующем, я шифрую файл методом EncryptAndSign
следующим образом.
using (PGP pgp = new PGP())
{
pgp.EncryptFileAndSign(fileNameToEncrypt, outputFileName, _publicKey, _privateKey, _passPhrase);
}
Затем я расшифровываю зашифрованный файл, используя метод Decrypt
следующим образом.
using (PGP pgp = new PGP())
{
pgp.DecryptFile(fileNameToDecrypt, outputFileName, _privateKey, _passPhrase);
}
Здесь я получаю сообщение об ошибке «Секретный ключ для сообщения не найден».
Я подозреваю что PrivateKey и PublicKey могут быть неправильными, изменены или могут быть использованы разные значения в этих двух методах.
Итак, я выполнил процесс шифрования в приложении PGP Tool с использованием privatekey и publickey и записал файл путь к параметру inputFile описанного выше метода дескрипции. И процесс расшифровки прошел успешно.
PublicKey и PrivateKey были предоставлены мне компанией-владельцем API для связи со своими API. Поэтому я не генерирую эти ключи, оба значения определены постоянным образом.
Спасибо.