Я передаю ключ publi c из приложения UWP:
// Open the algorithm provider for the specified asymmetric algorithm.
AsymmetricKeyAlgorithmProvider objAlgProv = AsymmetricKeyAlgorithmProvider.OpenAlgorithm(AsymmetricAlgorithmNames.RsaPkcs1);
// Create an asymmetric key pair.
CryptographicKey keyPair = objAlgProv.CreateKeyPair(512);
// Export the public key to a buffer for use by others.
// Default X509SubjectPublicKeyInfo format
IBuffer buffPublicKey = keyPair.ExportPublicKey();
byte[] publicKey = null;
CrytographicBuffer.CopyToByteArray(buffPublicKey, out publicKey);
Conver.ToBase64String(publicKey);
Приведенная выше строка отправляется в мое приложение Azure function.
Вот фрагмент кода мой Azure код приложения функции:
// Algorithm = RsaPkcs1
// Key Length = 512
using (RSACryptoServiceProvider RSA = new RSACryptoServiceProvider(512))
{
byte[] bPublicKey = Convert.FromBase64String(publickey);
byte[] bExponent = {1, 0, 1};
RSAParameters RSAKeyInfo = new RSAParameters() { Modulus = bPublicKey, Exponent = bExponent };
RSA.ImportParameters(RSAKeyInfo);
try
{
return RSA.Encrypt(sessionCode, System.Security.Cryptography.RSAEncryptionPadding.Pkcs1);
}
catch (Exception errenc)
{
}
return null;
}
Я пытаюсь зашифровать значение с помощью ключа publi c и вернуть.
У меня возникли проблемы с моей Azure функцией Интеграция приложений и UWP.
Azure сторона шифрует ключом publi c; ошибка не генерируется. Зашифрованное значение отправляется обратно в UWP. Когда я go для дешифрования на стороне UWP, я получаю ошибку «Значение не попадает в ожидаемый диапазон».
Любая помощь приветствуется. Возникли затруднения с аспектом ключа c на стороне azure.
Еще раз спасибо