diff --git a/packages/ripple-keypairs/index.js b/packages/ripple-keypairs/src/index.js similarity index 96% rename from packages/ripple-keypairs/index.js rename to packages/ripple-keypairs/src/index.js index c86ebb06..471e6937 100644 --- a/packages/ripple-keypairs/index.js +++ b/packages/ripple-keypairs/src/index.js @@ -209,7 +209,12 @@ hasCachedProperty(Secp256k1Pair, 'pubKeyCanonicalBytes', function() { @param {Array} message (bytes) */ Secp256k1Pair.prototype.sign = function(message) { - return this.key.sign(this.hashMessage(message), {canonical: true}).toDER(); + return this._createSignature(message).toDER(); +}; + +Secp256k1Pair.prototype._createSignature = function(message) { + // The key.sign message silently discards options + return secp256k1.sign(this.hashMessage(message), this.key, {canonical: true}); }; /* diff --git a/packages/ripple-keypairs/utils.js b/packages/ripple-keypairs/src/utils.js similarity index 100% rename from packages/ripple-keypairs/utils.js rename to packages/ripple-keypairs/src/utils.js diff --git a/packages/ripple-keypairs/test/keypairs-test.js b/packages/ripple-keypairs/test/keypairs-test.js index 19a97fef..00bd51e7 100644 --- a/packages/ripple-keypairs/test/keypairs-test.js +++ b/packages/ripple-keypairs/test/keypairs-test.js @@ -1,7 +1,8 @@ const assert = require('assert'); const _ = require('lodash'); +const utils = require('../src/utils'); const codec = require('ripple-address-codec'); -const {Secp256k1Pair, seedFromPhrase, Ed25519Pair} = require('..'); +const {Secp256k1Pair, seedFromPhrase, Ed25519Pair} = require('../src'); const ZEROES = [0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0]; describe('KeyPair', function() { @@ -26,11 +27,11 @@ describe('KeyPair', function() { describe('generated tests', function() { const expected = [ - '30440220312b2e0894b81a2e070ace566c5dfc70cdd18e67d44e2cfef2eb5495f7de2dac02205e155c0019502948c265209dfdd7d84c4a05bd2c38cee6ecd7c33e9c9b12bec2', - '304402202a5860a12c15ebb8e91aa83f8e19d85d4ac05b272fc0c4083519339a7a76f2b802200852f9889e1284cf407dc7f73d646e62044c5ab432eaef3fff3f6f8ee9a0f24c', - '3045022100b1658c88d1860d9f8beb25b79b3e5137bbc2c382d08fe7a068ffc6ab8978c8040220644f64b97ea144ee7d5ccb71c2372dd730fa0a659e4c18241a80d6c915350263', - '3045022100f3e541330ff79ffc42eb0491ede1e47106d94ecfe3cdb2d9dd3bc0e8861f6d45022013f62942dd626d6c9731e317f372ec5c1f72885c4727fdbee9d9321bc530d7b2', - '3045022100998abe378f4119d8bee9843482c09f0d5ce5c6012921548182454c610c57a269022036bd8eb71235c4b2c67339de6a59746b1f7e5975987b7ab99b313d124a69bb9f' + '30440220312B2E0894B81A2E070ACE566C5DFC70CDD18E67D44E2CFEF2EB5495F7DE2DAC02205E155C0019502948C265209DFDD7D84C4A05BD2C38CEE6ECD7C33E9C9B12BEC2', + '304402202A5860A12C15EBB8E91AA83F8E19D85D4AC05B272FC0C4083519339A7A76F2B802200852F9889E1284CF407DC7F73D646E62044C5AB432EAEF3FFF3F6F8EE9A0F24C', + '3045022100B1658C88D1860D9F8BEB25B79B3E5137BBC2C382D08FE7A068FFC6AB8978C8040220644F64B97EA144EE7D5CCB71C2372DD730FA0A659E4C18241A80D6C915350263', + '3045022100F3E541330FF79FFC42EB0491EDE1E47106D94ECFE3CDB2D9DD3BC0E8861F6D45022013F62942DD626D6C9731E317F372EC5C1F72885C4727FDBEE9D9321BC530D7B2', + '3045022100998ABE378F4119D8BEE9843482C09F0D5CE5C6012921548182454C610C57A269022036BD8EB71235C4B2C67339DE6A59746B1F7E5975987B7AB99B313D124A69BB9F' ]; const key = Secp256k1Pair.fromSeed(seedFromPhrase('niq')); function test_factory(i) { @@ -38,7 +39,7 @@ describe('generated tests', function() { ']', function() { const message = [i]; const sig = key.sign(message); - // assert.equal(utils.arrayToHex(sig), expected[i]); + assert.equal(utils.arrayToHex(sig), expected[i]); assert(key.verify(message, sig)); }); }