Я разрабатываю приложение Xamarin.Forms и прямо сейчас отлаживаю его на своем устройстве Android (это версия Android 4.4, если это имеет значение). Мне нужно использовать криптографию с ECDsa, поэтому я обнаружил, что System.Security.Cryptography.Cng необходим для поддержки System.Security.Cryptography. Я скачал System.Security.Cryptography.Cng ver. 4.5.0 в пакетах Nuget для всех моих проектов. Поэтому мне нужно создать новую пару ключей для подписи некоторых данных, и когда я попытаюсь сделать это так
var p = new CngKeyCreationParameters
{
ExportPolicy = CngExportPolicies.AllowPlaintextExport,
KeyCreationOptions = CngKeyCreationOptions.OverwriteExistingKey,
UIPolicy = new CngUIPolicy(CngUIProtectionLevels.ProtectKey, KeyName, null, null, null)
};
CngKey key = CngKey.Create(CngAlgorithm.ECDsa, keyAlias, p);
Я получаю сообщение об ошибке «System.NotImplementedException: метод или операция не реализованы». Я пробовал, как и многие алгоритмы для параметров CngAlgorithm, но все равно имею то же исключение. Так что я делаю неправильно? Я знаю, что это может быть что-то довольно глупое, и мне действительно нужна помощь, чтобы найти это. Я пытался найти те же проблемы, но не повезло. Единственный близкий вопрос был: «Запрошенная операция не поддерживается в CngKey.Create", но это не помогло.
ECDsa.Create()
недостаточно? Использование CngKey предполагает, что вы хотите напрямую взаимодействовать с криптографическими API Windows... - person bartonjs   schedule 17.05.2019