iPhone/iPad で生成された公開鍵を Java ベースのサーバーまたは Android デバイスと共有したいと考えています。Java 側 (サーバーまたは Android)では、iOS で (SecKeyRef のもの)を使用java.security
したいと思います。libcommonCrypto
これら 2 つのプラットフォーム間の公開鍵の交換を除いて、すべてが機能しています。を使用SecItemCopyMatching
することで、Apple 以外ではサポートされていない形式にのみ公開鍵をエクスポートできます。Java を使用すると、公開鍵を X509 証明書 ( 経由java.security.X509EncodedKeySpec
) またはモジュールと指数 ( 経由java.security.RSAPublicKeySpec
) としてロードできます。
SecKeyRef
ここで、X509証明書としてエクスポートする方法、または(より簡単な解決策だと思います)モジュールと指数を取得する方法を知る必要があります。そして、私は後ろ向きの道も必要です。
SecKeyRef
からロードされ、 BASE64 にエンコードされた公開鍵のサンプルを次に示します。
MIGJAoGBAMYgXP6rvD/Y8F0VQE0HvxpVnnOxXYl5TDlOfW/leyrCLWGWg9Jp+Tl9dYvK/zWgNpoEfFzMVRpUk9UHcIaDWHW3g0BpS2MVC3Vs/0e2eu6S2WMGHpzqcJB51jJRbnqXQ23nVKC2YE520Po3EvFyTr8MlFJqTCJrovgc7fze4RI5AgMBAAE=