Хобрук: Ваш путь к мастерству в программировании

Как получить поле X509Certificate в Swift

Я пытаюсь подписать XML-документ в iOS. Я уже создал дайджестValue и SignatureValue с помощью файла pfx, но не могу сгенерировать поле X509Certificate внутри поля KeyInfo. Я знаю, что для создания этого мне нужен только файл pfx, но как я могу сделать это в iOS?

Спасибо.


Ответы:


1

Я понял.

Мне пришлось импортировать OpenSSL lib в свой проект в виде модуля:

pod 'OpenSSL-Universal', '~> 1.0'

Затем я создал файл Objective-C, чтобы использовать функции C OpenSSL, и использовать следующие функции для получения значения PEM:

  • d2i_PKCS12: чтение сертификата
  • PKCS12_parse: анализировать сертификат на объект X509.
  • PEM_write_bio_X509: анализировать данные X509 в объект BIO.
  • BIO_get_mem_ptr: анализировать данные BIO в данные MEM.

Затем я выделил NSString, используя mem->data, и есть значение PEM сертификата.

Для получения более подробной информации о функциях я следил за этой документацией: https://www.openssl.org/docs/man1.0.2/crypto/

18.01.2019
Новые материалы

Решения DBA Metrix
DBA Metrix Solutions предоставляет удаленного администратора базы данных (DBA), который несет ответственность за внедрение, обслуживание, настройку, восстановление базы данных, а также другие..

Начало работы с Блум
Обзор и Codelab для генерации текста с помощью Bloom Оглавление Что такое Блум? Некоторые предостережения Настройка среды Скачивание предварительно обученного токенизатора и модели..

Создание кнопочного меню с использованием HTML, CSS и JavaScript
Вы будете создавать кнопочное меню, которое имеет состояние наведения, а также позволяет вам выбирать кнопку при нажатии на нее. Финальный проект можно увидеть в этом Codepen . Шаг 1..

Внедрите OAuth в свои веб-приложения для повышения безопасности
OAuth — это широко распространенный стандарт авторизации, который позволяет приложениям получать доступ к ресурсам от имени пользователя, не раскрывая его пароль. Это позволяет пользователям..

Классы в JavaScript
class является образцом java Script Object. Конструкция «class» позволяет определять классы на основе прототипов с чистым, красивым синтаксисом. // define class Human class Human {..

Как свинг-трейдеры могут использовать ИИ для больших выигрышей
По мере того как все больше и больше профессиональных трейдеров и активных розничных трейдеров узнают о возможностях, которые предоставляет искусственный интеллект и машинное обучение для улучшения..

Как построить любой стол
Я разработчик программного обеспечения. Я люблю делать вещи и всегда любил. Для меня программирование всегда было способом создавать вещи, используя только компьютер и мое воображение...