サーバー側の言語として Node.js を使用しています。自分の Web サイトに登録するすべてのユーザーの RSA キー ペアを生成したいと考えています。keypairというモジュールを使用しています。小さなサイズのキーでは問題なく機能しますが、サイズが 2048 のキーを生成すると実行に時間がかかるため、以下のスクリプトで説明されているように、Node の child_process を使用して Node.js から直接 Open SSL を使用したいと考えています。
var cp = require('child_process')
, assert = require('assert');
var privateKey, publicKey;
publicKey = '';
cp.exec('openssl genrsa 2048', function(err, stdout, stderr) {
assert.ok(!err);
privateKey = stdout;
console.log(privateKey);
makepub = cp.spawn('openssl', ['rsa', '-pubout']);
makepub.on('exit', function(code) {
assert.equal(code, 0);
console.log(publicKey);
});
makepub.stdout.on('data', function(data) {
publicKey += data;
});
makepub.stdout.setEncoding('ascii');
makepub.stdin.write(privateKey);
makepub.stdin.end();
});
これは機能しており、Node.js キーペア モジュールよりもキー ペアの生成が高速であるため、私が抱えている問題は、このコードを理解できないことです (サーバー側でファイルを書き込んで、それらからキーを読み取るかどうか)。 ) このスクリプトを、公開鍵と秘密鍵を保持する結果として JSON または配列を返す関数に変えたいと思います。
どんな提案でも大歓迎です、事前に感謝します。