@airgap/coinlib-core 0.13.8-beta.8 → 0.13.8

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.
Files changed (150) hide show
  1. package/dependencies/src/@stablelib/binary-1.0.1/packages/binary/binary.d.ts +230 -0
  2. package/dependencies/src/@stablelib/binary-1.0.1/packages/binary/binary.js +471 -0
  3. package/dependencies/src/@stablelib/binary-1.0.1/packages/binary/binary.js.map +1 -0
  4. package/dependencies/src/@stablelib/blake2b-1.0.1/packages/blake2b/blake2b.d.ts +76 -0
  5. package/dependencies/src/@stablelib/blake2b-1.0.1/packages/blake2b/blake2b.js +455 -0
  6. package/dependencies/src/@stablelib/blake2b-1.0.1/packages/blake2b/blake2b.js.map +1 -0
  7. package/dependencies/src/@stablelib/ed25519-1.0.3/packages/ed25519/ed25519.d.ts +27 -0
  8. package/dependencies/src/@stablelib/ed25519-1.0.3/packages/ed25519/ed25519.js +848 -0
  9. package/dependencies/src/@stablelib/ed25519-1.0.3/packages/ed25519/ed25519.js.map +1 -0
  10. package/dependencies/src/@stablelib/hash-1.0.1/packages/hash/hash.d.ts +22 -0
  11. package/dependencies/src/@stablelib/hash-1.0.1/packages/hash/hash.js +14 -0
  12. package/dependencies/src/@stablelib/hash-1.0.1/packages/hash/hash.js.map +1 -0
  13. package/dependencies/src/@stablelib/int-1.0.1/packages/int/int.d.ts +29 -0
  14. package/dependencies/src/@stablelib/int-1.0.1/packages/int/int.js +63 -0
  15. package/dependencies/src/@stablelib/int-1.0.1/packages/int/int.js.map +1 -0
  16. package/dependencies/src/@stablelib/random-1.0.2/packages/random/random.d.ts +36 -0
  17. package/dependencies/src/@stablelib/random-1.0.2/packages/random/random.js +87 -0
  18. package/dependencies/src/@stablelib/random-1.0.2/packages/random/random.js.map +1 -0
  19. package/dependencies/src/@stablelib/random-1.0.2/packages/random/source/browser.d.ts +8 -0
  20. package/dependencies/src/@stablelib/random-1.0.2/packages/random/source/browser.js +33 -0
  21. package/dependencies/src/@stablelib/random-1.0.2/packages/random/source/browser.js.map +1 -0
  22. package/dependencies/src/@stablelib/random-1.0.2/packages/random/source/index.d.ts +11 -0
  23. package/dependencies/src/@stablelib/random-1.0.2/packages/random/source/index.js +5 -0
  24. package/dependencies/src/@stablelib/random-1.0.2/packages/random/source/index.js.map +1 -0
  25. package/dependencies/src/@stablelib/random-1.0.2/packages/random/source/node.d.ts +8 -0
  26. package/dependencies/src/@stablelib/random-1.0.2/packages/random/source/node.js +43 -0
  27. package/dependencies/src/@stablelib/random-1.0.2/packages/random/source/node.js.map +1 -0
  28. package/dependencies/src/@stablelib/random-1.0.2/packages/random/source/system.d.ts +8 -0
  29. package/dependencies/src/@stablelib/random-1.0.2/packages/random/source/system.js +37 -0
  30. package/dependencies/src/@stablelib/random-1.0.2/packages/random/source/system.js.map +1 -0
  31. package/dependencies/src/@stablelib/sha512/packages/sha512/sha512.d.ts +73 -0
  32. package/dependencies/src/@stablelib/sha512/packages/sha512/sha512.js +552 -0
  33. package/dependencies/src/@stablelib/sha512/packages/sha512/sha512.js.map +1 -0
  34. package/dependencies/src/@stablelib/sha512-1.0.1/packages/sha512/sha512.d.ts +73 -0
  35. package/dependencies/src/@stablelib/sha512-1.0.1/packages/sha512/sha512.js +552 -0
  36. package/dependencies/src/@stablelib/sha512-1.0.1/packages/sha512/sha512.js.map +1 -0
  37. package/dependencies/src/@stablelib/wipe-1.0.1/packages/wipe/wipe.d.ts +18 -0
  38. package/dependencies/src/@stablelib/wipe-1.0.1/packages/wipe/wipe.js +29 -0
  39. package/dependencies/src/@stablelib/wipe-1.0.1/packages/wipe/wipe.js.map +1 -0
  40. package/dependencies/src/@taquito/{local-forging-8.0.1-beta.1 → local-forging-15.0.1}/packages/taquito-local-forging/src/codec.d.ts +22 -4
  41. package/dependencies/src/@taquito/{local-forging-8.0.1-beta.1 → local-forging-15.0.1}/packages/taquito-local-forging/src/codec.js +104 -13
  42. package/dependencies/src/@taquito/local-forging-15.0.1/packages/taquito-local-forging/src/codec.js.map +1 -0
  43. package/dependencies/src/@taquito/{local-forging-8.0.1-beta.1 → local-forging-15.0.1}/packages/taquito-local-forging/src/constants.d.ts +17 -1
  44. package/dependencies/src/@taquito/{local-forging-8.0.1-beta.1 → local-forging-15.0.1}/packages/taquito-local-forging/src/constants.js +44 -6
  45. package/dependencies/src/@taquito/local-forging-15.0.1/packages/taquito-local-forging/src/constants.js.map +1 -0
  46. package/dependencies/src/@taquito/{local-forging-8.0.1-beta.1 → local-forging-15.0.1}/packages/taquito-local-forging/src/decoder.d.ts +1 -1
  47. package/dependencies/src/@taquito/{local-forging-8.0.1-beta.1 → local-forging-15.0.1}/packages/taquito-local-forging/src/decoder.js +30 -0
  48. package/dependencies/src/@taquito/local-forging-15.0.1/packages/taquito-local-forging/src/decoder.js.map +1 -0
  49. package/dependencies/src/@taquito/{local-forging-8.0.1-beta.1 → local-forging-15.0.1}/packages/taquito-local-forging/src/encoder.d.ts +0 -0
  50. package/dependencies/src/@taquito/{local-forging-8.0.1-beta.1 → local-forging-15.0.1}/packages/taquito-local-forging/src/encoder.js +28 -0
  51. package/dependencies/src/@taquito/local-forging-15.0.1/packages/taquito-local-forging/src/encoder.js.map +1 -0
  52. package/dependencies/src/@taquito/local-forging-15.0.1/packages/taquito-local-forging/src/error.d.ts +89 -0
  53. package/dependencies/src/@taquito/local-forging-15.0.1/packages/taquito-local-forging/src/error.js +169 -0
  54. package/dependencies/src/@taquito/local-forging-15.0.1/packages/taquito-local-forging/src/error.js.map +1 -0
  55. package/dependencies/src/@taquito/{local-forging-8.0.1-beta.1/packages/taquito/src/forger → local-forging-15.0.1/packages/taquito-local-forging/src}/interface.d.ts +1 -1
  56. package/dependencies/src/@taquito/{local-forging-8.0.1-beta.1/packages/taquito/src/forger → local-forging-15.0.1/packages/taquito-local-forging/src}/interface.js +0 -0
  57. package/dependencies/src/@taquito/local-forging-15.0.1/packages/taquito-local-forging/src/interface.js.map +1 -0
  58. package/dependencies/src/@taquito/{local-forging-8.0.1-beta.1 → local-forging-15.0.1}/packages/taquito-local-forging/src/michelson/codec.d.ts +6 -5
  59. package/dependencies/src/@taquito/{local-forging-8.0.1-beta.1 → local-forging-15.0.1}/packages/taquito-local-forging/src/michelson/codec.js +62 -19
  60. package/dependencies/src/@taquito/local-forging-15.0.1/packages/taquito-local-forging/src/michelson/codec.js.map +1 -0
  61. package/dependencies/src/@taquito/local-forging-15.0.1/packages/taquito-local-forging/src/proto14-kathmandu/codec-proto14.d.ts +15 -0
  62. package/dependencies/src/@taquito/local-forging-15.0.1/packages/taquito-local-forging/src/proto14-kathmandu/codec-proto14.js +80 -0
  63. package/dependencies/src/@taquito/local-forging-15.0.1/packages/taquito-local-forging/src/proto14-kathmandu/codec-proto14.js.map +1 -0
  64. package/dependencies/src/@taquito/local-forging-15.0.1/packages/taquito-local-forging/src/proto14-kathmandu/constants-proto14.d.ts +12 -0
  65. package/dependencies/src/@taquito/local-forging-15.0.1/packages/taquito-local-forging/src/proto14-kathmandu/constants-proto14.js +184 -0
  66. package/dependencies/src/@taquito/local-forging-15.0.1/packages/taquito-local-forging/src/proto14-kathmandu/constants-proto14.js.map +1 -0
  67. package/dependencies/src/@taquito/local-forging-15.0.1/packages/taquito-local-forging/src/proto14-kathmandu/decoder-proto14.d.ts +5 -0
  68. package/dependencies/src/@taquito/local-forging-15.0.1/packages/taquito-local-forging/src/proto14-kathmandu/decoder-proto14.js +81 -0
  69. package/dependencies/src/@taquito/local-forging-15.0.1/packages/taquito-local-forging/src/proto14-kathmandu/decoder-proto14.js.map +1 -0
  70. package/dependencies/src/@taquito/local-forging-15.0.1/packages/taquito-local-forging/src/proto14-kathmandu/encoder-proto14.d.ts +4 -0
  71. package/dependencies/src/@taquito/local-forging-15.0.1/packages/taquito-local-forging/src/proto14-kathmandu/encoder-proto14.js +76 -0
  72. package/dependencies/src/@taquito/local-forging-15.0.1/packages/taquito-local-forging/src/proto14-kathmandu/encoder-proto14.js.map +1 -0
  73. package/dependencies/src/@taquito/local-forging-15.0.1/packages/taquito-local-forging/src/proto14-kathmandu/michelson/codec-proto14.d.ts +14 -0
  74. package/dependencies/src/@taquito/local-forging-15.0.1/packages/taquito-local-forging/src/proto14-kathmandu/michelson/codec-proto14.js +150 -0
  75. package/dependencies/src/@taquito/local-forging-15.0.1/packages/taquito-local-forging/src/proto14-kathmandu/michelson/codec-proto14.js.map +1 -0
  76. package/dependencies/src/@taquito/local-forging-15.0.1/packages/taquito-local-forging/src/protocols.d.ts +17 -0
  77. package/dependencies/src/@taquito/local-forging-15.0.1/packages/taquito-local-forging/src/protocols.js +41 -0
  78. package/dependencies/src/@taquito/local-forging-15.0.1/packages/taquito-local-forging/src/protocols.js.map +1 -0
  79. package/dependencies/src/@taquito/local-forging-15.0.1/packages/taquito-local-forging/src/schema/operation.d.ts +150 -0
  80. package/dependencies/src/@taquito/local-forging-15.0.1/packages/taquito-local-forging/src/schema/operation.js +217 -0
  81. package/dependencies/src/@taquito/local-forging-15.0.1/packages/taquito-local-forging/src/schema/operation.js.map +1 -0
  82. package/dependencies/src/@taquito/local-forging-15.0.1/packages/taquito-local-forging/src/taquito-local-forging.d.ts +26 -0
  83. package/dependencies/src/@taquito/local-forging-15.0.1/packages/taquito-local-forging/src/taquito-local-forging.js +115 -0
  84. package/dependencies/src/@taquito/local-forging-15.0.1/packages/taquito-local-forging/src/taquito-local-forging.js.map +1 -0
  85. package/dependencies/src/@taquito/{local-forging-8.0.1-beta.1 → local-forging-15.0.1}/packages/taquito-local-forging/src/uint8array-consumer.d.ts +0 -0
  86. package/dependencies/src/@taquito/{local-forging-8.0.1-beta.1 → local-forging-15.0.1}/packages/taquito-local-forging/src/uint8array-consumer.js +2 -1
  87. package/dependencies/src/@taquito/local-forging-15.0.1/packages/taquito-local-forging/src/uint8array-consumer.js.map +1 -0
  88. package/dependencies/src/@taquito/{local-forging-8.0.1-beta.1 → local-forging-15.0.1}/packages/taquito-local-forging/src/utils.d.ts +0 -0
  89. package/dependencies/src/@taquito/{local-forging-8.0.1-beta.1 → local-forging-15.0.1}/packages/taquito-local-forging/src/utils.js +0 -0
  90. package/dependencies/src/@taquito/local-forging-15.0.1/packages/taquito-local-forging/src/utils.js.map +1 -0
  91. package/dependencies/src/@taquito/local-forging-15.0.1/packages/taquito-local-forging/src/validator.d.ts +13 -0
  92. package/dependencies/src/@taquito/local-forging-15.0.1/packages/taquito-local-forging/src/validator.js +52 -0
  93. package/dependencies/src/@taquito/local-forging-15.0.1/packages/taquito-local-forging/src/validator.js.map +1 -0
  94. package/dependencies/src/@taquito/local-forging-15.0.1/packages/taquito-local-forging/src/version.d.ts +4 -0
  95. package/dependencies/src/@taquito/local-forging-15.0.1/packages/taquito-local-forging/src/version.js +9 -0
  96. package/dependencies/src/@taquito/local-forging-15.0.1/packages/taquito-local-forging/src/version.js.map +1 -0
  97. package/dependencies/src/@taquito/local-forging-15.0.1/packages/taquito-rpc/src/opkind.d.ts +34 -0
  98. package/dependencies/src/@taquito/local-forging-15.0.1/packages/taquito-rpc/src/opkind.js +39 -0
  99. package/dependencies/src/@taquito/local-forging-15.0.1/packages/taquito-rpc/src/opkind.js.map +1 -0
  100. package/dependencies/src/@taquito/local-forging-15.0.1/packages/taquito-rpc/src/types.d.ts +1590 -0
  101. package/dependencies/src/@taquito/local-forging-15.0.1/packages/taquito-rpc/src/types.js +35 -0
  102. package/dependencies/src/@taquito/local-forging-15.0.1/packages/taquito-rpc/src/types.js.map +1 -0
  103. package/dependencies/src/@taquito/{utils-8.0.1-beta.1 → utils-15.0.1}/packages/taquito-utils/src/constants.d.ts +27 -3
  104. package/dependencies/src/@taquito/{utils-8.0.1-beta.1 → utils-15.0.1}/packages/taquito-utils/src/constants.js +40 -1
  105. package/dependencies/src/@taquito/utils-15.0.1/packages/taquito-utils/src/constants.js.map +1 -0
  106. package/dependencies/src/@taquito/utils-15.0.1/packages/taquito-utils/src/errors.d.ts +145 -0
  107. package/dependencies/src/@taquito/utils-15.0.1/packages/taquito-utils/src/errors.js +270 -0
  108. package/dependencies/src/@taquito/utils-15.0.1/packages/taquito-utils/src/errors.js.map +1 -0
  109. package/dependencies/src/@taquito/utils-15.0.1/packages/taquito-utils/src/format.d.ts +4 -0
  110. package/dependencies/src/@taquito/utils-15.0.1/packages/taquito-utils/src/format.js +33 -0
  111. package/dependencies/src/@taquito/utils-15.0.1/packages/taquito-utils/src/format.js.map +1 -0
  112. package/dependencies/src/@taquito/utils-15.0.1/packages/taquito-utils/src/taquito-utils.d.ts +163 -0
  113. package/dependencies/src/@taquito/utils-15.0.1/packages/taquito-utils/src/taquito-utils.js +438 -0
  114. package/dependencies/src/@taquito/utils-15.0.1/packages/taquito-utils/src/taquito-utils.js.map +1 -0
  115. package/dependencies/src/@taquito/{utils-8.0.1-beta.1 → utils-15.0.1}/packages/taquito-utils/src/validators.d.ts +63 -9
  116. package/dependencies/src/@taquito/{utils-8.0.1-beta.1 → utils-15.0.1}/packages/taquito-utils/src/validators.js +85 -8
  117. package/dependencies/src/@taquito/utils-15.0.1/packages/taquito-utils/src/validators.js.map +1 -0
  118. package/dependencies/src/@taquito/utils-15.0.1/packages/taquito-utils/src/verify-signature.d.ts +24 -0
  119. package/dependencies/src/@taquito/utils-15.0.1/packages/taquito-utils/src/verify-signature.js +126 -0
  120. package/dependencies/src/@taquito/utils-15.0.1/packages/taquito-utils/src/verify-signature.js.map +1 -0
  121. package/dependencies/src/@taquito/utils-15.0.1/packages/taquito-utils/src/version.d.ts +4 -0
  122. package/dependencies/src/@taquito/utils-15.0.1/packages/taquito-utils/src/version.js +9 -0
  123. package/dependencies/src/@taquito/utils-15.0.1/packages/taquito-utils/src/version.js.map +1 -0
  124. package/dependencies/src/typedarray-to-buffer-4.0.0/index.js +17 -0
  125. package/package.json +2 -1
  126. package/dependencies/src/@taquito/local-forging-8.0.1-beta.1/packages/taquito/src/forger/interface.js.map +0 -1
  127. package/dependencies/src/@taquito/local-forging-8.0.1-beta.1/packages/taquito-local-forging/src/codec.js.map +0 -1
  128. package/dependencies/src/@taquito/local-forging-8.0.1-beta.1/packages/taquito-local-forging/src/constants.js.map +0 -1
  129. package/dependencies/src/@taquito/local-forging-8.0.1-beta.1/packages/taquito-local-forging/src/decoder.js.map +0 -1
  130. package/dependencies/src/@taquito/local-forging-8.0.1-beta.1/packages/taquito-local-forging/src/encoder.js.map +0 -1
  131. package/dependencies/src/@taquito/local-forging-8.0.1-beta.1/packages/taquito-local-forging/src/michelson/codec.js.map +0 -1
  132. package/dependencies/src/@taquito/local-forging-8.0.1-beta.1/packages/taquito-local-forging/src/schema/operation.d.ts +0 -86
  133. package/dependencies/src/@taquito/local-forging-8.0.1-beta.1/packages/taquito-local-forging/src/schema/operation.js +0 -149
  134. package/dependencies/src/@taquito/local-forging-8.0.1-beta.1/packages/taquito-local-forging/src/schema/operation.js.map +0 -1
  135. package/dependencies/src/@taquito/local-forging-8.0.1-beta.1/packages/taquito-local-forging/src/taquito-local-forging.d.ts +0 -16
  136. package/dependencies/src/@taquito/local-forging-8.0.1-beta.1/packages/taquito-local-forging/src/taquito-local-forging.js +0 -51
  137. package/dependencies/src/@taquito/local-forging-8.0.1-beta.1/packages/taquito-local-forging/src/taquito-local-forging.js.map +0 -1
  138. package/dependencies/src/@taquito/local-forging-8.0.1-beta.1/packages/taquito-local-forging/src/uint8array-consumer.js.map +0 -1
  139. package/dependencies/src/@taquito/local-forging-8.0.1-beta.1/packages/taquito-local-forging/src/utils.js.map +0 -1
  140. package/dependencies/src/@taquito/local-forging-8.0.1-beta.1/packages/taquito-rpc/src/opkind.d.ts +0 -13
  141. package/dependencies/src/@taquito/local-forging-8.0.1-beta.1/packages/taquito-rpc/src/opkind.js +0 -18
  142. package/dependencies/src/@taquito/local-forging-8.0.1-beta.1/packages/taquito-rpc/src/opkind.js.map +0 -1
  143. package/dependencies/src/@taquito/local-forging-8.0.1-beta.1/packages/taquito-rpc/src/types.d.ts +0 -598
  144. package/dependencies/src/@taquito/local-forging-8.0.1-beta.1/packages/taquito-rpc/src/types.js +0 -3
  145. package/dependencies/src/@taquito/local-forging-8.0.1-beta.1/packages/taquito-rpc/src/types.js.map +0 -1
  146. package/dependencies/src/@taquito/utils-8.0.1-beta.1/packages/taquito-utils/src/constants.js.map +0 -1
  147. package/dependencies/src/@taquito/utils-8.0.1-beta.1/packages/taquito-utils/src/taquito-utils.d.ts +0 -83
  148. package/dependencies/src/@taquito/utils-8.0.1-beta.1/packages/taquito-utils/src/taquito-utils.js +0 -245
  149. package/dependencies/src/@taquito/utils-8.0.1-beta.1/packages/taquito-utils/src/taquito-utils.js.map +0 -1
  150. package/dependencies/src/@taquito/utils-8.0.1-beta.1/packages/taquito-utils/src/validators.js.map +0 -1
@@ -0,0 +1,848 @@
1
+ "use strict";
2
+ // Copyright (C) 2016 Dmitry Chestnykh
3
+ // MIT License. See LICENSE file for details.
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.convertSecretKeyToX25519 = exports.convertPublicKeyToX25519 = exports.verify = exports.sign = exports.extractPublicKeyFromSecretKey = exports.generateKeyPair = exports.generateKeyPairFromSeed = exports.SEED_LENGTH = exports.SECRET_KEY_LENGTH = exports.PUBLIC_KEY_LENGTH = exports.SIGNATURE_LENGTH = void 0;
6
+ /**
7
+ * Package ed25519 implements Ed25519 public-key signature algorithm.
8
+ */
9
+ var random_1 = require("../../../../@stablelib/random-1.0.2/packages/random/random");
10
+ var sha512_1 = require("../../../../@stablelib/sha512-1.0.1/packages/sha512/sha512");
11
+ var wipe_1 = require("../../../../@stablelib/wipe-1.0.1/packages/wipe/wipe");
12
+ exports.SIGNATURE_LENGTH = 64;
13
+ exports.PUBLIC_KEY_LENGTH = 32;
14
+ exports.SECRET_KEY_LENGTH = 64;
15
+ exports.SEED_LENGTH = 32;
16
+ // Returns new zero-filled 16-element GF (Float64Array).
17
+ // If passed an array of numbers, prefills the returned
18
+ // array with them.
19
+ //
20
+ // We use Float64Array, because we need 48-bit numbers
21
+ // for this implementation.
22
+ function gf(init) {
23
+ var r = new Float64Array(16);
24
+ if (init) {
25
+ for (var i = 0; i < init.length; i++) {
26
+ r[i] = init[i];
27
+ }
28
+ }
29
+ return r;
30
+ }
31
+ // Base point.
32
+ var _9 = new Uint8Array(32);
33
+ _9[0] = 9;
34
+ var gf0 = gf();
35
+ var gf1 = gf([1]);
36
+ var D = gf([
37
+ 0x78a3, 0x1359, 0x4dca, 0x75eb, 0xd8ab, 0x4141, 0x0a4d, 0x0070,
38
+ 0xe898, 0x7779, 0x4079, 0x8cc7, 0xfe73, 0x2b6f, 0x6cee, 0x5203
39
+ ]);
40
+ var D2 = gf([
41
+ 0xf159, 0x26b2, 0x9b94, 0xebd6, 0xb156, 0x8283, 0x149a, 0x00e0,
42
+ 0xd130, 0xeef3, 0x80f2, 0x198e, 0xfce7, 0x56df, 0xd9dc, 0x2406
43
+ ]);
44
+ var X = gf([
45
+ 0xd51a, 0x8f25, 0x2d60, 0xc956, 0xa7b2, 0x9525, 0xc760, 0x692c,
46
+ 0xdc5c, 0xfdd6, 0xe231, 0xc0a4, 0x53fe, 0xcd6e, 0x36d3, 0x2169
47
+ ]);
48
+ var Y = gf([
49
+ 0x6658, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666,
50
+ 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666
51
+ ]);
52
+ var I = gf([
53
+ 0xa0b0, 0x4a0e, 0x1b27, 0xc4ee, 0xe478, 0xad2f, 0x1806, 0x2f43,
54
+ 0xd7a7, 0x3dfb, 0x0099, 0x2b4d, 0xdf0b, 0x4fc1, 0x2480, 0x2b83
55
+ ]);
56
+ function set25519(r, a) {
57
+ for (var i = 0; i < 16; i++) {
58
+ r[i] = a[i] | 0;
59
+ }
60
+ }
61
+ function car25519(o) {
62
+ var c = 1;
63
+ for (var i = 0; i < 16; i++) {
64
+ var v = o[i] + c + 65535;
65
+ c = Math.floor(v / 65536);
66
+ o[i] = v - c * 65536;
67
+ }
68
+ o[0] += c - 1 + 37 * (c - 1);
69
+ }
70
+ function sel25519(p, q, b) {
71
+ var c = ~(b - 1);
72
+ for (var i = 0; i < 16; i++) {
73
+ var t = c & (p[i] ^ q[i]);
74
+ p[i] ^= t;
75
+ q[i] ^= t;
76
+ }
77
+ }
78
+ function pack25519(o, n) {
79
+ var m = gf();
80
+ var t = gf();
81
+ for (var i = 0; i < 16; i++) {
82
+ t[i] = n[i];
83
+ }
84
+ car25519(t);
85
+ car25519(t);
86
+ car25519(t);
87
+ for (var j = 0; j < 2; j++) {
88
+ m[0] = t[0] - 0xffed;
89
+ for (var i = 1; i < 15; i++) {
90
+ m[i] = t[i] - 0xffff - ((m[i - 1] >> 16) & 1);
91
+ m[i - 1] &= 0xffff;
92
+ }
93
+ m[15] = t[15] - 0x7fff - ((m[14] >> 16) & 1);
94
+ var b = (m[15] >> 16) & 1;
95
+ m[14] &= 0xffff;
96
+ sel25519(t, m, 1 - b);
97
+ }
98
+ for (var i = 0; i < 16; i++) {
99
+ o[2 * i] = t[i] & 0xff;
100
+ o[2 * i + 1] = t[i] >> 8;
101
+ }
102
+ }
103
+ function verify32(x, y) {
104
+ var d = 0;
105
+ for (var i = 0; i < 32; i++) {
106
+ d |= x[i] ^ y[i];
107
+ }
108
+ return (1 & ((d - 1) >>> 8)) - 1;
109
+ }
110
+ function neq25519(a, b) {
111
+ var c = new Uint8Array(32);
112
+ var d = new Uint8Array(32);
113
+ pack25519(c, a);
114
+ pack25519(d, b);
115
+ return verify32(c, d);
116
+ }
117
+ function par25519(a) {
118
+ var d = new Uint8Array(32);
119
+ pack25519(d, a);
120
+ return d[0] & 1;
121
+ }
122
+ function unpack25519(o, n) {
123
+ for (var i = 0; i < 16; i++) {
124
+ o[i] = n[2 * i] + (n[2 * i + 1] << 8);
125
+ }
126
+ o[15] &= 0x7fff;
127
+ }
128
+ function add(o, a, b) {
129
+ for (var i = 0; i < 16; i++) {
130
+ o[i] = a[i] + b[i];
131
+ }
132
+ }
133
+ function sub(o, a, b) {
134
+ for (var i = 0; i < 16; i++) {
135
+ o[i] = a[i] - b[i];
136
+ }
137
+ }
138
+ function mul(o, a, b) {
139
+ var v, c, t0 = 0, t1 = 0, t2 = 0, t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0, t8 = 0, t9 = 0, t10 = 0, t11 = 0, t12 = 0, t13 = 0, t14 = 0, t15 = 0, t16 = 0, t17 = 0, t18 = 0, t19 = 0, t20 = 0, t21 = 0, t22 = 0, t23 = 0, t24 = 0, t25 = 0, t26 = 0, t27 = 0, t28 = 0, t29 = 0, t30 = 0, b0 = b[0], b1 = b[1], b2 = b[2], b3 = b[3], b4 = b[4], b5 = b[5], b6 = b[6], b7 = b[7], b8 = b[8], b9 = b[9], b10 = b[10], b11 = b[11], b12 = b[12], b13 = b[13], b14 = b[14], b15 = b[15];
140
+ v = a[0];
141
+ t0 += v * b0;
142
+ t1 += v * b1;
143
+ t2 += v * b2;
144
+ t3 += v * b3;
145
+ t4 += v * b4;
146
+ t5 += v * b5;
147
+ t6 += v * b6;
148
+ t7 += v * b7;
149
+ t8 += v * b8;
150
+ t9 += v * b9;
151
+ t10 += v * b10;
152
+ t11 += v * b11;
153
+ t12 += v * b12;
154
+ t13 += v * b13;
155
+ t14 += v * b14;
156
+ t15 += v * b15;
157
+ v = a[1];
158
+ t1 += v * b0;
159
+ t2 += v * b1;
160
+ t3 += v * b2;
161
+ t4 += v * b3;
162
+ t5 += v * b4;
163
+ t6 += v * b5;
164
+ t7 += v * b6;
165
+ t8 += v * b7;
166
+ t9 += v * b8;
167
+ t10 += v * b9;
168
+ t11 += v * b10;
169
+ t12 += v * b11;
170
+ t13 += v * b12;
171
+ t14 += v * b13;
172
+ t15 += v * b14;
173
+ t16 += v * b15;
174
+ v = a[2];
175
+ t2 += v * b0;
176
+ t3 += v * b1;
177
+ t4 += v * b2;
178
+ t5 += v * b3;
179
+ t6 += v * b4;
180
+ t7 += v * b5;
181
+ t8 += v * b6;
182
+ t9 += v * b7;
183
+ t10 += v * b8;
184
+ t11 += v * b9;
185
+ t12 += v * b10;
186
+ t13 += v * b11;
187
+ t14 += v * b12;
188
+ t15 += v * b13;
189
+ t16 += v * b14;
190
+ t17 += v * b15;
191
+ v = a[3];
192
+ t3 += v * b0;
193
+ t4 += v * b1;
194
+ t5 += v * b2;
195
+ t6 += v * b3;
196
+ t7 += v * b4;
197
+ t8 += v * b5;
198
+ t9 += v * b6;
199
+ t10 += v * b7;
200
+ t11 += v * b8;
201
+ t12 += v * b9;
202
+ t13 += v * b10;
203
+ t14 += v * b11;
204
+ t15 += v * b12;
205
+ t16 += v * b13;
206
+ t17 += v * b14;
207
+ t18 += v * b15;
208
+ v = a[4];
209
+ t4 += v * b0;
210
+ t5 += v * b1;
211
+ t6 += v * b2;
212
+ t7 += v * b3;
213
+ t8 += v * b4;
214
+ t9 += v * b5;
215
+ t10 += v * b6;
216
+ t11 += v * b7;
217
+ t12 += v * b8;
218
+ t13 += v * b9;
219
+ t14 += v * b10;
220
+ t15 += v * b11;
221
+ t16 += v * b12;
222
+ t17 += v * b13;
223
+ t18 += v * b14;
224
+ t19 += v * b15;
225
+ v = a[5];
226
+ t5 += v * b0;
227
+ t6 += v * b1;
228
+ t7 += v * b2;
229
+ t8 += v * b3;
230
+ t9 += v * b4;
231
+ t10 += v * b5;
232
+ t11 += v * b6;
233
+ t12 += v * b7;
234
+ t13 += v * b8;
235
+ t14 += v * b9;
236
+ t15 += v * b10;
237
+ t16 += v * b11;
238
+ t17 += v * b12;
239
+ t18 += v * b13;
240
+ t19 += v * b14;
241
+ t20 += v * b15;
242
+ v = a[6];
243
+ t6 += v * b0;
244
+ t7 += v * b1;
245
+ t8 += v * b2;
246
+ t9 += v * b3;
247
+ t10 += v * b4;
248
+ t11 += v * b5;
249
+ t12 += v * b6;
250
+ t13 += v * b7;
251
+ t14 += v * b8;
252
+ t15 += v * b9;
253
+ t16 += v * b10;
254
+ t17 += v * b11;
255
+ t18 += v * b12;
256
+ t19 += v * b13;
257
+ t20 += v * b14;
258
+ t21 += v * b15;
259
+ v = a[7];
260
+ t7 += v * b0;
261
+ t8 += v * b1;
262
+ t9 += v * b2;
263
+ t10 += v * b3;
264
+ t11 += v * b4;
265
+ t12 += v * b5;
266
+ t13 += v * b6;
267
+ t14 += v * b7;
268
+ t15 += v * b8;
269
+ t16 += v * b9;
270
+ t17 += v * b10;
271
+ t18 += v * b11;
272
+ t19 += v * b12;
273
+ t20 += v * b13;
274
+ t21 += v * b14;
275
+ t22 += v * b15;
276
+ v = a[8];
277
+ t8 += v * b0;
278
+ t9 += v * b1;
279
+ t10 += v * b2;
280
+ t11 += v * b3;
281
+ t12 += v * b4;
282
+ t13 += v * b5;
283
+ t14 += v * b6;
284
+ t15 += v * b7;
285
+ t16 += v * b8;
286
+ t17 += v * b9;
287
+ t18 += v * b10;
288
+ t19 += v * b11;
289
+ t20 += v * b12;
290
+ t21 += v * b13;
291
+ t22 += v * b14;
292
+ t23 += v * b15;
293
+ v = a[9];
294
+ t9 += v * b0;
295
+ t10 += v * b1;
296
+ t11 += v * b2;
297
+ t12 += v * b3;
298
+ t13 += v * b4;
299
+ t14 += v * b5;
300
+ t15 += v * b6;
301
+ t16 += v * b7;
302
+ t17 += v * b8;
303
+ t18 += v * b9;
304
+ t19 += v * b10;
305
+ t20 += v * b11;
306
+ t21 += v * b12;
307
+ t22 += v * b13;
308
+ t23 += v * b14;
309
+ t24 += v * b15;
310
+ v = a[10];
311
+ t10 += v * b0;
312
+ t11 += v * b1;
313
+ t12 += v * b2;
314
+ t13 += v * b3;
315
+ t14 += v * b4;
316
+ t15 += v * b5;
317
+ t16 += v * b6;
318
+ t17 += v * b7;
319
+ t18 += v * b8;
320
+ t19 += v * b9;
321
+ t20 += v * b10;
322
+ t21 += v * b11;
323
+ t22 += v * b12;
324
+ t23 += v * b13;
325
+ t24 += v * b14;
326
+ t25 += v * b15;
327
+ v = a[11];
328
+ t11 += v * b0;
329
+ t12 += v * b1;
330
+ t13 += v * b2;
331
+ t14 += v * b3;
332
+ t15 += v * b4;
333
+ t16 += v * b5;
334
+ t17 += v * b6;
335
+ t18 += v * b7;
336
+ t19 += v * b8;
337
+ t20 += v * b9;
338
+ t21 += v * b10;
339
+ t22 += v * b11;
340
+ t23 += v * b12;
341
+ t24 += v * b13;
342
+ t25 += v * b14;
343
+ t26 += v * b15;
344
+ v = a[12];
345
+ t12 += v * b0;
346
+ t13 += v * b1;
347
+ t14 += v * b2;
348
+ t15 += v * b3;
349
+ t16 += v * b4;
350
+ t17 += v * b5;
351
+ t18 += v * b6;
352
+ t19 += v * b7;
353
+ t20 += v * b8;
354
+ t21 += v * b9;
355
+ t22 += v * b10;
356
+ t23 += v * b11;
357
+ t24 += v * b12;
358
+ t25 += v * b13;
359
+ t26 += v * b14;
360
+ t27 += v * b15;
361
+ v = a[13];
362
+ t13 += v * b0;
363
+ t14 += v * b1;
364
+ t15 += v * b2;
365
+ t16 += v * b3;
366
+ t17 += v * b4;
367
+ t18 += v * b5;
368
+ t19 += v * b6;
369
+ t20 += v * b7;
370
+ t21 += v * b8;
371
+ t22 += v * b9;
372
+ t23 += v * b10;
373
+ t24 += v * b11;
374
+ t25 += v * b12;
375
+ t26 += v * b13;
376
+ t27 += v * b14;
377
+ t28 += v * b15;
378
+ v = a[14];
379
+ t14 += v * b0;
380
+ t15 += v * b1;
381
+ t16 += v * b2;
382
+ t17 += v * b3;
383
+ t18 += v * b4;
384
+ t19 += v * b5;
385
+ t20 += v * b6;
386
+ t21 += v * b7;
387
+ t22 += v * b8;
388
+ t23 += v * b9;
389
+ t24 += v * b10;
390
+ t25 += v * b11;
391
+ t26 += v * b12;
392
+ t27 += v * b13;
393
+ t28 += v * b14;
394
+ t29 += v * b15;
395
+ v = a[15];
396
+ t15 += v * b0;
397
+ t16 += v * b1;
398
+ t17 += v * b2;
399
+ t18 += v * b3;
400
+ t19 += v * b4;
401
+ t20 += v * b5;
402
+ t21 += v * b6;
403
+ t22 += v * b7;
404
+ t23 += v * b8;
405
+ t24 += v * b9;
406
+ t25 += v * b10;
407
+ t26 += v * b11;
408
+ t27 += v * b12;
409
+ t28 += v * b13;
410
+ t29 += v * b14;
411
+ t30 += v * b15;
412
+ t0 += 38 * t16;
413
+ t1 += 38 * t17;
414
+ t2 += 38 * t18;
415
+ t3 += 38 * t19;
416
+ t4 += 38 * t20;
417
+ t5 += 38 * t21;
418
+ t6 += 38 * t22;
419
+ t7 += 38 * t23;
420
+ t8 += 38 * t24;
421
+ t9 += 38 * t25;
422
+ t10 += 38 * t26;
423
+ t11 += 38 * t27;
424
+ t12 += 38 * t28;
425
+ t13 += 38 * t29;
426
+ t14 += 38 * t30;
427
+ // t15 left as is
428
+ // first car
429
+ c = 1;
430
+ v = t0 + c + 65535;
431
+ c = Math.floor(v / 65536);
432
+ t0 = v - c * 65536;
433
+ v = t1 + c + 65535;
434
+ c = Math.floor(v / 65536);
435
+ t1 = v - c * 65536;
436
+ v = t2 + c + 65535;
437
+ c = Math.floor(v / 65536);
438
+ t2 = v - c * 65536;
439
+ v = t3 + c + 65535;
440
+ c = Math.floor(v / 65536);
441
+ t3 = v - c * 65536;
442
+ v = t4 + c + 65535;
443
+ c = Math.floor(v / 65536);
444
+ t4 = v - c * 65536;
445
+ v = t5 + c + 65535;
446
+ c = Math.floor(v / 65536);
447
+ t5 = v - c * 65536;
448
+ v = t6 + c + 65535;
449
+ c = Math.floor(v / 65536);
450
+ t6 = v - c * 65536;
451
+ v = t7 + c + 65535;
452
+ c = Math.floor(v / 65536);
453
+ t7 = v - c * 65536;
454
+ v = t8 + c + 65535;
455
+ c = Math.floor(v / 65536);
456
+ t8 = v - c * 65536;
457
+ v = t9 + c + 65535;
458
+ c = Math.floor(v / 65536);
459
+ t9 = v - c * 65536;
460
+ v = t10 + c + 65535;
461
+ c = Math.floor(v / 65536);
462
+ t10 = v - c * 65536;
463
+ v = t11 + c + 65535;
464
+ c = Math.floor(v / 65536);
465
+ t11 = v - c * 65536;
466
+ v = t12 + c + 65535;
467
+ c = Math.floor(v / 65536);
468
+ t12 = v - c * 65536;
469
+ v = t13 + c + 65535;
470
+ c = Math.floor(v / 65536);
471
+ t13 = v - c * 65536;
472
+ v = t14 + c + 65535;
473
+ c = Math.floor(v / 65536);
474
+ t14 = v - c * 65536;
475
+ v = t15 + c + 65535;
476
+ c = Math.floor(v / 65536);
477
+ t15 = v - c * 65536;
478
+ t0 += c - 1 + 37 * (c - 1);
479
+ // second car
480
+ c = 1;
481
+ v = t0 + c + 65535;
482
+ c = Math.floor(v / 65536);
483
+ t0 = v - c * 65536;
484
+ v = t1 + c + 65535;
485
+ c = Math.floor(v / 65536);
486
+ t1 = v - c * 65536;
487
+ v = t2 + c + 65535;
488
+ c = Math.floor(v / 65536);
489
+ t2 = v - c * 65536;
490
+ v = t3 + c + 65535;
491
+ c = Math.floor(v / 65536);
492
+ t3 = v - c * 65536;
493
+ v = t4 + c + 65535;
494
+ c = Math.floor(v / 65536);
495
+ t4 = v - c * 65536;
496
+ v = t5 + c + 65535;
497
+ c = Math.floor(v / 65536);
498
+ t5 = v - c * 65536;
499
+ v = t6 + c + 65535;
500
+ c = Math.floor(v / 65536);
501
+ t6 = v - c * 65536;
502
+ v = t7 + c + 65535;
503
+ c = Math.floor(v / 65536);
504
+ t7 = v - c * 65536;
505
+ v = t8 + c + 65535;
506
+ c = Math.floor(v / 65536);
507
+ t8 = v - c * 65536;
508
+ v = t9 + c + 65535;
509
+ c = Math.floor(v / 65536);
510
+ t9 = v - c * 65536;
511
+ v = t10 + c + 65535;
512
+ c = Math.floor(v / 65536);
513
+ t10 = v - c * 65536;
514
+ v = t11 + c + 65535;
515
+ c = Math.floor(v / 65536);
516
+ t11 = v - c * 65536;
517
+ v = t12 + c + 65535;
518
+ c = Math.floor(v / 65536);
519
+ t12 = v - c * 65536;
520
+ v = t13 + c + 65535;
521
+ c = Math.floor(v / 65536);
522
+ t13 = v - c * 65536;
523
+ v = t14 + c + 65535;
524
+ c = Math.floor(v / 65536);
525
+ t14 = v - c * 65536;
526
+ v = t15 + c + 65535;
527
+ c = Math.floor(v / 65536);
528
+ t15 = v - c * 65536;
529
+ t0 += c - 1 + 37 * (c - 1);
530
+ o[0] = t0;
531
+ o[1] = t1;
532
+ o[2] = t2;
533
+ o[3] = t3;
534
+ o[4] = t4;
535
+ o[5] = t5;
536
+ o[6] = t6;
537
+ o[7] = t7;
538
+ o[8] = t8;
539
+ o[9] = t9;
540
+ o[10] = t10;
541
+ o[11] = t11;
542
+ o[12] = t12;
543
+ o[13] = t13;
544
+ o[14] = t14;
545
+ o[15] = t15;
546
+ }
547
+ function square(o, a) {
548
+ mul(o, a, a);
549
+ }
550
+ function inv25519(o, i) {
551
+ var c = gf();
552
+ var a;
553
+ for (a = 0; a < 16; a++) {
554
+ c[a] = i[a];
555
+ }
556
+ for (a = 253; a >= 0; a--) {
557
+ square(c, c);
558
+ if (a !== 2 && a !== 4) {
559
+ mul(c, c, i);
560
+ }
561
+ }
562
+ for (a = 0; a < 16; a++) {
563
+ o[a] = c[a];
564
+ }
565
+ }
566
+ function pow2523(o, i) {
567
+ var c = gf();
568
+ var a;
569
+ for (a = 0; a < 16; a++) {
570
+ c[a] = i[a];
571
+ }
572
+ for (a = 250; a >= 0; a--) {
573
+ square(c, c);
574
+ if (a !== 1) {
575
+ mul(c, c, i);
576
+ }
577
+ }
578
+ for (a = 0; a < 16; a++) {
579
+ o[a] = c[a];
580
+ }
581
+ }
582
+ function edadd(p, q) {
583
+ var a = gf(), b = gf(), c = gf(), d = gf(), e = gf(), f = gf(), g = gf(), h = gf(), t = gf();
584
+ sub(a, p[1], p[0]);
585
+ sub(t, q[1], q[0]);
586
+ mul(a, a, t);
587
+ add(b, p[0], p[1]);
588
+ add(t, q[0], q[1]);
589
+ mul(b, b, t);
590
+ mul(c, p[3], q[3]);
591
+ mul(c, c, D2);
592
+ mul(d, p[2], q[2]);
593
+ add(d, d, d);
594
+ sub(e, b, a);
595
+ sub(f, d, c);
596
+ add(g, d, c);
597
+ add(h, b, a);
598
+ mul(p[0], e, f);
599
+ mul(p[1], h, g);
600
+ mul(p[2], g, f);
601
+ mul(p[3], e, h);
602
+ }
603
+ function cswap(p, q, b) {
604
+ for (var i = 0; i < 4; i++) {
605
+ sel25519(p[i], q[i], b);
606
+ }
607
+ }
608
+ function pack(r, p) {
609
+ var tx = gf(), ty = gf(), zi = gf();
610
+ inv25519(zi, p[2]);
611
+ mul(tx, p[0], zi);
612
+ mul(ty, p[1], zi);
613
+ pack25519(r, ty);
614
+ r[31] ^= par25519(tx) << 7;
615
+ }
616
+ function scalarmult(p, q, s) {
617
+ set25519(p[0], gf0);
618
+ set25519(p[1], gf1);
619
+ set25519(p[2], gf1);
620
+ set25519(p[3], gf0);
621
+ for (var i = 255; i >= 0; --i) {
622
+ var b = (s[(i / 8) | 0] >> (i & 7)) & 1;
623
+ cswap(p, q, b);
624
+ edadd(q, p);
625
+ edadd(p, p);
626
+ cswap(p, q, b);
627
+ }
628
+ }
629
+ function scalarbase(p, s) {
630
+ var q = [gf(), gf(), gf(), gf()];
631
+ set25519(q[0], X);
632
+ set25519(q[1], Y);
633
+ set25519(q[2], gf1);
634
+ mul(q[3], X, Y);
635
+ scalarmult(p, q, s);
636
+ }
637
+ // Generates key pair from secret 32-byte seed.
638
+ function generateKeyPairFromSeed(seed) {
639
+ if (seed.length !== exports.SEED_LENGTH) {
640
+ throw new Error("ed25519: seed must be ".concat(exports.SEED_LENGTH, " bytes"));
641
+ }
642
+ var d = (0, sha512_1.hash)(seed);
643
+ d[0] &= 248;
644
+ d[31] &= 127;
645
+ d[31] |= 64;
646
+ var publicKey = new Uint8Array(32);
647
+ var p = [gf(), gf(), gf(), gf()];
648
+ scalarbase(p, d);
649
+ pack(publicKey, p);
650
+ var secretKey = new Uint8Array(64);
651
+ secretKey.set(seed);
652
+ secretKey.set(publicKey, 32);
653
+ return {
654
+ publicKey: publicKey,
655
+ secretKey: secretKey
656
+ };
657
+ }
658
+ exports.generateKeyPairFromSeed = generateKeyPairFromSeed;
659
+ function generateKeyPair(prng) {
660
+ var seed = (0, random_1.randomBytes)(32, prng);
661
+ var result = generateKeyPairFromSeed(seed);
662
+ (0, wipe_1.wipe)(seed);
663
+ return result;
664
+ }
665
+ exports.generateKeyPair = generateKeyPair;
666
+ function extractPublicKeyFromSecretKey(secretKey) {
667
+ if (secretKey.length !== exports.SECRET_KEY_LENGTH) {
668
+ throw new Error("ed25519: secret key must be ".concat(exports.SECRET_KEY_LENGTH, " bytes"));
669
+ }
670
+ return new Uint8Array(secretKey.subarray(32));
671
+ }
672
+ exports.extractPublicKeyFromSecretKey = extractPublicKeyFromSecretKey;
673
+ var L = new Float64Array([
674
+ 0xed, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58, 0xd6, 0x9c, 0xf7, 0xa2,
675
+ 0xde, 0xf9, 0xde, 0x14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x10
676
+ ]);
677
+ function modL(r, x) {
678
+ var carry;
679
+ var i;
680
+ var j;
681
+ var k;
682
+ for (i = 63; i >= 32; --i) {
683
+ carry = 0;
684
+ for (j = i - 32, k = i - 12; j < k; ++j) {
685
+ x[j] += carry - 16 * x[i] * L[j - (i - 32)];
686
+ carry = Math.floor((x[j] + 128) / 256);
687
+ x[j] -= carry * 256;
688
+ }
689
+ x[j] += carry;
690
+ x[i] = 0;
691
+ }
692
+ carry = 0;
693
+ for (j = 0; j < 32; j++) {
694
+ x[j] += carry - (x[31] >> 4) * L[j];
695
+ carry = x[j] >> 8;
696
+ x[j] &= 255;
697
+ }
698
+ for (j = 0; j < 32; j++) {
699
+ x[j] -= carry * L[j];
700
+ }
701
+ for (i = 0; i < 32; i++) {
702
+ x[i + 1] += x[i] >> 8;
703
+ r[i] = x[i] & 255;
704
+ }
705
+ }
706
+ function reduce(r) {
707
+ var x = new Float64Array(64);
708
+ for (var i = 0; i < 64; i++) {
709
+ x[i] = r[i];
710
+ }
711
+ for (var i = 0; i < 64; i++) {
712
+ r[i] = 0;
713
+ }
714
+ modL(r, x);
715
+ }
716
+ // Returns 64-byte signature of the message under the 64-byte secret key.
717
+ function sign(secretKey, message) {
718
+ var x = new Float64Array(64);
719
+ var p = [gf(), gf(), gf(), gf()];
720
+ var d = (0, sha512_1.hash)(secretKey.subarray(0, 32));
721
+ d[0] &= 248;
722
+ d[31] &= 127;
723
+ d[31] |= 64;
724
+ var signature = new Uint8Array(64);
725
+ signature.set(d.subarray(32), 32);
726
+ var hs = new sha512_1.SHA512();
727
+ hs.update(signature.subarray(32));
728
+ hs.update(message);
729
+ var r = hs.digest();
730
+ hs.clean();
731
+ reduce(r);
732
+ scalarbase(p, r);
733
+ pack(signature, p);
734
+ hs.reset();
735
+ hs.update(signature.subarray(0, 32));
736
+ hs.update(secretKey.subarray(32));
737
+ hs.update(message);
738
+ var h = hs.digest();
739
+ reduce(h);
740
+ for (var i = 0; i < 32; i++) {
741
+ x[i] = r[i];
742
+ }
743
+ for (var i = 0; i < 32; i++) {
744
+ for (var j = 0; j < 32; j++) {
745
+ x[i + j] += h[i] * d[j];
746
+ }
747
+ }
748
+ modL(signature.subarray(32), x);
749
+ return signature;
750
+ }
751
+ exports.sign = sign;
752
+ function unpackneg(r, p) {
753
+ var t = gf(), chk = gf(), num = gf(), den = gf(), den2 = gf(), den4 = gf(), den6 = gf();
754
+ set25519(r[2], gf1);
755
+ unpack25519(r[1], p);
756
+ square(num, r[1]);
757
+ mul(den, num, D);
758
+ sub(num, num, r[2]);
759
+ add(den, r[2], den);
760
+ square(den2, den);
761
+ square(den4, den2);
762
+ mul(den6, den4, den2);
763
+ mul(t, den6, num);
764
+ mul(t, t, den);
765
+ pow2523(t, t);
766
+ mul(t, t, num);
767
+ mul(t, t, den);
768
+ mul(t, t, den);
769
+ mul(r[0], t, den);
770
+ square(chk, r[0]);
771
+ mul(chk, chk, den);
772
+ if (neq25519(chk, num)) {
773
+ mul(r[0], r[0], I);
774
+ }
775
+ square(chk, r[0]);
776
+ mul(chk, chk, den);
777
+ if (neq25519(chk, num)) {
778
+ return -1;
779
+ }
780
+ if (par25519(r[0]) === (p[31] >> 7)) {
781
+ sub(r[0], gf0, r[0]);
782
+ }
783
+ mul(r[3], r[0], r[1]);
784
+ return 0;
785
+ }
786
+ function verify(publicKey, message, signature) {
787
+ var t = new Uint8Array(32);
788
+ var p = [gf(), gf(), gf(), gf()];
789
+ var q = [gf(), gf(), gf(), gf()];
790
+ if (signature.length !== exports.SIGNATURE_LENGTH) {
791
+ throw new Error("ed25519: signature must be ".concat(exports.SIGNATURE_LENGTH, " bytes"));
792
+ }
793
+ if (unpackneg(q, publicKey)) {
794
+ return false;
795
+ }
796
+ var hs = new sha512_1.SHA512();
797
+ hs.update(signature.subarray(0, 32));
798
+ hs.update(publicKey);
799
+ hs.update(message);
800
+ var h = hs.digest();
801
+ reduce(h);
802
+ scalarmult(p, q, h);
803
+ scalarbase(q, signature.subarray(32));
804
+ edadd(p, q);
805
+ pack(t, p);
806
+ if (verify32(signature, t)) {
807
+ return false;
808
+ }
809
+ return true;
810
+ }
811
+ exports.verify = verify;
812
+ /**
813
+ * Convert Ed25519 public key to X25519 public key.
814
+ *
815
+ * Throws if given an invalid public key.
816
+ */
817
+ function convertPublicKeyToX25519(publicKey) {
818
+ var q = [gf(), gf(), gf(), gf()];
819
+ if (unpackneg(q, publicKey)) {
820
+ throw new Error("Ed25519: invalid public key");
821
+ }
822
+ // Formula: montgomeryX = (edwardsY + 1)*inverse(1 - edwardsY) mod p
823
+ var a = gf();
824
+ var b = gf();
825
+ var y = q[1];
826
+ add(a, gf1, y);
827
+ sub(b, gf1, y);
828
+ inv25519(b, b);
829
+ mul(a, a, b);
830
+ var z = new Uint8Array(32);
831
+ pack25519(z, a);
832
+ return z;
833
+ }
834
+ exports.convertPublicKeyToX25519 = convertPublicKeyToX25519;
835
+ /**
836
+ * Convert Ed25519 secret (private) key to X25519 secret key.
837
+ */
838
+ function convertSecretKeyToX25519(secretKey) {
839
+ var d = (0, sha512_1.hash)(secretKey.subarray(0, 32));
840
+ d[0] &= 248;
841
+ d[31] &= 127;
842
+ d[31] |= 64;
843
+ var o = new Uint8Array(d.subarray(0, 32));
844
+ (0, wipe_1.wipe)(d);
845
+ return o;
846
+ }
847
+ exports.convertSecretKeyToX25519 = convertSecretKeyToX25519;
848
+ //# sourceMappingURL=ed25519.js.map