2

SecPKCS12Importp12 ファイルからデータをインポートできる関数があることは知っています。しかし、私は逆のルートに行きたいと思っています。P12 ファイルの作成に使用したい と public/private がありますSecCertificateRefSecKeyRefiPhoneでこれを行う方法を知っている人はいますか?

ありがとう

4

2 に答える 2

2

残念ながら、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で見ることができます。

それが役立つことを願っています!

于 2016-07-12T12:58:45.240 に答える