我对Bouncycastle有一些特殊问题。
正在发生的事情是我使用公共密钥来加密文本文件,然后将其传输到第三方。当他们尝试在其末端自动将文件自动限制时(使用GlobalScape-不确定版本),该过程失败了,要求使用密码以解锁秘密密钥。
如果我执行相同的过程,但是使用GPG4WIN加密使用相同键的文件,则它们不会遇到相同的问题。
这是执行加密的代码:
private static bool EncryptFile(Stream outputStream, string fileName, PgpPublicKey encKey, bool withIntegrityCheck)
{
try
{
var bytes = PgpUtils.CompressFile(fileName, CompressionAlgorithmTag.Uncompressed);
// encrypt using AES-256
var encryptedDataGenerator = new PgpEncryptedDataGenerator(SymmetricKeyAlgorithmTag.Aes256, withIntegrityCheck, new SecureRandom());
encryptedDataGenerator.AddMethod(encKey);
using (var cOutStream = encryptedDataGenerator.Open(outputStream, bytes.Length))
{
cOutStream.Write(bytes, 0, bytes.Length);
}
return true;
}
catch (Exception e)
{
Trace.TraceError($"Exception in EncryptFile: {e}");
return false;
}
}
我承认我在这里有点迷路。谁能指出我缺少的东西?还是我应该要求第三方进一步挖掘?
欢呼
这是固定潜在问题的高级方法:
您正在使用公钥加密。这意味着收件人需要匹配的私钥。
IT 看起来就像收件人具有键
检查以下内容(从易于轻松)
- 接收者进入密码时可以解密吗?如果是,请配置客户端以保存密码。
- 尝试与您的本地GPG解密
- 您确定客户端具有私钥吗?如果不是,请确保客户端具有私钥(也许您使用代码和GPG4WIN使用不同的键)
- 客户端可以处理加密方法吗?IE。客户知道如何解密您发送的消息格式吗?