Я хотел бы создать асимметричную пару ключей c на клиентском устройстве (телефоне iOS или Android с запущенным Xamarin.Forms) и создать запрос на подпись сертификата, который будет отправлен на ASP. NET Core Restful API на сервере linux с моей базой данных. Для этого я использую Portable Bouncy Castle и базовую версию net в API.
Отправленный CSR будет подписан настраиваемым CA через WebAPI и добавлен в таблицу сертификатов в моей базе данных , так что, когда устройство отправляет запрос GET, оно может его получить (одноразовый ключ активации используется для аутентификации публикации csr, а также для получения подписанного сертификата).
Использование это , я создал закрытый ключ и запрос CSR и преобразовал csr в строку, которую можно отправить в API. Когда API получает это, он помещает его в текстовый файл, к которому сценарий обращается, чтобы подписать его с помощью сертификата CA и ключа CA, создавая файл client-cert.pem. Это будет прочитано как текст и сохранено в базе данных, чтобы устройство могло его извлечь.
После этого я хотел бы сохранить сертификат и закрытый ключ в хранилище ключей устройства, однако, поскольку я использую Bouncy Castle для создания Keypair, он имеет тип AsymmetricCipherKeyPair.
Как мне go хранить эти элементы в хранилище ключей, чтобы к нему можно было получить доступ для аутентификации клиента при подключении к БД? В настоящее время я не уверен, как Xamarin.Forms обрабатывает хранилища ключей и как хранить в них ключи / сертификаты.