2012-01-18 13 views
0

クライアントとサーバーの間で通信するために私のAndroidアプリのpkcs7ファイルを生成しようとしています(機密データがそれらの間で送信されます)。AndroidでSpongyCastleでpkcs#7証明書を作成するには?

私は実際に仕事のためにうまくいくと思われるSpongyCastleを試します。

実際、私は与えられた例を試しました:AttrCertExample。私の証明書は最終的に(v3のもの)生成され、検証されたようですが、すべてOKです。

それから私はこのようにそれのデアバージョンを作ってみる:

String strResult = Base64.encode(cert.getTBSCertificate(), Base64.NO_WRAP).toString(); 

しかし、この操作の結果は、私がこのような何かを持っていると思った非常に少ないベース64エンコードされた文字列(与える:

MIICyzCCAbOgAwI [...] 6Shws =(ベース64で960文字)

あなたが実際にSpongyCastleによって生成された証明書のPKCS#7バージョンを取得する方法を知っていますか?

ありがとう、私は助けていただきありがとうございます。必要に応じてコードを追加できます。

答えて

0

私はすぐに答えを得ました。これは、あなたがこれを行う方法です。

// returns a byte array containing the Certificate 
byte[] buf = clientCert.getEncoded(); 

// Returns Base64 encoded certificate 
String strCertificateCrypted_b64 = new String(Base64.encode(buf, Base64.NO_WRAP)); 

次に、あなたはこのように証明書を取得:DER拡張子でこれを保存することにより

MIIDHjCCAgagAwIBAgIEOH9W+ [...] czP+BohBw== 

、あなたは簡単に証明書の内容を見ることができます。

+0

これはPKCS#12ではありません。 –

+0

ええ、その後、DER証明書(PKCS#7)を作成する必要があり、秘密鍵を持つPKCS#12を作成する必要はありませんでした。私は論理的にとどまるためにタイトルを変更します。 – Thordax

関連する問題