Skip to content

Commit

Permalink
benchmark: add rsa/aes-gcm performance test
Browse files Browse the repository at this point in the history
PR-URL: #1325
Reviewed-By: Fedor Indutny <fedor@indutny.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
  • Loading branch information
Shigeki Ohtsu committed Apr 4, 2015
1 parent 1c709f3 commit 3a69b76
Show file tree
Hide file tree
Showing 10 changed files with 314 additions and 1 deletion.
38 changes: 38 additions & 0 deletions benchmark/crypto/aes-gcm-throughput.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
var common = require('../common.js');
var crypto = require('crypto');
var keylen = {'aes-128-gcm': 16, 'aes-192-gcm': 24, 'aes-256-gcm': 32};
var bench = common.createBenchmark(main, {
n: [500],
cipher: ['aes-128-gcm', 'aes-192-gcm', 'aes-256-gcm'],
len: [1024, 4 * 1024, 16 * 1024, 64 * 1024, 256 * 1024, 1024 * 1024]
});

function main(conf) {
var message = (new Buffer(conf.len)).fill('b');
var key = crypto.randomBytes(keylen[conf.cipher]);
var iv = crypto.randomBytes(12);
var associate_data = (new Buffer(16)).fill('z');
bench.start();
AEAD_Bench(conf.cipher, message, associate_data, key, iv, conf.n, conf.len);
}

function AEAD_Bench(cipher, message, associate_data, key, iv, n, len) {
var written = n * len;
var bits = written * 8;
var mbits = bits / (1024 * 1024);

for (var i = 0; i < n; i++) {
var alice = crypto.createCipheriv(cipher, key, iv);
alice.setAAD(associate_data);
var enc = alice.update(message);
alice.final();
var tag = alice.getAuthTag();
var bob = crypto.createDecipheriv(cipher, key, iv);
bob.setAuthTag(tag);
bob.setAAD(associate_data);
var clear = bob.update(enc);
bob.final();
}

bench.end(mbits);
}
45 changes: 45 additions & 0 deletions benchmark/crypto/rsa-encrypt-decrypt-throughput.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
// throughput benchmark in signing and verifying
var common = require('../common.js');
var crypto = require('crypto');
var fs = require('fs');
var path = require('path');
var fixtures_keydir = path.resolve(__dirname, '../../test/fixtures/keys/');
var keylen_list = ['1024', '2048', '4096'];
var RSA_PublicPem = {};
var RSA_PrivatePem = {};

keylen_list.forEach(function(key) {
RSA_PublicPem[key] = fs.readFileSync(fixtures_keydir +
'/rsa_public_' + key + '.pem');
RSA_PrivatePem[key] = fs.readFileSync(fixtures_keydir +
'/rsa_private_' + key + '.pem');
});

var bench = common.createBenchmark(main, {
n: [500],
keylen: keylen_list,
len: [16, 32, 64]
});

function main(conf) {
var crypto = require('crypto');
var message = (new Buffer(conf.len)).fill('b');

bench.start();
StreamWrite(conf.algo, conf.keylen, message, conf.n, conf.len);
}

function StreamWrite(algo, keylen, message, n, len) {
var written = n * len;
var bits = written * 8;
var kbits = bits / (1024);

var privateKey = RSA_PrivatePem[keylen];
var publicKey = RSA_PublicPem[keylen];
for (var i = 0; i < n; i++) {
var enc = crypto.privateEncrypt(privateKey, message);
var clear = crypto.publicDecrypt(publicKey, enc);
}

bench.end(kbits);
}
53 changes: 53 additions & 0 deletions benchmark/crypto/rsa-sign-verify-throughput.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
// throughput benchmark in signing and verifying
var common = require('../common.js');
var crypto = require('crypto');
var fs = require('fs');
var path = require('path');
var fixtures_keydir = path.resolve(__dirname, '../../test/fixtures/keys/');
var keylen_list = ['1024', '2048'];
var RSA_PublicPem = {};
var RSA_PrivatePem = {};

keylen_list.forEach(function(key) {
RSA_PublicPem[key] = fs.readFileSync(fixtures_keydir +
'/rsa_public_' + key + '.pem');
RSA_PrivatePem[key] = fs.readFileSync(fixtures_keydir +
'/rsa_private_' + key + '.pem');
});

var bench = common.createBenchmark(main, {
writes: [500],
algo: ['RSA-SHA1', 'RSA-SHA224', 'RSA-SHA256', 'RSA-SHA384', 'RSA-SHA512'],
keylen: keylen_list,
len: [1024, 102400, 2 * 102400, 3 * 102400, 1024 * 1024]
});

function main(conf) {
var crypto = require('crypto');
var message = (new Buffer(conf.len)).fill('b');

bench.start();
StreamWrite(conf.algo, conf.keylen, message, conf.writes, conf.len);
}

function StreamWrite(algo, keylen, message, writes, len) {
var written = writes * len;
var bits = written * 8;
var kbits = bits / (1024);

var privateKey = RSA_PrivatePem[keylen];
var publicKey = RSA_PublicPem[keylen];
var s = crypto.createSign(algo);
var v = crypto.createVerify(algo);

while (writes-- > 0) {
s.update(message);
v.update(message);
}

var sign = s.sign(privateKey, 'binary');
s.end();
v.end();

bench.end(kbits);
}
20 changes: 19 additions & 1 deletion test/fixtures/keys/Makefile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
all: agent1-cert.pem agent2-cert.pem agent3-cert.pem agent4-cert.pem agent5-cert.pem ca2-crl.pem ec-cert.pem dh512.pem dh1024.pem dh2048.pem
all: agent1-cert.pem agent2-cert.pem agent3-cert.pem agent4-cert.pem agent5-cert.pem ca2-crl.pem ec-cert.pem dh512.pem dh1024.pem dh2048.pem rsa_private_1024.pem rsa_private_2048.pem rsa_private_4096.pem rsa_public_1024.pem rsa_public_2048.pem rsa_public_4096.pem


#
Expand Down Expand Up @@ -179,6 +179,24 @@ dh1024.pem:
dh2048.pem:
openssl dhparam -out dh2048.pem 2048

rsa_private_1024.pem:
openssl genrsa -out rsa_private_1024.pem 1024

rsa_private_2048.pem:
openssl genrsa -out rsa_private_2048.pem 2048

rsa_private_4096.pem:
openssl genrsa -out rsa_private_4096.pem 4096

rsa_public_1024.pem: rsa_private_1024.pem
openssl rsa -in rsa_private_1024.pem -out rsa_public_1024.pem

rsa_public_2048.pem: rsa_private_2048.pem
openssl rsa -in rsa_private_2048.pem -out rsa_public_2048.pem

rsa_public_4096.pem: rsa_private_4096.pem
openssl rsa -in rsa_private_4096.pem -out rsa_public_4096.pem

clean:
rm -f *.pem *.srl ca2-database.txt ca2-serial

Expand Down
15 changes: 15 additions & 0 deletions test/fixtures/keys/rsa_private_1024.pem
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
-----BEGIN RSA PRIVATE KEY-----
MIICXQIBAAKBgQDOF+YjZgVg8yGFS+++0WVcTKms1Wl2Lbnzj7jWOPyZnXxww7cE
afiL3QI2RZCiVwBcueUejCbzT5iLrsWceryOCHZE4nQ5IOEYCpPzWw6oTfSM7HV0
axQEpSzJFp20NJV9pVvBmSrrrdlGaDwHY1nlGVB3s2CKTAVxcKWoD6FhVQIDAQAB
AoGBAIoz5JRgWcMFx7jHj2H6sWoPzsij5DDnwQbfniep11p8DXLhC93d4lqIPm9+
ftseVJPZ5RdzDLuk6Lri3IlulPnEeJZrfYQVlfge6N9swQ54j3wRGEBjcP+7pu7Q
nQ5FpOyJqQWWMUinf+o1bEkClIBPTY4x8pIoCM09wSvD9weRAkEA/hWym3rDwrcu
pKvb1VgWZtrrCv5m+2Dk5V7qA+9sUyI9Lq9dlklNMcbuJXCy8Evd2Q3EMySYQGVc
cXEKkeKefwJBAM+ll95tMX/YDEYAtOf3stz59rC4EyuD2kOZJt0dPj3vApYYq9+0
Wnd0c8VOzJGjpVI21SY+fA+doMiZVVjSPisCQCD0R3oK7iDvCUmqUJTXG/CzLBD8
9fZcltN4//kKsI4Hvs+zRvwa/bwbBQAuIccwz9E7C9tmP6j6fIbqFmjdb5kCQCJI
MJ6kYHu+66fTDgsONhWNn1Dl0yRoDG0EqAnxfgkzoLWvNREl8ZmvPD3jGJsi7XR5
YQ+DWXAqkhUMW67iZykCQQCgZdOUkAWu7NsCfGSTTvrMapa5PAt/GPDzzY9JGGif
p+09SVdrnphr+MX6MCnOsixPXrMtg/LLhpQkwjVetm15
-----END RSA PRIVATE KEY-----
27 changes: 27 additions & 0 deletions test/fixtures/keys/rsa_private_2048.pem
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEA20oG4U+MsV45A4zG0ySoavFmWmdkVtmKh1Tk9sC3V6Fu5w1v
44lZDa57n+ghEA9Y4txUVQzm3TppwBFqUB2bBZrAhAjmjiPxjECGTV7ABaAQyihJ
R0F2LL1KmdlduFXACvNCfIseBoOY6K49vrW3/rVC1gBQ6/S3K6jECjGAvOyUcIAv
ch0YpW68v12AOUMI+CpzRQdMv6akbOVt5Qtg1vIvv0lIuirYcq9MWS++oFvHrxzX
qAiAfgc0truwbW5Lz2w7Wcy0pBYeVW6HvBFPwUEV/2rn+RHrbgE9yQ+p4gDkdfHV
yuMx21Mf449UwQUuI3HZ4BPqmyWkwSEYsfVYMQIDAQABAoIBAA9GT8Zf+SfdrVD+
/FZ2xjh0yjFf5FBcZNbaZfx+Hgc/mm8Ds5iA17ApSDkyPSNWPlXHDSTDek1MpVMY
o3QjK8ovJlvMFustu8SONgyrneqGZMUAG2KYP7gME2c2Cd4uMutQWIA+XIANqJgE
kw52r/NRAu/PI9PbvuqOneEr45DFNNfu7RUsyewfrd07+xeDzqyMZFizjgZS8pyF
eu9jVo/4T64tT24+oTVn1O3sSn4DL0oh3IvTyv7jVDHP5QqjvY7scSSva5VPqXQI
9kkdzm0ECUqEAxwwn8EmyogrMJJYIKBmuFYxl3rYAY19hNVsMafmnlHxjSgv3n8h
LjnnPLECgYEA/bZy7NtfPrHWBQvSpUPyge7ykfOwOoNYHY0OJcw/MGjNbk6d6ZOv
3/gpGNO90iJkBI5cMXOgtOe0Nj1dkkSy9C81jd3JzR9mrK9Id8sJcUw2XpN1IKcE
w89tcf1tmvP/st6dY3RDHARIPjNvQfcWkzT0uDJmf8cihS3MeWcPi2UCgYEA3UQh
gPFfTAVW/mvwOkO37SK6/5hXbE4V1bHoP3fWAXmXO3C53K4FAuhErq8nw6ZOf9DG
jjhskmeXoUNb06gLBO2okfFL9ccDS4hKm5LQJvolrFfd6PTc/HOIxCvEj7aA4w0T
d0c1KUZjS7SNL0e3I4jNbJF6GXjwTHBMo5se2t0CgYEA2F7Hpi30DVC2l/kcPOs0
nxD79/LeIRiwhgssvJlybkOCpwcO7wuPmy9VRSIXKWVA7Q3HnDjjHkTYUMWGzl4e
S9cTEhjKqE+WTcDyyY7zT5dSatfQtPcbPi7hRKx/0/0w3QezLAUT0onoXnuY76Xc
r9AiwA/jkCdwzilfz01QWW0CgYAUHmjJd6kJmYaydZAPTC8CIeFM8kYos+TqXFXY
x4Wu9qZYokRUG4KbJBFyrLx53rpOhuY28kx093RjFmPYF/SAizeDpaQZgfH7wTW/
dZb1pFMem5Ky5ujdD4hFBhHGW3rWqk61zsS3rw3CSXV48hVl5r9++q9Wd5ep66Ac
VDN3BQKBgGMkPiQ5YuhVG3zEYM/4zgW7zCEuDyocqXkv5nJGW3JxPDBuJhLbwQ8F
RqawaRhuIQZtKnbN7JIGLFYYx+LkUlj7bbkzz6iaHHBtiDqz4/bHEL3q02DpAyJR
koWbtKIbZfS0Zno3OoGdYyvwXYaaE3Q3DJOc+NUmMKhlAhcAkjQv
-----END RSA PRIVATE KEY-----
51 changes: 51 additions & 0 deletions test/fixtures/keys/rsa_private_4096.pem
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
-----BEGIN RSA PRIVATE KEY-----
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
-----END RSA PRIVATE KEY-----
6 changes: 6 additions & 0 deletions test/fixtures/keys/rsa_public_1024.pem
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDOF+YjZgVg8yGFS+++0WVcTKms
1Wl2Lbnzj7jWOPyZnXxww7cEafiL3QI2RZCiVwBcueUejCbzT5iLrsWceryOCHZE
4nQ5IOEYCpPzWw6oTfSM7HV0axQEpSzJFp20NJV9pVvBmSrrrdlGaDwHY1nlGVB3
s2CKTAVxcKWoD6FhVQIDAQAB
-----END PUBLIC KEY-----
9 changes: 9 additions & 0 deletions test/fixtures/keys/rsa_public_2048.pem
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA20oG4U+MsV45A4zG0ySo
avFmWmdkVtmKh1Tk9sC3V6Fu5w1v44lZDa57n+ghEA9Y4txUVQzm3TppwBFqUB2b
BZrAhAjmjiPxjECGTV7ABaAQyihJR0F2LL1KmdlduFXACvNCfIseBoOY6K49vrW3
/rVC1gBQ6/S3K6jECjGAvOyUcIAvch0YpW68v12AOUMI+CpzRQdMv6akbOVt5Qtg
1vIvv0lIuirYcq9MWS++oFvHrxzXqAiAfgc0truwbW5Lz2w7Wcy0pBYeVW6HvBFP
wUEV/2rn+RHrbgE9yQ+p4gDkdfHVyuMx21Mf449UwQUuI3HZ4BPqmyWkwSEYsfVY
MQIDAQAB
-----END PUBLIC KEY-----
51 changes: 51 additions & 0 deletions test/fixtures/keys/rsa_public_4096.pem
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
-----BEGIN RSA PRIVATE KEY-----
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
-----END RSA PRIVATE KEY-----

0 comments on commit 3a69b76

Please sign in to comment.