自堕落な技術者の日記

基本は喰ってるか飲んでるかですが、よく趣味でカラオケ・PKI・署名・認証・プログラミング・情報セキュリティをやっています。旅好き。テレビ好きで芸能通

JOSE

jsrsasignをNode.jsのモジュールnpmで公開してみたぞ

昨日あたりからpure JavaScriptの暗号ライブラリjsrsasignと、JSON Web Token (JWT)やJSON Web Signatures (JWS)を生成、検証できるライブラリjsjwsを合体させて、最近流行りらしいサーバーサイドJavaScriptであるNode.js用のパッケージ https://npmjs.org/package/jsrsasign として公開しています。

Node.jsでは、基本的にOpenSSLベースの標準モジュールCryptoがあって、あまりjsrsasignの出番は少ないとも思うんですが、コマンドラインインタープリタで例えばASN.1作ったり、読んだり、 JWS ができたりして結構楽しめます。そういう意味では惜しげもなくほとんどすべてのクラス、名前空間、メソッドにNode.jsからアクセスできるようにしています。

Node.jsは適当に検索してインストールしてもらうとして、jsrsasignのnpmをインストールするにはこんな感じ。

% npm install jsrsasign

で、Node.jsインタプリタを起動します。

% node

下準備としてファイル入出力とjsrsasignをロードしておきます。

> var r = require('jsrsasign');
> var fs = require('fs');

そんで、試しに暗号化されたPKCS#5 RSA秘密鍵ファイルを読み込んでみましょう。

> var pem = fs.fileReadSync('z1.prv.p5e.pem', 'ascii');
> var prvKey = r.KEYUTIL.getKey(pem, 'passwd');
試しにプリントする
> prvKey
{ n:
   { '0', 18414937 ...
ふむふむ大丈夫そうだ。

ほいで、JWS署名なんかしてみちゃいましょう。

> r.jws.JWS.sign(null, '{"alg":"RS256"}', '{"fruit":"orange"}', prvKey);
'eyJhbGciOiJSUzI1NiJ9.eyJmcnVpdCI6Im9yYW5nZSJ9.uuYgjlhRGbQyxw-Zx0sqgrbc5WNIUh7ow
M1m_lLM_JpRJuL8XdgANr7hkp09yFSxK7EzqZYrC_iMQjz72d7-wg'

読めないでしょうけど(汗)、JWSはちゃんとできてるっぽいですね。ってなわけで、コマンドラインでJWS作ったり、署名したり、ハッシュ計算したり、ASN.1作ったりいろいろできるので遊んでみてください。

今日はこんなとこで

(小ネタ)JNSA電子署名WGの勉強会でお話してきました

JNSA電子署名ワーキンググループのスキルアップタスクフォースの勉強会で 拙作のJavaScript暗号ライブラリjsrsasignとJOSE JWS JWTライブラリ jsjwsのお話をさせて頂く機会を頂きました。スライドを公開しました。 これらのライブラリで日本語版の資料は作ったことがなかったので、 よかったら参考にしてください。

最新記事
Categories
Archives
Twitter
記事Google検索

本ブログ内をGoogle検索
Yahoo!アクセス解析
Travel Advisor
記事検索
QRコード
QRコード
  • ライブドアブログ