@ghostspeak/sdk 2.0.6 → 2.0.7

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 (117) hide show
  1. package/README.md +152 -30
  2. package/dist/GhostSpeakClient-CWmGaM9Q.d.ts +1007 -0
  3. package/dist/StakingModule-C5rzuOWb.d.ts +2526 -0
  4. package/dist/{agent-M74TCRON.js → agent-5YLZ7DAC.js} +4 -4
  5. package/dist/{agent-M74TCRON.js.map → agent-5YLZ7DAC.js.map} +1 -1
  6. package/dist/batch-operations-45CQFEID.js +4 -0
  7. package/dist/batch-operations-45CQFEID.js.map +1 -0
  8. package/dist/browser.d.ts +45 -554
  9. package/dist/browser.js +15 -842
  10. package/dist/browser.js.map +1 -1
  11. package/dist/chunk-AL3HQN73.js +754 -0
  12. package/dist/chunk-AL3HQN73.js.map +1 -0
  13. package/dist/chunk-BF3IQ35I.js +284 -0
  14. package/dist/chunk-BF3IQ35I.js.map +1 -0
  15. package/dist/chunk-BQDGRTVP.js +168 -0
  16. package/dist/chunk-BQDGRTVP.js.map +1 -0
  17. package/dist/chunk-C5CDA3WX.js +7314 -0
  18. package/dist/chunk-C5CDA3WX.js.map +1 -0
  19. package/dist/chunk-E3FD2CNY.js +1869 -0
  20. package/dist/chunk-E3FD2CNY.js.map +1 -0
  21. package/dist/{chunk-F3DZMBUA.js → chunk-G7S6B6WB.js} +327 -493
  22. package/dist/chunk-G7S6B6WB.js.map +1 -0
  23. package/dist/chunk-IHVDQ4YI.js +4231 -0
  24. package/dist/chunk-IHVDQ4YI.js.map +1 -0
  25. package/dist/chunk-JV2SWONF.js +98 -0
  26. package/dist/chunk-JV2SWONF.js.map +1 -0
  27. package/dist/chunk-KB6CKIUK.js +231 -0
  28. package/dist/chunk-KB6CKIUK.js.map +1 -0
  29. package/dist/chunk-S74EH3KD.js +7890 -0
  30. package/dist/chunk-S74EH3KD.js.map +1 -0
  31. package/dist/chunk-SFTSZ3LC.js +156 -0
  32. package/dist/chunk-SFTSZ3LC.js.map +1 -0
  33. package/dist/chunk-SKMJJ3Q6.js +125 -0
  34. package/dist/chunk-SKMJJ3Q6.js.map +1 -0
  35. package/dist/chunk-SZGFSCNU.js +3682 -0
  36. package/dist/chunk-SZGFSCNU.js.map +1 -0
  37. package/dist/chunk-TTB4OS2D.js +69 -0
  38. package/dist/chunk-TTB4OS2D.js.map +1 -0
  39. package/dist/chunk-UP2VWCW5.js +33 -0
  40. package/dist/{chunk-NSBPE2FW.js.map → chunk-UP2VWCW5.js.map} +1 -1
  41. package/dist/{chunk-UJUGGLMT.js → chunk-VQZQCHUT.js} +5 -5
  42. package/dist/{chunk-UJUGGLMT.js.map → chunk-VQZQCHUT.js.map} +1 -1
  43. package/dist/client.d.ts +5 -4
  44. package/dist/client.js +11 -10
  45. package/dist/createAgentAuthorization-ULG47ZJI.js +5 -0
  46. package/dist/createAgentAuthorization-ULG47ZJI.js.map +1 -0
  47. package/dist/credentials.js +1 -1
  48. package/dist/crypto.js +2 -2
  49. package/dist/errors.js +1 -1
  50. package/dist/feature-flags-B1g0DCPe.d.ts +1181 -0
  51. package/dist/generated-EG5USUFG.js +9 -0
  52. package/dist/{generated-VNLHMR6Y.js.map → generated-EG5USUFG.js.map} +1 -1
  53. package/dist/{ghostspeak_wasm-SB2RPJ3D.js → ghostspeak_wasm-F227HOSM.js} +3 -3
  54. package/dist/{ghostspeak_wasm-SB2RPJ3D.js.map → ghostspeak_wasm-F227HOSM.js.map} +1 -1
  55. package/dist/index.d.ts +1209 -1506
  56. package/dist/index.js +600 -3532
  57. package/dist/index.js.map +1 -1
  58. package/dist/metafile-esm.json +1 -1
  59. package/dist/minimal/core-minimal.d.ts +2383 -1264
  60. package/dist/minimal/core-minimal.js +9 -9
  61. package/dist/minimal/core-minimal.js.map +1 -1
  62. package/dist/nacl-fast-W5BJ3KZ2.js +2229 -0
  63. package/dist/nacl-fast-W5BJ3KZ2.js.map +1 -0
  64. package/dist/pda-4KP7CURF.js +4 -0
  65. package/dist/pda-4KP7CURF.js.map +1 -0
  66. package/dist/pda-Ce7VYg4T.d.ts +25 -0
  67. package/dist/reputation-types-Yebf0Rm_.d.ts +1071 -0
  68. package/dist/revokeAuthorization-OK7E7OK3.js +5 -0
  69. package/dist/revokeAuthorization-OK7E7OK3.js.map +1 -0
  70. package/dist/signature-verification-DGxR4aYQ.d.ts +448 -0
  71. package/dist/types.js +1 -1
  72. package/dist/updateReputationWithAuth-Y4ONEVSP.js +5 -0
  73. package/dist/updateReputationWithAuth-Y4ONEVSP.js.map +1 -0
  74. package/dist/utils.d.ts +69 -203
  75. package/dist/utils.js +15 -153
  76. package/dist/utils.js.map +1 -1
  77. package/package.json +24 -31
  78. package/dist/.tsbuildinfo +0 -1
  79. package/dist/GhostSpeakClient-D_66Uzsf.d.ts +0 -707
  80. package/dist/GovernanceModule-DQYYys-H.d.ts +0 -1766
  81. package/dist/chunk-APCKGD23.js +0 -1328
  82. package/dist/chunk-APCKGD23.js.map +0 -1
  83. package/dist/chunk-ASQXX4IT.js +0 -572
  84. package/dist/chunk-ASQXX4IT.js.map +0 -1
  85. package/dist/chunk-COGZFWOT.js +0 -19657
  86. package/dist/chunk-COGZFWOT.js.map +0 -1
  87. package/dist/chunk-F3DZMBUA.js.map +0 -1
  88. package/dist/chunk-GMHIUK2R.js +0 -7526
  89. package/dist/chunk-GMHIUK2R.js.map +0 -1
  90. package/dist/chunk-IAWBZYPE.js +0 -356
  91. package/dist/chunk-IAWBZYPE.js.map +0 -1
  92. package/dist/chunk-NSBPE2FW.js +0 -15
  93. package/dist/chunk-OWYHJG6H.js +0 -13311
  94. package/dist/chunk-OWYHJG6H.js.map +0 -1
  95. package/dist/chunk-RDDPOFR5.js +0 -3
  96. package/dist/chunk-RDDPOFR5.js.map +0 -1
  97. package/dist/chunk-RERCHKZP.js +0 -35
  98. package/dist/chunk-RERCHKZP.js.map +0 -1
  99. package/dist/chunk-TVVGXYCI.js +0 -2887
  100. package/dist/chunk-TVVGXYCI.js.map +0 -1
  101. package/dist/chunk-ZGP5552B.js +0 -377
  102. package/dist/chunk-ZGP5552B.js.map +0 -1
  103. package/dist/chunk-ZWOYNHVK.js +0 -196
  104. package/dist/chunk-ZWOYNHVK.js.map +0 -1
  105. package/dist/dist/.tsbuildinfo +0 -1
  106. package/dist/elgamal-VZLWB3XK.js +0 -5
  107. package/dist/elgamal-VZLWB3XK.js.map +0 -1
  108. package/dist/feature-flags-V722ZuXO.d.ts +0 -3512
  109. package/dist/generated-VNLHMR6Y.js +0 -5
  110. package/dist/ipfs-types-BOt9ZNg4.d.ts +0 -592
  111. package/dist/multisigConfig-BzEhy6jy.d.ts +0 -58
  112. package/dist/pda-B_nS8SbD.d.ts +0 -114
  113. package/dist/pda-S4BFJVGE.js +0 -4
  114. package/dist/pda-S4BFJVGE.js.map +0 -1
  115. package/dist/system-addresses-BFNLEbFx.d.ts +0 -857
  116. package/dist/token-2022-rpc-RALH4RK7.js +0 -593
  117. package/dist/token-2022-rpc-RALH4RK7.js.map +0 -1
@@ -0,0 +1,2229 @@
1
+ import { __commonJS, __require } from './chunk-UP2VWCW5.js';
2
+
3
+ // ../../node_modules/.bun/tweetnacl@1.0.3/node_modules/tweetnacl/nacl-fast.js
4
+ var require_nacl_fast = __commonJS({
5
+ "../../node_modules/.bun/tweetnacl@1.0.3/node_modules/tweetnacl/nacl-fast.js"(exports$1, module) {
6
+ (function(nacl) {
7
+ var gf = function(init) {
8
+ var i, r = new Float64Array(16);
9
+ if (init) for (i = 0; i < init.length; i++) r[i] = init[i];
10
+ return r;
11
+ };
12
+ var randombytes = function() {
13
+ throw new Error("no PRNG");
14
+ };
15
+ var _0 = new Uint8Array(16);
16
+ var _9 = new Uint8Array(32);
17
+ _9[0] = 9;
18
+ var gf0 = gf(), gf1 = gf([1]), _121665 = gf([56129, 1]), D = gf([30883, 4953, 19914, 30187, 55467, 16705, 2637, 112, 59544, 30585, 16505, 36039, 65139, 11119, 27886, 20995]), D2 = gf([61785, 9906, 39828, 60374, 45398, 33411, 5274, 224, 53552, 61171, 33010, 6542, 64743, 22239, 55772, 9222]), X = gf([54554, 36645, 11616, 51542, 42930, 38181, 51040, 26924, 56412, 64982, 57905, 49316, 21502, 52590, 14035, 8553]), Y = gf([26200, 26214, 26214, 26214, 26214, 26214, 26214, 26214, 26214, 26214, 26214, 26214, 26214, 26214, 26214, 26214]), I = gf([41136, 18958, 6951, 50414, 58488, 44335, 6150, 12099, 55207, 15867, 153, 11085, 57099, 20417, 9344, 11139]);
19
+ function ts64(x, i, h, l) {
20
+ x[i] = h >> 24 & 255;
21
+ x[i + 1] = h >> 16 & 255;
22
+ x[i + 2] = h >> 8 & 255;
23
+ x[i + 3] = h & 255;
24
+ x[i + 4] = l >> 24 & 255;
25
+ x[i + 5] = l >> 16 & 255;
26
+ x[i + 6] = l >> 8 & 255;
27
+ x[i + 7] = l & 255;
28
+ }
29
+ function vn(x, xi, y, yi, n) {
30
+ var i, d = 0;
31
+ for (i = 0; i < n; i++) d |= x[xi + i] ^ y[yi + i];
32
+ return (1 & d - 1 >>> 8) - 1;
33
+ }
34
+ function crypto_verify_16(x, xi, y, yi) {
35
+ return vn(x, xi, y, yi, 16);
36
+ }
37
+ function crypto_verify_32(x, xi, y, yi) {
38
+ return vn(x, xi, y, yi, 32);
39
+ }
40
+ function core_salsa20(o, p, k, c) {
41
+ var j0 = c[0] & 255 | (c[1] & 255) << 8 | (c[2] & 255) << 16 | (c[3] & 255) << 24, j1 = k[0] & 255 | (k[1] & 255) << 8 | (k[2] & 255) << 16 | (k[3] & 255) << 24, j2 = k[4] & 255 | (k[5] & 255) << 8 | (k[6] & 255) << 16 | (k[7] & 255) << 24, j3 = k[8] & 255 | (k[9] & 255) << 8 | (k[10] & 255) << 16 | (k[11] & 255) << 24, j4 = k[12] & 255 | (k[13] & 255) << 8 | (k[14] & 255) << 16 | (k[15] & 255) << 24, j5 = c[4] & 255 | (c[5] & 255) << 8 | (c[6] & 255) << 16 | (c[7] & 255) << 24, j6 = p[0] & 255 | (p[1] & 255) << 8 | (p[2] & 255) << 16 | (p[3] & 255) << 24, j7 = p[4] & 255 | (p[5] & 255) << 8 | (p[6] & 255) << 16 | (p[7] & 255) << 24, j8 = p[8] & 255 | (p[9] & 255) << 8 | (p[10] & 255) << 16 | (p[11] & 255) << 24, j9 = p[12] & 255 | (p[13] & 255) << 8 | (p[14] & 255) << 16 | (p[15] & 255) << 24, j10 = c[8] & 255 | (c[9] & 255) << 8 | (c[10] & 255) << 16 | (c[11] & 255) << 24, j11 = k[16] & 255 | (k[17] & 255) << 8 | (k[18] & 255) << 16 | (k[19] & 255) << 24, j12 = k[20] & 255 | (k[21] & 255) << 8 | (k[22] & 255) << 16 | (k[23] & 255) << 24, j13 = k[24] & 255 | (k[25] & 255) << 8 | (k[26] & 255) << 16 | (k[27] & 255) << 24, j14 = k[28] & 255 | (k[29] & 255) << 8 | (k[30] & 255) << 16 | (k[31] & 255) << 24, j15 = c[12] & 255 | (c[13] & 255) << 8 | (c[14] & 255) << 16 | (c[15] & 255) << 24;
42
+ var x0 = j0, x1 = j1, x2 = j2, x3 = j3, x4 = j4, x5 = j5, x6 = j6, x7 = j7, x8 = j8, x9 = j9, x10 = j10, x11 = j11, x12 = j12, x13 = j13, x14 = j14, x15 = j15, u;
43
+ for (var i = 0; i < 20; i += 2) {
44
+ u = x0 + x12 | 0;
45
+ x4 ^= u << 7 | u >>> 32 - 7;
46
+ u = x4 + x0 | 0;
47
+ x8 ^= u << 9 | u >>> 32 - 9;
48
+ u = x8 + x4 | 0;
49
+ x12 ^= u << 13 | u >>> 32 - 13;
50
+ u = x12 + x8 | 0;
51
+ x0 ^= u << 18 | u >>> 32 - 18;
52
+ u = x5 + x1 | 0;
53
+ x9 ^= u << 7 | u >>> 32 - 7;
54
+ u = x9 + x5 | 0;
55
+ x13 ^= u << 9 | u >>> 32 - 9;
56
+ u = x13 + x9 | 0;
57
+ x1 ^= u << 13 | u >>> 32 - 13;
58
+ u = x1 + x13 | 0;
59
+ x5 ^= u << 18 | u >>> 32 - 18;
60
+ u = x10 + x6 | 0;
61
+ x14 ^= u << 7 | u >>> 32 - 7;
62
+ u = x14 + x10 | 0;
63
+ x2 ^= u << 9 | u >>> 32 - 9;
64
+ u = x2 + x14 | 0;
65
+ x6 ^= u << 13 | u >>> 32 - 13;
66
+ u = x6 + x2 | 0;
67
+ x10 ^= u << 18 | u >>> 32 - 18;
68
+ u = x15 + x11 | 0;
69
+ x3 ^= u << 7 | u >>> 32 - 7;
70
+ u = x3 + x15 | 0;
71
+ x7 ^= u << 9 | u >>> 32 - 9;
72
+ u = x7 + x3 | 0;
73
+ x11 ^= u << 13 | u >>> 32 - 13;
74
+ u = x11 + x7 | 0;
75
+ x15 ^= u << 18 | u >>> 32 - 18;
76
+ u = x0 + x3 | 0;
77
+ x1 ^= u << 7 | u >>> 32 - 7;
78
+ u = x1 + x0 | 0;
79
+ x2 ^= u << 9 | u >>> 32 - 9;
80
+ u = x2 + x1 | 0;
81
+ x3 ^= u << 13 | u >>> 32 - 13;
82
+ u = x3 + x2 | 0;
83
+ x0 ^= u << 18 | u >>> 32 - 18;
84
+ u = x5 + x4 | 0;
85
+ x6 ^= u << 7 | u >>> 32 - 7;
86
+ u = x6 + x5 | 0;
87
+ x7 ^= u << 9 | u >>> 32 - 9;
88
+ u = x7 + x6 | 0;
89
+ x4 ^= u << 13 | u >>> 32 - 13;
90
+ u = x4 + x7 | 0;
91
+ x5 ^= u << 18 | u >>> 32 - 18;
92
+ u = x10 + x9 | 0;
93
+ x11 ^= u << 7 | u >>> 32 - 7;
94
+ u = x11 + x10 | 0;
95
+ x8 ^= u << 9 | u >>> 32 - 9;
96
+ u = x8 + x11 | 0;
97
+ x9 ^= u << 13 | u >>> 32 - 13;
98
+ u = x9 + x8 | 0;
99
+ x10 ^= u << 18 | u >>> 32 - 18;
100
+ u = x15 + x14 | 0;
101
+ x12 ^= u << 7 | u >>> 32 - 7;
102
+ u = x12 + x15 | 0;
103
+ x13 ^= u << 9 | u >>> 32 - 9;
104
+ u = x13 + x12 | 0;
105
+ x14 ^= u << 13 | u >>> 32 - 13;
106
+ u = x14 + x13 | 0;
107
+ x15 ^= u << 18 | u >>> 32 - 18;
108
+ }
109
+ x0 = x0 + j0 | 0;
110
+ x1 = x1 + j1 | 0;
111
+ x2 = x2 + j2 | 0;
112
+ x3 = x3 + j3 | 0;
113
+ x4 = x4 + j4 | 0;
114
+ x5 = x5 + j5 | 0;
115
+ x6 = x6 + j6 | 0;
116
+ x7 = x7 + j7 | 0;
117
+ x8 = x8 + j8 | 0;
118
+ x9 = x9 + j9 | 0;
119
+ x10 = x10 + j10 | 0;
120
+ x11 = x11 + j11 | 0;
121
+ x12 = x12 + j12 | 0;
122
+ x13 = x13 + j13 | 0;
123
+ x14 = x14 + j14 | 0;
124
+ x15 = x15 + j15 | 0;
125
+ o[0] = x0 >>> 0 & 255;
126
+ o[1] = x0 >>> 8 & 255;
127
+ o[2] = x0 >>> 16 & 255;
128
+ o[3] = x0 >>> 24 & 255;
129
+ o[4] = x1 >>> 0 & 255;
130
+ o[5] = x1 >>> 8 & 255;
131
+ o[6] = x1 >>> 16 & 255;
132
+ o[7] = x1 >>> 24 & 255;
133
+ o[8] = x2 >>> 0 & 255;
134
+ o[9] = x2 >>> 8 & 255;
135
+ o[10] = x2 >>> 16 & 255;
136
+ o[11] = x2 >>> 24 & 255;
137
+ o[12] = x3 >>> 0 & 255;
138
+ o[13] = x3 >>> 8 & 255;
139
+ o[14] = x3 >>> 16 & 255;
140
+ o[15] = x3 >>> 24 & 255;
141
+ o[16] = x4 >>> 0 & 255;
142
+ o[17] = x4 >>> 8 & 255;
143
+ o[18] = x4 >>> 16 & 255;
144
+ o[19] = x4 >>> 24 & 255;
145
+ o[20] = x5 >>> 0 & 255;
146
+ o[21] = x5 >>> 8 & 255;
147
+ o[22] = x5 >>> 16 & 255;
148
+ o[23] = x5 >>> 24 & 255;
149
+ o[24] = x6 >>> 0 & 255;
150
+ o[25] = x6 >>> 8 & 255;
151
+ o[26] = x6 >>> 16 & 255;
152
+ o[27] = x6 >>> 24 & 255;
153
+ o[28] = x7 >>> 0 & 255;
154
+ o[29] = x7 >>> 8 & 255;
155
+ o[30] = x7 >>> 16 & 255;
156
+ o[31] = x7 >>> 24 & 255;
157
+ o[32] = x8 >>> 0 & 255;
158
+ o[33] = x8 >>> 8 & 255;
159
+ o[34] = x8 >>> 16 & 255;
160
+ o[35] = x8 >>> 24 & 255;
161
+ o[36] = x9 >>> 0 & 255;
162
+ o[37] = x9 >>> 8 & 255;
163
+ o[38] = x9 >>> 16 & 255;
164
+ o[39] = x9 >>> 24 & 255;
165
+ o[40] = x10 >>> 0 & 255;
166
+ o[41] = x10 >>> 8 & 255;
167
+ o[42] = x10 >>> 16 & 255;
168
+ o[43] = x10 >>> 24 & 255;
169
+ o[44] = x11 >>> 0 & 255;
170
+ o[45] = x11 >>> 8 & 255;
171
+ o[46] = x11 >>> 16 & 255;
172
+ o[47] = x11 >>> 24 & 255;
173
+ o[48] = x12 >>> 0 & 255;
174
+ o[49] = x12 >>> 8 & 255;
175
+ o[50] = x12 >>> 16 & 255;
176
+ o[51] = x12 >>> 24 & 255;
177
+ o[52] = x13 >>> 0 & 255;
178
+ o[53] = x13 >>> 8 & 255;
179
+ o[54] = x13 >>> 16 & 255;
180
+ o[55] = x13 >>> 24 & 255;
181
+ o[56] = x14 >>> 0 & 255;
182
+ o[57] = x14 >>> 8 & 255;
183
+ o[58] = x14 >>> 16 & 255;
184
+ o[59] = x14 >>> 24 & 255;
185
+ o[60] = x15 >>> 0 & 255;
186
+ o[61] = x15 >>> 8 & 255;
187
+ o[62] = x15 >>> 16 & 255;
188
+ o[63] = x15 >>> 24 & 255;
189
+ }
190
+ function core_hsalsa20(o, p, k, c) {
191
+ var j0 = c[0] & 255 | (c[1] & 255) << 8 | (c[2] & 255) << 16 | (c[3] & 255) << 24, j1 = k[0] & 255 | (k[1] & 255) << 8 | (k[2] & 255) << 16 | (k[3] & 255) << 24, j2 = k[4] & 255 | (k[5] & 255) << 8 | (k[6] & 255) << 16 | (k[7] & 255) << 24, j3 = k[8] & 255 | (k[9] & 255) << 8 | (k[10] & 255) << 16 | (k[11] & 255) << 24, j4 = k[12] & 255 | (k[13] & 255) << 8 | (k[14] & 255) << 16 | (k[15] & 255) << 24, j5 = c[4] & 255 | (c[5] & 255) << 8 | (c[6] & 255) << 16 | (c[7] & 255) << 24, j6 = p[0] & 255 | (p[1] & 255) << 8 | (p[2] & 255) << 16 | (p[3] & 255) << 24, j7 = p[4] & 255 | (p[5] & 255) << 8 | (p[6] & 255) << 16 | (p[7] & 255) << 24, j8 = p[8] & 255 | (p[9] & 255) << 8 | (p[10] & 255) << 16 | (p[11] & 255) << 24, j9 = p[12] & 255 | (p[13] & 255) << 8 | (p[14] & 255) << 16 | (p[15] & 255) << 24, j10 = c[8] & 255 | (c[9] & 255) << 8 | (c[10] & 255) << 16 | (c[11] & 255) << 24, j11 = k[16] & 255 | (k[17] & 255) << 8 | (k[18] & 255) << 16 | (k[19] & 255) << 24, j12 = k[20] & 255 | (k[21] & 255) << 8 | (k[22] & 255) << 16 | (k[23] & 255) << 24, j13 = k[24] & 255 | (k[25] & 255) << 8 | (k[26] & 255) << 16 | (k[27] & 255) << 24, j14 = k[28] & 255 | (k[29] & 255) << 8 | (k[30] & 255) << 16 | (k[31] & 255) << 24, j15 = c[12] & 255 | (c[13] & 255) << 8 | (c[14] & 255) << 16 | (c[15] & 255) << 24;
192
+ var x0 = j0, x1 = j1, x2 = j2, x3 = j3, x4 = j4, x5 = j5, x6 = j6, x7 = j7, x8 = j8, x9 = j9, x10 = j10, x11 = j11, x12 = j12, x13 = j13, x14 = j14, x15 = j15, u;
193
+ for (var i = 0; i < 20; i += 2) {
194
+ u = x0 + x12 | 0;
195
+ x4 ^= u << 7 | u >>> 32 - 7;
196
+ u = x4 + x0 | 0;
197
+ x8 ^= u << 9 | u >>> 32 - 9;
198
+ u = x8 + x4 | 0;
199
+ x12 ^= u << 13 | u >>> 32 - 13;
200
+ u = x12 + x8 | 0;
201
+ x0 ^= u << 18 | u >>> 32 - 18;
202
+ u = x5 + x1 | 0;
203
+ x9 ^= u << 7 | u >>> 32 - 7;
204
+ u = x9 + x5 | 0;
205
+ x13 ^= u << 9 | u >>> 32 - 9;
206
+ u = x13 + x9 | 0;
207
+ x1 ^= u << 13 | u >>> 32 - 13;
208
+ u = x1 + x13 | 0;
209
+ x5 ^= u << 18 | u >>> 32 - 18;
210
+ u = x10 + x6 | 0;
211
+ x14 ^= u << 7 | u >>> 32 - 7;
212
+ u = x14 + x10 | 0;
213
+ x2 ^= u << 9 | u >>> 32 - 9;
214
+ u = x2 + x14 | 0;
215
+ x6 ^= u << 13 | u >>> 32 - 13;
216
+ u = x6 + x2 | 0;
217
+ x10 ^= u << 18 | u >>> 32 - 18;
218
+ u = x15 + x11 | 0;
219
+ x3 ^= u << 7 | u >>> 32 - 7;
220
+ u = x3 + x15 | 0;
221
+ x7 ^= u << 9 | u >>> 32 - 9;
222
+ u = x7 + x3 | 0;
223
+ x11 ^= u << 13 | u >>> 32 - 13;
224
+ u = x11 + x7 | 0;
225
+ x15 ^= u << 18 | u >>> 32 - 18;
226
+ u = x0 + x3 | 0;
227
+ x1 ^= u << 7 | u >>> 32 - 7;
228
+ u = x1 + x0 | 0;
229
+ x2 ^= u << 9 | u >>> 32 - 9;
230
+ u = x2 + x1 | 0;
231
+ x3 ^= u << 13 | u >>> 32 - 13;
232
+ u = x3 + x2 | 0;
233
+ x0 ^= u << 18 | u >>> 32 - 18;
234
+ u = x5 + x4 | 0;
235
+ x6 ^= u << 7 | u >>> 32 - 7;
236
+ u = x6 + x5 | 0;
237
+ x7 ^= u << 9 | u >>> 32 - 9;
238
+ u = x7 + x6 | 0;
239
+ x4 ^= u << 13 | u >>> 32 - 13;
240
+ u = x4 + x7 | 0;
241
+ x5 ^= u << 18 | u >>> 32 - 18;
242
+ u = x10 + x9 | 0;
243
+ x11 ^= u << 7 | u >>> 32 - 7;
244
+ u = x11 + x10 | 0;
245
+ x8 ^= u << 9 | u >>> 32 - 9;
246
+ u = x8 + x11 | 0;
247
+ x9 ^= u << 13 | u >>> 32 - 13;
248
+ u = x9 + x8 | 0;
249
+ x10 ^= u << 18 | u >>> 32 - 18;
250
+ u = x15 + x14 | 0;
251
+ x12 ^= u << 7 | u >>> 32 - 7;
252
+ u = x12 + x15 | 0;
253
+ x13 ^= u << 9 | u >>> 32 - 9;
254
+ u = x13 + x12 | 0;
255
+ x14 ^= u << 13 | u >>> 32 - 13;
256
+ u = x14 + x13 | 0;
257
+ x15 ^= u << 18 | u >>> 32 - 18;
258
+ }
259
+ o[0] = x0 >>> 0 & 255;
260
+ o[1] = x0 >>> 8 & 255;
261
+ o[2] = x0 >>> 16 & 255;
262
+ o[3] = x0 >>> 24 & 255;
263
+ o[4] = x5 >>> 0 & 255;
264
+ o[5] = x5 >>> 8 & 255;
265
+ o[6] = x5 >>> 16 & 255;
266
+ o[7] = x5 >>> 24 & 255;
267
+ o[8] = x10 >>> 0 & 255;
268
+ o[9] = x10 >>> 8 & 255;
269
+ o[10] = x10 >>> 16 & 255;
270
+ o[11] = x10 >>> 24 & 255;
271
+ o[12] = x15 >>> 0 & 255;
272
+ o[13] = x15 >>> 8 & 255;
273
+ o[14] = x15 >>> 16 & 255;
274
+ o[15] = x15 >>> 24 & 255;
275
+ o[16] = x6 >>> 0 & 255;
276
+ o[17] = x6 >>> 8 & 255;
277
+ o[18] = x6 >>> 16 & 255;
278
+ o[19] = x6 >>> 24 & 255;
279
+ o[20] = x7 >>> 0 & 255;
280
+ o[21] = x7 >>> 8 & 255;
281
+ o[22] = x7 >>> 16 & 255;
282
+ o[23] = x7 >>> 24 & 255;
283
+ o[24] = x8 >>> 0 & 255;
284
+ o[25] = x8 >>> 8 & 255;
285
+ o[26] = x8 >>> 16 & 255;
286
+ o[27] = x8 >>> 24 & 255;
287
+ o[28] = x9 >>> 0 & 255;
288
+ o[29] = x9 >>> 8 & 255;
289
+ o[30] = x9 >>> 16 & 255;
290
+ o[31] = x9 >>> 24 & 255;
291
+ }
292
+ function crypto_core_salsa20(out, inp, k, c) {
293
+ core_salsa20(out, inp, k, c);
294
+ }
295
+ function crypto_core_hsalsa20(out, inp, k, c) {
296
+ core_hsalsa20(out, inp, k, c);
297
+ }
298
+ var sigma = new Uint8Array([101, 120, 112, 97, 110, 100, 32, 51, 50, 45, 98, 121, 116, 101, 32, 107]);
299
+ function crypto_stream_salsa20_xor(c, cpos, m, mpos, b, n, k) {
300
+ var z = new Uint8Array(16), x = new Uint8Array(64);
301
+ var u, i;
302
+ for (i = 0; i < 16; i++) z[i] = 0;
303
+ for (i = 0; i < 8; i++) z[i] = n[i];
304
+ while (b >= 64) {
305
+ crypto_core_salsa20(x, z, k, sigma);
306
+ for (i = 0; i < 64; i++) c[cpos + i] = m[mpos + i] ^ x[i];
307
+ u = 1;
308
+ for (i = 8; i < 16; i++) {
309
+ u = u + (z[i] & 255) | 0;
310
+ z[i] = u & 255;
311
+ u >>>= 8;
312
+ }
313
+ b -= 64;
314
+ cpos += 64;
315
+ mpos += 64;
316
+ }
317
+ if (b > 0) {
318
+ crypto_core_salsa20(x, z, k, sigma);
319
+ for (i = 0; i < b; i++) c[cpos + i] = m[mpos + i] ^ x[i];
320
+ }
321
+ return 0;
322
+ }
323
+ function crypto_stream_salsa20(c, cpos, b, n, k) {
324
+ var z = new Uint8Array(16), x = new Uint8Array(64);
325
+ var u, i;
326
+ for (i = 0; i < 16; i++) z[i] = 0;
327
+ for (i = 0; i < 8; i++) z[i] = n[i];
328
+ while (b >= 64) {
329
+ crypto_core_salsa20(x, z, k, sigma);
330
+ for (i = 0; i < 64; i++) c[cpos + i] = x[i];
331
+ u = 1;
332
+ for (i = 8; i < 16; i++) {
333
+ u = u + (z[i] & 255) | 0;
334
+ z[i] = u & 255;
335
+ u >>>= 8;
336
+ }
337
+ b -= 64;
338
+ cpos += 64;
339
+ }
340
+ if (b > 0) {
341
+ crypto_core_salsa20(x, z, k, sigma);
342
+ for (i = 0; i < b; i++) c[cpos + i] = x[i];
343
+ }
344
+ return 0;
345
+ }
346
+ function crypto_stream(c, cpos, d, n, k) {
347
+ var s = new Uint8Array(32);
348
+ crypto_core_hsalsa20(s, n, k, sigma);
349
+ var sn = new Uint8Array(8);
350
+ for (var i = 0; i < 8; i++) sn[i] = n[i + 16];
351
+ return crypto_stream_salsa20(c, cpos, d, sn, s);
352
+ }
353
+ function crypto_stream_xor(c, cpos, m, mpos, d, n, k) {
354
+ var s = new Uint8Array(32);
355
+ crypto_core_hsalsa20(s, n, k, sigma);
356
+ var sn = new Uint8Array(8);
357
+ for (var i = 0; i < 8; i++) sn[i] = n[i + 16];
358
+ return crypto_stream_salsa20_xor(c, cpos, m, mpos, d, sn, s);
359
+ }
360
+ var poly1305 = function(key) {
361
+ this.buffer = new Uint8Array(16);
362
+ this.r = new Uint16Array(10);
363
+ this.h = new Uint16Array(10);
364
+ this.pad = new Uint16Array(8);
365
+ this.leftover = 0;
366
+ this.fin = 0;
367
+ var t0, t1, t2, t3, t4, t5, t6, t7;
368
+ t0 = key[0] & 255 | (key[1] & 255) << 8;
369
+ this.r[0] = t0 & 8191;
370
+ t1 = key[2] & 255 | (key[3] & 255) << 8;
371
+ this.r[1] = (t0 >>> 13 | t1 << 3) & 8191;
372
+ t2 = key[4] & 255 | (key[5] & 255) << 8;
373
+ this.r[2] = (t1 >>> 10 | t2 << 6) & 7939;
374
+ t3 = key[6] & 255 | (key[7] & 255) << 8;
375
+ this.r[3] = (t2 >>> 7 | t3 << 9) & 8191;
376
+ t4 = key[8] & 255 | (key[9] & 255) << 8;
377
+ this.r[4] = (t3 >>> 4 | t4 << 12) & 255;
378
+ this.r[5] = t4 >>> 1 & 8190;
379
+ t5 = key[10] & 255 | (key[11] & 255) << 8;
380
+ this.r[6] = (t4 >>> 14 | t5 << 2) & 8191;
381
+ t6 = key[12] & 255 | (key[13] & 255) << 8;
382
+ this.r[7] = (t5 >>> 11 | t6 << 5) & 8065;
383
+ t7 = key[14] & 255 | (key[15] & 255) << 8;
384
+ this.r[8] = (t6 >>> 8 | t7 << 8) & 8191;
385
+ this.r[9] = t7 >>> 5 & 127;
386
+ this.pad[0] = key[16] & 255 | (key[17] & 255) << 8;
387
+ this.pad[1] = key[18] & 255 | (key[19] & 255) << 8;
388
+ this.pad[2] = key[20] & 255 | (key[21] & 255) << 8;
389
+ this.pad[3] = key[22] & 255 | (key[23] & 255) << 8;
390
+ this.pad[4] = key[24] & 255 | (key[25] & 255) << 8;
391
+ this.pad[5] = key[26] & 255 | (key[27] & 255) << 8;
392
+ this.pad[6] = key[28] & 255 | (key[29] & 255) << 8;
393
+ this.pad[7] = key[30] & 255 | (key[31] & 255) << 8;
394
+ };
395
+ poly1305.prototype.blocks = function(m, mpos, bytes) {
396
+ var hibit = this.fin ? 0 : 1 << 11;
397
+ var t0, t1, t2, t3, t4, t5, t6, t7, c;
398
+ var d0, d1, d2, d3, d4, d5, d6, d7, d8, d9;
399
+ var h0 = this.h[0], h1 = this.h[1], h2 = this.h[2], h3 = this.h[3], h4 = this.h[4], h5 = this.h[5], h6 = this.h[6], h7 = this.h[7], h8 = this.h[8], h9 = this.h[9];
400
+ var r0 = this.r[0], r1 = this.r[1], r2 = this.r[2], r3 = this.r[3], r4 = this.r[4], r5 = this.r[5], r6 = this.r[6], r7 = this.r[7], r8 = this.r[8], r9 = this.r[9];
401
+ while (bytes >= 16) {
402
+ t0 = m[mpos + 0] & 255 | (m[mpos + 1] & 255) << 8;
403
+ h0 += t0 & 8191;
404
+ t1 = m[mpos + 2] & 255 | (m[mpos + 3] & 255) << 8;
405
+ h1 += (t0 >>> 13 | t1 << 3) & 8191;
406
+ t2 = m[mpos + 4] & 255 | (m[mpos + 5] & 255) << 8;
407
+ h2 += (t1 >>> 10 | t2 << 6) & 8191;
408
+ t3 = m[mpos + 6] & 255 | (m[mpos + 7] & 255) << 8;
409
+ h3 += (t2 >>> 7 | t3 << 9) & 8191;
410
+ t4 = m[mpos + 8] & 255 | (m[mpos + 9] & 255) << 8;
411
+ h4 += (t3 >>> 4 | t4 << 12) & 8191;
412
+ h5 += t4 >>> 1 & 8191;
413
+ t5 = m[mpos + 10] & 255 | (m[mpos + 11] & 255) << 8;
414
+ h6 += (t4 >>> 14 | t5 << 2) & 8191;
415
+ t6 = m[mpos + 12] & 255 | (m[mpos + 13] & 255) << 8;
416
+ h7 += (t5 >>> 11 | t6 << 5) & 8191;
417
+ t7 = m[mpos + 14] & 255 | (m[mpos + 15] & 255) << 8;
418
+ h8 += (t6 >>> 8 | t7 << 8) & 8191;
419
+ h9 += t7 >>> 5 | hibit;
420
+ c = 0;
421
+ d0 = c;
422
+ d0 += h0 * r0;
423
+ d0 += h1 * (5 * r9);
424
+ d0 += h2 * (5 * r8);
425
+ d0 += h3 * (5 * r7);
426
+ d0 += h4 * (5 * r6);
427
+ c = d0 >>> 13;
428
+ d0 &= 8191;
429
+ d0 += h5 * (5 * r5);
430
+ d0 += h6 * (5 * r4);
431
+ d0 += h7 * (5 * r3);
432
+ d0 += h8 * (5 * r2);
433
+ d0 += h9 * (5 * r1);
434
+ c += d0 >>> 13;
435
+ d0 &= 8191;
436
+ d1 = c;
437
+ d1 += h0 * r1;
438
+ d1 += h1 * r0;
439
+ d1 += h2 * (5 * r9);
440
+ d1 += h3 * (5 * r8);
441
+ d1 += h4 * (5 * r7);
442
+ c = d1 >>> 13;
443
+ d1 &= 8191;
444
+ d1 += h5 * (5 * r6);
445
+ d1 += h6 * (5 * r5);
446
+ d1 += h7 * (5 * r4);
447
+ d1 += h8 * (5 * r3);
448
+ d1 += h9 * (5 * r2);
449
+ c += d1 >>> 13;
450
+ d1 &= 8191;
451
+ d2 = c;
452
+ d2 += h0 * r2;
453
+ d2 += h1 * r1;
454
+ d2 += h2 * r0;
455
+ d2 += h3 * (5 * r9);
456
+ d2 += h4 * (5 * r8);
457
+ c = d2 >>> 13;
458
+ d2 &= 8191;
459
+ d2 += h5 * (5 * r7);
460
+ d2 += h6 * (5 * r6);
461
+ d2 += h7 * (5 * r5);
462
+ d2 += h8 * (5 * r4);
463
+ d2 += h9 * (5 * r3);
464
+ c += d2 >>> 13;
465
+ d2 &= 8191;
466
+ d3 = c;
467
+ d3 += h0 * r3;
468
+ d3 += h1 * r2;
469
+ d3 += h2 * r1;
470
+ d3 += h3 * r0;
471
+ d3 += h4 * (5 * r9);
472
+ c = d3 >>> 13;
473
+ d3 &= 8191;
474
+ d3 += h5 * (5 * r8);
475
+ d3 += h6 * (5 * r7);
476
+ d3 += h7 * (5 * r6);
477
+ d3 += h8 * (5 * r5);
478
+ d3 += h9 * (5 * r4);
479
+ c += d3 >>> 13;
480
+ d3 &= 8191;
481
+ d4 = c;
482
+ d4 += h0 * r4;
483
+ d4 += h1 * r3;
484
+ d4 += h2 * r2;
485
+ d4 += h3 * r1;
486
+ d4 += h4 * r0;
487
+ c = d4 >>> 13;
488
+ d4 &= 8191;
489
+ d4 += h5 * (5 * r9);
490
+ d4 += h6 * (5 * r8);
491
+ d4 += h7 * (5 * r7);
492
+ d4 += h8 * (5 * r6);
493
+ d4 += h9 * (5 * r5);
494
+ c += d4 >>> 13;
495
+ d4 &= 8191;
496
+ d5 = c;
497
+ d5 += h0 * r5;
498
+ d5 += h1 * r4;
499
+ d5 += h2 * r3;
500
+ d5 += h3 * r2;
501
+ d5 += h4 * r1;
502
+ c = d5 >>> 13;
503
+ d5 &= 8191;
504
+ d5 += h5 * r0;
505
+ d5 += h6 * (5 * r9);
506
+ d5 += h7 * (5 * r8);
507
+ d5 += h8 * (5 * r7);
508
+ d5 += h9 * (5 * r6);
509
+ c += d5 >>> 13;
510
+ d5 &= 8191;
511
+ d6 = c;
512
+ d6 += h0 * r6;
513
+ d6 += h1 * r5;
514
+ d6 += h2 * r4;
515
+ d6 += h3 * r3;
516
+ d6 += h4 * r2;
517
+ c = d6 >>> 13;
518
+ d6 &= 8191;
519
+ d6 += h5 * r1;
520
+ d6 += h6 * r0;
521
+ d6 += h7 * (5 * r9);
522
+ d6 += h8 * (5 * r8);
523
+ d6 += h9 * (5 * r7);
524
+ c += d6 >>> 13;
525
+ d6 &= 8191;
526
+ d7 = c;
527
+ d7 += h0 * r7;
528
+ d7 += h1 * r6;
529
+ d7 += h2 * r5;
530
+ d7 += h3 * r4;
531
+ d7 += h4 * r3;
532
+ c = d7 >>> 13;
533
+ d7 &= 8191;
534
+ d7 += h5 * r2;
535
+ d7 += h6 * r1;
536
+ d7 += h7 * r0;
537
+ d7 += h8 * (5 * r9);
538
+ d7 += h9 * (5 * r8);
539
+ c += d7 >>> 13;
540
+ d7 &= 8191;
541
+ d8 = c;
542
+ d8 += h0 * r8;
543
+ d8 += h1 * r7;
544
+ d8 += h2 * r6;
545
+ d8 += h3 * r5;
546
+ d8 += h4 * r4;
547
+ c = d8 >>> 13;
548
+ d8 &= 8191;
549
+ d8 += h5 * r3;
550
+ d8 += h6 * r2;
551
+ d8 += h7 * r1;
552
+ d8 += h8 * r0;
553
+ d8 += h9 * (5 * r9);
554
+ c += d8 >>> 13;
555
+ d8 &= 8191;
556
+ d9 = c;
557
+ d9 += h0 * r9;
558
+ d9 += h1 * r8;
559
+ d9 += h2 * r7;
560
+ d9 += h3 * r6;
561
+ d9 += h4 * r5;
562
+ c = d9 >>> 13;
563
+ d9 &= 8191;
564
+ d9 += h5 * r4;
565
+ d9 += h6 * r3;
566
+ d9 += h7 * r2;
567
+ d9 += h8 * r1;
568
+ d9 += h9 * r0;
569
+ c += d9 >>> 13;
570
+ d9 &= 8191;
571
+ c = (c << 2) + c | 0;
572
+ c = c + d0 | 0;
573
+ d0 = c & 8191;
574
+ c = c >>> 13;
575
+ d1 += c;
576
+ h0 = d0;
577
+ h1 = d1;
578
+ h2 = d2;
579
+ h3 = d3;
580
+ h4 = d4;
581
+ h5 = d5;
582
+ h6 = d6;
583
+ h7 = d7;
584
+ h8 = d8;
585
+ h9 = d9;
586
+ mpos += 16;
587
+ bytes -= 16;
588
+ }
589
+ this.h[0] = h0;
590
+ this.h[1] = h1;
591
+ this.h[2] = h2;
592
+ this.h[3] = h3;
593
+ this.h[4] = h4;
594
+ this.h[5] = h5;
595
+ this.h[6] = h6;
596
+ this.h[7] = h7;
597
+ this.h[8] = h8;
598
+ this.h[9] = h9;
599
+ };
600
+ poly1305.prototype.finish = function(mac, macpos) {
601
+ var g = new Uint16Array(10);
602
+ var c, mask, f, i;
603
+ if (this.leftover) {
604
+ i = this.leftover;
605
+ this.buffer[i++] = 1;
606
+ for (; i < 16; i++) this.buffer[i] = 0;
607
+ this.fin = 1;
608
+ this.blocks(this.buffer, 0, 16);
609
+ }
610
+ c = this.h[1] >>> 13;
611
+ this.h[1] &= 8191;
612
+ for (i = 2; i < 10; i++) {
613
+ this.h[i] += c;
614
+ c = this.h[i] >>> 13;
615
+ this.h[i] &= 8191;
616
+ }
617
+ this.h[0] += c * 5;
618
+ c = this.h[0] >>> 13;
619
+ this.h[0] &= 8191;
620
+ this.h[1] += c;
621
+ c = this.h[1] >>> 13;
622
+ this.h[1] &= 8191;
623
+ this.h[2] += c;
624
+ g[0] = this.h[0] + 5;
625
+ c = g[0] >>> 13;
626
+ g[0] &= 8191;
627
+ for (i = 1; i < 10; i++) {
628
+ g[i] = this.h[i] + c;
629
+ c = g[i] >>> 13;
630
+ g[i] &= 8191;
631
+ }
632
+ g[9] -= 1 << 13;
633
+ mask = (c ^ 1) - 1;
634
+ for (i = 0; i < 10; i++) g[i] &= mask;
635
+ mask = ~mask;
636
+ for (i = 0; i < 10; i++) this.h[i] = this.h[i] & mask | g[i];
637
+ this.h[0] = (this.h[0] | this.h[1] << 13) & 65535;
638
+ this.h[1] = (this.h[1] >>> 3 | this.h[2] << 10) & 65535;
639
+ this.h[2] = (this.h[2] >>> 6 | this.h[3] << 7) & 65535;
640
+ this.h[3] = (this.h[3] >>> 9 | this.h[4] << 4) & 65535;
641
+ this.h[4] = (this.h[4] >>> 12 | this.h[5] << 1 | this.h[6] << 14) & 65535;
642
+ this.h[5] = (this.h[6] >>> 2 | this.h[7] << 11) & 65535;
643
+ this.h[6] = (this.h[7] >>> 5 | this.h[8] << 8) & 65535;
644
+ this.h[7] = (this.h[8] >>> 8 | this.h[9] << 5) & 65535;
645
+ f = this.h[0] + this.pad[0];
646
+ this.h[0] = f & 65535;
647
+ for (i = 1; i < 8; i++) {
648
+ f = (this.h[i] + this.pad[i] | 0) + (f >>> 16) | 0;
649
+ this.h[i] = f & 65535;
650
+ }
651
+ mac[macpos + 0] = this.h[0] >>> 0 & 255;
652
+ mac[macpos + 1] = this.h[0] >>> 8 & 255;
653
+ mac[macpos + 2] = this.h[1] >>> 0 & 255;
654
+ mac[macpos + 3] = this.h[1] >>> 8 & 255;
655
+ mac[macpos + 4] = this.h[2] >>> 0 & 255;
656
+ mac[macpos + 5] = this.h[2] >>> 8 & 255;
657
+ mac[macpos + 6] = this.h[3] >>> 0 & 255;
658
+ mac[macpos + 7] = this.h[3] >>> 8 & 255;
659
+ mac[macpos + 8] = this.h[4] >>> 0 & 255;
660
+ mac[macpos + 9] = this.h[4] >>> 8 & 255;
661
+ mac[macpos + 10] = this.h[5] >>> 0 & 255;
662
+ mac[macpos + 11] = this.h[5] >>> 8 & 255;
663
+ mac[macpos + 12] = this.h[6] >>> 0 & 255;
664
+ mac[macpos + 13] = this.h[6] >>> 8 & 255;
665
+ mac[macpos + 14] = this.h[7] >>> 0 & 255;
666
+ mac[macpos + 15] = this.h[7] >>> 8 & 255;
667
+ };
668
+ poly1305.prototype.update = function(m, mpos, bytes) {
669
+ var i, want;
670
+ if (this.leftover) {
671
+ want = 16 - this.leftover;
672
+ if (want > bytes)
673
+ want = bytes;
674
+ for (i = 0; i < want; i++)
675
+ this.buffer[this.leftover + i] = m[mpos + i];
676
+ bytes -= want;
677
+ mpos += want;
678
+ this.leftover += want;
679
+ if (this.leftover < 16)
680
+ return;
681
+ this.blocks(this.buffer, 0, 16);
682
+ this.leftover = 0;
683
+ }
684
+ if (bytes >= 16) {
685
+ want = bytes - bytes % 16;
686
+ this.blocks(m, mpos, want);
687
+ mpos += want;
688
+ bytes -= want;
689
+ }
690
+ if (bytes) {
691
+ for (i = 0; i < bytes; i++)
692
+ this.buffer[this.leftover + i] = m[mpos + i];
693
+ this.leftover += bytes;
694
+ }
695
+ };
696
+ function crypto_onetimeauth(out, outpos, m, mpos, n, k) {
697
+ var s = new poly1305(k);
698
+ s.update(m, mpos, n);
699
+ s.finish(out, outpos);
700
+ return 0;
701
+ }
702
+ function crypto_onetimeauth_verify(h, hpos, m, mpos, n, k) {
703
+ var x = new Uint8Array(16);
704
+ crypto_onetimeauth(x, 0, m, mpos, n, k);
705
+ return crypto_verify_16(h, hpos, x, 0);
706
+ }
707
+ function crypto_secretbox(c, m, d, n, k) {
708
+ var i;
709
+ if (d < 32) return -1;
710
+ crypto_stream_xor(c, 0, m, 0, d, n, k);
711
+ crypto_onetimeauth(c, 16, c, 32, d - 32, c);
712
+ for (i = 0; i < 16; i++) c[i] = 0;
713
+ return 0;
714
+ }
715
+ function crypto_secretbox_open(m, c, d, n, k) {
716
+ var i;
717
+ var x = new Uint8Array(32);
718
+ if (d < 32) return -1;
719
+ crypto_stream(x, 0, 32, n, k);
720
+ if (crypto_onetimeauth_verify(c, 16, c, 32, d - 32, x) !== 0) return -1;
721
+ crypto_stream_xor(m, 0, c, 0, d, n, k);
722
+ for (i = 0; i < 32; i++) m[i] = 0;
723
+ return 0;
724
+ }
725
+ function set25519(r, a) {
726
+ var i;
727
+ for (i = 0; i < 16; i++) r[i] = a[i] | 0;
728
+ }
729
+ function car25519(o) {
730
+ var i, v, c = 1;
731
+ for (i = 0; i < 16; i++) {
732
+ v = o[i] + c + 65535;
733
+ c = Math.floor(v / 65536);
734
+ o[i] = v - c * 65536;
735
+ }
736
+ o[0] += c - 1 + 37 * (c - 1);
737
+ }
738
+ function sel25519(p, q, b) {
739
+ var t, c = ~(b - 1);
740
+ for (var i = 0; i < 16; i++) {
741
+ t = c & (p[i] ^ q[i]);
742
+ p[i] ^= t;
743
+ q[i] ^= t;
744
+ }
745
+ }
746
+ function pack25519(o, n) {
747
+ var i, j, b;
748
+ var m = gf(), t = gf();
749
+ for (i = 0; i < 16; i++) t[i] = n[i];
750
+ car25519(t);
751
+ car25519(t);
752
+ car25519(t);
753
+ for (j = 0; j < 2; j++) {
754
+ m[0] = t[0] - 65517;
755
+ for (i = 1; i < 15; i++) {
756
+ m[i] = t[i] - 65535 - (m[i - 1] >> 16 & 1);
757
+ m[i - 1] &= 65535;
758
+ }
759
+ m[15] = t[15] - 32767 - (m[14] >> 16 & 1);
760
+ b = m[15] >> 16 & 1;
761
+ m[14] &= 65535;
762
+ sel25519(t, m, 1 - b);
763
+ }
764
+ for (i = 0; i < 16; i++) {
765
+ o[2 * i] = t[i] & 255;
766
+ o[2 * i + 1] = t[i] >> 8;
767
+ }
768
+ }
769
+ function neq25519(a, b) {
770
+ var c = new Uint8Array(32), d = new Uint8Array(32);
771
+ pack25519(c, a);
772
+ pack25519(d, b);
773
+ return crypto_verify_32(c, 0, d, 0);
774
+ }
775
+ function par25519(a) {
776
+ var d = new Uint8Array(32);
777
+ pack25519(d, a);
778
+ return d[0] & 1;
779
+ }
780
+ function unpack25519(o, n) {
781
+ var i;
782
+ for (i = 0; i < 16; i++) o[i] = n[2 * i] + (n[2 * i + 1] << 8);
783
+ o[15] &= 32767;
784
+ }
785
+ function A(o, a, b) {
786
+ for (var i = 0; i < 16; i++) o[i] = a[i] + b[i];
787
+ }
788
+ function Z(o, a, b) {
789
+ for (var i = 0; i < 16; i++) o[i] = a[i] - b[i];
790
+ }
791
+ function M(o, a, b) {
792
+ 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];
793
+ v = a[0];
794
+ t0 += v * b0;
795
+ t1 += v * b1;
796
+ t2 += v * b2;
797
+ t3 += v * b3;
798
+ t4 += v * b4;
799
+ t5 += v * b5;
800
+ t6 += v * b6;
801
+ t7 += v * b7;
802
+ t8 += v * b8;
803
+ t9 += v * b9;
804
+ t10 += v * b10;
805
+ t11 += v * b11;
806
+ t12 += v * b12;
807
+ t13 += v * b13;
808
+ t14 += v * b14;
809
+ t15 += v * b15;
810
+ v = a[1];
811
+ t1 += v * b0;
812
+ t2 += v * b1;
813
+ t3 += v * b2;
814
+ t4 += v * b3;
815
+ t5 += v * b4;
816
+ t6 += v * b5;
817
+ t7 += v * b6;
818
+ t8 += v * b7;
819
+ t9 += v * b8;
820
+ t10 += v * b9;
821
+ t11 += v * b10;
822
+ t12 += v * b11;
823
+ t13 += v * b12;
824
+ t14 += v * b13;
825
+ t15 += v * b14;
826
+ t16 += v * b15;
827
+ v = a[2];
828
+ t2 += v * b0;
829
+ t3 += v * b1;
830
+ t4 += v * b2;
831
+ t5 += v * b3;
832
+ t6 += v * b4;
833
+ t7 += v * b5;
834
+ t8 += v * b6;
835
+ t9 += v * b7;
836
+ t10 += v * b8;
837
+ t11 += v * b9;
838
+ t12 += v * b10;
839
+ t13 += v * b11;
840
+ t14 += v * b12;
841
+ t15 += v * b13;
842
+ t16 += v * b14;
843
+ t17 += v * b15;
844
+ v = a[3];
845
+ t3 += v * b0;
846
+ t4 += v * b1;
847
+ t5 += v * b2;
848
+ t6 += v * b3;
849
+ t7 += v * b4;
850
+ t8 += v * b5;
851
+ t9 += v * b6;
852
+ t10 += v * b7;
853
+ t11 += v * b8;
854
+ t12 += v * b9;
855
+ t13 += v * b10;
856
+ t14 += v * b11;
857
+ t15 += v * b12;
858
+ t16 += v * b13;
859
+ t17 += v * b14;
860
+ t18 += v * b15;
861
+ v = a[4];
862
+ t4 += v * b0;
863
+ t5 += v * b1;
864
+ t6 += v * b2;
865
+ t7 += v * b3;
866
+ t8 += v * b4;
867
+ t9 += v * b5;
868
+ t10 += v * b6;
869
+ t11 += v * b7;
870
+ t12 += v * b8;
871
+ t13 += v * b9;
872
+ t14 += v * b10;
873
+ t15 += v * b11;
874
+ t16 += v * b12;
875
+ t17 += v * b13;
876
+ t18 += v * b14;
877
+ t19 += v * b15;
878
+ v = a[5];
879
+ t5 += v * b0;
880
+ t6 += v * b1;
881
+ t7 += v * b2;
882
+ t8 += v * b3;
883
+ t9 += v * b4;
884
+ t10 += v * b5;
885
+ t11 += v * b6;
886
+ t12 += v * b7;
887
+ t13 += v * b8;
888
+ t14 += v * b9;
889
+ t15 += v * b10;
890
+ t16 += v * b11;
891
+ t17 += v * b12;
892
+ t18 += v * b13;
893
+ t19 += v * b14;
894
+ t20 += v * b15;
895
+ v = a[6];
896
+ t6 += v * b0;
897
+ t7 += v * b1;
898
+ t8 += v * b2;
899
+ t9 += v * b3;
900
+ t10 += v * b4;
901
+ t11 += v * b5;
902
+ t12 += v * b6;
903
+ t13 += v * b7;
904
+ t14 += v * b8;
905
+ t15 += v * b9;
906
+ t16 += v * b10;
907
+ t17 += v * b11;
908
+ t18 += v * b12;
909
+ t19 += v * b13;
910
+ t20 += v * b14;
911
+ t21 += v * b15;
912
+ v = a[7];
913
+ t7 += v * b0;
914
+ t8 += v * b1;
915
+ t9 += v * b2;
916
+ t10 += v * b3;
917
+ t11 += v * b4;
918
+ t12 += v * b5;
919
+ t13 += v * b6;
920
+ t14 += v * b7;
921
+ t15 += v * b8;
922
+ t16 += v * b9;
923
+ t17 += v * b10;
924
+ t18 += v * b11;
925
+ t19 += v * b12;
926
+ t20 += v * b13;
927
+ t21 += v * b14;
928
+ t22 += v * b15;
929
+ v = a[8];
930
+ t8 += v * b0;
931
+ t9 += v * b1;
932
+ t10 += v * b2;
933
+ t11 += v * b3;
934
+ t12 += v * b4;
935
+ t13 += v * b5;
936
+ t14 += v * b6;
937
+ t15 += v * b7;
938
+ t16 += v * b8;
939
+ t17 += v * b9;
940
+ t18 += v * b10;
941
+ t19 += v * b11;
942
+ t20 += v * b12;
943
+ t21 += v * b13;
944
+ t22 += v * b14;
945
+ t23 += v * b15;
946
+ v = a[9];
947
+ t9 += v * b0;
948
+ t10 += v * b1;
949
+ t11 += v * b2;
950
+ t12 += v * b3;
951
+ t13 += v * b4;
952
+ t14 += v * b5;
953
+ t15 += v * b6;
954
+ t16 += v * b7;
955
+ t17 += v * b8;
956
+ t18 += v * b9;
957
+ t19 += v * b10;
958
+ t20 += v * b11;
959
+ t21 += v * b12;
960
+ t22 += v * b13;
961
+ t23 += v * b14;
962
+ t24 += v * b15;
963
+ v = a[10];
964
+ t10 += v * b0;
965
+ t11 += v * b1;
966
+ t12 += v * b2;
967
+ t13 += v * b3;
968
+ t14 += v * b4;
969
+ t15 += v * b5;
970
+ t16 += v * b6;
971
+ t17 += v * b7;
972
+ t18 += v * b8;
973
+ t19 += v * b9;
974
+ t20 += v * b10;
975
+ t21 += v * b11;
976
+ t22 += v * b12;
977
+ t23 += v * b13;
978
+ t24 += v * b14;
979
+ t25 += v * b15;
980
+ v = a[11];
981
+ t11 += v * b0;
982
+ t12 += v * b1;
983
+ t13 += v * b2;
984
+ t14 += v * b3;
985
+ t15 += v * b4;
986
+ t16 += v * b5;
987
+ t17 += v * b6;
988
+ t18 += v * b7;
989
+ t19 += v * b8;
990
+ t20 += v * b9;
991
+ t21 += v * b10;
992
+ t22 += v * b11;
993
+ t23 += v * b12;
994
+ t24 += v * b13;
995
+ t25 += v * b14;
996
+ t26 += v * b15;
997
+ v = a[12];
998
+ t12 += v * b0;
999
+ t13 += v * b1;
1000
+ t14 += v * b2;
1001
+ t15 += v * b3;
1002
+ t16 += v * b4;
1003
+ t17 += v * b5;
1004
+ t18 += v * b6;
1005
+ t19 += v * b7;
1006
+ t20 += v * b8;
1007
+ t21 += v * b9;
1008
+ t22 += v * b10;
1009
+ t23 += v * b11;
1010
+ t24 += v * b12;
1011
+ t25 += v * b13;
1012
+ t26 += v * b14;
1013
+ t27 += v * b15;
1014
+ v = a[13];
1015
+ t13 += v * b0;
1016
+ t14 += v * b1;
1017
+ t15 += v * b2;
1018
+ t16 += v * b3;
1019
+ t17 += v * b4;
1020
+ t18 += v * b5;
1021
+ t19 += v * b6;
1022
+ t20 += v * b7;
1023
+ t21 += v * b8;
1024
+ t22 += v * b9;
1025
+ t23 += v * b10;
1026
+ t24 += v * b11;
1027
+ t25 += v * b12;
1028
+ t26 += v * b13;
1029
+ t27 += v * b14;
1030
+ t28 += v * b15;
1031
+ v = a[14];
1032
+ t14 += v * b0;
1033
+ t15 += v * b1;
1034
+ t16 += v * b2;
1035
+ t17 += v * b3;
1036
+ t18 += v * b4;
1037
+ t19 += v * b5;
1038
+ t20 += v * b6;
1039
+ t21 += v * b7;
1040
+ t22 += v * b8;
1041
+ t23 += v * b9;
1042
+ t24 += v * b10;
1043
+ t25 += v * b11;
1044
+ t26 += v * b12;
1045
+ t27 += v * b13;
1046
+ t28 += v * b14;
1047
+ t29 += v * b15;
1048
+ v = a[15];
1049
+ t15 += v * b0;
1050
+ t16 += v * b1;
1051
+ t17 += v * b2;
1052
+ t18 += v * b3;
1053
+ t19 += v * b4;
1054
+ t20 += v * b5;
1055
+ t21 += v * b6;
1056
+ t22 += v * b7;
1057
+ t23 += v * b8;
1058
+ t24 += v * b9;
1059
+ t25 += v * b10;
1060
+ t26 += v * b11;
1061
+ t27 += v * b12;
1062
+ t28 += v * b13;
1063
+ t29 += v * b14;
1064
+ t30 += v * b15;
1065
+ t0 += 38 * t16;
1066
+ t1 += 38 * t17;
1067
+ t2 += 38 * t18;
1068
+ t3 += 38 * t19;
1069
+ t4 += 38 * t20;
1070
+ t5 += 38 * t21;
1071
+ t6 += 38 * t22;
1072
+ t7 += 38 * t23;
1073
+ t8 += 38 * t24;
1074
+ t9 += 38 * t25;
1075
+ t10 += 38 * t26;
1076
+ t11 += 38 * t27;
1077
+ t12 += 38 * t28;
1078
+ t13 += 38 * t29;
1079
+ t14 += 38 * t30;
1080
+ c = 1;
1081
+ v = t0 + c + 65535;
1082
+ c = Math.floor(v / 65536);
1083
+ t0 = v - c * 65536;
1084
+ v = t1 + c + 65535;
1085
+ c = Math.floor(v / 65536);
1086
+ t1 = v - c * 65536;
1087
+ v = t2 + c + 65535;
1088
+ c = Math.floor(v / 65536);
1089
+ t2 = v - c * 65536;
1090
+ v = t3 + c + 65535;
1091
+ c = Math.floor(v / 65536);
1092
+ t3 = v - c * 65536;
1093
+ v = t4 + c + 65535;
1094
+ c = Math.floor(v / 65536);
1095
+ t4 = v - c * 65536;
1096
+ v = t5 + c + 65535;
1097
+ c = Math.floor(v / 65536);
1098
+ t5 = v - c * 65536;
1099
+ v = t6 + c + 65535;
1100
+ c = Math.floor(v / 65536);
1101
+ t6 = v - c * 65536;
1102
+ v = t7 + c + 65535;
1103
+ c = Math.floor(v / 65536);
1104
+ t7 = v - c * 65536;
1105
+ v = t8 + c + 65535;
1106
+ c = Math.floor(v / 65536);
1107
+ t8 = v - c * 65536;
1108
+ v = t9 + c + 65535;
1109
+ c = Math.floor(v / 65536);
1110
+ t9 = v - c * 65536;
1111
+ v = t10 + c + 65535;
1112
+ c = Math.floor(v / 65536);
1113
+ t10 = v - c * 65536;
1114
+ v = t11 + c + 65535;
1115
+ c = Math.floor(v / 65536);
1116
+ t11 = v - c * 65536;
1117
+ v = t12 + c + 65535;
1118
+ c = Math.floor(v / 65536);
1119
+ t12 = v - c * 65536;
1120
+ v = t13 + c + 65535;
1121
+ c = Math.floor(v / 65536);
1122
+ t13 = v - c * 65536;
1123
+ v = t14 + c + 65535;
1124
+ c = Math.floor(v / 65536);
1125
+ t14 = v - c * 65536;
1126
+ v = t15 + c + 65535;
1127
+ c = Math.floor(v / 65536);
1128
+ t15 = v - c * 65536;
1129
+ t0 += c - 1 + 37 * (c - 1);
1130
+ c = 1;
1131
+ v = t0 + c + 65535;
1132
+ c = Math.floor(v / 65536);
1133
+ t0 = v - c * 65536;
1134
+ v = t1 + c + 65535;
1135
+ c = Math.floor(v / 65536);
1136
+ t1 = v - c * 65536;
1137
+ v = t2 + c + 65535;
1138
+ c = Math.floor(v / 65536);
1139
+ t2 = v - c * 65536;
1140
+ v = t3 + c + 65535;
1141
+ c = Math.floor(v / 65536);
1142
+ t3 = v - c * 65536;
1143
+ v = t4 + c + 65535;
1144
+ c = Math.floor(v / 65536);
1145
+ t4 = v - c * 65536;
1146
+ v = t5 + c + 65535;
1147
+ c = Math.floor(v / 65536);
1148
+ t5 = v - c * 65536;
1149
+ v = t6 + c + 65535;
1150
+ c = Math.floor(v / 65536);
1151
+ t6 = v - c * 65536;
1152
+ v = t7 + c + 65535;
1153
+ c = Math.floor(v / 65536);
1154
+ t7 = v - c * 65536;
1155
+ v = t8 + c + 65535;
1156
+ c = Math.floor(v / 65536);
1157
+ t8 = v - c * 65536;
1158
+ v = t9 + c + 65535;
1159
+ c = Math.floor(v / 65536);
1160
+ t9 = v - c * 65536;
1161
+ v = t10 + c + 65535;
1162
+ c = Math.floor(v / 65536);
1163
+ t10 = v - c * 65536;
1164
+ v = t11 + c + 65535;
1165
+ c = Math.floor(v / 65536);
1166
+ t11 = v - c * 65536;
1167
+ v = t12 + c + 65535;
1168
+ c = Math.floor(v / 65536);
1169
+ t12 = v - c * 65536;
1170
+ v = t13 + c + 65535;
1171
+ c = Math.floor(v / 65536);
1172
+ t13 = v - c * 65536;
1173
+ v = t14 + c + 65535;
1174
+ c = Math.floor(v / 65536);
1175
+ t14 = v - c * 65536;
1176
+ v = t15 + c + 65535;
1177
+ c = Math.floor(v / 65536);
1178
+ t15 = v - c * 65536;
1179
+ t0 += c - 1 + 37 * (c - 1);
1180
+ o[0] = t0;
1181
+ o[1] = t1;
1182
+ o[2] = t2;
1183
+ o[3] = t3;
1184
+ o[4] = t4;
1185
+ o[5] = t5;
1186
+ o[6] = t6;
1187
+ o[7] = t7;
1188
+ o[8] = t8;
1189
+ o[9] = t9;
1190
+ o[10] = t10;
1191
+ o[11] = t11;
1192
+ o[12] = t12;
1193
+ o[13] = t13;
1194
+ o[14] = t14;
1195
+ o[15] = t15;
1196
+ }
1197
+ function S(o, a) {
1198
+ M(o, a, a);
1199
+ }
1200
+ function inv25519(o, i) {
1201
+ var c = gf();
1202
+ var a;
1203
+ for (a = 0; a < 16; a++) c[a] = i[a];
1204
+ for (a = 253; a >= 0; a--) {
1205
+ S(c, c);
1206
+ if (a !== 2 && a !== 4) M(c, c, i);
1207
+ }
1208
+ for (a = 0; a < 16; a++) o[a] = c[a];
1209
+ }
1210
+ function pow2523(o, i) {
1211
+ var c = gf();
1212
+ var a;
1213
+ for (a = 0; a < 16; a++) c[a] = i[a];
1214
+ for (a = 250; a >= 0; a--) {
1215
+ S(c, c);
1216
+ if (a !== 1) M(c, c, i);
1217
+ }
1218
+ for (a = 0; a < 16; a++) o[a] = c[a];
1219
+ }
1220
+ function crypto_scalarmult(q, n, p) {
1221
+ var z = new Uint8Array(32);
1222
+ var x = new Float64Array(80), r, i;
1223
+ var a = gf(), b = gf(), c = gf(), d = gf(), e = gf(), f = gf();
1224
+ for (i = 0; i < 31; i++) z[i] = n[i];
1225
+ z[31] = n[31] & 127 | 64;
1226
+ z[0] &= 248;
1227
+ unpack25519(x, p);
1228
+ for (i = 0; i < 16; i++) {
1229
+ b[i] = x[i];
1230
+ d[i] = a[i] = c[i] = 0;
1231
+ }
1232
+ a[0] = d[0] = 1;
1233
+ for (i = 254; i >= 0; --i) {
1234
+ r = z[i >>> 3] >>> (i & 7) & 1;
1235
+ sel25519(a, b, r);
1236
+ sel25519(c, d, r);
1237
+ A(e, a, c);
1238
+ Z(a, a, c);
1239
+ A(c, b, d);
1240
+ Z(b, b, d);
1241
+ S(d, e);
1242
+ S(f, a);
1243
+ M(a, c, a);
1244
+ M(c, b, e);
1245
+ A(e, a, c);
1246
+ Z(a, a, c);
1247
+ S(b, a);
1248
+ Z(c, d, f);
1249
+ M(a, c, _121665);
1250
+ A(a, a, d);
1251
+ M(c, c, a);
1252
+ M(a, d, f);
1253
+ M(d, b, x);
1254
+ S(b, e);
1255
+ sel25519(a, b, r);
1256
+ sel25519(c, d, r);
1257
+ }
1258
+ for (i = 0; i < 16; i++) {
1259
+ x[i + 16] = a[i];
1260
+ x[i + 32] = c[i];
1261
+ x[i + 48] = b[i];
1262
+ x[i + 64] = d[i];
1263
+ }
1264
+ var x32 = x.subarray(32);
1265
+ var x16 = x.subarray(16);
1266
+ inv25519(x32, x32);
1267
+ M(x16, x16, x32);
1268
+ pack25519(q, x16);
1269
+ return 0;
1270
+ }
1271
+ function crypto_scalarmult_base(q, n) {
1272
+ return crypto_scalarmult(q, n, _9);
1273
+ }
1274
+ function crypto_box_keypair(y, x) {
1275
+ randombytes(x, 32);
1276
+ return crypto_scalarmult_base(y, x);
1277
+ }
1278
+ function crypto_box_beforenm(k, y, x) {
1279
+ var s = new Uint8Array(32);
1280
+ crypto_scalarmult(s, x, y);
1281
+ return crypto_core_hsalsa20(k, _0, s, sigma);
1282
+ }
1283
+ var crypto_box_afternm = crypto_secretbox;
1284
+ var crypto_box_open_afternm = crypto_secretbox_open;
1285
+ function crypto_box(c, m, d, n, y, x) {
1286
+ var k = new Uint8Array(32);
1287
+ crypto_box_beforenm(k, y, x);
1288
+ return crypto_box_afternm(c, m, d, n, k);
1289
+ }
1290
+ function crypto_box_open(m, c, d, n, y, x) {
1291
+ var k = new Uint8Array(32);
1292
+ crypto_box_beforenm(k, y, x);
1293
+ return crypto_box_open_afternm(m, c, d, n, k);
1294
+ }
1295
+ var K = [
1296
+ 1116352408,
1297
+ 3609767458,
1298
+ 1899447441,
1299
+ 602891725,
1300
+ 3049323471,
1301
+ 3964484399,
1302
+ 3921009573,
1303
+ 2173295548,
1304
+ 961987163,
1305
+ 4081628472,
1306
+ 1508970993,
1307
+ 3053834265,
1308
+ 2453635748,
1309
+ 2937671579,
1310
+ 2870763221,
1311
+ 3664609560,
1312
+ 3624381080,
1313
+ 2734883394,
1314
+ 310598401,
1315
+ 1164996542,
1316
+ 607225278,
1317
+ 1323610764,
1318
+ 1426881987,
1319
+ 3590304994,
1320
+ 1925078388,
1321
+ 4068182383,
1322
+ 2162078206,
1323
+ 991336113,
1324
+ 2614888103,
1325
+ 633803317,
1326
+ 3248222580,
1327
+ 3479774868,
1328
+ 3835390401,
1329
+ 2666613458,
1330
+ 4022224774,
1331
+ 944711139,
1332
+ 264347078,
1333
+ 2341262773,
1334
+ 604807628,
1335
+ 2007800933,
1336
+ 770255983,
1337
+ 1495990901,
1338
+ 1249150122,
1339
+ 1856431235,
1340
+ 1555081692,
1341
+ 3175218132,
1342
+ 1996064986,
1343
+ 2198950837,
1344
+ 2554220882,
1345
+ 3999719339,
1346
+ 2821834349,
1347
+ 766784016,
1348
+ 2952996808,
1349
+ 2566594879,
1350
+ 3210313671,
1351
+ 3203337956,
1352
+ 3336571891,
1353
+ 1034457026,
1354
+ 3584528711,
1355
+ 2466948901,
1356
+ 113926993,
1357
+ 3758326383,
1358
+ 338241895,
1359
+ 168717936,
1360
+ 666307205,
1361
+ 1188179964,
1362
+ 773529912,
1363
+ 1546045734,
1364
+ 1294757372,
1365
+ 1522805485,
1366
+ 1396182291,
1367
+ 2643833823,
1368
+ 1695183700,
1369
+ 2343527390,
1370
+ 1986661051,
1371
+ 1014477480,
1372
+ 2177026350,
1373
+ 1206759142,
1374
+ 2456956037,
1375
+ 344077627,
1376
+ 2730485921,
1377
+ 1290863460,
1378
+ 2820302411,
1379
+ 3158454273,
1380
+ 3259730800,
1381
+ 3505952657,
1382
+ 3345764771,
1383
+ 106217008,
1384
+ 3516065817,
1385
+ 3606008344,
1386
+ 3600352804,
1387
+ 1432725776,
1388
+ 4094571909,
1389
+ 1467031594,
1390
+ 275423344,
1391
+ 851169720,
1392
+ 430227734,
1393
+ 3100823752,
1394
+ 506948616,
1395
+ 1363258195,
1396
+ 659060556,
1397
+ 3750685593,
1398
+ 883997877,
1399
+ 3785050280,
1400
+ 958139571,
1401
+ 3318307427,
1402
+ 1322822218,
1403
+ 3812723403,
1404
+ 1537002063,
1405
+ 2003034995,
1406
+ 1747873779,
1407
+ 3602036899,
1408
+ 1955562222,
1409
+ 1575990012,
1410
+ 2024104815,
1411
+ 1125592928,
1412
+ 2227730452,
1413
+ 2716904306,
1414
+ 2361852424,
1415
+ 442776044,
1416
+ 2428436474,
1417
+ 593698344,
1418
+ 2756734187,
1419
+ 3733110249,
1420
+ 3204031479,
1421
+ 2999351573,
1422
+ 3329325298,
1423
+ 3815920427,
1424
+ 3391569614,
1425
+ 3928383900,
1426
+ 3515267271,
1427
+ 566280711,
1428
+ 3940187606,
1429
+ 3454069534,
1430
+ 4118630271,
1431
+ 4000239992,
1432
+ 116418474,
1433
+ 1914138554,
1434
+ 174292421,
1435
+ 2731055270,
1436
+ 289380356,
1437
+ 3203993006,
1438
+ 460393269,
1439
+ 320620315,
1440
+ 685471733,
1441
+ 587496836,
1442
+ 852142971,
1443
+ 1086792851,
1444
+ 1017036298,
1445
+ 365543100,
1446
+ 1126000580,
1447
+ 2618297676,
1448
+ 1288033470,
1449
+ 3409855158,
1450
+ 1501505948,
1451
+ 4234509866,
1452
+ 1607167915,
1453
+ 987167468,
1454
+ 1816402316,
1455
+ 1246189591
1456
+ ];
1457
+ function crypto_hashblocks_hl(hh, hl, m, n) {
1458
+ var wh = new Int32Array(16), wl = new Int32Array(16), bh0, bh1, bh2, bh3, bh4, bh5, bh6, bh7, bl0, bl1, bl2, bl3, bl4, bl5, bl6, bl7, th, tl, i, j, h, l, a, b, c, d;
1459
+ var ah0 = hh[0], ah1 = hh[1], ah2 = hh[2], ah3 = hh[3], ah4 = hh[4], ah5 = hh[5], ah6 = hh[6], ah7 = hh[7], al0 = hl[0], al1 = hl[1], al2 = hl[2], al3 = hl[3], al4 = hl[4], al5 = hl[5], al6 = hl[6], al7 = hl[7];
1460
+ var pos = 0;
1461
+ while (n >= 128) {
1462
+ for (i = 0; i < 16; i++) {
1463
+ j = 8 * i + pos;
1464
+ wh[i] = m[j + 0] << 24 | m[j + 1] << 16 | m[j + 2] << 8 | m[j + 3];
1465
+ wl[i] = m[j + 4] << 24 | m[j + 5] << 16 | m[j + 6] << 8 | m[j + 7];
1466
+ }
1467
+ for (i = 0; i < 80; i++) {
1468
+ bh0 = ah0;
1469
+ bh1 = ah1;
1470
+ bh2 = ah2;
1471
+ bh3 = ah3;
1472
+ bh4 = ah4;
1473
+ bh5 = ah5;
1474
+ bh6 = ah6;
1475
+ bh7 = ah7;
1476
+ bl0 = al0;
1477
+ bl1 = al1;
1478
+ bl2 = al2;
1479
+ bl3 = al3;
1480
+ bl4 = al4;
1481
+ bl5 = al5;
1482
+ bl6 = al6;
1483
+ bl7 = al7;
1484
+ h = ah7;
1485
+ l = al7;
1486
+ a = l & 65535;
1487
+ b = l >>> 16;
1488
+ c = h & 65535;
1489
+ d = h >>> 16;
1490
+ h = (ah4 >>> 14 | al4 << 32 - 14) ^ (ah4 >>> 18 | al4 << 32 - 18) ^ (al4 >>> 41 - 32 | ah4 << 32 - (41 - 32));
1491
+ l = (al4 >>> 14 | ah4 << 32 - 14) ^ (al4 >>> 18 | ah4 << 32 - 18) ^ (ah4 >>> 41 - 32 | al4 << 32 - (41 - 32));
1492
+ a += l & 65535;
1493
+ b += l >>> 16;
1494
+ c += h & 65535;
1495
+ d += h >>> 16;
1496
+ h = ah4 & ah5 ^ ~ah4 & ah6;
1497
+ l = al4 & al5 ^ ~al4 & al6;
1498
+ a += l & 65535;
1499
+ b += l >>> 16;
1500
+ c += h & 65535;
1501
+ d += h >>> 16;
1502
+ h = K[i * 2];
1503
+ l = K[i * 2 + 1];
1504
+ a += l & 65535;
1505
+ b += l >>> 16;
1506
+ c += h & 65535;
1507
+ d += h >>> 16;
1508
+ h = wh[i % 16];
1509
+ l = wl[i % 16];
1510
+ a += l & 65535;
1511
+ b += l >>> 16;
1512
+ c += h & 65535;
1513
+ d += h >>> 16;
1514
+ b += a >>> 16;
1515
+ c += b >>> 16;
1516
+ d += c >>> 16;
1517
+ th = c & 65535 | d << 16;
1518
+ tl = a & 65535 | b << 16;
1519
+ h = th;
1520
+ l = tl;
1521
+ a = l & 65535;
1522
+ b = l >>> 16;
1523
+ c = h & 65535;
1524
+ d = h >>> 16;
1525
+ h = (ah0 >>> 28 | al0 << 32 - 28) ^ (al0 >>> 34 - 32 | ah0 << 32 - (34 - 32)) ^ (al0 >>> 39 - 32 | ah0 << 32 - (39 - 32));
1526
+ l = (al0 >>> 28 | ah0 << 32 - 28) ^ (ah0 >>> 34 - 32 | al0 << 32 - (34 - 32)) ^ (ah0 >>> 39 - 32 | al0 << 32 - (39 - 32));
1527
+ a += l & 65535;
1528
+ b += l >>> 16;
1529
+ c += h & 65535;
1530
+ d += h >>> 16;
1531
+ h = ah0 & ah1 ^ ah0 & ah2 ^ ah1 & ah2;
1532
+ l = al0 & al1 ^ al0 & al2 ^ al1 & al2;
1533
+ a += l & 65535;
1534
+ b += l >>> 16;
1535
+ c += h & 65535;
1536
+ d += h >>> 16;
1537
+ b += a >>> 16;
1538
+ c += b >>> 16;
1539
+ d += c >>> 16;
1540
+ bh7 = c & 65535 | d << 16;
1541
+ bl7 = a & 65535 | b << 16;
1542
+ h = bh3;
1543
+ l = bl3;
1544
+ a = l & 65535;
1545
+ b = l >>> 16;
1546
+ c = h & 65535;
1547
+ d = h >>> 16;
1548
+ h = th;
1549
+ l = tl;
1550
+ a += l & 65535;
1551
+ b += l >>> 16;
1552
+ c += h & 65535;
1553
+ d += h >>> 16;
1554
+ b += a >>> 16;
1555
+ c += b >>> 16;
1556
+ d += c >>> 16;
1557
+ bh3 = c & 65535 | d << 16;
1558
+ bl3 = a & 65535 | b << 16;
1559
+ ah1 = bh0;
1560
+ ah2 = bh1;
1561
+ ah3 = bh2;
1562
+ ah4 = bh3;
1563
+ ah5 = bh4;
1564
+ ah6 = bh5;
1565
+ ah7 = bh6;
1566
+ ah0 = bh7;
1567
+ al1 = bl0;
1568
+ al2 = bl1;
1569
+ al3 = bl2;
1570
+ al4 = bl3;
1571
+ al5 = bl4;
1572
+ al6 = bl5;
1573
+ al7 = bl6;
1574
+ al0 = bl7;
1575
+ if (i % 16 === 15) {
1576
+ for (j = 0; j < 16; j++) {
1577
+ h = wh[j];
1578
+ l = wl[j];
1579
+ a = l & 65535;
1580
+ b = l >>> 16;
1581
+ c = h & 65535;
1582
+ d = h >>> 16;
1583
+ h = wh[(j + 9) % 16];
1584
+ l = wl[(j + 9) % 16];
1585
+ a += l & 65535;
1586
+ b += l >>> 16;
1587
+ c += h & 65535;
1588
+ d += h >>> 16;
1589
+ th = wh[(j + 1) % 16];
1590
+ tl = wl[(j + 1) % 16];
1591
+ h = (th >>> 1 | tl << 32 - 1) ^ (th >>> 8 | tl << 32 - 8) ^ th >>> 7;
1592
+ l = (tl >>> 1 | th << 32 - 1) ^ (tl >>> 8 | th << 32 - 8) ^ (tl >>> 7 | th << 32 - 7);
1593
+ a += l & 65535;
1594
+ b += l >>> 16;
1595
+ c += h & 65535;
1596
+ d += h >>> 16;
1597
+ th = wh[(j + 14) % 16];
1598
+ tl = wl[(j + 14) % 16];
1599
+ h = (th >>> 19 | tl << 32 - 19) ^ (tl >>> 61 - 32 | th << 32 - (61 - 32)) ^ th >>> 6;
1600
+ l = (tl >>> 19 | th << 32 - 19) ^ (th >>> 61 - 32 | tl << 32 - (61 - 32)) ^ (tl >>> 6 | th << 32 - 6);
1601
+ a += l & 65535;
1602
+ b += l >>> 16;
1603
+ c += h & 65535;
1604
+ d += h >>> 16;
1605
+ b += a >>> 16;
1606
+ c += b >>> 16;
1607
+ d += c >>> 16;
1608
+ wh[j] = c & 65535 | d << 16;
1609
+ wl[j] = a & 65535 | b << 16;
1610
+ }
1611
+ }
1612
+ }
1613
+ h = ah0;
1614
+ l = al0;
1615
+ a = l & 65535;
1616
+ b = l >>> 16;
1617
+ c = h & 65535;
1618
+ d = h >>> 16;
1619
+ h = hh[0];
1620
+ l = hl[0];
1621
+ a += l & 65535;
1622
+ b += l >>> 16;
1623
+ c += h & 65535;
1624
+ d += h >>> 16;
1625
+ b += a >>> 16;
1626
+ c += b >>> 16;
1627
+ d += c >>> 16;
1628
+ hh[0] = ah0 = c & 65535 | d << 16;
1629
+ hl[0] = al0 = a & 65535 | b << 16;
1630
+ h = ah1;
1631
+ l = al1;
1632
+ a = l & 65535;
1633
+ b = l >>> 16;
1634
+ c = h & 65535;
1635
+ d = h >>> 16;
1636
+ h = hh[1];
1637
+ l = hl[1];
1638
+ a += l & 65535;
1639
+ b += l >>> 16;
1640
+ c += h & 65535;
1641
+ d += h >>> 16;
1642
+ b += a >>> 16;
1643
+ c += b >>> 16;
1644
+ d += c >>> 16;
1645
+ hh[1] = ah1 = c & 65535 | d << 16;
1646
+ hl[1] = al1 = a & 65535 | b << 16;
1647
+ h = ah2;
1648
+ l = al2;
1649
+ a = l & 65535;
1650
+ b = l >>> 16;
1651
+ c = h & 65535;
1652
+ d = h >>> 16;
1653
+ h = hh[2];
1654
+ l = hl[2];
1655
+ a += l & 65535;
1656
+ b += l >>> 16;
1657
+ c += h & 65535;
1658
+ d += h >>> 16;
1659
+ b += a >>> 16;
1660
+ c += b >>> 16;
1661
+ d += c >>> 16;
1662
+ hh[2] = ah2 = c & 65535 | d << 16;
1663
+ hl[2] = al2 = a & 65535 | b << 16;
1664
+ h = ah3;
1665
+ l = al3;
1666
+ a = l & 65535;
1667
+ b = l >>> 16;
1668
+ c = h & 65535;
1669
+ d = h >>> 16;
1670
+ h = hh[3];
1671
+ l = hl[3];
1672
+ a += l & 65535;
1673
+ b += l >>> 16;
1674
+ c += h & 65535;
1675
+ d += h >>> 16;
1676
+ b += a >>> 16;
1677
+ c += b >>> 16;
1678
+ d += c >>> 16;
1679
+ hh[3] = ah3 = c & 65535 | d << 16;
1680
+ hl[3] = al3 = a & 65535 | b << 16;
1681
+ h = ah4;
1682
+ l = al4;
1683
+ a = l & 65535;
1684
+ b = l >>> 16;
1685
+ c = h & 65535;
1686
+ d = h >>> 16;
1687
+ h = hh[4];
1688
+ l = hl[4];
1689
+ a += l & 65535;
1690
+ b += l >>> 16;
1691
+ c += h & 65535;
1692
+ d += h >>> 16;
1693
+ b += a >>> 16;
1694
+ c += b >>> 16;
1695
+ d += c >>> 16;
1696
+ hh[4] = ah4 = c & 65535 | d << 16;
1697
+ hl[4] = al4 = a & 65535 | b << 16;
1698
+ h = ah5;
1699
+ l = al5;
1700
+ a = l & 65535;
1701
+ b = l >>> 16;
1702
+ c = h & 65535;
1703
+ d = h >>> 16;
1704
+ h = hh[5];
1705
+ l = hl[5];
1706
+ a += l & 65535;
1707
+ b += l >>> 16;
1708
+ c += h & 65535;
1709
+ d += h >>> 16;
1710
+ b += a >>> 16;
1711
+ c += b >>> 16;
1712
+ d += c >>> 16;
1713
+ hh[5] = ah5 = c & 65535 | d << 16;
1714
+ hl[5] = al5 = a & 65535 | b << 16;
1715
+ h = ah6;
1716
+ l = al6;
1717
+ a = l & 65535;
1718
+ b = l >>> 16;
1719
+ c = h & 65535;
1720
+ d = h >>> 16;
1721
+ h = hh[6];
1722
+ l = hl[6];
1723
+ a += l & 65535;
1724
+ b += l >>> 16;
1725
+ c += h & 65535;
1726
+ d += h >>> 16;
1727
+ b += a >>> 16;
1728
+ c += b >>> 16;
1729
+ d += c >>> 16;
1730
+ hh[6] = ah6 = c & 65535 | d << 16;
1731
+ hl[6] = al6 = a & 65535 | b << 16;
1732
+ h = ah7;
1733
+ l = al7;
1734
+ a = l & 65535;
1735
+ b = l >>> 16;
1736
+ c = h & 65535;
1737
+ d = h >>> 16;
1738
+ h = hh[7];
1739
+ l = hl[7];
1740
+ a += l & 65535;
1741
+ b += l >>> 16;
1742
+ c += h & 65535;
1743
+ d += h >>> 16;
1744
+ b += a >>> 16;
1745
+ c += b >>> 16;
1746
+ d += c >>> 16;
1747
+ hh[7] = ah7 = c & 65535 | d << 16;
1748
+ hl[7] = al7 = a & 65535 | b << 16;
1749
+ pos += 128;
1750
+ n -= 128;
1751
+ }
1752
+ return n;
1753
+ }
1754
+ function crypto_hash(out, m, n) {
1755
+ var hh = new Int32Array(8), hl = new Int32Array(8), x = new Uint8Array(256), i, b = n;
1756
+ hh[0] = 1779033703;
1757
+ hh[1] = 3144134277;
1758
+ hh[2] = 1013904242;
1759
+ hh[3] = 2773480762;
1760
+ hh[4] = 1359893119;
1761
+ hh[5] = 2600822924;
1762
+ hh[6] = 528734635;
1763
+ hh[7] = 1541459225;
1764
+ hl[0] = 4089235720;
1765
+ hl[1] = 2227873595;
1766
+ hl[2] = 4271175723;
1767
+ hl[3] = 1595750129;
1768
+ hl[4] = 2917565137;
1769
+ hl[5] = 725511199;
1770
+ hl[6] = 4215389547;
1771
+ hl[7] = 327033209;
1772
+ crypto_hashblocks_hl(hh, hl, m, n);
1773
+ n %= 128;
1774
+ for (i = 0; i < n; i++) x[i] = m[b - n + i];
1775
+ x[n] = 128;
1776
+ n = 256 - 128 * (n < 112 ? 1 : 0);
1777
+ x[n - 9] = 0;
1778
+ ts64(x, n - 8, b / 536870912 | 0, b << 3);
1779
+ crypto_hashblocks_hl(hh, hl, x, n);
1780
+ for (i = 0; i < 8; i++) ts64(out, 8 * i, hh[i], hl[i]);
1781
+ return 0;
1782
+ }
1783
+ function add(p, q) {
1784
+ var a = gf(), b = gf(), c = gf(), d = gf(), e = gf(), f = gf(), g = gf(), h = gf(), t = gf();
1785
+ Z(a, p[1], p[0]);
1786
+ Z(t, q[1], q[0]);
1787
+ M(a, a, t);
1788
+ A(b, p[0], p[1]);
1789
+ A(t, q[0], q[1]);
1790
+ M(b, b, t);
1791
+ M(c, p[3], q[3]);
1792
+ M(c, c, D2);
1793
+ M(d, p[2], q[2]);
1794
+ A(d, d, d);
1795
+ Z(e, b, a);
1796
+ Z(f, d, c);
1797
+ A(g, d, c);
1798
+ A(h, b, a);
1799
+ M(p[0], e, f);
1800
+ M(p[1], h, g);
1801
+ M(p[2], g, f);
1802
+ M(p[3], e, h);
1803
+ }
1804
+ function cswap(p, q, b) {
1805
+ var i;
1806
+ for (i = 0; i < 4; i++) {
1807
+ sel25519(p[i], q[i], b);
1808
+ }
1809
+ }
1810
+ function pack(r, p) {
1811
+ var tx = gf(), ty = gf(), zi = gf();
1812
+ inv25519(zi, p[2]);
1813
+ M(tx, p[0], zi);
1814
+ M(ty, p[1], zi);
1815
+ pack25519(r, ty);
1816
+ r[31] ^= par25519(tx) << 7;
1817
+ }
1818
+ function scalarmult(p, q, s) {
1819
+ var b, i;
1820
+ set25519(p[0], gf0);
1821
+ set25519(p[1], gf1);
1822
+ set25519(p[2], gf1);
1823
+ set25519(p[3], gf0);
1824
+ for (i = 255; i >= 0; --i) {
1825
+ b = s[i / 8 | 0] >> (i & 7) & 1;
1826
+ cswap(p, q, b);
1827
+ add(q, p);
1828
+ add(p, p);
1829
+ cswap(p, q, b);
1830
+ }
1831
+ }
1832
+ function scalarbase(p, s) {
1833
+ var q = [gf(), gf(), gf(), gf()];
1834
+ set25519(q[0], X);
1835
+ set25519(q[1], Y);
1836
+ set25519(q[2], gf1);
1837
+ M(q[3], X, Y);
1838
+ scalarmult(p, q, s);
1839
+ }
1840
+ function crypto_sign_keypair(pk, sk, seeded) {
1841
+ var d = new Uint8Array(64);
1842
+ var p = [gf(), gf(), gf(), gf()];
1843
+ var i;
1844
+ if (!seeded) randombytes(sk, 32);
1845
+ crypto_hash(d, sk, 32);
1846
+ d[0] &= 248;
1847
+ d[31] &= 127;
1848
+ d[31] |= 64;
1849
+ scalarbase(p, d);
1850
+ pack(pk, p);
1851
+ for (i = 0; i < 32; i++) sk[i + 32] = pk[i];
1852
+ return 0;
1853
+ }
1854
+ var L = new Float64Array([237, 211, 245, 92, 26, 99, 18, 88, 214, 156, 247, 162, 222, 249, 222, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16]);
1855
+ function modL(r, x) {
1856
+ var carry, i, j, k;
1857
+ for (i = 63; i >= 32; --i) {
1858
+ carry = 0;
1859
+ for (j = i - 32, k = i - 12; j < k; ++j) {
1860
+ x[j] += carry - 16 * x[i] * L[j - (i - 32)];
1861
+ carry = Math.floor((x[j] + 128) / 256);
1862
+ x[j] -= carry * 256;
1863
+ }
1864
+ x[j] += carry;
1865
+ x[i] = 0;
1866
+ }
1867
+ carry = 0;
1868
+ for (j = 0; j < 32; j++) {
1869
+ x[j] += carry - (x[31] >> 4) * L[j];
1870
+ carry = x[j] >> 8;
1871
+ x[j] &= 255;
1872
+ }
1873
+ for (j = 0; j < 32; j++) x[j] -= carry * L[j];
1874
+ for (i = 0; i < 32; i++) {
1875
+ x[i + 1] += x[i] >> 8;
1876
+ r[i] = x[i] & 255;
1877
+ }
1878
+ }
1879
+ function reduce(r) {
1880
+ var x = new Float64Array(64), i;
1881
+ for (i = 0; i < 64; i++) x[i] = r[i];
1882
+ for (i = 0; i < 64; i++) r[i] = 0;
1883
+ modL(r, x);
1884
+ }
1885
+ function crypto_sign(sm, m, n, sk) {
1886
+ var d = new Uint8Array(64), h = new Uint8Array(64), r = new Uint8Array(64);
1887
+ var i, j, x = new Float64Array(64);
1888
+ var p = [gf(), gf(), gf(), gf()];
1889
+ crypto_hash(d, sk, 32);
1890
+ d[0] &= 248;
1891
+ d[31] &= 127;
1892
+ d[31] |= 64;
1893
+ var smlen = n + 64;
1894
+ for (i = 0; i < n; i++) sm[64 + i] = m[i];
1895
+ for (i = 0; i < 32; i++) sm[32 + i] = d[32 + i];
1896
+ crypto_hash(r, sm.subarray(32), n + 32);
1897
+ reduce(r);
1898
+ scalarbase(p, r);
1899
+ pack(sm, p);
1900
+ for (i = 32; i < 64; i++) sm[i] = sk[i];
1901
+ crypto_hash(h, sm, n + 64);
1902
+ reduce(h);
1903
+ for (i = 0; i < 64; i++) x[i] = 0;
1904
+ for (i = 0; i < 32; i++) x[i] = r[i];
1905
+ for (i = 0; i < 32; i++) {
1906
+ for (j = 0; j < 32; j++) {
1907
+ x[i + j] += h[i] * d[j];
1908
+ }
1909
+ }
1910
+ modL(sm.subarray(32), x);
1911
+ return smlen;
1912
+ }
1913
+ function unpackneg(r, p) {
1914
+ var t = gf(), chk = gf(), num = gf(), den = gf(), den2 = gf(), den4 = gf(), den6 = gf();
1915
+ set25519(r[2], gf1);
1916
+ unpack25519(r[1], p);
1917
+ S(num, r[1]);
1918
+ M(den, num, D);
1919
+ Z(num, num, r[2]);
1920
+ A(den, r[2], den);
1921
+ S(den2, den);
1922
+ S(den4, den2);
1923
+ M(den6, den4, den2);
1924
+ M(t, den6, num);
1925
+ M(t, t, den);
1926
+ pow2523(t, t);
1927
+ M(t, t, num);
1928
+ M(t, t, den);
1929
+ M(t, t, den);
1930
+ M(r[0], t, den);
1931
+ S(chk, r[0]);
1932
+ M(chk, chk, den);
1933
+ if (neq25519(chk, num)) M(r[0], r[0], I);
1934
+ S(chk, r[0]);
1935
+ M(chk, chk, den);
1936
+ if (neq25519(chk, num)) return -1;
1937
+ if (par25519(r[0]) === p[31] >> 7) Z(r[0], gf0, r[0]);
1938
+ M(r[3], r[0], r[1]);
1939
+ return 0;
1940
+ }
1941
+ function crypto_sign_open(m, sm, n, pk) {
1942
+ var i;
1943
+ var t = new Uint8Array(32), h = new Uint8Array(64);
1944
+ var p = [gf(), gf(), gf(), gf()], q = [gf(), gf(), gf(), gf()];
1945
+ if (n < 64) return -1;
1946
+ if (unpackneg(q, pk)) return -1;
1947
+ for (i = 0; i < n; i++) m[i] = sm[i];
1948
+ for (i = 0; i < 32; i++) m[i + 32] = pk[i];
1949
+ crypto_hash(h, m, n);
1950
+ reduce(h);
1951
+ scalarmult(p, q, h);
1952
+ scalarbase(q, sm.subarray(32));
1953
+ add(p, q);
1954
+ pack(t, p);
1955
+ n -= 64;
1956
+ if (crypto_verify_32(sm, 0, t, 0)) {
1957
+ for (i = 0; i < n; i++) m[i] = 0;
1958
+ return -1;
1959
+ }
1960
+ for (i = 0; i < n; i++) m[i] = sm[i + 64];
1961
+ return n;
1962
+ }
1963
+ var crypto_secretbox_KEYBYTES = 32, crypto_secretbox_NONCEBYTES = 24, crypto_secretbox_ZEROBYTES = 32, crypto_secretbox_BOXZEROBYTES = 16, crypto_scalarmult_BYTES = 32, crypto_scalarmult_SCALARBYTES = 32, crypto_box_PUBLICKEYBYTES = 32, crypto_box_SECRETKEYBYTES = 32, crypto_box_BEFORENMBYTES = 32, crypto_box_NONCEBYTES = crypto_secretbox_NONCEBYTES, crypto_box_ZEROBYTES = crypto_secretbox_ZEROBYTES, crypto_box_BOXZEROBYTES = crypto_secretbox_BOXZEROBYTES, crypto_sign_BYTES = 64, crypto_sign_PUBLICKEYBYTES = 32, crypto_sign_SECRETKEYBYTES = 64, crypto_sign_SEEDBYTES = 32, crypto_hash_BYTES = 64;
1964
+ nacl.lowlevel = {
1965
+ crypto_core_hsalsa20,
1966
+ crypto_stream_xor,
1967
+ crypto_stream,
1968
+ crypto_stream_salsa20_xor,
1969
+ crypto_stream_salsa20,
1970
+ crypto_onetimeauth,
1971
+ crypto_onetimeauth_verify,
1972
+ crypto_verify_16,
1973
+ crypto_verify_32,
1974
+ crypto_secretbox,
1975
+ crypto_secretbox_open,
1976
+ crypto_scalarmult,
1977
+ crypto_scalarmult_base,
1978
+ crypto_box_beforenm,
1979
+ crypto_box_afternm,
1980
+ crypto_box,
1981
+ crypto_box_open,
1982
+ crypto_box_keypair,
1983
+ crypto_hash,
1984
+ crypto_sign,
1985
+ crypto_sign_keypair,
1986
+ crypto_sign_open,
1987
+ crypto_secretbox_KEYBYTES,
1988
+ crypto_secretbox_NONCEBYTES,
1989
+ crypto_secretbox_ZEROBYTES,
1990
+ crypto_secretbox_BOXZEROBYTES,
1991
+ crypto_scalarmult_BYTES,
1992
+ crypto_scalarmult_SCALARBYTES,
1993
+ crypto_box_PUBLICKEYBYTES,
1994
+ crypto_box_SECRETKEYBYTES,
1995
+ crypto_box_BEFORENMBYTES,
1996
+ crypto_box_NONCEBYTES,
1997
+ crypto_box_ZEROBYTES,
1998
+ crypto_box_BOXZEROBYTES,
1999
+ crypto_sign_BYTES,
2000
+ crypto_sign_PUBLICKEYBYTES,
2001
+ crypto_sign_SECRETKEYBYTES,
2002
+ crypto_sign_SEEDBYTES,
2003
+ crypto_hash_BYTES,
2004
+ gf,
2005
+ D,
2006
+ L,
2007
+ pack25519,
2008
+ unpack25519,
2009
+ M,
2010
+ A,
2011
+ S,
2012
+ Z,
2013
+ pow2523,
2014
+ add,
2015
+ set25519,
2016
+ modL,
2017
+ scalarmult,
2018
+ scalarbase
2019
+ };
2020
+ function checkLengths(k, n) {
2021
+ if (k.length !== crypto_secretbox_KEYBYTES) throw new Error("bad key size");
2022
+ if (n.length !== crypto_secretbox_NONCEBYTES) throw new Error("bad nonce size");
2023
+ }
2024
+ function checkBoxLengths(pk, sk) {
2025
+ if (pk.length !== crypto_box_PUBLICKEYBYTES) throw new Error("bad public key size");
2026
+ if (sk.length !== crypto_box_SECRETKEYBYTES) throw new Error("bad secret key size");
2027
+ }
2028
+ function checkArrayTypes() {
2029
+ for (var i = 0; i < arguments.length; i++) {
2030
+ if (!(arguments[i] instanceof Uint8Array))
2031
+ throw new TypeError("unexpected type, use Uint8Array");
2032
+ }
2033
+ }
2034
+ function cleanup(arr) {
2035
+ for (var i = 0; i < arr.length; i++) arr[i] = 0;
2036
+ }
2037
+ nacl.randomBytes = function(n) {
2038
+ var b = new Uint8Array(n);
2039
+ randombytes(b, n);
2040
+ return b;
2041
+ };
2042
+ nacl.secretbox = function(msg, nonce, key) {
2043
+ checkArrayTypes(msg, nonce, key);
2044
+ checkLengths(key, nonce);
2045
+ var m = new Uint8Array(crypto_secretbox_ZEROBYTES + msg.length);
2046
+ var c = new Uint8Array(m.length);
2047
+ for (var i = 0; i < msg.length; i++) m[i + crypto_secretbox_ZEROBYTES] = msg[i];
2048
+ crypto_secretbox(c, m, m.length, nonce, key);
2049
+ return c.subarray(crypto_secretbox_BOXZEROBYTES);
2050
+ };
2051
+ nacl.secretbox.open = function(box, nonce, key) {
2052
+ checkArrayTypes(box, nonce, key);
2053
+ checkLengths(key, nonce);
2054
+ var c = new Uint8Array(crypto_secretbox_BOXZEROBYTES + box.length);
2055
+ var m = new Uint8Array(c.length);
2056
+ for (var i = 0; i < box.length; i++) c[i + crypto_secretbox_BOXZEROBYTES] = box[i];
2057
+ if (c.length < 32) return null;
2058
+ if (crypto_secretbox_open(m, c, c.length, nonce, key) !== 0) return null;
2059
+ return m.subarray(crypto_secretbox_ZEROBYTES);
2060
+ };
2061
+ nacl.secretbox.keyLength = crypto_secretbox_KEYBYTES;
2062
+ nacl.secretbox.nonceLength = crypto_secretbox_NONCEBYTES;
2063
+ nacl.secretbox.overheadLength = crypto_secretbox_BOXZEROBYTES;
2064
+ nacl.scalarMult = function(n, p) {
2065
+ checkArrayTypes(n, p);
2066
+ if (n.length !== crypto_scalarmult_SCALARBYTES) throw new Error("bad n size");
2067
+ if (p.length !== crypto_scalarmult_BYTES) throw new Error("bad p size");
2068
+ var q = new Uint8Array(crypto_scalarmult_BYTES);
2069
+ crypto_scalarmult(q, n, p);
2070
+ return q;
2071
+ };
2072
+ nacl.scalarMult.base = function(n) {
2073
+ checkArrayTypes(n);
2074
+ if (n.length !== crypto_scalarmult_SCALARBYTES) throw new Error("bad n size");
2075
+ var q = new Uint8Array(crypto_scalarmult_BYTES);
2076
+ crypto_scalarmult_base(q, n);
2077
+ return q;
2078
+ };
2079
+ nacl.scalarMult.scalarLength = crypto_scalarmult_SCALARBYTES;
2080
+ nacl.scalarMult.groupElementLength = crypto_scalarmult_BYTES;
2081
+ nacl.box = function(msg, nonce, publicKey, secretKey) {
2082
+ var k = nacl.box.before(publicKey, secretKey);
2083
+ return nacl.secretbox(msg, nonce, k);
2084
+ };
2085
+ nacl.box.before = function(publicKey, secretKey) {
2086
+ checkArrayTypes(publicKey, secretKey);
2087
+ checkBoxLengths(publicKey, secretKey);
2088
+ var k = new Uint8Array(crypto_box_BEFORENMBYTES);
2089
+ crypto_box_beforenm(k, publicKey, secretKey);
2090
+ return k;
2091
+ };
2092
+ nacl.box.after = nacl.secretbox;
2093
+ nacl.box.open = function(msg, nonce, publicKey, secretKey) {
2094
+ var k = nacl.box.before(publicKey, secretKey);
2095
+ return nacl.secretbox.open(msg, nonce, k);
2096
+ };
2097
+ nacl.box.open.after = nacl.secretbox.open;
2098
+ nacl.box.keyPair = function() {
2099
+ var pk = new Uint8Array(crypto_box_PUBLICKEYBYTES);
2100
+ var sk = new Uint8Array(crypto_box_SECRETKEYBYTES);
2101
+ crypto_box_keypair(pk, sk);
2102
+ return { publicKey: pk, secretKey: sk };
2103
+ };
2104
+ nacl.box.keyPair.fromSecretKey = function(secretKey) {
2105
+ checkArrayTypes(secretKey);
2106
+ if (secretKey.length !== crypto_box_SECRETKEYBYTES)
2107
+ throw new Error("bad secret key size");
2108
+ var pk = new Uint8Array(crypto_box_PUBLICKEYBYTES);
2109
+ crypto_scalarmult_base(pk, secretKey);
2110
+ return { publicKey: pk, secretKey: new Uint8Array(secretKey) };
2111
+ };
2112
+ nacl.box.publicKeyLength = crypto_box_PUBLICKEYBYTES;
2113
+ nacl.box.secretKeyLength = crypto_box_SECRETKEYBYTES;
2114
+ nacl.box.sharedKeyLength = crypto_box_BEFORENMBYTES;
2115
+ nacl.box.nonceLength = crypto_box_NONCEBYTES;
2116
+ nacl.box.overheadLength = nacl.secretbox.overheadLength;
2117
+ nacl.sign = function(msg, secretKey) {
2118
+ checkArrayTypes(msg, secretKey);
2119
+ if (secretKey.length !== crypto_sign_SECRETKEYBYTES)
2120
+ throw new Error("bad secret key size");
2121
+ var signedMsg = new Uint8Array(crypto_sign_BYTES + msg.length);
2122
+ crypto_sign(signedMsg, msg, msg.length, secretKey);
2123
+ return signedMsg;
2124
+ };
2125
+ nacl.sign.open = function(signedMsg, publicKey) {
2126
+ checkArrayTypes(signedMsg, publicKey);
2127
+ if (publicKey.length !== crypto_sign_PUBLICKEYBYTES)
2128
+ throw new Error("bad public key size");
2129
+ var tmp = new Uint8Array(signedMsg.length);
2130
+ var mlen = crypto_sign_open(tmp, signedMsg, signedMsg.length, publicKey);
2131
+ if (mlen < 0) return null;
2132
+ var m = new Uint8Array(mlen);
2133
+ for (var i = 0; i < m.length; i++) m[i] = tmp[i];
2134
+ return m;
2135
+ };
2136
+ nacl.sign.detached = function(msg, secretKey) {
2137
+ var signedMsg = nacl.sign(msg, secretKey);
2138
+ var sig = new Uint8Array(crypto_sign_BYTES);
2139
+ for (var i = 0; i < sig.length; i++) sig[i] = signedMsg[i];
2140
+ return sig;
2141
+ };
2142
+ nacl.sign.detached.verify = function(msg, sig, publicKey) {
2143
+ checkArrayTypes(msg, sig, publicKey);
2144
+ if (sig.length !== crypto_sign_BYTES)
2145
+ throw new Error("bad signature size");
2146
+ if (publicKey.length !== crypto_sign_PUBLICKEYBYTES)
2147
+ throw new Error("bad public key size");
2148
+ var sm = new Uint8Array(crypto_sign_BYTES + msg.length);
2149
+ var m = new Uint8Array(crypto_sign_BYTES + msg.length);
2150
+ var i;
2151
+ for (i = 0; i < crypto_sign_BYTES; i++) sm[i] = sig[i];
2152
+ for (i = 0; i < msg.length; i++) sm[i + crypto_sign_BYTES] = msg[i];
2153
+ return crypto_sign_open(m, sm, sm.length, publicKey) >= 0;
2154
+ };
2155
+ nacl.sign.keyPair = function() {
2156
+ var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);
2157
+ var sk = new Uint8Array(crypto_sign_SECRETKEYBYTES);
2158
+ crypto_sign_keypair(pk, sk);
2159
+ return { publicKey: pk, secretKey: sk };
2160
+ };
2161
+ nacl.sign.keyPair.fromSecretKey = function(secretKey) {
2162
+ checkArrayTypes(secretKey);
2163
+ if (secretKey.length !== crypto_sign_SECRETKEYBYTES)
2164
+ throw new Error("bad secret key size");
2165
+ var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);
2166
+ for (var i = 0; i < pk.length; i++) pk[i] = secretKey[32 + i];
2167
+ return { publicKey: pk, secretKey: new Uint8Array(secretKey) };
2168
+ };
2169
+ nacl.sign.keyPair.fromSeed = function(seed) {
2170
+ checkArrayTypes(seed);
2171
+ if (seed.length !== crypto_sign_SEEDBYTES)
2172
+ throw new Error("bad seed size");
2173
+ var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);
2174
+ var sk = new Uint8Array(crypto_sign_SECRETKEYBYTES);
2175
+ for (var i = 0; i < 32; i++) sk[i] = seed[i];
2176
+ crypto_sign_keypair(pk, sk, true);
2177
+ return { publicKey: pk, secretKey: sk };
2178
+ };
2179
+ nacl.sign.publicKeyLength = crypto_sign_PUBLICKEYBYTES;
2180
+ nacl.sign.secretKeyLength = crypto_sign_SECRETKEYBYTES;
2181
+ nacl.sign.seedLength = crypto_sign_SEEDBYTES;
2182
+ nacl.sign.signatureLength = crypto_sign_BYTES;
2183
+ nacl.hash = function(msg) {
2184
+ checkArrayTypes(msg);
2185
+ var h = new Uint8Array(crypto_hash_BYTES);
2186
+ crypto_hash(h, msg, msg.length);
2187
+ return h;
2188
+ };
2189
+ nacl.hash.hashLength = crypto_hash_BYTES;
2190
+ nacl.verify = function(x, y) {
2191
+ checkArrayTypes(x, y);
2192
+ if (x.length === 0 || y.length === 0) return false;
2193
+ if (x.length !== y.length) return false;
2194
+ return vn(x, 0, y, 0, x.length) === 0 ? true : false;
2195
+ };
2196
+ nacl.setPRNG = function(fn) {
2197
+ randombytes = fn;
2198
+ };
2199
+ (function() {
2200
+ var crypto = typeof self !== "undefined" ? self.crypto || self.msCrypto : null;
2201
+ if (crypto && crypto.getRandomValues) {
2202
+ var QUOTA = 65536;
2203
+ nacl.setPRNG(function(x, n) {
2204
+ var i, v = new Uint8Array(n);
2205
+ for (i = 0; i < n; i += QUOTA) {
2206
+ crypto.getRandomValues(v.subarray(i, i + Math.min(n - i, QUOTA)));
2207
+ }
2208
+ for (i = 0; i < n; i++) x[i] = v[i];
2209
+ cleanup(v);
2210
+ });
2211
+ } else if (typeof __require !== "undefined") {
2212
+ crypto = __require("crypto");
2213
+ if (crypto && crypto.randomBytes) {
2214
+ nacl.setPRNG(function(x, n) {
2215
+ var i, v = crypto.randomBytes(n);
2216
+ for (i = 0; i < n; i++) x[i] = v[i];
2217
+ cleanup(v);
2218
+ });
2219
+ }
2220
+ }
2221
+ })();
2222
+ })(typeof module !== "undefined" && module.exports ? module.exports : self.nacl = self.nacl || {});
2223
+ }
2224
+ });
2225
+ var naclFastW5BJ3KZ2 = require_nacl_fast();
2226
+
2227
+ export { naclFastW5BJ3KZ2 as default };
2228
+ //# sourceMappingURL=nacl-fast-W5BJ3KZ2.js.map
2229
+ //# sourceMappingURL=nacl-fast-W5BJ3KZ2.js.map