問題タブ [key-pair]
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 KeyStoreでKeyPairを生成する方法
指紋と 4 桁の PIN (アプリケーション設定でユーザーが設定できます。これはシステム PIN/パターン/パスワードではありません) 認証を使用するアプリがあります。
指紋ですべて問題ありませんが、ピンに問題があります。
私がやろうとしていることは次のとおりです。
- ユーザーがアプリケーション設定からピンを設定できるようにする
- 入力されたピンで保護されたエイリアスのキーストアでキーペアを生成します(このピンなしでは秘密鍵にアクセスできないようにするため)
- 将来の署名検証のために公開鍵をサーバーに送信する
- サーバーからユーザー トークンを取得し、ローカル ストレージに保存します
次に、承認中に:
- ユーザーに PIN の入力を要求する
- 入力した PIN で秘密鍵を取得する
- ローカル ストレージからトークンを取得する
- ステップ 6 の秘密鍵でトークンに署名する
- 署名付きデータでサーバーに送信する
- サーバーで署名を確認し、有効な場合はユーザーのセッションを開きます。
私の質問は:ユーザーが入力したピンで保護された KeyPair を生成するにはどうすればよいですか?
PS指紋の場合、このロジックは次のように処理されます。
c# - バウンシーキャッスルエルガマルバイト[] C#の鍵
復号化が高速であるため、コードを RSA から ElGamal に変更しています。
だから私は今初めてBouncyCastleを使用していますが、キーを変換するホットがわからない
それぞれを byte[] (文字列も機能します)
両方が「AsymmetricKeyParameter」を継承しているクラスの解決策を見つけました:
ただし、これは PrivateKey に対してのみ機能します。私は public_key でそれを行うことである同様のものを見つけることができませんでした
キーを圧縮、暗号化、保存、および送信できるようにするには、String または byte[] が必要です。
-
よろしくお願いいたします。
ios - iOS で楕円曲線を使用して PKCS 10 を作成する
私は PKCS 10 CSR を作成するための R&D を行っています。Google で調べたところ、この人の github で非常に優れたヘルプが見つかりました。完了しましたkSecAttrKeyTypeRSA
。RSA で完了しました。今は楕円曲線で同じことをしたいのkSecAttrKeyTypeEC
ですが、それを見つけることができません。これについて助けが必要です。
編集:SCCR.m
RSA から ECDSAwithSHA256
に変換しようとしました
- ECDSAWithSHA256の OID を取得し、 hexに変換します。
- のようにクラス全体で SHA1 を 256 に変更し
CC_SHA256_CTX
ます。 kSecAttrKeyTypeEC
の代わりに を使用してキーペアを作成しましたkSecAttrKeyTypeRSA
。
結局、署名が無効な PEM ファイルを取得しています。以下は私のクラス全体です。
SCCR.m
質問
- この OID
1.2.840.113549.1.1.5
が 16 進数に変換されると{0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x01, 0x05, 0x00}
、これは次のように定義されます。定義されているstatic uint8_t OBJECT_rsaEncryptionNULL[13] = {0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x01, 0x05, 0x00};
ものは何ですか?SEQUENCE_OBJECT_RSAEncryption
static uint8_t SEQUENCE_OBJECT_RSAEncryption[] = {0x30, 0x0D, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 1, 1, 5, 0x05, 0x00};
SEQUENCE_OBJECT_sha256WithECEncryption
SHA256withECだとどうなるか
OPENSSL から生成された CSR
-----証明書の開始REQUEST----- MIIC8jCCAdoCAQAwfDELMAkGA1UEBhMCYXMxCzAJBgNVBAgTAnB1MQwwCgYDVQQH EwNsaHIxDDAKBgNVBAoTA3BhazERMA8GA1UECxMIYXNjZXJ0aWExDjAMBgNVBAMT BWFsZWVtMSEwHwYJKoZIhvcNAQkBFhJhbGVlbS5yekBnbWFpbC5jb20wggEiMA0G CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCzvlvXGw4/YPYbiiCQE2pmqu0x9Ib3 nHk3yMy8ewJIXWOuewVmB7ISBoiAaJ01ON9H/szYUvCGoU5fzz7UFgxCI7biypuy ixo74w7Bd2jRMsH7baZ2W0bhvGoBxN1IMJZHI53J2KF9P5tayLz7OyGQ4Qz8p63A A6Ag3rblIDEBiDr6Xkyxd2atUf4EwB4JcrsLx66RyGDWadXcyO8P39Jg6bgauBMh OW2tq3Y7WsnOnYrYj4m1r9Z1ZFZEIHtHJX9u0qtuHH8yZD/saP5RkUcjIZPHU6Yh gNByRAXCl5YAMTV9yah/AGq6SMwvSRbhX6zgCpI0/eIhvyuzFW/poRlvAgMBAAGg MTAWBgkqhkiG9w0BCQIxCRMHYXNjdGVzdDAXBgkqhkiG9w0BCQcxChMIODc2NTQz MjEwDQYJKoZIhvcNAQELBQADggEBADdv9TOQAV7hEtFsviyp9G08BJgSDBjdP63I Efplt2B1POGvdOKvR1OI5r/qgZZ8E7BTBaFyArUT4+sEdybpmXV9PdO8R7zawD/j 7vmKShYThlPxi/UDrZT8kAwrnBAKgChJ/KMSB6LGdM2wvZKvoN14LFj/KUHtTI97 LYRfhIKFk28yyeSQxK8a3zkPawiTWBYYay9GU13NiKXedps00eV14S7/jAzhL/bk e94LfFybyDcOa2zDWKZOwOGAEStCq4O+7A+t8wrA= -----END CERTIFICATE REQUEST-----
ios - 公開鍵と秘密鍵を iOS から OpenSSL にエクスポートする
CSR を作成する必要があるアプリに取り組んでいます。目的の c または Swift を使用して、これは簡単ではありません。そのため、OpenSSL を選択して CSR を作成し、正常に作成されたコードを以下に示しますが、もう 1 つの重要な要件はキーを安全なエンクレーブに保存することですが、オンラインで検索したため、これは OpenSSL では不可能です。ここで、セキュア エンクレーブの目的 c にキーペアを作成し、これらの公開キー (データ付き) と秘密キー (参照付き) を openSSL ( EC_KEY
) にエクスポートしてから、CSR を作成します。このリンクを見つけてキーをエクスポートしましたが、秘密キーをエクスポートする方法はありません (データでは不可能ですが、参照では可能です)。
それを行う方法についてのガイダンスが必要です。
security - OpenSSL: ecparam ファイルなしで EC Named Curve を表示することは可能ですか?
EC キー ペアの生成に使用された Named Curved を取得する OpenSSL コマンドはありますか?
ここで、パラメーターを PEM ファイルに生成します。
openssl ecparam -name secp256k1 -out secp256k1.pem
次に、次のように入力して、使用されている名前付き曲線を確認します。
openssl ecparam -in secp256k1.pem -text -noout
しかし、Private.pem と Public.pem しかなく、ecparam ファイルがない場合、どうすれば同じことを達成できるでしょうか?
openssl pkey -in user1Key.pem -text -noout
コマンドラインOpenSSLツールで生成したキーでは機能しましたが、Cライブラリでは機能しませんでした。Cを使用して生成したPEMファイルに対してこのコマンドを実行すると、短いecparam名ではなくすべてが取得されます。Private、Public、Seed、Prime、A、B などを取得します。
c - C_GenerateKeyPair がエラーを返すのはなぜですか (PKCS#11)?
PKCS#11 経由でセキュリティ カードに ECC キー ペアを作成したいと考えています。使用するカーブは BrainpoolP256r1 (1.3.36.3.3.2.8.1.1.7)、DER エンコードは 06 09 2b 24 03 03 02 08 01 01 07 です。
機能は次のとおりです。
C_GenerateKeyPair 呼び出しは 0x13 = CKR_ATTRIBUTE_VALUE_INVALID を返します
どの属性が間違っている可能性があるかわかりません。情報が不十分であることはわかっていますが、さまざまなことを試しましたが、まだこのエラーが発生しています。何か根本的に間違っているのでしょうか?
java - Public JKS ファイルと Private JKS ファイルを使用して KeyPair を生成する
KeyPair
既に生成されている公開および秘密キーストア (JKS) ファイルを使用して、アプリケーション内で使用するために を生成することはできますか?
ありがとう
RSA 2048
すでに生成されている秘密鍵と公開鍵を使用して鍵ペアを作成したい