問題タブ [webcrypto-api]

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.

0 投票する
2 に答える
1551 参照

javascript - WebCrypto: Safari は exportKey() を実行できず、promise が解決/失敗しないようです

keyPair を作成してから、Web Crypto API を使用して keyPair からキーをエクスポートしています。

Chrome と Firefox では、コードは正常に動作し、次のように出力されます。

ただし、Safariでは失敗し、印刷のみ:

そして、何もしません。Safari でキーをエクスポートするにはどうすればよいですか?

0 投票する
1 に答える
1341 参照

javascript - crypto.sublte.digest の実装により、同じ長さの文字列に対して同等の 16 進数ハッシュが生成されるのはなぜですか?

次のコードは、これら 2 つのソースから改作されました。

http://qnimate.com/hashing-using-web-cryptography-api/

https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/digest

Chrome または Firefox コンソールで実行すると、同じ 16 進文字列を使用sha256.digest("this string").then(function (x) { console.log(x) } );して生成します。sha256.digest("that strong").then(function (x) { console.log(x) } );

実際、同じ長さの 2 つの文字列は同じ 16 進数表現になります。

私が読んだことはすべて、2 つの同等のハッシュを持つことはまれであると述べています。つまり、ここで何か間違ったことをしているということです。それが何なのか、私にはわかりません。

0 投票する
1 に答える
587 参照

javascript - SubtleCrypto 使用時のメッセージのない OperationError のトラブルシューティング

SubtleCrypto.unwrapkey を使用してキーのラップを解除しようとしています... 私のラップ解除アルゴリズムは次のとおりです。

私の unwrappedKeyAlgo は次のとおりです。

私の呼び出しは次のようになります。

私はいくつかの異なることを試みてきましたが、ほとんどの場合、メッセージなしで OperationError を取得しています (つまり、error.message は '') が、最後に取得し始めました:

私が見る限り、192 ビット キーは見えません。

メッセージのない OperationError の両方のケース (実際にはそれほど多くはありません) および/または後者の両方をデバッグ/トラブルシューティングする方法についてのヒントはありますか? 同様のテーマに関する質問の場所 (スタック オーバーフロー以外) はどこですか?

0 投票する
1 に答える
847 参照

javascript - ie11 での RSA-OEP 暗号化

IE11 で RSA-OAEP 暗号化の例を見つけることができませんでした。

これは私の実装のスニペットです。非常にあいまいなエラーが表示されます。

アルゴリズムを RSAES-PKCS1-v1_5 に変更すると、すべて問題なく動作します

0 投票する
2 に答える
1177 参照

encryption - Microsoft Edge での公開キー暗号化

Web Cryptography API を使用して公開鍵暗号化を実装するための次の JavaScript コードがあります。Firefox と Chrome では機能しますが、Microsoft Edge では失敗します。Edge から表示されるエラーは、「エラー 80700011 のため操作を完了できませんでした」です。私は何を逃したのですか?

0 投票する
1 に答える
1812 参照

internet-explorer - Internet Explorer 11 での公開キー暗号化

次のコードで IE11 の JavaScript を使用して公開鍵暗号化を実装しようとしています。

キー ペアを生成しますが、エラー イベントで暗号化に失敗します。対称 AES キーを使用した同様のコードが機能します。公開鍵暗号化は IE11 でサポートされていますか? 私のコードに何か問題がありますか?

0 投票する
4 に答える
43206 参照

javascript - プレーンな JavaScript で PDF に署名する

WebCrypto API が進化し、Chrome と Firefox でサポートされるようになったので、PDF ドキュメントのデジタル署名に使用したいと考えています。文献はあまりありませんが、いくつかの例 [1] と PKI.js というライブラリ [2] を見つけました。例では、署名プロセスが説明されていますが、最終的には署名が返されます。Base64 PDF ファイルが署名された Base64 文字列で再び返されることを期待していますが、残念ながら、これは起こりません。私の知る限り、PKI.js も Base64 PDF に署名する方法を提供していません。

JavaScript と WebCrypto API だけで PDF に署名する方法はありますか? 秘密鍵は<textarea>、ブラウザの証明書設定に入力するか、さらには保存することができます。

Base64 PDF (REST API から) → JS と証明書で署名 → 署名された Base64 PDF (REST に送信)

0 投票する
0 に答える
441 参照

mobile-safari - iOS9 モバイル Safari での WebCrypto キーのインポート

このエラーはモバイル Safari で何を意味しますか?

ArrayBuffer および ArrayBufferView オブジェクトのみを CryptoOperationData として渡すことができます

問題のあるコードは次のとおりです。

であるため、 のインスタンスである必要があることにkey注意してください。new Uint8Array([251, 23, 127, ... ])key.bufferArrayBuffer

iOSは私に何を求めているの!?!?

アップデート

誤警報。モバイル Safari がありません。別のTypedArray.prototype.slice場所で でポリフィルされてArray.prototype.sliceいたため、オブジェクトがバッファではありませんでした。