Мне трудно заставить это работать.Мне дали частный ключ PGP для расшифровки файла.Нет проблем.Это отлично работает.Однако мне нужно использовать этот же закрытый ключ для расшифровки зашифрованной строки RSA (зашифрованной с тем же открытым ключом, что и файл), и я изо всех сил пытаюсь заставить его работать.Я не могу прочитать ключ PGP из файла и преобразовать его во что-либо пригодное для дешифрования RSA.Текущая ошибка, которую я получаю:
unknown tag 13 encountered
Шифрование / дешифрование строк, которое я пытаюсь использовать, было заимствовано из здесь и преобразовано из Java в C #.На данный момент я пытаюсь проверить шифрование и дешифрование моей собственной строки
public static string EncryptS( string publicKeyFilename, string inputData )
{
string encryptedData = null;
try
{
//Security.addProvider( new org.bouncycastle.jce.provider.BouncyCastleProvider() );
byte[] key = File.ReadAllBytes( publicKeyFilename );
AsymmetricKeyParameter publicKey = PublicKeyFactory.CreateKey( key );
Pkcs1Encoding e = new Pkcs1Encoding( new RsaEngine() );
e.Init( true, publicKey );
byte[] messageBytes = Encoding.UTF8.GetBytes( inputData );
byte[] hexEncodedCipher = e.ProcessBlock( messageBytes, 0, messageBytes.Length );
// This was a hex encoded string...
encryptedData = Convert.ToBase64String( hexEncodedCipher );
}
catch ( Exception e )
{
}
return encryptedData;
}
public static string DecryptS( string privateKeyFilename, string encryptedData )
{
String outputData = null;
try
{
byte[] key = File.ReadAllBytes( privateKeyFilename );
AsymmetricKeyParameter privateKey = PrivateKeyFactory.CreateKey( key );
Pkcs1Encoding e = new Pkcs1Encoding( new RsaEngine() );
e.Init( false, privateKey );
byte[] messageBytes = Convert.FromBase64String( encryptedData ); // May need to be converted from a hex encoded string instead of b64
byte[] hexEncodedCipher = e.ProcessBlock( messageBytes, 0, messageBytes.Length );
outputData = hexEncodedCipher.ToString();
}
catch ( Exception e )
{
}
return outputData;
}
Так выглядит закрытый ключ (для краткости строки удалены).
-----BEGIN PGP PRIVATE KEY BLOCK-----
lQOYBF1wF3IBCAC4gg6Q355wn7o5odhMBErn6Nkk1fX8mgHtoNUbbp4YgEXwlB3y
0DK1vr9SFz1ZJ8IYuQ4YUDhSkVpaSgU8GW1HCsKKSgmHHTJ6FqUcE7Xii69XXeIu
vKMF+rcwVXLLlw5adPu/pLQDWCcll/tK+0E0Dmcj606XBNDn3zvvx6pzVKxODrdE
Zv0m/qDSA8feB17WH6k0opRCt5CPV47iigXVWOBh/SnussDe4qhkQ2vS8WojubWn
blSbC/c/AMwpVZT4HALP8t+bF2IxFVgYDeOPlZJhK63LUyXFcRQBcVUMHSyUI19i
wqZV/0qPGQzdK3y7
=M/Yn
-----END PGP PRIVATE KEY BLOCK-----
Я думал, что все ключи RSA были созданы равными ....
Так можно ли использовать закрытый ключ PGP для расшифровки строки, зашифрованной RSA?Если да, может кто-нибудь указать мне правильное направление, чтобы заставить его работать?