Я работаю над добавлением возможности дешифровать файл, зашифрованный с помощью GPG и симметричного шифрования.
Однако всякий раз, когда он пытается получить данные закрытого ключа, эти исключения продолжают попадать:
Невозможно преобразовать объект типа Org.BouncyCastle.Bcpg.OpenPgp.PgpPbeEncryptedData к типу Org.BouncyCastle.Bcpg.OpenPgp.PgpPublicKeyEncryptedData.
куда бы я ни посмотрел, вот как вы это делаете:
Stream inputStream = IoHelper.GetStream(inputData);
PgpObjectFactory pgpFactory = new PgpObjectFactory(PgpUtilities.GetDecoderStream(inputStream));
PgpObject pgp = null;
if (pgpFactory != null)
{
pgp = pgpFactory.NextPgpObject();
}
PgpEncryptedDataList encryptedData = null;
if (pgp is PgpEncryptedDataList)
{
encryptedData = (PgpEncryptedDataList)pgp;
}
else
{
encryptedData = (PgpEncryptedDataList)pgpFactory.NextPgpObject();
}
Stream privateKeyStream = File.OpenRead(PrivateKeyOnlyPath);
// find secret key
PgpSecretKeyRingBundle pgpKeyRing = new PgpSecretKeyRingBundle(PgpUtilities.GetDecoderStream(privateKeyStream));
PgpPrivateKey privateKey = null;
foreach (PgpPublicKeyEncryptedData pked in encryptedData.GetEncryptedDataObjects())
{
privateKey = FindSecretKey(pgpKeyRing, pked.KeyId, Password.ToCharArray());
if (privateKey != null)
{
//pubKeyData = pked;
break;
}
}
Я ссылаюсь на код здесь
Я не понимаю, почему это не работает, и не знаю, что делать дальше.