CryptographicException
Исключение из System.Security.Cryptography
возникает при неверных ключах или данных.
В примере в RSA передают слишком
короткий буфер в ImportRSAPublicKey -
метод бросает CryptographicException.
Объект RSA освобождают через
using. Боевые секреты в уроке не
используют.
Синтаксис
using System.Security.Cryptography;
rsa.ImportRSAPublicKey(bytes, out int read);
Пример
Давайте поймаем CryptographicException:
using System;
using System.Security.Cryptography;
class Program
{
static void Main()
{
try
{
using var rsa = RSA.Create();
rsa.ImportRSAPublicKey(new byte[] { 1, 2, 3 }, out _);
}
catch (CryptographicException)
{
Console.WriteLine("fail");
}
}
}
Результат выполнения кода:
"fail"
Пример
Давайте убедимся, что RSA создался
до импорта:
using System;
using System.Security.Cryptography;
class Program
{
static void Main()
{
using var rsa = RSA.Create();
Console.WriteLine(rsa.KeySize > 0);
}
}
Результат выполнения кода:
True
Пример
Давайте проверим тип пойманного сбоя:
using System;
using System.Security.Cryptography;
class Program
{
static void Main()
{
try
{
using var rsa = RSA.Create();
rsa.ImportRSAPublicKey(new byte[] { 1, 2, 3 }, out _);
}
catch (CryptographicException ex)
{
Console.WriteLine(ex is Exception);
}
}
}
Результат выполнения кода:
True
Смотрите также
-
JsonException,
сбой разбора данных -
FormatException,
неверный формат текста -
Exception,
базовый тип исключений -
throw,
которым задают сбой вручную в других уроках