当我读取加密文件以了解它已被加密的公钥时,由于某种原因KeyId
属性为0。
这是我到目前为止一直在使用的代码,它已经工作了,我不知道为什么现在当我给它提供一些加密文件时,它在该字段返回一个0:
using Stream decoderStream = PgpUtilities.GetDecoderStream(encryptedData);
var objectFactory = new PgpObjectFactory(decoderStream);
var encryptedList = (PgpEncryptedDataList)objectFactory.NextPgpObject();
string keyId;
byte[]? key;
foreach (PgpPublicKeyEncryptedData keyData in encryptedList.GetEncryptedDataObjects())
{
long keyId = keyData.KeyId // This is 0 for some reason?
}
什么线索吗?
密钥是通过使用GPG加密的,所以我决定检查一下我的GPG配置,看看我是否搞砸了什么。
事实证明,我做到了。通过在gpg.conf
文件中指定以下命令,我加强了配置,使其在加密消息时不包括密钥id:
throw-keyids
当我把它移开后,一切都开始正常工作了。