Я получаю зашифрованную строку из внешней службы, которую мне нужно расшифровать, а затем повторно зашифровать с помощью BouncyCastle API .
Мне удалось заставить расшифровку работать нормально, но шифрование, похоже, не работает. Когда я пытаюсь расшифровать строку, сгенерированную моим методом шифрования, я получаю InvalidCipherTextException
с сообщением «неизвестный тип блока».
Это мой код расшифровки, который успешно расшифровывает текст из службы, с которой я взаимодействую:
string Decrypt(string value)
{
string Signature = "My_Signature";
RsaKeyParameters keyParams = (RsaKeyParameters)PublicKeyFactory.CreateKey(Convert.FromBase64String(Signature));
IBufferedCipher cipher = CipherUtilities.GetCipher("RSA/NONE/PKCS1Padding");
cipher.Init(false, keyParams);
byte[] secretBytes = Convert.FromBase64String(value);
byte[] decrypted = cipher.DoFinal(secretBytes);
return Encoding.Default.GetString(decrypted);
}
Это мой метод шифрования, который, похоже, не генерирует зашифрованную строку, которую может обрабатывать мой метод расшифровки:
string Encrypt(string value)
{
string Signature = "My_Signature";
RsaKeyParameters keyParams = (RsaKeyParameters)PublicKeyFactory.CreateKey(Convert.FromBase64String(Signature));
IBufferedCipher cipher = CipherUtilities.GetCipher("RSA/NONE/PKCS1Padding");
cipher.Init(true, keyParams);
byte[] secretBytes = Encoding.Default.GetBytes(value);
byte[] encrypted = cipher.DoFinal(secretBytes);
return Convert.ToBase64String(encrypted);
}
Я не совсем уверен, что мне не хватает, чтобы сделать эту работу. Есть ли что-то очевидное, чего мне здесь не хватает?