Где хранить CryptographicKey в универсальном проекте Windows

Я работаю над универсальным проектом Windows в MSVS2015, используя С#. Проект ориентирован на пользователей телефонов, с вероятностью позже перешедших на десктопы и планшеты.

Мне нужно сгенерировать пару ключей RSA для пользователя и надежно сохранить ее на устройстве. В Windows Phone 8.0 я использовал для этой задачи класс CspParameters, но он недоступен в Windows 10. Как правильно хранить такие конфиденциальные данные в UWP?

Код, который я использую для генерации пары ключей:

AsymmetricKeyAlgorithmProvider rsaPkcs1ProviderServer = AsymmetricKeyAlgorithmProvider.OpenAlgorithm(AsymmetricAlgorithmNames.RsaPkcs1);
_clientKeyPair = rsaPkcs1ProviderServer.CreateKeyPair(RSA_KEY_SIZE);

person puzzler    schedule 02.03.2016    source источник
comment
Как насчет использования хранилища учетных данных?   -  person Romasz    schedule 03.03.2016


Ответы (1)


Вы можете использовать класс Windows.Security.Cryptography.DataProtection.DataProtectionProvider для защиты данных с использованием текущих учетных данных пользователя/компьютера. Затем вы можете просто сохранить его в файл.

Документацию можно найти здесь: https://msdn.microsoft.com/library/windows/apps/br241559

person masinger    schedule 02.03.2016
comment
Спасибо. Кажется, ProtectedData недоступен, и вместо этого я должен использовать DataProtectionProvider. Я посмотрю на это еще немного. - person puzzler; 02.03.2016
comment
Я буду использовать DataProtectionProvider, но в остальном буду действовать так, как вы предложили. Если вы измените свой ответ, чтобы отразить это, я отмечу его как решение. - person puzzler; 07.03.2016
comment
Спасибо. Я изменил его в соответствии с вашим комментарием. - person masinger; 07.03.2016