RSA署名と検証
W3C Web Cryptography API を使ってRSA署名および検証を行います。 秘密鍵、公開鍵はインポートしたPEM形式やJWK形式の鍵を使う事もできますし、 APIにより生成された鍵ペアを使う事もできます。
署名側
検証側
動作確認実績
このページは下記環境で動作を確認しました。
- Firefox 34 for OSX - 問題なく動作
- Chrome 39 for OSX - 問題なく動作
- Chrome 39 for Android - HTTPSサイトでしか実行できない(NotSupportedError: Only secure origins are allowed. http://goo.gl/lq4gCo
- Safari 7 for OSX - 生成した鍵ペアを使用すれば問題ないが、インポートした鍵を使用するとエラー
- IE11 for Win8.1 - Promiseパターンに対応していないためエラー
補足説明
- signやverifyのアルゴリズム指定でFirefox 34の場合、JSON形式({name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}})と"RSASSA-PKCS1-v1_5"の 両方を受け付けますが、Chrome 39ではJSON形式でなければなりません。
- PKCS#8 PEM形式を16進数文字列にするのにjsrsasignを使っています。