問題タブ [spongycastle]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - java.io.IOException: キー ストアのバージョンが正しくありません。SpongyCastle の使用
私は Spongycastle を使用しており、自己署名証明書をプログラムで作成したいと考えています。Androidで以下のコードを実行すると、java.io.IOException: Wrong version of key store.
何が間違っているのかわかりません。Spongycastle が正しいバージョンだと思いましたか?
とにかくここにコードがあります:
android - クライアント証明書が Android から機能しない - デバッグ方法は?
Android アプリのクライアント証明書通信を実装しようとしていますが、これまでのところあまり成功していません。この機能は、可能であれば非常に難しいようです。私が実装している完全なフローは、前の質問に記載されています。
そこのコードとこのブログ投稿のコードに従い、多かれ少なかれ同じシナリオを説明しましたが、結果はありませんでした。
うまくいかないこと: Android クライアントとサーバーの間でSSL 接続 () を開くHttpsURLConnection
と、サーバーが403 ステータス コードを返します。
私の知る限り、この 403 は、サーバーが取得したクライアント証明書を取得していないか信頼していないためであり、デバッグ方法がわかりません。
何が機能しますか:
- PKCS#10 リクエストを作成して CA に送信し、署名付き PKCS#7 ( P7B )を取得する
- 受信したP7Bを秘密鍵とともに KeyStore に格納し、PKCS#12 にエクスポート ( P12 )
- (最も厄介なこと)デバイスからP12を選択し、Windowsにインストールし、サーバーに接続して、一貫した(200 HTTP-OK)応答を取得します。
変更したこと: 入手したコード サンプル (こことここから) から、いくつか変更する必要がありました。私は HttpsURLConnection を使用しており、そこで使用されている @Than のように OkHttpClient を使用していません (しかし、それは問題ではありません)。Rich Freedman が行ったように証明書を提供することはできません (彼は証明書を持っていて、PKCS#10 経由で取得しています。 #7)、サーバーの証明書を信頼するCustomTrustManagerを作成しました。このため、SpongyCastle(問題がある場合はv1.5.0.0、0に挿入されたプロバイダーとして設定)を使用し、証明書ですが、すべてがメモリ内で行われます。
問題は次に何をするかです:
- サーバーが何を期待しているのか (クライアント証明書に関して) どうすればわかりますか?
- サーバーに送信されているクライアント証明書 (存在する場合) を確認するにはどうすればよいですか?
- このシナリオを一般的にデバッグする方法は? (Fiddler などのプロキシは、基盤となる SSL には役に立ちません)
ありがとう!
android - PSK を使用した Bouncycastle/Spongycastle Tls
psk で tls を使用する spongycastle の実装に問題があります。
Web サービスから psk を取得し、Web サーバーに接続しようとしています。私のHttpTransportLayer
クラスでは、サーバー アドレスとポートを使用してソケットを作成します。次に、共有キーTLSIdentity
を取得する を作成します。sessionIdentifier
サーバーに接続しようとすると例外が発生します。これを解決する方法を知っている人はいますか?どうもありがとうございました!
java - F2m コンストラクターを使用して ECFieldElement オブジェクトを作成するにはどうすればよいですか?
上記と同じ ECFieldElement オブジェクトを取得するにはどうすればよいですか。ただし、次のコンストラクターのいずれかしか使用できないという制約があります。
私は暗号の専門家ではありません。これらの他のすべてのパラメーターが何であるかはわかりません。
android - Android での SJCL 暗号化文字列の復号化
SJCL サーバー側で暗号化された文字列があり、利用可能なライブラリを使用して Android で復号化する必要があります。PBKDF2 からキーを生成できないという問題に遭遇するまで、BouncyCastle を試しました。現在、SpongyCastle を使用していますが、まだ問題が発生しています。キーを生成して文字列を復号化するためのこれまでのコードは次のとおりです。
関数でそれを呼び出す方法は次のとおりです。
decodedObject は、UTF-8 を使用して JsonParser を実行し、Base64 でデコードした後の SJCL からの文字列です。私はそれを受け取り、パスワードを使用してSJCL Demoを実行し、文字列を問題なく復号化しました。ここで単純なものが欠けているに違いありません。
私が得ているエラーは cipher.doFinal ステップにあり、次のとおりです。
SJCL が暗号にパディングを使用していないと思うので、getInstance で「AES/CCM/PKCS5Padding」を使用しようとしましたが、次のエラーが発生しました。
TLDR: Android で SJCL 文字列を解読する最も簡単な方法を探しています。提案をいただければ幸いです。
ありがとう!
java - Javaを使用してRSA公開鍵をPEM文字列にエクスポートします
そのため、Spongy Castle (Android) を使用して、サーバーにアップロードされる RSA 公開鍵の PEM エンコード文字列を生成しています。これは私が現在やっていることです:
おそらくおわかりのように、 を構築する方法PemObject
や、これを行うためのより簡単な方法があるかどうかはわかりません。
Bouncy Case を使用するとき、私はこのようにこれを行っていました
しかし、何らかの理由で PEMWriter クラスが Spongy Castle に存在しません。