SecPKCS12Importp12 ファイルからデータをインポートできる関数があることは知っています。しかし、私は逆のルートに行きたいと思っています。P12 ファイルの作成に使用したい と public/private がありますSecCertificateRef。SecKeyRefiPhoneでこれを行う方法を知っている人はいますか?
ありがとう
残念ながら、CommonCrypto は PKCS12 コンテナをエクスポートする手段を提供しておらず、ましてや他のエクスポート機能は提供していません (たとえ OSX の対応物がそれを実行できるとしても)。キー チェーンから SecKeyRef 生データを抽出する方法はありますが、それでもすべての PKCS12 ラッピングを自分で記述する必要があります。
同様の問題に直面しており、OpenSSL を使用しました。
iOS 用の OpenSSL のコンパイル
OpenSSL の統合には、OpenSSL ソースを自分でコンパイルしてリンクする必要があるため、少し作業が必要です。幸いなことに、 https://github.com/x2on/OpenSSL-for-iPhoneなどのビルド スクリプトを自分で実行する必要がないため、利用可能なビルド スクリプトがいくつかあります。少しハシバミであるいくつかの Makefile にパッチを当てる必要があるため、それらを使用することをお勧めします。これらのビルド スクリプトは、iOS と tvOS の両方の静的リンク ライブラリを生成します。それらをプロジェクトにリンクし、それに応じてヘッダーとライブラリ検索パスを設定するだけです。
ココアポッド
公式のOpenSSL CocoaPodも使用できます。これにより、プロジェクトを構成する手間が省けます。
PKCS12 のエクスポート
ご存じのとおり、OpenSSL はC ライブラリです。つまり、すべての C 関数を Objective-C または Swift ラッパーにカプセル化したい場合があります。PKCS12 コンテナーのインポートおよびエクスポートをサポートするオープン ソース ラッパーがいくつかありますが、適切なドキュメントを備えたラッパーは 1 つも見つかりませんでした。ただし、一部のソースから関連するスニペットを導出できるはずです。
https://github.com/microsec/MscX509Common/blob/master/src/MscPKCS12.m
この例もhttp://fm4dd.com/openssl/pkcs12test.htmで見ることができます。
それが役立つことを願っています!