Comparing version 5.1.0 to 5.2.0
@@ -87,2 +87,50 @@ 'use strict'; | ||
defineCurve('p384', { | ||
type: 'short', | ||
prime: null, | ||
p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' + | ||
'fffffffe ffffffff 00000000 00000000 ffffffff', | ||
a: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' + | ||
'fffffffe ffffffff 00000000 00000000 fffffffc', | ||
b: 'b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f ' + | ||
'5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef', | ||
n: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 ' + | ||
'f4372ddf 581a0db2 48b0a77a ecec196a ccc52973', | ||
hash: hash.sha384, | ||
gRed: false, | ||
g: [ | ||
'aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 ' + | ||
'5502f25d bf55296c 3a545e38 72760ab7', | ||
'3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 ' + | ||
'0a60b1ce 1d7e819d 7a431d7c 90ea0e5f' | ||
] | ||
}); | ||
defineCurve('p521', { | ||
type: 'short', | ||
prime: null, | ||
p: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' + | ||
'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' + | ||
'ffffffff ffffffff ffffffff ffffffff ffffffff', | ||
a: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' + | ||
'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' + | ||
'ffffffff ffffffff ffffffff ffffffff fffffffc', | ||
b: '00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b ' + | ||
'99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd ' + | ||
'3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00', | ||
n: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' + | ||
'ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 ' + | ||
'f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409', | ||
hash: hash.sha512, | ||
gRed: false, | ||
g: [ | ||
'000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 ' + | ||
'053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 ' + | ||
'a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66', | ||
'00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 ' + | ||
'579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 ' + | ||
'3fad0761 353c7086 a272c240 88be9476 9fd16650' | ||
] | ||
}); | ||
defineCurve('curve25519', { | ||
@@ -89,0 +137,0 @@ type: 'mont', |
@@ -100,3 +100,3 @@ 'use strict'; | ||
var bkey = key.getPrivate().toArray(); | ||
for (var i = bkey.length; i < 21; i++) | ||
for (var i = bkey.length; i < bytes; i++) | ||
bkey.unshift(0); | ||
@@ -103,0 +103,0 @@ |
@@ -7,3 +7,3 @@ 'use strict'; | ||
var parseBytes = utils.parseBytes; | ||
var lazyComputed = utils.lazyComputed; | ||
var cachedProperty = utils.cachedProperty; | ||
@@ -44,7 +44,7 @@ /** | ||
lazyComputed(KeyPair, 'pubBytes', function pubBytes() { | ||
cachedProperty(KeyPair, function pubBytes() { | ||
return this.eddsa.encodePoint(this.pub()); | ||
}); | ||
lazyComputed(KeyPair, 'pub', function pub() { | ||
cachedProperty(KeyPair, function pub() { | ||
if (this._pubBytes) | ||
@@ -55,3 +55,3 @@ return this.eddsa.decodePoint(this._pubBytes); | ||
lazyComputed(KeyPair, 'privBytes', function privBytes() { | ||
cachedProperty(KeyPair, function privBytes() { | ||
var eddsa = this.eddsa; | ||
@@ -69,11 +69,11 @@ var hash = this.hash(); | ||
lazyComputed(KeyPair, 'priv', function priv() { | ||
cachedProperty(KeyPair, function priv() { | ||
return this.eddsa.decodeInt(this.privBytes()); | ||
}); | ||
lazyComputed(KeyPair, 'hash', function hash() { | ||
cachedProperty(KeyPair, function hash() { | ||
return this.eddsa.hash().update(this.secret()).digest(); | ||
}); | ||
lazyComputed(KeyPair, 'messagePrefix', function messagePrefix() { | ||
cachedProperty(KeyPair, function messagePrefix() { | ||
return this.hash().slice(this.eddsa.encodingLength); | ||
@@ -80,0 +80,0 @@ }); |
@@ -7,3 +7,3 @@ 'use strict'; | ||
var assert = utils.assert; | ||
var lazyComputed = utils.lazyComputed; | ||
var cachedProperty = utils.cachedProperty; | ||
var parseBytes = utils.parseBytes; | ||
@@ -43,15 +43,15 @@ | ||
lazyComputed(Signature, 'S', function S() { | ||
cachedProperty(Signature, function S() { | ||
return this.eddsa.decodeInt(this.Sencoded()); | ||
}); | ||
lazyComputed(Signature, 'R', function S() { | ||
cachedProperty(Signature, function R() { | ||
return this.eddsa.decodePoint(this.Rencoded()); | ||
}); | ||
lazyComputed(Signature, 'Rencoded', function S() { | ||
cachedProperty(Signature, function Rencoded() { | ||
return this.eddsa.encodePoint(this.R()); | ||
}); | ||
lazyComputed(Signature, 'Sencoded', function S() { | ||
cachedProperty(Signature, function Sencoded() { | ||
return this.eddsa.encodeInt(this.S()); | ||
@@ -58,0 +58,0 @@ }); |
@@ -153,10 +153,11 @@ 'use strict'; | ||
function lazyComputed(obj, name, computer) { | ||
function cachedProperty(obj, computer) { | ||
var name = computer.name; | ||
var key = '_' + name; | ||
obj.prototype[name] = function lazyComputed() { | ||
obj.prototype[name] = function cachedProperty() { | ||
return this[key] !== undefined ? this[key] : | ||
this[key] = computer.apply(this, arguments); | ||
this[key] = computer.call(this); | ||
}; | ||
} | ||
utils.lazyComputed = lazyComputed; | ||
utils.cachedProperty = cachedProperty; | ||
@@ -163,0 +164,0 @@ function parseBytes(bytes) { |
{ | ||
"name": "elliptic", | ||
"version": "5.1.0", | ||
"version": "5.2.0", | ||
"description": "EC cryptography", | ||
"main": "lib/elliptic.js", | ||
"scripts": { | ||
"test": "make lint && mocha --reporter=spec test/*-test.js" | ||
"test": "make lint && istanbul test _mocha --reporter=spec test/*-test.js", | ||
"coveralls": "cat ./coverage/lcov.info | coveralls" | ||
}, | ||
@@ -27,2 +28,4 @@ "repository": { | ||
"browserify": "^3.44.2", | ||
"coveralls": "^2.11.3", | ||
"istanbul": "^0.3.17", | ||
"jscs": "^1.11.3", | ||
@@ -29,0 +32,0 @@ "jshint": "^2.6.0", |
@@ -1,2 +0,2 @@ | ||
# Elliptic [![Build Status](https://secure.travis-ci.org/indutny/elliptic.png)](http://travis-ci.org/indutny/elliptic) | ||
# Elliptic [![Build Status](https://secure.travis-ci.org/indutny/elliptic.png)](http://travis-ci.org/indutny/elliptic) [![Coverage Status](https://coveralls.io/repos/indutny/elliptic/badge.svg?branch=master&service=github)](https://coveralls.io/github/indutny/elliptic?branch=master) | ||
@@ -3,0 +3,0 @@ Fast elliptic-curve cryptography in a plain javascript implementation. |
@@ -199,2 +199,88 @@ var assert = require('assert'); | ||
}); | ||
test({ | ||
name: 'ECDSA, 384 Bits (Prime Field)', | ||
curve: elliptic.curves.p384, | ||
key: '6b9d3dad2e1b8c1c05b19875b6659f4de23c3b667bf297ba9aa4774078713' + | ||
'7d896d5724e4c70a825f872c9ea60d2edf5', | ||
pub: { | ||
x: 'ec3a4e415b4e19a4568618029f427fa5da9a8bc4ae92e02e06aae5286b30' + | ||
'0c64def8f0ea9055866064a254515480bc13', | ||
y: '8015d9b72d7d57244ea8ef9ac0c621896708a59367f9dfb9f54ca84b3f' + | ||
'1c9db1288b231c3ae0d4fe7344fd2533264720' | ||
}, | ||
cases: [ | ||
{ | ||
message: 'sample', | ||
hash: hash.sha224, | ||
r: '42356e76b55a6d9b4631c865445dbe54e056d3b3431766d05092447' + | ||
'93c3f9366450f76ee3de43f5a125333a6be060122', | ||
s: '9da0c81787064021e78df658f2fbb0b042bf304665db721f077a429' + | ||
'8b095e4834c082c03d83028efbf93a3c23940ca8d' | ||
}, | ||
{ | ||
message: 'sample', | ||
hash: hash.sha384, | ||
r: '94edbb92a5ecb8aad4736e56c691916b3f88140666ce9fa73d6' + | ||
'4c4ea95ad133c81a648152e44acf96e36dd1e80fabe46', | ||
s: '99ef4aeb15f178cea1fe40db2603138f130e740a19624526203b' + | ||
'6351d0a3a94fa329c145786e679e7b82c71a38628ac8' | ||
}, | ||
{ | ||
message: 'test', | ||
hash: hash.sha384, | ||
r: '8203b63d3c853e8d77227fb377bcf7b7b772e97892a80f36a' + | ||
'b775d509d7a5feb0542a7f0812998da8f1dd3ca3cf023db', | ||
s: 'ddd0760448d42d8a43af45af836fce4de8be06b485e9b61b827c2f13' + | ||
'173923e06a739f040649a667bf3b828246baa5a5' | ||
} | ||
], | ||
}); | ||
test({ | ||
name: 'ECDSA, 521 Bits (Prime Field)', | ||
curve: elliptic.curves.p521, | ||
key: '0fad06daa62ba3b25d2fb40133da757205de67f5bb0018fee8c86e1b68c7e75' + | ||
'caa896eb32f1f47c70855836a6d16fcc1466f6d8fbec67db89ec0c08b0e996b' + | ||
'83538', | ||
pub: { | ||
x: '1894550d0785932e00eaa23b694f213f8c3121f86dc97a04e5a7167db4e5bcd3' + | ||
'71123d46e45db6b5d5370a7f20fb633155d38ffa16d2bd761dcac474b9a2f502' + | ||
'3a4', | ||
y: '0493101c962cd4d2fddf782285e64584139c2f91b47f87ff82354d6630f746a2' + | ||
'8a0db25741b5b34a828008b22acc23f924faafbd4d33f81ea66956dfeaa2bfdfcf5' | ||
}, | ||
cases: [ | ||
{ | ||
message: 'sample', | ||
hash: hash.sha384, | ||
r: '1ea842a0e17d2de4f92c15315c63ddf72685c18195c2bb95e572b9c5136ca4' + | ||
'b4b576ad712a52be9730627d16054ba40cc0b8d3ff035b12ae75168397f5' + | ||
'd50c67451', | ||
s: '1f21a3cee066e1961025fb048bd5fe2b7924d0cd797babe0a83b66f1e35ee' + | ||
'af5fde143fa85dc394a7dee766523393784484bdf3e00114a1c857cde1aa2' + | ||
'03db65d61' | ||
}, | ||
{ | ||
message: 'sample', | ||
hash: hash.sha512, | ||
r: 'c328fafcbd79dd77850370c46325d987cb525569fb63c5d3bc53950e6d4c5f1' + | ||
'74e25a1ee9017b5d450606add152b534931d7d4e8455cc91f9b15bf05ec36e37' + | ||
'7fa', | ||
s: '617cce7cf5064806c467f678d3b4080d6f1cc50af26ca209417308281b68af2' + | ||
'82623eaa63e5b5c0723d8b8c37ff0777b1a20f8ccb1dccc43997f1ee0e44da4a' + | ||
'67a' | ||
}, | ||
{ | ||
message: 'test', | ||
hash: hash.sha512, | ||
r: '13e99020abf5cee7525d16b69b229652ab6bdf2affcaef38773b4b7d087' + | ||
'25f10cdb93482fdcc54edcee91eca4166b2a7c6265ef0ce2bd7051b7cef945' + | ||
'babd47ee6d', | ||
s: '1fbd0013c674aa79cb39849527916ce301c66ea7ce8b80682786ad60f98' + | ||
'f7e78a19ca69eff5c57400e3b3a0ad66ce0978214d13baf4e9ac60752f7b15' + | ||
'5e2de4dce3' | ||
} | ||
], | ||
}); | ||
}); | ||
@@ -201,0 +287,0 @@ |
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
2792832
8177
7