Nano Hash - криптовалюты, майнинг, программирование

Сохраните пару асимметричных ключей SecKeyRef на диск в качестве сертификата.

Я создал два элемента SecKeyRef с помощью SecKeyGeneratePair, но теперь я хотел бы превратить открытый ключ в цифровой сертификат x509 и/или как открытый, так и закрытый ключи в сертификат PKCS #12 (.p12) и сохранить его на диск. как файл. Таким образом, я могу делать с ним все, что мне нужно, включая отправку сертификатов другим службам или компьютерам.

Я бы предпочел не использовать цепочку для ключей, но даже с этим у меня возникли проблемы с поиском хорошей документации о том, как именно создать сертификат из пары SecKeyRefs и записать их в виде файла сертификата.


  • Я только что понял, что команда SecKeyGeneratePair(), которую я вызывал все это время, похоже, автоматически сохраняет мои новые ключи в связке ключей. Я думаю, что это осознание, возможно, только что открыло много дверей для поиска решения здесь. 29.09.2011

Ответы:


1

Вам понадобится Руководство по программированию преобразования безопасности. Он охватывает большую часть того, что вам нужно для этого. Некоторые части (например, SecItemExport) не задокументированы в справочной документации, только в общедоступных заголовочных файлах. Но SecItemExport — это новый способ 10.7 справиться с этим.

28.09.2011
  • Использование SecItemExport имеет SecExternalFormat из kSecFormatX509Cert, но, похоже, это не работает только с SecKeyRef. Вы получите сообщение об ошибке SecItemExport failed (oserr=-50), которое определяется как: errSecParam = -50, /* One or more parameters passed to a function were not valid. */ 28.09.2011
  • SecKeyRef не является достаточной информацией для создания сертификата X509. Я бы предположил, что для этого вам понадобится kSecFormatPEMSequence, передав массив из двух ключей. 28.09.2011
  • Итак, эффективно превращаем оба ключа в последовательность PEM. Но как мне перейти к следующему шагу создания цифрового сертификата? Или сертификат X.509? Или сертификат PKCS #12? Я мог бы обойтись без этих форматов, но, поскольку это стандартные форматы, похоже, должен быть способ. 28.09.2011
  • Сертификат X.509 — это не просто стандартный формат для хранения асимметричных ключей. Он несет в себе много смысла о доверии и применимости. Если вы не хотите всего этого, не используйте сертификат. PKCS#12 не является сертификатом. Это способ добавить сертификат и ключ в файл. Объединенный список закодированных данных PEM — это стандартный способ хранения ключей. 29.09.2011
  • Спасибо, Роб, за то, что помог прояснить все это. В основном я говорил о X.509 в его самой базовой форме, формате файлов/данных, а не о его большей роли как части центра сертификации PKI. Я собирался использовать самоподписанный X.509 как способ использовать существующий стандарт и не изобретать велосипед, но я считаю, что вы правы, список PEM может быть более подходящим в моем случае. Также вы правы в том, что я был неправ, называя PKCS#12 сертификатом, я снова просто пытался сослаться на него как на формат файла криптографии или стандарт, который я мог бы использовать; при этом я неправильно назвал его сертификатом. 29.09.2011
  • Есть ли у нас аналогичная опция в ios? 12.05.2014
  • iOS имеет очень плохую поддержку экспорта чего-либо. Традиционно мне приходилось делать это вручную с помощью OpenSSL (который вы должны создать сами и статически связать). 12.05.2014
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

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

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..