SecPKCS12Import()
をMac OS X 10.6のセキュリティフレームワークから使用しようとすると、提供される引数に関係なく、結果コードは常にerrSecUnimplemented
になります。Security.frameworkのSecPKCS12Import()がOS X 10.6で失敗する
さらに、リンカーは、SecImportExport.hで宣言されたこの関数に関連する定数(つまり、kSecImportExportPassphrase
、kSecImportItemIdentity
など)のシンボルを見つけることができません。
このライブラリでは何が起こっているのですか?機能は実装されているのですか、そうではありませんか?なぜリンカはフレームワーク内の他のすべてのシンボルを解決できますか? PKCS12形式のバイナリBLOBをSecIdentityRefまたはSecCertificateRefとSecKeyRefのペアに変換する方法はありますか。
私は間違っていますか?私はこれがPEBKACの問題だと確信しています。 :-)
編集:私は私の質問で非常に不明であったことがわかります。私はそれが問題なく提供する他の機能を使用できることを考えれば、Security.frameworkが実装されていることを認識しています。これを考えると、フレームワークと正しくリンクしていることは確かです。なぜなら、リンクを削除すると、期待どおりにシンボルが見つからないからです。フレームワークを再リンクすると、すべてのシンボルが見つかります。ただし、SecPKCS12Import()
に関連する定数は例外です。 kSecImportExportPassphrase
、kSecImportItemIdentity
が、私はこれらの記号を使用できないことを考えるなど
は、私がされている可能性が何を間違った文字列(@"kSecImportItemIdentity"
など)に渡されたが、エラーコードが返さerrSecUnimplemented
ました。これは、おそらくこの特定の機能が実装されていないと私に信じさせました。
私は10.5 SDKを使ってみましたが、それはうまくいきませんでした。 :-)
EDIT:私のインポートはちょうど普通の#import <Security/Security.h>
です。キックの場合は、#import <Security/SecImportExport.h>
も試しましたが、これは変更されませんでした。つまり、エラーはコンパイラではなくリンカによって発行されます。
newシンボルの多くが見つかりましたが、友人が目立っていなくて、ライブラリでエクスポートされたシンボルを一覧表示するためにdyldinfo -export Security.framework/Security
を実行しました。これはリンカがシンボルを見つけることができない理由を説明するかもしれません。 SecPKCS12Import
のシンボルがシンボルテーブルに表示されますが、問題なく呼び出しても問題ありません。機能がないようです。
実装されていないことが確認されました。少なくとも10.6.2までです。これについては、レーダーを提出してください。私の答えは以下のとおりです。 –