@xchainjs/xchain-radix 1.1.8 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/index.esm.js CHANGED
@@ -3558,7 +3558,7 @@ function requireBn () {
3558
3558
  var elliptic = {};
3559
3559
 
3560
3560
  var name = "elliptic";
3561
- var version = "6.5.4";
3561
+ var version = "6.5.7";
3562
3562
  var description = "EC cryptography";
3563
3563
  var main = "lib/elliptic.js";
3564
3564
  var files = [
@@ -3740,12 +3740,15 @@ function requireUtils$1 () {
3740
3740
  // Represent num in a w-NAF form
3741
3741
  function getNAF(num, w, bits) {
3742
3742
  var naf = new Array(Math.max(num.bitLength(), bits) + 1);
3743
- naf.fill(0);
3743
+ var i;
3744
+ for (i = 0; i < naf.length; i += 1) {
3745
+ naf[i] = 0;
3746
+ }
3744
3747
 
3745
3748
  var ws = 1 << (w + 1);
3746
3749
  var k = num.clone();
3747
3750
 
3748
- for (var i = 0; i < naf.length; i++) {
3751
+ for (i = 0; i < naf.length; i++) {
3749
3752
  var z;
3750
3753
  var mod = k.andln(ws - 1);
3751
3754
  if (k.isOdd()) {
@@ -8553,6 +8556,10 @@ function requireSignature$1 () {
8553
8556
  return false;
8554
8557
  }
8555
8558
 
8559
+ if(buf[p.place] === 0x00) {
8560
+ return false;
8561
+ }
8562
+
8556
8563
  var val = 0;
8557
8564
  for (var i = 0, off = p.place; i < octetLen; i++, off++) {
8558
8565
  val <<= 8;
@@ -8601,6 +8608,9 @@ function requireSignature$1 () {
8601
8608
  if (rlen === false) {
8602
8609
  return false;
8603
8610
  }
8611
+ if ((data[p.place] & 128) !== 0) {
8612
+ return false;
8613
+ }
8604
8614
  var r = data.slice(p.place, rlen + p.place);
8605
8615
  p.place += rlen;
8606
8616
  if (data[p.place++] !== 0x02) {
@@ -8613,6 +8623,9 @@ function requireSignature$1 () {
8613
8623
  if (data.length !== slen + p.place) {
8614
8624
  return false;
8615
8625
  }
8626
+ if ((data[p.place] & 128) !== 0) {
8627
+ return false;
8628
+ }
8616
8629
  var s = data.slice(p.place, slen + p.place);
8617
8630
  if (r[0] === 0) {
8618
8631
  if (r[1] & 0x80) {
@@ -9064,6 +9077,7 @@ function requireSignature () {
9064
9077
  sig = parseBytes(sig);
9065
9078
 
9066
9079
  if (Array.isArray(sig)) {
9080
+ assert(sig.length === eddsa.encodingLength * 2, 'Signature has invalid size');
9067
9081
  sig = {
9068
9082
  R: sig.slice(0, eddsa.encodingLength),
9069
9083
  S: sig.slice(eddsa.encodingLength),
@@ -9168,6 +9182,9 @@ function requireEddsa () {
9168
9182
  EDDSA.prototype.verify = function verify(message, sig, pub) {
9169
9183
  message = parseBytes(message);
9170
9184
  sig = this.makeSignature(sig);
9185
+ if (sig.S().gte(sig.eddsa.curve.n) || sig.S().isNeg()) {
9186
+ return false;
9187
+ }
9171
9188
  var key = this.keyFromPublic(pub);
9172
9189
  var h = this.hashInt(sig.Rencoded(), key.pubBytes(), message);
9173
9190
  var SG = this.g.mul(sig.S());
package/lib/index.js CHANGED
@@ -3568,7 +3568,7 @@ function requireBn () {
3568
3568
  var elliptic = {};
3569
3569
 
3570
3570
  var name = "elliptic";
3571
- var version = "6.5.4";
3571
+ var version = "6.5.7";
3572
3572
  var description = "EC cryptography";
3573
3573
  var main = "lib/elliptic.js";
3574
3574
  var files = [
@@ -3750,12 +3750,15 @@ function requireUtils$1 () {
3750
3750
  // Represent num in a w-NAF form
3751
3751
  function getNAF(num, w, bits) {
3752
3752
  var naf = new Array(Math.max(num.bitLength(), bits) + 1);
3753
- naf.fill(0);
3753
+ var i;
3754
+ for (i = 0; i < naf.length; i += 1) {
3755
+ naf[i] = 0;
3756
+ }
3754
3757
 
3755
3758
  var ws = 1 << (w + 1);
3756
3759
  var k = num.clone();
3757
3760
 
3758
- for (var i = 0; i < naf.length; i++) {
3761
+ for (i = 0; i < naf.length; i++) {
3759
3762
  var z;
3760
3763
  var mod = k.andln(ws - 1);
3761
3764
  if (k.isOdd()) {
@@ -8563,6 +8566,10 @@ function requireSignature$1 () {
8563
8566
  return false;
8564
8567
  }
8565
8568
 
8569
+ if(buf[p.place] === 0x00) {
8570
+ return false;
8571
+ }
8572
+
8566
8573
  var val = 0;
8567
8574
  for (var i = 0, off = p.place; i < octetLen; i++, off++) {
8568
8575
  val <<= 8;
@@ -8611,6 +8618,9 @@ function requireSignature$1 () {
8611
8618
  if (rlen === false) {
8612
8619
  return false;
8613
8620
  }
8621
+ if ((data[p.place] & 128) !== 0) {
8622
+ return false;
8623
+ }
8614
8624
  var r = data.slice(p.place, rlen + p.place);
8615
8625
  p.place += rlen;
8616
8626
  if (data[p.place++] !== 0x02) {
@@ -8623,6 +8633,9 @@ function requireSignature$1 () {
8623
8633
  if (data.length !== slen + p.place) {
8624
8634
  return false;
8625
8635
  }
8636
+ if ((data[p.place] & 128) !== 0) {
8637
+ return false;
8638
+ }
8626
8639
  var s = data.slice(p.place, slen + p.place);
8627
8640
  if (r[0] === 0) {
8628
8641
  if (r[1] & 0x80) {
@@ -9074,6 +9087,7 @@ function requireSignature () {
9074
9087
  sig = parseBytes(sig);
9075
9088
 
9076
9089
  if (Array.isArray(sig)) {
9090
+ assert(sig.length === eddsa.encodingLength * 2, 'Signature has invalid size');
9077
9091
  sig = {
9078
9092
  R: sig.slice(0, eddsa.encodingLength),
9079
9093
  S: sig.slice(eddsa.encodingLength),
@@ -9178,6 +9192,9 @@ function requireEddsa () {
9178
9192
  EDDSA.prototype.verify = function verify(message, sig, pub) {
9179
9193
  message = parseBytes(message);
9180
9194
  sig = this.makeSignature(sig);
9195
+ if (sig.S().gte(sig.eddsa.curve.n) || sig.S().isNeg()) {
9196
+ return false;
9197
+ }
9181
9198
  var key = this.keyFromPublic(pub);
9182
9199
  var h = this.hashInt(sig.Rencoded(), key.pubBytes(), message);
9183
9200
  var SG = this.g.mul(sig.S());
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xchainjs/xchain-radix",
3
- "version": "1.1.8",
3
+ "version": "2.0.1",
4
4
  "description": "Custom Radix client and utilities used by XChainJS clients",
5
5
  "keywords": [
6
6
  "XRD",
@@ -40,9 +40,9 @@
40
40
  "dependencies": {
41
41
  "@radixdlt/babylon-gateway-api-sdk": "^1.4.1",
42
42
  "@radixdlt/radix-engine-toolkit": "^1.0.3",
43
- "@xchainjs/xchain-client": "1.0.10",
44
- "@xchainjs/xchain-crypto": "0.3.7",
45
- "@xchainjs/xchain-util": "1.0.8",
43
+ "@xchainjs/xchain-client": "2.0.1",
44
+ "@xchainjs/xchain-crypto": "1.0.0",
45
+ "@xchainjs/xchain-util": "2.0.0",
46
46
  "bech32": "^2.0.0",
47
47
  "bip32": "^4.0.0",
48
48
  "bip39": "^3.1.0",