iPhone の ObjC で Java (Android) コードを書き直そうとしています。コードは基本的な Web サービス呼び出しを実行し、認証情報を含むいくつかのヘッダーを設定する必要があります。
その情報の一部は、私が送信しているデータの暗号化されたハッシュです。
Java バージョンは、電話で生成された RSA 秘密鍵を使用して SHA256 署名を計算します。秘密鍵は、私が入手したシードを使用して生成されます。
(簡略化された) Java コードは次のとおりです。
KeyFactory keyFactory = KeyFactory.getInstance("RSA");
Signature sig = Signature.getInstance("SHA256WithRSAEncryption");
// I get the private key bytes from an outside source
EncodedKeySpec privateKeySpec = new PKCS8EncodedKeySpec(privateKeyBytes);
sig.initSign(keyFactory.generatePrivate(privateKeySpec));
sig.update(/* insert my data here */);
return sig.sign();
今、私は iOS と ObjC でこれを再現しようとしています。SHA256 署名の計算は簡単ですが、秘密の RSA キーを簡単に作成する方法がわかりません。利用可能な組み込み API がある場合はそれを使用したいと思いますが、OpenSSL のようなサード パーティのライブラリを使用する必要がある場合は、それも使用できます。