From 2fbf0612a1f0e25f1989e5858cbb65ef7411ee66 Mon Sep 17 00:00:00 2001 From: Ben Noordhuis Date: Sat, 13 Oct 2012 02:49:53 +0200 Subject: [PATCH] crypto: sort return value of getCiphers/getHashes --- lib/crypto.js | 8 ++++++-- test/simple/test-crypto.js | 10 ++++++++++ 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/lib/crypto.js b/lib/crypto.js index 5277490..3d3affa 100644 --- a/lib/crypto.js +++ b/lib/crypto.js @@ -196,7 +196,11 @@ exports.pseudoRandomBytes = pseudoRandomBytes; exports.rng = randomBytes; exports.prng = pseudoRandomBytes; -exports.getCiphers = getCiphers; + +exports.getCiphers = function() { + return getCiphers.call(null, arguments).sort(); +}; + exports.getHashes = function() { var names = getHashes.call(null, arguments); @@ -210,5 +214,5 @@ exports.getHashes = function() { }); names = Object.getOwnPropertyNames(ctx); - return names; + return names.sort(); }; diff --git a/test/simple/test-crypto.js b/test/simple/test-crypto.js index e88c1dc..5428aa0 100644 --- a/test/simple/test-crypto.js +++ b/test/simple/test-crypto.js @@ -684,9 +684,18 @@ testPBKDF2('pass\0word', 'sa\0lt', 4096, 16, '\x56\xfa\x6a\xa7\x55\x48\x09\x9d\xcc\x37\xd7\xf0\x34' + '\x25\xe0\xc3'); +function assertSorted(list) { + for (var i = 0, k = list.length - 1; i < k; ++i) { + var a = list[i + 0]; + var b = list[i + 1]; + assert(a <= b); + } +} + // Assume that we have at least AES256-SHA. assert.notEqual(0, crypto.getCiphers()); assert.notEqual(-1, crypto.getCiphers().indexOf('AES256-SHA')); +assertSorted(crypto.getCiphers()); // Assert that we have sha and sha1 but not SHA and SHA1. assert.notEqual(0, crypto.getHashes()); @@ -694,3 +703,4 @@ assert.notEqual(-1, crypto.getHashes().indexOf('sha1')); assert.notEqual(-1, crypto.getHashes().indexOf('sha')); assert.equal(-1, crypto.getHashes().indexOf('SHA1')); assert.equal(-1, crypto.getHashes().indexOf('SHA')); +assertSorted(crypto.getHashes()); -- 2.7.4