в Xamarin.Forms CngKey.Create показывает, что операция не реализована, ошибка

Я разрабатываю приложение 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", но это не помогло.


person Drovosek2703    schedule 15.05.2019    source источник
comment
Большинство криптографических операций в .NET поддерживаются собственными реализациями (хотя, например, для AES существует также управляемая реализация. Мне интересно, делаете ли вы что-то не так или это просто не поддерживается на таком устройстве, как Android...   -  person Maarten Bodewes    schedule 15.05.2019
comment
Да, это то, чему я пытаюсь научиться. Кстати, я пробовал даже примеры функций из docs.microsoft, и они не работают. Но я все же надеюсь, что дело в моих кривых руках.   -  person Drovosek2703    schedule 15.05.2019
comment
Посмотрите эту тему, которая может помочь .   -  person Jack Hua    schedule 16.05.2019
comment
ECDsa.Create() недостаточно? Использование CngKey предполагает, что вы хотите напрямую взаимодействовать с криптографическими API Windows...   -  person bartonjs    schedule 17.05.2019
comment
Хорошо, я обнаружил, что любой метод, связанный с ECDsa, вообще не работает. Боюсь, это действительно проблема фреймворка, поэтому я должен использовать другую цифровую подпись.   -  person Drovosek2703    schedule 20.05.2019