問題タブ [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.
android - Android Spongy Castle Gradle の依存関係
私は暗号化が初めてです。Spongy Castle を使用してファイルを暗号化 (AES) し、ディスクに書き込みたいと考えています。ファイルに 4 つの依存関係すべてが必要.gradle
ですか?
android - Spongey Castle の自己署名証明書と Android KeyStore の比較?
自己署名証明書を作成しようとしています。Spongey Castle KeyPair を「AndroidKeyStore」に保存するために、これを実行したいと考えています。署名は、SHA-256 ダイジェストを使用した P-256 の ECDSA である必要があります。
上記のメソッド genSelfSignedCert() を使用すると (ProgramCreek.com から取得)
私は得る:
この方法で、アルゴリズムが鍵ペアと一致しない証明書が作成されるのはなぜですか?
java - Android SpongyCastle ECDH secp384r1 キー サイズが正しくありません
ECDH secp384r1 公開/秘密鍵ペアの生成に Android で SpongyCastle を使用しようとしています。私が直面している問題は、生成しているキーが大きすぎることです。
公開鍵は 120 バイト、秘密鍵は 194 バイトです。ここでは明らかに何らかのエンコーディングが行われています。この余分な情報のすべてが必要なわけではありません。49 バイトおよび 48 バイトの圧縮された公開/秘密鍵を探しています。
キーを生成する方法は次のとおりです。
以前は CryptoPP と NDK を使用してキー ペアを生成し、共有シークレットを抽出していたため、このルートをたどっています。
ただし、CryptoPP を Android Marshmallow で動作させる際に問題が発生したため、現在は SpongyCastle に頼っています。
主な問題は、これは既に CryptoPP 実装を使用している iOS アプリで動作する必要があることです。そのため、可能であれば、そのバージョンでこのラインナップを作成する方法を理解する必要があります。
基本的に、次の C++ cryptopp 実装と一致する Java SpongyCastle 実装が必要です。
最初のステップは、SpongyCastle 実装から 49 バイトと 48 バイトの圧縮キーを抽出する方法を理解する必要があることです。
その後、これらのキーを使用して共有シークレットを抽出することが優先されます。私は全体的な暗号化とこれらのライブラリの使用にかなり慣れていないため、ここでの助けをいただければ幸いです。
java - opensslによって生成されたものと同じタイプのecdsaキーペアをJavaで生成する方法は?
次のコマンドを実行して、マシンで ecdsa キーペアを生成しています。
openssl ecparam -genkey -name secp256k1 -noout -outform DER -out private.key
この次のコマンドを実行するとopenssl ec -inform DER -in private.key -noout -text
、次の出力が得られます。
今私が興味を持っているのは、コロンのない上記の公開鍵04640af7e6e1a97fd3b2ecadf14196eec1c2e7024a5442abe8da9f88e10246aa329138b59e37fc96d9360207de7459c4a8e02b213ad4707d5e92542265800fdffd
です。キーが有効かどうかを検証する API 呼び出しに、この公開キーを送信する必要があります。API 呼び出しで送信されたときにによって生成されたキーopenssl
は、サーバーによって有効なものとして受け入れられます。
しかし、API 呼び出しで送信されたときに Java で生成された公開 ecdsa キーは拒否されます。次のコードを使用してキーペアを生成しています
私の質問は、OpenSSL によって生成されたものと同じタイプの ECDSA キーペアをどのように生成できますか? また、OpenSSL によって生成されたキーと Java によって生成されたコードの違いは何ですか。OpenSSL によって生成されたキーは受け入れられますが、Java によって生成されたキーは拒否されます。
android - Android 4.4 で SpongyCastle を使用して署名/署名をチェックするときに UnsupportedOperationException が発生する
次のコードは、Android 4.4 で実行すると UnsupportedOperationException をスローしますが、Android 5 および 6 では正常に動作します (デバイスとエミュレータでテスト済み)。setParameter で例外がスローされます。
SHA256withRSA/PSS を使用できるように Spongy Castle を使用しています。
理由はありますか?