quarkdash 1.0.5 → 1.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.
- package/README.md +2 -0
- package/package.json +1 -1
- package/.idea/modules.xml +0 -8
- package/.idea/quarkdash.iml +0 -12
- package/.idea/vcs.xml +0 -6
- package/coverage/clover.xml +0 -652
- package/coverage/coverage-final.json +0 -10
- package/coverage/lcov-report/base.css +0 -224
- package/coverage/lcov-report/block-navigation.js +0 -87
- package/coverage/lcov-report/cipher.ts.html +0 -862
- package/coverage/lcov-report/crypto.ts.html +0 -1000
- package/coverage/lcov-report/favicon.png +0 -0
- package/coverage/lcov-report/index.html +0 -236
- package/coverage/lcov-report/index.ts.html +0 -163
- package/coverage/lcov-report/kdf.ts.html +0 -274
- package/coverage/lcov-report/mac.ts.html +0 -277
- package/coverage/lcov-report/prettify.css +0 -1
- package/coverage/lcov-report/prettify.js +0 -2
- package/coverage/lcov-report/ringlwe.ts.html +0 -949
- package/coverage/lcov-report/sha.ts.html +0 -877
- package/coverage/lcov-report/shake.ts.html +0 -571
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +0 -210
- package/coverage/lcov-report/utils.ts.html +0 -952
- package/coverage/lcov.info +0 -972
|
@@ -1,877 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
<!doctype html>
|
|
3
|
-
<html lang="en">
|
|
4
|
-
|
|
5
|
-
<head>
|
|
6
|
-
<title>Code coverage report for sha.ts</title>
|
|
7
|
-
<meta charset="utf-8" />
|
|
8
|
-
<link rel="stylesheet" href="prettify.css" />
|
|
9
|
-
<link rel="stylesheet" href="base.css" />
|
|
10
|
-
<link rel="shortcut icon" type="image/x-icon" href="favicon.png" />
|
|
11
|
-
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
12
|
-
<style type='text/css'>
|
|
13
|
-
.coverage-summary .sorter {
|
|
14
|
-
background-image: url(sort-arrow-sprite.png);
|
|
15
|
-
}
|
|
16
|
-
</style>
|
|
17
|
-
</head>
|
|
18
|
-
|
|
19
|
-
<body>
|
|
20
|
-
<div class='wrapper'>
|
|
21
|
-
<div class='pad1'>
|
|
22
|
-
<h1><a href="index.html">All files</a> sha.ts</h1>
|
|
23
|
-
<div class='clearfix'>
|
|
24
|
-
|
|
25
|
-
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">51.02% </span>
|
|
27
|
-
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>75/147</span>
|
|
29
|
-
</div>
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">20% </span>
|
|
34
|
-
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>2/10</span>
|
|
36
|
-
</div>
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">33.33% </span>
|
|
41
|
-
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>2/6</span>
|
|
43
|
-
</div>
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">51.82% </span>
|
|
48
|
-
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>71/137</span>
|
|
50
|
-
</div>
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
</div>
|
|
54
|
-
<p class="quiet">
|
|
55
|
-
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
|
56
|
-
</p>
|
|
57
|
-
<template id="filterTemplate">
|
|
58
|
-
<div class="quiet">
|
|
59
|
-
Filter:
|
|
60
|
-
<input type="search" id="fileSearch">
|
|
61
|
-
</div>
|
|
62
|
-
</template>
|
|
63
|
-
</div>
|
|
64
|
-
<div class='status-line medium'></div>
|
|
65
|
-
<pre><table class="coverage">
|
|
66
|
-
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
|
67
|
-
<a name='L2'></a><a href='#L2'>2</a>
|
|
68
|
-
<a name='L3'></a><a href='#L3'>3</a>
|
|
69
|
-
<a name='L4'></a><a href='#L4'>4</a>
|
|
70
|
-
<a name='L5'></a><a href='#L5'>5</a>
|
|
71
|
-
<a name='L6'></a><a href='#L6'>6</a>
|
|
72
|
-
<a name='L7'></a><a href='#L7'>7</a>
|
|
73
|
-
<a name='L8'></a><a href='#L8'>8</a>
|
|
74
|
-
<a name='L9'></a><a href='#L9'>9</a>
|
|
75
|
-
<a name='L10'></a><a href='#L10'>10</a>
|
|
76
|
-
<a name='L11'></a><a href='#L11'>11</a>
|
|
77
|
-
<a name='L12'></a><a href='#L12'>12</a>
|
|
78
|
-
<a name='L13'></a><a href='#L13'>13</a>
|
|
79
|
-
<a name='L14'></a><a href='#L14'>14</a>
|
|
80
|
-
<a name='L15'></a><a href='#L15'>15</a>
|
|
81
|
-
<a name='L16'></a><a href='#L16'>16</a>
|
|
82
|
-
<a name='L17'></a><a href='#L17'>17</a>
|
|
83
|
-
<a name='L18'></a><a href='#L18'>18</a>
|
|
84
|
-
<a name='L19'></a><a href='#L19'>19</a>
|
|
85
|
-
<a name='L20'></a><a href='#L20'>20</a>
|
|
86
|
-
<a name='L21'></a><a href='#L21'>21</a>
|
|
87
|
-
<a name='L22'></a><a href='#L22'>22</a>
|
|
88
|
-
<a name='L23'></a><a href='#L23'>23</a>
|
|
89
|
-
<a name='L24'></a><a href='#L24'>24</a>
|
|
90
|
-
<a name='L25'></a><a href='#L25'>25</a>
|
|
91
|
-
<a name='L26'></a><a href='#L26'>26</a>
|
|
92
|
-
<a name='L27'></a><a href='#L27'>27</a>
|
|
93
|
-
<a name='L28'></a><a href='#L28'>28</a>
|
|
94
|
-
<a name='L29'></a><a href='#L29'>29</a>
|
|
95
|
-
<a name='L30'></a><a href='#L30'>30</a>
|
|
96
|
-
<a name='L31'></a><a href='#L31'>31</a>
|
|
97
|
-
<a name='L32'></a><a href='#L32'>32</a>
|
|
98
|
-
<a name='L33'></a><a href='#L33'>33</a>
|
|
99
|
-
<a name='L34'></a><a href='#L34'>34</a>
|
|
100
|
-
<a name='L35'></a><a href='#L35'>35</a>
|
|
101
|
-
<a name='L36'></a><a href='#L36'>36</a>
|
|
102
|
-
<a name='L37'></a><a href='#L37'>37</a>
|
|
103
|
-
<a name='L38'></a><a href='#L38'>38</a>
|
|
104
|
-
<a name='L39'></a><a href='#L39'>39</a>
|
|
105
|
-
<a name='L40'></a><a href='#L40'>40</a>
|
|
106
|
-
<a name='L41'></a><a href='#L41'>41</a>
|
|
107
|
-
<a name='L42'></a><a href='#L42'>42</a>
|
|
108
|
-
<a name='L43'></a><a href='#L43'>43</a>
|
|
109
|
-
<a name='L44'></a><a href='#L44'>44</a>
|
|
110
|
-
<a name='L45'></a><a href='#L45'>45</a>
|
|
111
|
-
<a name='L46'></a><a href='#L46'>46</a>
|
|
112
|
-
<a name='L47'></a><a href='#L47'>47</a>
|
|
113
|
-
<a name='L48'></a><a href='#L48'>48</a>
|
|
114
|
-
<a name='L49'></a><a href='#L49'>49</a>
|
|
115
|
-
<a name='L50'></a><a href='#L50'>50</a>
|
|
116
|
-
<a name='L51'></a><a href='#L51'>51</a>
|
|
117
|
-
<a name='L52'></a><a href='#L52'>52</a>
|
|
118
|
-
<a name='L53'></a><a href='#L53'>53</a>
|
|
119
|
-
<a name='L54'></a><a href='#L54'>54</a>
|
|
120
|
-
<a name='L55'></a><a href='#L55'>55</a>
|
|
121
|
-
<a name='L56'></a><a href='#L56'>56</a>
|
|
122
|
-
<a name='L57'></a><a href='#L57'>57</a>
|
|
123
|
-
<a name='L58'></a><a href='#L58'>58</a>
|
|
124
|
-
<a name='L59'></a><a href='#L59'>59</a>
|
|
125
|
-
<a name='L60'></a><a href='#L60'>60</a>
|
|
126
|
-
<a name='L61'></a><a href='#L61'>61</a>
|
|
127
|
-
<a name='L62'></a><a href='#L62'>62</a>
|
|
128
|
-
<a name='L63'></a><a href='#L63'>63</a>
|
|
129
|
-
<a name='L64'></a><a href='#L64'>64</a>
|
|
130
|
-
<a name='L65'></a><a href='#L65'>65</a>
|
|
131
|
-
<a name='L66'></a><a href='#L66'>66</a>
|
|
132
|
-
<a name='L67'></a><a href='#L67'>67</a>
|
|
133
|
-
<a name='L68'></a><a href='#L68'>68</a>
|
|
134
|
-
<a name='L69'></a><a href='#L69'>69</a>
|
|
135
|
-
<a name='L70'></a><a href='#L70'>70</a>
|
|
136
|
-
<a name='L71'></a><a href='#L71'>71</a>
|
|
137
|
-
<a name='L72'></a><a href='#L72'>72</a>
|
|
138
|
-
<a name='L73'></a><a href='#L73'>73</a>
|
|
139
|
-
<a name='L74'></a><a href='#L74'>74</a>
|
|
140
|
-
<a name='L75'></a><a href='#L75'>75</a>
|
|
141
|
-
<a name='L76'></a><a href='#L76'>76</a>
|
|
142
|
-
<a name='L77'></a><a href='#L77'>77</a>
|
|
143
|
-
<a name='L78'></a><a href='#L78'>78</a>
|
|
144
|
-
<a name='L79'></a><a href='#L79'>79</a>
|
|
145
|
-
<a name='L80'></a><a href='#L80'>80</a>
|
|
146
|
-
<a name='L81'></a><a href='#L81'>81</a>
|
|
147
|
-
<a name='L82'></a><a href='#L82'>82</a>
|
|
148
|
-
<a name='L83'></a><a href='#L83'>83</a>
|
|
149
|
-
<a name='L84'></a><a href='#L84'>84</a>
|
|
150
|
-
<a name='L85'></a><a href='#L85'>85</a>
|
|
151
|
-
<a name='L86'></a><a href='#L86'>86</a>
|
|
152
|
-
<a name='L87'></a><a href='#L87'>87</a>
|
|
153
|
-
<a name='L88'></a><a href='#L88'>88</a>
|
|
154
|
-
<a name='L89'></a><a href='#L89'>89</a>
|
|
155
|
-
<a name='L90'></a><a href='#L90'>90</a>
|
|
156
|
-
<a name='L91'></a><a href='#L91'>91</a>
|
|
157
|
-
<a name='L92'></a><a href='#L92'>92</a>
|
|
158
|
-
<a name='L93'></a><a href='#L93'>93</a>
|
|
159
|
-
<a name='L94'></a><a href='#L94'>94</a>
|
|
160
|
-
<a name='L95'></a><a href='#L95'>95</a>
|
|
161
|
-
<a name='L96'></a><a href='#L96'>96</a>
|
|
162
|
-
<a name='L97'></a><a href='#L97'>97</a>
|
|
163
|
-
<a name='L98'></a><a href='#L98'>98</a>
|
|
164
|
-
<a name='L99'></a><a href='#L99'>99</a>
|
|
165
|
-
<a name='L100'></a><a href='#L100'>100</a>
|
|
166
|
-
<a name='L101'></a><a href='#L101'>101</a>
|
|
167
|
-
<a name='L102'></a><a href='#L102'>102</a>
|
|
168
|
-
<a name='L103'></a><a href='#L103'>103</a>
|
|
169
|
-
<a name='L104'></a><a href='#L104'>104</a>
|
|
170
|
-
<a name='L105'></a><a href='#L105'>105</a>
|
|
171
|
-
<a name='L106'></a><a href='#L106'>106</a>
|
|
172
|
-
<a name='L107'></a><a href='#L107'>107</a>
|
|
173
|
-
<a name='L108'></a><a href='#L108'>108</a>
|
|
174
|
-
<a name='L109'></a><a href='#L109'>109</a>
|
|
175
|
-
<a name='L110'></a><a href='#L110'>110</a>
|
|
176
|
-
<a name='L111'></a><a href='#L111'>111</a>
|
|
177
|
-
<a name='L112'></a><a href='#L112'>112</a>
|
|
178
|
-
<a name='L113'></a><a href='#L113'>113</a>
|
|
179
|
-
<a name='L114'></a><a href='#L114'>114</a>
|
|
180
|
-
<a name='L115'></a><a href='#L115'>115</a>
|
|
181
|
-
<a name='L116'></a><a href='#L116'>116</a>
|
|
182
|
-
<a name='L117'></a><a href='#L117'>117</a>
|
|
183
|
-
<a name='L118'></a><a href='#L118'>118</a>
|
|
184
|
-
<a name='L119'></a><a href='#L119'>119</a>
|
|
185
|
-
<a name='L120'></a><a href='#L120'>120</a>
|
|
186
|
-
<a name='L121'></a><a href='#L121'>121</a>
|
|
187
|
-
<a name='L122'></a><a href='#L122'>122</a>
|
|
188
|
-
<a name='L123'></a><a href='#L123'>123</a>
|
|
189
|
-
<a name='L124'></a><a href='#L124'>124</a>
|
|
190
|
-
<a name='L125'></a><a href='#L125'>125</a>
|
|
191
|
-
<a name='L126'></a><a href='#L126'>126</a>
|
|
192
|
-
<a name='L127'></a><a href='#L127'>127</a>
|
|
193
|
-
<a name='L128'></a><a href='#L128'>128</a>
|
|
194
|
-
<a name='L129'></a><a href='#L129'>129</a>
|
|
195
|
-
<a name='L130'></a><a href='#L130'>130</a>
|
|
196
|
-
<a name='L131'></a><a href='#L131'>131</a>
|
|
197
|
-
<a name='L132'></a><a href='#L132'>132</a>
|
|
198
|
-
<a name='L133'></a><a href='#L133'>133</a>
|
|
199
|
-
<a name='L134'></a><a href='#L134'>134</a>
|
|
200
|
-
<a name='L135'></a><a href='#L135'>135</a>
|
|
201
|
-
<a name='L136'></a><a href='#L136'>136</a>
|
|
202
|
-
<a name='L137'></a><a href='#L137'>137</a>
|
|
203
|
-
<a name='L138'></a><a href='#L138'>138</a>
|
|
204
|
-
<a name='L139'></a><a href='#L139'>139</a>
|
|
205
|
-
<a name='L140'></a><a href='#L140'>140</a>
|
|
206
|
-
<a name='L141'></a><a href='#L141'>141</a>
|
|
207
|
-
<a name='L142'></a><a href='#L142'>142</a>
|
|
208
|
-
<a name='L143'></a><a href='#L143'>143</a>
|
|
209
|
-
<a name='L144'></a><a href='#L144'>144</a>
|
|
210
|
-
<a name='L145'></a><a href='#L145'>145</a>
|
|
211
|
-
<a name='L146'></a><a href='#L146'>146</a>
|
|
212
|
-
<a name='L147'></a><a href='#L147'>147</a>
|
|
213
|
-
<a name='L148'></a><a href='#L148'>148</a>
|
|
214
|
-
<a name='L149'></a><a href='#L149'>149</a>
|
|
215
|
-
<a name='L150'></a><a href='#L150'>150</a>
|
|
216
|
-
<a name='L151'></a><a href='#L151'>151</a>
|
|
217
|
-
<a name='L152'></a><a href='#L152'>152</a>
|
|
218
|
-
<a name='L153'></a><a href='#L153'>153</a>
|
|
219
|
-
<a name='L154'></a><a href='#L154'>154</a>
|
|
220
|
-
<a name='L155'></a><a href='#L155'>155</a>
|
|
221
|
-
<a name='L156'></a><a href='#L156'>156</a>
|
|
222
|
-
<a name='L157'></a><a href='#L157'>157</a>
|
|
223
|
-
<a name='L158'></a><a href='#L158'>158</a>
|
|
224
|
-
<a name='L159'></a><a href='#L159'>159</a>
|
|
225
|
-
<a name='L160'></a><a href='#L160'>160</a>
|
|
226
|
-
<a name='L161'></a><a href='#L161'>161</a>
|
|
227
|
-
<a name='L162'></a><a href='#L162'>162</a>
|
|
228
|
-
<a name='L163'></a><a href='#L163'>163</a>
|
|
229
|
-
<a name='L164'></a><a href='#L164'>164</a>
|
|
230
|
-
<a name='L165'></a><a href='#L165'>165</a>
|
|
231
|
-
<a name='L166'></a><a href='#L166'>166</a>
|
|
232
|
-
<a name='L167'></a><a href='#L167'>167</a>
|
|
233
|
-
<a name='L168'></a><a href='#L168'>168</a>
|
|
234
|
-
<a name='L169'></a><a href='#L169'>169</a>
|
|
235
|
-
<a name='L170'></a><a href='#L170'>170</a>
|
|
236
|
-
<a name='L171'></a><a href='#L171'>171</a>
|
|
237
|
-
<a name='L172'></a><a href='#L172'>172</a>
|
|
238
|
-
<a name='L173'></a><a href='#L173'>173</a>
|
|
239
|
-
<a name='L174'></a><a href='#L174'>174</a>
|
|
240
|
-
<a name='L175'></a><a href='#L175'>175</a>
|
|
241
|
-
<a name='L176'></a><a href='#L176'>176</a>
|
|
242
|
-
<a name='L177'></a><a href='#L177'>177</a>
|
|
243
|
-
<a name='L178'></a><a href='#L178'>178</a>
|
|
244
|
-
<a name='L179'></a><a href='#L179'>179</a>
|
|
245
|
-
<a name='L180'></a><a href='#L180'>180</a>
|
|
246
|
-
<a name='L181'></a><a href='#L181'>181</a>
|
|
247
|
-
<a name='L182'></a><a href='#L182'>182</a>
|
|
248
|
-
<a name='L183'></a><a href='#L183'>183</a>
|
|
249
|
-
<a name='L184'></a><a href='#L184'>184</a>
|
|
250
|
-
<a name='L185'></a><a href='#L185'>185</a>
|
|
251
|
-
<a name='L186'></a><a href='#L186'>186</a>
|
|
252
|
-
<a name='L187'></a><a href='#L187'>187</a>
|
|
253
|
-
<a name='L188'></a><a href='#L188'>188</a>
|
|
254
|
-
<a name='L189'></a><a href='#L189'>189</a>
|
|
255
|
-
<a name='L190'></a><a href='#L190'>190</a>
|
|
256
|
-
<a name='L191'></a><a href='#L191'>191</a>
|
|
257
|
-
<a name='L192'></a><a href='#L192'>192</a>
|
|
258
|
-
<a name='L193'></a><a href='#L193'>193</a>
|
|
259
|
-
<a name='L194'></a><a href='#L194'>194</a>
|
|
260
|
-
<a name='L195'></a><a href='#L195'>195</a>
|
|
261
|
-
<a name='L196'></a><a href='#L196'>196</a>
|
|
262
|
-
<a name='L197'></a><a href='#L197'>197</a>
|
|
263
|
-
<a name='L198'></a><a href='#L198'>198</a>
|
|
264
|
-
<a name='L199'></a><a href='#L199'>199</a>
|
|
265
|
-
<a name='L200'></a><a href='#L200'>200</a>
|
|
266
|
-
<a name='L201'></a><a href='#L201'>201</a>
|
|
267
|
-
<a name='L202'></a><a href='#L202'>202</a>
|
|
268
|
-
<a name='L203'></a><a href='#L203'>203</a>
|
|
269
|
-
<a name='L204'></a><a href='#L204'>204</a>
|
|
270
|
-
<a name='L205'></a><a href='#L205'>205</a>
|
|
271
|
-
<a name='L206'></a><a href='#L206'>206</a>
|
|
272
|
-
<a name='L207'></a><a href='#L207'>207</a>
|
|
273
|
-
<a name='L208'></a><a href='#L208'>208</a>
|
|
274
|
-
<a name='L209'></a><a href='#L209'>209</a>
|
|
275
|
-
<a name='L210'></a><a href='#L210'>210</a>
|
|
276
|
-
<a name='L211'></a><a href='#L211'>211</a>
|
|
277
|
-
<a name='L212'></a><a href='#L212'>212</a>
|
|
278
|
-
<a name='L213'></a><a href='#L213'>213</a>
|
|
279
|
-
<a name='L214'></a><a href='#L214'>214</a>
|
|
280
|
-
<a name='L215'></a><a href='#L215'>215</a>
|
|
281
|
-
<a name='L216'></a><a href='#L216'>216</a>
|
|
282
|
-
<a name='L217'></a><a href='#L217'>217</a>
|
|
283
|
-
<a name='L218'></a><a href='#L218'>218</a>
|
|
284
|
-
<a name='L219'></a><a href='#L219'>219</a>
|
|
285
|
-
<a name='L220'></a><a href='#L220'>220</a>
|
|
286
|
-
<a name='L221'></a><a href='#L221'>221</a>
|
|
287
|
-
<a name='L222'></a><a href='#L222'>222</a>
|
|
288
|
-
<a name='L223'></a><a href='#L223'>223</a>
|
|
289
|
-
<a name='L224'></a><a href='#L224'>224</a>
|
|
290
|
-
<a name='L225'></a><a href='#L225'>225</a>
|
|
291
|
-
<a name='L226'></a><a href='#L226'>226</a>
|
|
292
|
-
<a name='L227'></a><a href='#L227'>227</a>
|
|
293
|
-
<a name='L228'></a><a href='#L228'>228</a>
|
|
294
|
-
<a name='L229'></a><a href='#L229'>229</a>
|
|
295
|
-
<a name='L230'></a><a href='#L230'>230</a>
|
|
296
|
-
<a name='L231'></a><a href='#L231'>231</a>
|
|
297
|
-
<a name='L232'></a><a href='#L232'>232</a>
|
|
298
|
-
<a name='L233'></a><a href='#L233'>233</a>
|
|
299
|
-
<a name='L234'></a><a href='#L234'>234</a>
|
|
300
|
-
<a name='L235'></a><a href='#L235'>235</a>
|
|
301
|
-
<a name='L236'></a><a href='#L236'>236</a>
|
|
302
|
-
<a name='L237'></a><a href='#L237'>237</a>
|
|
303
|
-
<a name='L238'></a><a href='#L238'>238</a>
|
|
304
|
-
<a name='L239'></a><a href='#L239'>239</a>
|
|
305
|
-
<a name='L240'></a><a href='#L240'>240</a>
|
|
306
|
-
<a name='L241'></a><a href='#L241'>241</a>
|
|
307
|
-
<a name='L242'></a><a href='#L242'>242</a>
|
|
308
|
-
<a name='L243'></a><a href='#L243'>243</a>
|
|
309
|
-
<a name='L244'></a><a href='#L244'>244</a>
|
|
310
|
-
<a name='L245'></a><a href='#L245'>245</a>
|
|
311
|
-
<a name='L246'></a><a href='#L246'>246</a>
|
|
312
|
-
<a name='L247'></a><a href='#L247'>247</a>
|
|
313
|
-
<a name='L248'></a><a href='#L248'>248</a>
|
|
314
|
-
<a name='L249'></a><a href='#L249'>249</a>
|
|
315
|
-
<a name='L250'></a><a href='#L250'>250</a>
|
|
316
|
-
<a name='L251'></a><a href='#L251'>251</a>
|
|
317
|
-
<a name='L252'></a><a href='#L252'>252</a>
|
|
318
|
-
<a name='L253'></a><a href='#L253'>253</a>
|
|
319
|
-
<a name='L254'></a><a href='#L254'>254</a>
|
|
320
|
-
<a name='L255'></a><a href='#L255'>255</a>
|
|
321
|
-
<a name='L256'></a><a href='#L256'>256</a>
|
|
322
|
-
<a name='L257'></a><a href='#L257'>257</a>
|
|
323
|
-
<a name='L258'></a><a href='#L258'>258</a>
|
|
324
|
-
<a name='L259'></a><a href='#L259'>259</a>
|
|
325
|
-
<a name='L260'></a><a href='#L260'>260</a>
|
|
326
|
-
<a name='L261'></a><a href='#L261'>261</a>
|
|
327
|
-
<a name='L262'></a><a href='#L262'>262</a>
|
|
328
|
-
<a name='L263'></a><a href='#L263'>263</a>
|
|
329
|
-
<a name='L264'></a><a href='#L264'>264</a>
|
|
330
|
-
<a name='L265'></a><a href='#L265'>265</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
331
|
-
<span class="cline-any cline-neutral"> </span>
|
|
332
|
-
<span class="cline-any cline-neutral"> </span>
|
|
333
|
-
<span class="cline-any cline-neutral"> </span>
|
|
334
|
-
<span class="cline-any cline-neutral"> </span>
|
|
335
|
-
<span class="cline-any cline-neutral"> </span>
|
|
336
|
-
<span class="cline-any cline-neutral"> </span>
|
|
337
|
-
<span class="cline-any cline-neutral"> </span>
|
|
338
|
-
<span class="cline-any cline-neutral"> </span>
|
|
339
|
-
<span class="cline-any cline-neutral"> </span>
|
|
340
|
-
<span class="cline-any cline-neutral"> </span>
|
|
341
|
-
<span class="cline-any cline-neutral"> </span>
|
|
342
|
-
<span class="cline-any cline-yes">1x</span>
|
|
343
|
-
<span class="cline-any cline-neutral"> </span>
|
|
344
|
-
<span class="cline-any cline-yes">1x</span>
|
|
345
|
-
<span class="cline-any cline-neutral"> </span>
|
|
346
|
-
<span class="cline-any cline-neutral"> </span>
|
|
347
|
-
<span class="cline-any cline-neutral"> </span>
|
|
348
|
-
<span class="cline-any cline-neutral"> </span>
|
|
349
|
-
<span class="cline-any cline-neutral"> </span>
|
|
350
|
-
<span class="cline-any cline-neutral"> </span>
|
|
351
|
-
<span class="cline-any cline-neutral"> </span>
|
|
352
|
-
<span class="cline-any cline-neutral"> </span>
|
|
353
|
-
<span class="cline-any cline-neutral"> </span>
|
|
354
|
-
<span class="cline-any cline-neutral"> </span>
|
|
355
|
-
<span class="cline-any cline-neutral"> </span>
|
|
356
|
-
<span class="cline-any cline-neutral"> </span>
|
|
357
|
-
<span class="cline-any cline-neutral"> </span>
|
|
358
|
-
<span class="cline-any cline-neutral"> </span>
|
|
359
|
-
<span class="cline-any cline-neutral"> </span>
|
|
360
|
-
<span class="cline-any cline-neutral"> </span>
|
|
361
|
-
<span class="cline-any cline-neutral"> </span>
|
|
362
|
-
<span class="cline-any cline-yes">201600x</span>
|
|
363
|
-
<span class="cline-any cline-neutral"> </span>
|
|
364
|
-
<span class="cline-any cline-neutral"> </span>
|
|
365
|
-
<span class="cline-any cline-neutral"> </span>
|
|
366
|
-
<span class="cline-any cline-neutral"> </span>
|
|
367
|
-
<span class="cline-any cline-neutral"> </span>
|
|
368
|
-
<span class="cline-any cline-neutral"> </span>
|
|
369
|
-
<span class="cline-any cline-neutral"> </span>
|
|
370
|
-
<span class="cline-any cline-neutral"> </span>
|
|
371
|
-
<span class="cline-any cline-neutral"> </span>
|
|
372
|
-
<span class="cline-any cline-yes">14x</span>
|
|
373
|
-
<span class="cline-any cline-neutral"> </span>
|
|
374
|
-
<span class="cline-any cline-neutral"> </span>
|
|
375
|
-
<span class="cline-any cline-yes">14x</span>
|
|
376
|
-
<span class="cline-any cline-yes">14x</span>
|
|
377
|
-
<span class="cline-any cline-yes">14x</span>
|
|
378
|
-
<span class="cline-any cline-yes">14x</span>
|
|
379
|
-
<span class="cline-any cline-yes">14x</span>
|
|
380
|
-
<span class="cline-any cline-yes">14x</span>
|
|
381
|
-
<span class="cline-any cline-yes">14x</span>
|
|
382
|
-
<span class="cline-any cline-yes">14x</span>
|
|
383
|
-
<span class="cline-any cline-neutral"> </span>
|
|
384
|
-
<span class="cline-any cline-neutral"> </span>
|
|
385
|
-
<span class="cline-any cline-yes">14x</span>
|
|
386
|
-
<span class="cline-any cline-yes">14x</span>
|
|
387
|
-
<span class="cline-any cline-yes">14x</span>
|
|
388
|
-
<span class="cline-any cline-yes">14x</span>
|
|
389
|
-
<span class="cline-any cline-neutral"> </span>
|
|
390
|
-
<span class="cline-any cline-neutral"> </span>
|
|
391
|
-
<span class="cline-any cline-yes">14x</span>
|
|
392
|
-
<span class="cline-any cline-yes">14x</span>
|
|
393
|
-
<span class="cline-any cline-yes">14x</span>
|
|
394
|
-
<span class="cline-any cline-neutral"> </span>
|
|
395
|
-
<span class="cline-any cline-neutral"> </span>
|
|
396
|
-
<span class="cline-any cline-yes">14x</span>
|
|
397
|
-
<span class="cline-any cline-yes">350x</span>
|
|
398
|
-
<span class="cline-any cline-neutral"> </span>
|
|
399
|
-
<span class="cline-any cline-neutral"> </span>
|
|
400
|
-
<span class="cline-any cline-yes">350x</span>
|
|
401
|
-
<span class="cline-any cline-yes">5600x</span>
|
|
402
|
-
<span class="cline-any cline-neutral"> </span>
|
|
403
|
-
<span class="cline-any cline-neutral"> </span>
|
|
404
|
-
<span class="cline-any cline-yes">350x</span>
|
|
405
|
-
<span class="cline-any cline-yes">16800x</span>
|
|
406
|
-
<span class="cline-any cline-yes">16800x</span>
|
|
407
|
-
<span class="cline-any cline-yes">16800x</span>
|
|
408
|
-
<span class="cline-any cline-neutral"> </span>
|
|
409
|
-
<span class="cline-any cline-neutral"> </span>
|
|
410
|
-
<span class="cline-any cline-neutral"> </span>
|
|
411
|
-
<span class="cline-any cline-yes">350x</span>
|
|
412
|
-
<span class="cline-any cline-yes">350x</span>
|
|
413
|
-
<span class="cline-any cline-yes">350x</span>
|
|
414
|
-
<span class="cline-any cline-yes">350x</span>
|
|
415
|
-
<span class="cline-any cline-yes">350x</span>
|
|
416
|
-
<span class="cline-any cline-yes">350x</span>
|
|
417
|
-
<span class="cline-any cline-yes">350x</span>
|
|
418
|
-
<span class="cline-any cline-yes">350x</span>
|
|
419
|
-
<span class="cline-any cline-neutral"> </span>
|
|
420
|
-
<span class="cline-any cline-neutral"> </span>
|
|
421
|
-
<span class="cline-any cline-yes">350x</span>
|
|
422
|
-
<span class="cline-any cline-yes">22400x</span>
|
|
423
|
-
<span class="cline-any cline-yes">22400x</span>
|
|
424
|
-
<span class="cline-any cline-yes">22400x</span>
|
|
425
|
-
<span class="cline-any cline-yes">22400x</span>
|
|
426
|
-
<span class="cline-any cline-yes">22400x</span>
|
|
427
|
-
<span class="cline-any cline-yes">22400x</span>
|
|
428
|
-
<span class="cline-any cline-neutral"> </span>
|
|
429
|
-
<span class="cline-any cline-yes">22400x</span>
|
|
430
|
-
<span class="cline-any cline-yes">22400x</span>
|
|
431
|
-
<span class="cline-any cline-yes">22400x</span>
|
|
432
|
-
<span class="cline-any cline-yes">22400x</span>
|
|
433
|
-
<span class="cline-any cline-yes">22400x</span>
|
|
434
|
-
<span class="cline-any cline-yes">22400x</span>
|
|
435
|
-
<span class="cline-any cline-yes">22400x</span>
|
|
436
|
-
<span class="cline-any cline-yes">22400x</span>
|
|
437
|
-
<span class="cline-any cline-neutral"> </span>
|
|
438
|
-
<span class="cline-any cline-neutral"> </span>
|
|
439
|
-
<span class="cline-any cline-neutral"> </span>
|
|
440
|
-
<span class="cline-any cline-yes">350x</span>
|
|
441
|
-
<span class="cline-any cline-yes">350x</span>
|
|
442
|
-
<span class="cline-any cline-yes">350x</span>
|
|
443
|
-
<span class="cline-any cline-yes">350x</span>
|
|
444
|
-
<span class="cline-any cline-yes">350x</span>
|
|
445
|
-
<span class="cline-any cline-yes">350x</span>
|
|
446
|
-
<span class="cline-any cline-yes">350x</span>
|
|
447
|
-
<span class="cline-any cline-yes">350x</span>
|
|
448
|
-
<span class="cline-any cline-neutral"> </span>
|
|
449
|
-
<span class="cline-any cline-neutral"> </span>
|
|
450
|
-
<span class="cline-any cline-neutral"> </span>
|
|
451
|
-
<span class="cline-any cline-yes">14x</span>
|
|
452
|
-
<span class="cline-any cline-yes">14x</span>
|
|
453
|
-
<span class="cline-any cline-yes">14x</span>
|
|
454
|
-
<span class="cline-any cline-yes">14x</span>
|
|
455
|
-
<span class="cline-any cline-yes">14x</span>
|
|
456
|
-
<span class="cline-any cline-yes">14x</span>
|
|
457
|
-
<span class="cline-any cline-yes">14x</span>
|
|
458
|
-
<span class="cline-any cline-yes">14x</span>
|
|
459
|
-
<span class="cline-any cline-yes">14x</span>
|
|
460
|
-
<span class="cline-any cline-yes">14x</span>
|
|
461
|
-
<span class="cline-any cline-neutral"> </span>
|
|
462
|
-
<span class="cline-any cline-yes">14x</span>
|
|
463
|
-
<span class="cline-any cline-neutral"> </span>
|
|
464
|
-
<span class="cline-any cline-neutral"> </span>
|
|
465
|
-
<span class="cline-any cline-neutral"> </span>
|
|
466
|
-
<span class="cline-any cline-neutral"> </span>
|
|
467
|
-
<span class="cline-any cline-neutral"> </span>
|
|
468
|
-
<span class="cline-any cline-neutral"> </span>
|
|
469
|
-
<span class="cline-any cline-yes">1x</span>
|
|
470
|
-
<span class="cline-any cline-neutral"> </span>
|
|
471
|
-
<span class="cline-any cline-yes">1x</span>
|
|
472
|
-
<span class="cline-any cline-neutral"> </span>
|
|
473
|
-
<span class="cline-any cline-neutral"> </span>
|
|
474
|
-
<span class="cline-any cline-neutral"> </span>
|
|
475
|
-
<span class="cline-any cline-neutral"> </span>
|
|
476
|
-
<span class="cline-any cline-neutral"> </span>
|
|
477
|
-
<span class="cline-any cline-neutral"> </span>
|
|
478
|
-
<span class="cline-any cline-neutral"> </span>
|
|
479
|
-
<span class="cline-any cline-neutral"> </span>
|
|
480
|
-
<span class="cline-any cline-neutral"> </span>
|
|
481
|
-
<span class="cline-any cline-neutral"> </span>
|
|
482
|
-
<span class="cline-any cline-neutral"> </span>
|
|
483
|
-
<span class="cline-any cline-neutral"> </span>
|
|
484
|
-
<span class="cline-any cline-neutral"> </span>
|
|
485
|
-
<span class="cline-any cline-neutral"> </span>
|
|
486
|
-
<span class="cline-any cline-neutral"> </span>
|
|
487
|
-
<span class="cline-any cline-neutral"> </span>
|
|
488
|
-
<span class="cline-any cline-neutral"> </span>
|
|
489
|
-
<span class="cline-any cline-neutral"> </span>
|
|
490
|
-
<span class="cline-any cline-neutral"> </span>
|
|
491
|
-
<span class="cline-any cline-neutral"> </span>
|
|
492
|
-
<span class="cline-any cline-neutral"> </span>
|
|
493
|
-
<span class="cline-any cline-neutral"> </span>
|
|
494
|
-
<span class="cline-any cline-neutral"> </span>
|
|
495
|
-
<span class="cline-any cline-neutral"> </span>
|
|
496
|
-
<span class="cline-any cline-neutral"> </span>
|
|
497
|
-
<span class="cline-any cline-neutral"> </span>
|
|
498
|
-
<span class="cline-any cline-neutral"> </span>
|
|
499
|
-
<span class="cline-any cline-neutral"> </span>
|
|
500
|
-
<span class="cline-any cline-neutral"> </span>
|
|
501
|
-
<span class="cline-any cline-no"> </span>
|
|
502
|
-
<span class="cline-any cline-neutral"> </span>
|
|
503
|
-
<span class="cline-any cline-neutral"> </span>
|
|
504
|
-
<span class="cline-any cline-neutral"> </span>
|
|
505
|
-
<span class="cline-any cline-neutral"> </span>
|
|
506
|
-
<span class="cline-any cline-neutral"> </span>
|
|
507
|
-
<span class="cline-any cline-neutral"> </span>
|
|
508
|
-
<span class="cline-any cline-neutral"> </span>
|
|
509
|
-
<span class="cline-any cline-neutral"> </span>
|
|
510
|
-
<span class="cline-any cline-neutral"> </span>
|
|
511
|
-
<span class="cline-any cline-no"> </span>
|
|
512
|
-
<span class="cline-any cline-neutral"> </span>
|
|
513
|
-
<span class="cline-any cline-neutral"> </span>
|
|
514
|
-
<span class="cline-any cline-no"> </span>
|
|
515
|
-
<span class="cline-any cline-no"> </span>
|
|
516
|
-
<span class="cline-any cline-no"> </span>
|
|
517
|
-
<span class="cline-any cline-no"> </span>
|
|
518
|
-
<span class="cline-any cline-no"> </span>
|
|
519
|
-
<span class="cline-any cline-no"> </span>
|
|
520
|
-
<span class="cline-any cline-no"> </span>
|
|
521
|
-
<span class="cline-any cline-no"> </span>
|
|
522
|
-
<span class="cline-any cline-neutral"> </span>
|
|
523
|
-
<span class="cline-any cline-no"> </span>
|
|
524
|
-
<span class="cline-any cline-no"> </span>
|
|
525
|
-
<span class="cline-any cline-no"> </span>
|
|
526
|
-
<span class="cline-any cline-no"> </span>
|
|
527
|
-
<span class="cline-any cline-neutral"> </span>
|
|
528
|
-
<span class="cline-any cline-no"> </span>
|
|
529
|
-
<span class="cline-any cline-no"> </span>
|
|
530
|
-
<span class="cline-any cline-neutral"> </span>
|
|
531
|
-
<span class="cline-any cline-no"> </span>
|
|
532
|
-
<span class="cline-any cline-no"> </span>
|
|
533
|
-
<span class="cline-any cline-neutral"> </span>
|
|
534
|
-
<span class="cline-any cline-no"> </span>
|
|
535
|
-
<span class="cline-any cline-no"> </span>
|
|
536
|
-
<span class="cline-any cline-neutral"> </span>
|
|
537
|
-
<span class="cline-any cline-neutral"> </span>
|
|
538
|
-
<span class="cline-any cline-no"> </span>
|
|
539
|
-
<span class="cline-any cline-no"> </span>
|
|
540
|
-
<span class="cline-any cline-no"> </span>
|
|
541
|
-
<span class="cline-any cline-no"> </span>
|
|
542
|
-
<span class="cline-any cline-neutral"> </span>
|
|
543
|
-
<span class="cline-any cline-neutral"> </span>
|
|
544
|
-
<span class="cline-any cline-no"> </span>
|
|
545
|
-
<span class="cline-any cline-no"> </span>
|
|
546
|
-
<span class="cline-any cline-no"> </span>
|
|
547
|
-
<span class="cline-any cline-no"> </span>
|
|
548
|
-
<span class="cline-any cline-no"> </span>
|
|
549
|
-
<span class="cline-any cline-no"> </span>
|
|
550
|
-
<span class="cline-any cline-no"> </span>
|
|
551
|
-
<span class="cline-any cline-no"> </span>
|
|
552
|
-
<span class="cline-any cline-neutral"> </span>
|
|
553
|
-
<span class="cline-any cline-no"> </span>
|
|
554
|
-
<span class="cline-any cline-no"> </span>
|
|
555
|
-
<span class="cline-any cline-no"> </span>
|
|
556
|
-
<span class="cline-any cline-no"> </span>
|
|
557
|
-
<span class="cline-any cline-no"> </span>
|
|
558
|
-
<span class="cline-any cline-no"> </span>
|
|
559
|
-
<span class="cline-any cline-no"> </span>
|
|
560
|
-
<span class="cline-any cline-neutral"> </span>
|
|
561
|
-
<span class="cline-any cline-no"> </span>
|
|
562
|
-
<span class="cline-any cline-no"> </span>
|
|
563
|
-
<span class="cline-any cline-no"> </span>
|
|
564
|
-
<span class="cline-any cline-no"> </span>
|
|
565
|
-
<span class="cline-any cline-no"> </span>
|
|
566
|
-
<span class="cline-any cline-no"> </span>
|
|
567
|
-
<span class="cline-any cline-no"> </span>
|
|
568
|
-
<span class="cline-any cline-no"> </span>
|
|
569
|
-
<span class="cline-any cline-neutral"> </span>
|
|
570
|
-
<span class="cline-any cline-neutral"> </span>
|
|
571
|
-
<span class="cline-any cline-no"> </span>
|
|
572
|
-
<span class="cline-any cline-no"> </span>
|
|
573
|
-
<span class="cline-any cline-no"> </span>
|
|
574
|
-
<span class="cline-any cline-no"> </span>
|
|
575
|
-
<span class="cline-any cline-no"> </span>
|
|
576
|
-
<span class="cline-any cline-no"> </span>
|
|
577
|
-
<span class="cline-any cline-no"> </span>
|
|
578
|
-
<span class="cline-any cline-no"> </span>
|
|
579
|
-
<span class="cline-any cline-neutral"> </span>
|
|
580
|
-
<span class="cline-any cline-neutral"> </span>
|
|
581
|
-
<span class="cline-any cline-no"> </span>
|
|
582
|
-
<span class="cline-any cline-no"> </span>
|
|
583
|
-
<span class="cline-any cline-no"> </span>
|
|
584
|
-
<span class="cline-any cline-no"> </span>
|
|
585
|
-
<span class="cline-any cline-no"> </span>
|
|
586
|
-
<span class="cline-any cline-no"> </span>
|
|
587
|
-
<span class="cline-any cline-no"> </span>
|
|
588
|
-
<span class="cline-any cline-no"> </span>
|
|
589
|
-
<span class="cline-any cline-no"> </span>
|
|
590
|
-
<span class="cline-any cline-no"> </span>
|
|
591
|
-
<span class="cline-any cline-neutral"> </span>
|
|
592
|
-
<span class="cline-any cline-no"> </span>
|
|
593
|
-
<span class="cline-any cline-neutral"> </span>
|
|
594
|
-
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">/**
|
|
595
|
-
* QuarkDash SHA Implementations
|
|
596
|
-
*
|
|
597
|
-
* @git https://github.com/devsdaddy/quarkdash
|
|
598
|
-
* @version 1.0.0
|
|
599
|
-
* @author Elijah Rastorguev
|
|
600
|
-
* @build 1000
|
|
601
|
-
* @website https://dev.to/devsdaddy
|
|
602
|
-
*/
|
|
603
|
-
/**
|
|
604
|
-
* SHA-256 Implementation
|
|
605
|
-
*/
|
|
606
|
-
export class SHA256 {
|
|
607
|
-
// Constants
|
|
608
|
-
private static readonly K: number[] = [
|
|
609
|
-
0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,
|
|
610
|
-
0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,
|
|
611
|
-
0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,
|
|
612
|
-
0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,
|
|
613
|
-
0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,
|
|
614
|
-
0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,
|
|
615
|
-
0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,
|
|
616
|
-
0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2
|
|
617
|
-
];
|
|
618
|
-
|
|
619
|
-
/**
|
|
620
|
-
* Right Rotate
|
|
621
|
-
* @param value {number} Value to rotate
|
|
622
|
-
* @param amount {number} Rotate amount
|
|
623
|
-
* @private
|
|
624
|
-
*/
|
|
625
|
-
private static rightRotate(value: number, amount: number): number {
|
|
626
|
-
return (value >>> amount) | (value << (32 - amount));
|
|
627
|
-
}
|
|
628
|
-
|
|
629
|
-
/**
|
|
630
|
-
* Get SHA256 Hash
|
|
631
|
-
* @param data {string|Uint8Array} Raw string or bytes array
|
|
632
|
-
* @param returnBytes {boolean} Returns HEX String or Uint8Array
|
|
633
|
-
* @returns {string|Uint8Array} HEX String or Uint8Array
|
|
634
|
-
*/
|
|
635
|
-
static hash(data: string | Uint8Array, returnBytes : boolean = <span class="branch-0 cbranch-no" title="branch not covered" >false)</span>: string | Uint8Array {
|
|
636
|
-
const msgBytes = typeof data === 'string' ? <span class="branch-0 cbranch-no" title="branch not covered" >new TextEncoder().encode(data) </span>: data;
|
|
637
|
-
|
|
638
|
-
// Initial hash values
|
|
639
|
-
let h0 = 0x6a09e667;
|
|
640
|
-
let h1 = 0xbb67ae85;
|
|
641
|
-
let h2 = 0x3c6ef372;
|
|
642
|
-
let h3 = 0xa54ff53a;
|
|
643
|
-
let h4 = 0x510e527f;
|
|
644
|
-
let h5 = 0x9b05688c;
|
|
645
|
-
let h6 = 0x1f83d9ab;
|
|
646
|
-
let h7 = 0x5be0cd19;
|
|
647
|
-
|
|
648
|
-
// Pre-processing: padding
|
|
649
|
-
const ml = msgBytes.length * 8;
|
|
650
|
-
const padded = new Uint8Array(((ml + 64 + 511) & ~511) / 8);
|
|
651
|
-
padded.set(msgBytes);
|
|
652
|
-
padded[msgBytes.length] = 0x80;
|
|
653
|
-
|
|
654
|
-
// Append length
|
|
655
|
-
const dv = new DataView(padded.buffer);
|
|
656
|
-
dv.setUint32(padded.length - 8, 0, false);
|
|
657
|
-
dv.setUint32(padded.length - 4, ml, false);
|
|
658
|
-
|
|
659
|
-
// Process chunks
|
|
660
|
-
for (let i = 0; i < padded.length; i += 64) {
|
|
661
|
-
const w = new Array(64).fill(0);
|
|
662
|
-
|
|
663
|
-
// Prepare message schedule
|
|
664
|
-
for (let j = 0; j < 16; j++) {
|
|
665
|
-
w[j] = dv.getUint32(i + j * 4, false);
|
|
666
|
-
}
|
|
667
|
-
|
|
668
|
-
for (let j = 16; j < 64; j++) {
|
|
669
|
-
const s0 = this.rightRotate(w[j - 15], 7) ^ this.rightRotate(w[j - 15], 18) ^ (w[j - 15] >>> 3);
|
|
670
|
-
const s1 = this.rightRotate(w[j - 2], 17) ^ this.rightRotate(w[j - 2], 19) ^ (w[j - 2] >>> 10);
|
|
671
|
-
w[j] = (w[j - 16] + s0 + w[j - 7] + s1) >>> 0;
|
|
672
|
-
}
|
|
673
|
-
|
|
674
|
-
// Initialize working variables
|
|
675
|
-
let a = h0;
|
|
676
|
-
let b = h1;
|
|
677
|
-
let c = h2;
|
|
678
|
-
let d = h3;
|
|
679
|
-
let e = h4;
|
|
680
|
-
let f = h5;
|
|
681
|
-
let g = h6;
|
|
682
|
-
let h = h7;
|
|
683
|
-
|
|
684
|
-
// Main loop
|
|
685
|
-
for (let j = 0; j < 64; j++) {
|
|
686
|
-
const S1 = this.rightRotate(e, 6) ^ this.rightRotate(e, 11) ^ this.rightRotate(e, 25);
|
|
687
|
-
const ch = (e & f) ^ ((~e) & g);
|
|
688
|
-
const temp1 = (h + S1 + ch + this.K[j] + w[j]) >>> 0;
|
|
689
|
-
const S0 = this.rightRotate(a, 2) ^ this.rightRotate(a, 13) ^ this.rightRotate(a, 22);
|
|
690
|
-
const maj = (a & b) ^ (a & c) ^ (b & c);
|
|
691
|
-
const temp2 = (S0 + maj) >>> 0;
|
|
692
|
-
|
|
693
|
-
h = g;
|
|
694
|
-
g = f;
|
|
695
|
-
f = e;
|
|
696
|
-
e = (d + temp1) >>> 0;
|
|
697
|
-
d = c;
|
|
698
|
-
c = b;
|
|
699
|
-
b = a;
|
|
700
|
-
a = (temp1 + temp2) >>> 0;
|
|
701
|
-
}
|
|
702
|
-
|
|
703
|
-
// Update hash values
|
|
704
|
-
h0 = (h0 + a) >>> 0;
|
|
705
|
-
h1 = (h1 + b) >>> 0;
|
|
706
|
-
h2 = (h2 + c) >>> 0;
|
|
707
|
-
h3 = (h3 + d) >>> 0;
|
|
708
|
-
h4 = (h4 + e) >>> 0;
|
|
709
|
-
h5 = (h5 + f) >>> 0;
|
|
710
|
-
h6 = (h6 + g) >>> 0;
|
|
711
|
-
h7 = (h7 + h) >>> 0;
|
|
712
|
-
}
|
|
713
|
-
|
|
714
|
-
// Produce final hash
|
|
715
|
-
const result = new Uint8Array(32);
|
|
716
|
-
const resultView = new DataView(result.buffer);
|
|
717
|
-
resultView.setUint32(0, h0, false);
|
|
718
|
-
resultView.setUint32(4, h1, false);
|
|
719
|
-
resultView.setUint32(8, h2, false);
|
|
720
|
-
resultView.setUint32(12, h3, false);
|
|
721
|
-
resultView.setUint32(16, h4, false);
|
|
722
|
-
resultView.setUint32(20, h5, false);
|
|
723
|
-
resultView.setUint32(24, h6, false);
|
|
724
|
-
resultView.setUint32(28, h7, false);
|
|
725
|
-
|
|
726
|
-
return (returnBytes) ? result as Uint8Array : <span class="branch-1 cbranch-no" title="branch not covered" >Array.from(result).map(<span class="fstat-no" title="function not covered" >b </span>=> <span class="cstat-no" title="statement not covered" >b.toString(16).padStart(2, '0'))</span>.join('') as string;</span>
|
|
727
|
-
}
|
|
728
|
-
}
|
|
729
|
-
|
|
730
|
-
/**
|
|
731
|
-
* SHA-512 Implementation
|
|
732
|
-
*/
|
|
733
|
-
export class SHA512 {
|
|
734
|
-
// Constants
|
|
735
|
-
private static readonly K: bigint[] = [
|
|
736
|
-
0x428a2f98d728ae22n, 0x7137449123ef65cdn, 0xb5c0fbcfec4d3b2fn, 0xe9b5dba58189dbbcn,
|
|
737
|
-
0x3956c25bf348b538n, 0x59f111f1b605d019n, 0x923f82a4af194f9bn, 0xab1c5ed5da6d8118n,
|
|
738
|
-
0xd807aa98a3030242n, 0x12835b0145706fben, 0x243185be4ee4b28cn, 0x550c7dc3d5ffb4e2n,
|
|
739
|
-
0x72be5d74f27b896fn, 0x80deb1fe3b1696b1n, 0x9bdc06a725c71235n, 0xc19bf174cf692694n,
|
|
740
|
-
0xe49b69c19ef14ad2n, 0xefbe4786384f25e3n, 0x0fc19dc68b8cd5b5n, 0x240ca1cc77ac9c65n,
|
|
741
|
-
0x2de92c6f592b0275n, 0x4a7484aa6ea6e483n, 0x5cb0a9dcbd41fbd4n, 0x76f988da831153b5n,
|
|
742
|
-
0x983e5152ee66dfabn, 0xa831c66d2db43210n, 0xb00327c898fb213fn, 0xbf597fc7beef0ee4n,
|
|
743
|
-
0xc6e00bf33da88fc2n, 0xd5a79147930aa725n, 0x06ca6351e003826fn, 0x142929670a0e6e70n,
|
|
744
|
-
0x27b70a8546d22ffcn, 0x2e1b21385c26c926n, 0x4d2c6dfc5ac42aedn, 0x53380d139d95b3dfn,
|
|
745
|
-
0x650a73548baf63den, 0x766a0abb3c77b2a8n, 0x81c2c92e47edaee6n, 0x92722c851482353bn,
|
|
746
|
-
0xa2bfe8a14cf10364n, 0xa81a664bbc423001n, 0xc24b8b70d0f89791n, 0xc76c51a30654be30n,
|
|
747
|
-
0xd192e819d6ef5218n, 0xd69906245565a910n, 0xf40e35855771202an, 0x106aa07032bbd1b8n,
|
|
748
|
-
0x19a4c116b8d2d0c8n, 0x1e376c085141ab53n, 0x2748774cdf8eeb99n, 0x34b0bcb5e19b48a8n,
|
|
749
|
-
0x391c0cb3c5c95a63n, 0x4ed8aa4ae3418acbn, 0x5b9cca4f7763e373n, 0x682e6ff3d6b2b8a3n,
|
|
750
|
-
0x748f82ee5defb2fcn, 0x78a5636f43172f60n, 0x84c87814a1f0ab72n, 0x8cc702081a6439ecn,
|
|
751
|
-
0x90befffa23631e28n, 0xa4506cebde82bde9n, 0xbef9a3f7b2c67915n, 0xc67178f2e372532bn,
|
|
752
|
-
0xca273eceea26619cn, 0xd186b8c721c0c207n, 0xeada7dd6cde0eb1en, 0xf57d4f7fee6ed178n,
|
|
753
|
-
0x06f067aa72176fban, 0x0a637dc5a2c898a6n, 0x113f9804bef90daen, 0x1b710b35131c471bn,
|
|
754
|
-
0x28db77f523047d84n, 0x32caab7b40c72493n, 0x3c9ebe0a15c9bebcn, 0x431d67c49c100d4cn,
|
|
755
|
-
0x4cc5d4becb3e42b6n, 0x597f299cfc657e2an, 0x5fcb6fab3ad6faecn, 0x6c44198c4a475817n
|
|
756
|
-
];
|
|
757
|
-
|
|
758
|
-
/**
|
|
759
|
-
* Bitint right rotate
|
|
760
|
-
* @param value {number} Value
|
|
761
|
-
* @param amount {number} Rotate amount
|
|
762
|
-
* @private
|
|
763
|
-
*/
|
|
764
|
-
private <span class="fstat-no" title="function not covered" >static </span>rightRotate(value: bigint, amount: number): bigint {
|
|
765
|
-
<span class="cstat-no" title="statement not covered" > return (value >> BigInt(amount)) | (value << (64n - BigInt(amount)));</span>
|
|
766
|
-
}
|
|
767
|
-
|
|
768
|
-
/**
|
|
769
|
-
* Get SHA512 Hash
|
|
770
|
-
* @param data {string|Uint8Array} Raw string or bytes array
|
|
771
|
-
* @param returnBytes {boolean} Returns HEX String or Uint8Array
|
|
772
|
-
* @returns {string|Uint8Array} HEX String or Uint8Array
|
|
773
|
-
*/
|
|
774
|
-
<span class="fstat-no" title="function not covered" > static </span>hash(data: string | Uint8Array, returnBytes : boolean = <span class="branch-0 cbranch-no" title="branch not covered" >false)</span>: string | Uint8Array {
|
|
775
|
-
const msgBytes = <span class="cstat-no" title="statement not covered" >typeof data === "string" ? new TextEncoder().encode(data) : data;</span>
|
|
776
|
-
|
|
777
|
-
// Initial hash values
|
|
778
|
-
let h0 = <span class="cstat-no" title="statement not covered" >0x6a09e667f3bcc908n;</span>
|
|
779
|
-
let h1 = <span class="cstat-no" title="statement not covered" >0xbb67ae8584caa73bn;</span>
|
|
780
|
-
let h2 = <span class="cstat-no" title="statement not covered" >0x3c6ef372fe94f82bn;</span>
|
|
781
|
-
let h3 = <span class="cstat-no" title="statement not covered" >0xa54ff53a5f1d36f1n;</span>
|
|
782
|
-
let h4 = <span class="cstat-no" title="statement not covered" >0x510e527fade682d1n;</span>
|
|
783
|
-
let h5 = <span class="cstat-no" title="statement not covered" >0x9b05688c2b3e6c1fn;</span>
|
|
784
|
-
let h6 = <span class="cstat-no" title="statement not covered" >0x1f83d9abfb41bd6bn;</span>
|
|
785
|
-
let h7 = <span class="cstat-no" title="statement not covered" >0x5be0cd19137e2179n;</span>
|
|
786
|
-
|
|
787
|
-
const ml = <span class="cstat-no" title="statement not covered" >BigInt(msgBytes.length * 8);</span>
|
|
788
|
-
const padded = <span class="cstat-no" title="statement not covered" >new Uint8Array((((Number(ml) + 128 + 1023) & ~1023) / 8));</span>
|
|
789
|
-
<span class="cstat-no" title="statement not covered" > padded.set(msgBytes);</span>
|
|
790
|
-
<span class="cstat-no" title="statement not covered" > padded[msgBytes.length] = 0x80;</span>
|
|
791
|
-
|
|
792
|
-
const dv = <span class="cstat-no" title="statement not covered" >new DataView(padded.buffer);</span>
|
|
793
|
-
<span class="cstat-no" title="statement not covered" > dv.setBigUint64(padded.length - 8, ml, false);</span>
|
|
794
|
-
|
|
795
|
-
<span class="cstat-no" title="statement not covered" > for (let i = <span class="cstat-no" title="statement not covered" >0;</span> i < padded.length; i += 128) {</span>
|
|
796
|
-
const w = <span class="cstat-no" title="statement not covered" >new Array(80).fill(0n);</span>
|
|
797
|
-
|
|
798
|
-
<span class="cstat-no" title="statement not covered" > for (let j = <span class="cstat-no" title="statement not covered" >0;</span> j < 16; j++) {</span>
|
|
799
|
-
<span class="cstat-no" title="statement not covered" > w[j] = dv.getBigUint64(i + j * 8, false);</span>
|
|
800
|
-
}
|
|
801
|
-
|
|
802
|
-
<span class="cstat-no" title="statement not covered" > for (let j = <span class="cstat-no" title="statement not covered" >16;</span> j < 80; j++) {</span>
|
|
803
|
-
const s0 = <span class="cstat-no" title="statement not covered" >this.rightRotate(w[j - 15], 1) ^ this.rightRotate(w[j - 15], 8) ^ (w[j - 15] >> 7n);</span>
|
|
804
|
-
const s1 = <span class="cstat-no" title="statement not covered" >this.rightRotate(w[j - 2], 19) ^ this.rightRotate(w[j - 2], 61) ^ (w[j - 2] >> 6n);</span>
|
|
805
|
-
<span class="cstat-no" title="statement not covered" > w[j] = (w[j - 16] + s0 + w[j - 7] + s1) & 0xffffffffffffffffn;</span>
|
|
806
|
-
}
|
|
807
|
-
|
|
808
|
-
let a = <span class="cstat-no" title="statement not covered" >h0;</span>
|
|
809
|
-
let b = <span class="cstat-no" title="statement not covered" >h1;</span>
|
|
810
|
-
let c = <span class="cstat-no" title="statement not covered" >h2;</span>
|
|
811
|
-
let d = <span class="cstat-no" title="statement not covered" >h3;</span>
|
|
812
|
-
let e = <span class="cstat-no" title="statement not covered" >h4;</span>
|
|
813
|
-
let f = <span class="cstat-no" title="statement not covered" >h5;</span>
|
|
814
|
-
let g = <span class="cstat-no" title="statement not covered" >h6;</span>
|
|
815
|
-
let h = <span class="cstat-no" title="statement not covered" >h7;</span>
|
|
816
|
-
|
|
817
|
-
<span class="cstat-no" title="statement not covered" > for (let j = <span class="cstat-no" title="statement not covered" >0;</span> j < 80; j++) {</span>
|
|
818
|
-
const S1 = <span class="cstat-no" title="statement not covered" >this.rightRotate(e, 14) ^ this.rightRotate(e, 18) ^ this.rightRotate(e, 41);</span>
|
|
819
|
-
const ch = <span class="cstat-no" title="statement not covered" >(e & f) ^ ((~e) & g);</span>
|
|
820
|
-
const temp1 = <span class="cstat-no" title="statement not covered" >(h + S1 + ch + this.K[j] + w[j]) & 0xffffffffffffffffn;</span>
|
|
821
|
-
const S0 = <span class="cstat-no" title="statement not covered" >this.rightRotate(a, 28) ^ this.rightRotate(a, 34) ^ this.rightRotate(a, 39);</span>
|
|
822
|
-
const maj = <span class="cstat-no" title="statement not covered" >(a & b) ^ (a & c) ^ (b & c);</span>
|
|
823
|
-
const temp2 = <span class="cstat-no" title="statement not covered" >(S0 + maj) & 0xffffffffffffffffn;</span>
|
|
824
|
-
|
|
825
|
-
<span class="cstat-no" title="statement not covered" > h = g;</span>
|
|
826
|
-
<span class="cstat-no" title="statement not covered" > g = f;</span>
|
|
827
|
-
<span class="cstat-no" title="statement not covered" > f = e;</span>
|
|
828
|
-
<span class="cstat-no" title="statement not covered" > e = (d + temp1) & 0xffffffffffffffffn;</span>
|
|
829
|
-
<span class="cstat-no" title="statement not covered" > d = c;</span>
|
|
830
|
-
<span class="cstat-no" title="statement not covered" > c = b;</span>
|
|
831
|
-
<span class="cstat-no" title="statement not covered" > b = a;</span>
|
|
832
|
-
<span class="cstat-no" title="statement not covered" > a = (temp1 + temp2) & 0xffffffffffffffffn;</span>
|
|
833
|
-
}
|
|
834
|
-
|
|
835
|
-
<span class="cstat-no" title="statement not covered" > h0 = (h0 + a) & 0xffffffffffffffffn;</span>
|
|
836
|
-
<span class="cstat-no" title="statement not covered" > h1 = (h1 + b) & 0xffffffffffffffffn;</span>
|
|
837
|
-
<span class="cstat-no" title="statement not covered" > h2 = (h2 + c) & 0xffffffffffffffffn;</span>
|
|
838
|
-
<span class="cstat-no" title="statement not covered" > h3 = (h3 + d) & 0xffffffffffffffffn;</span>
|
|
839
|
-
<span class="cstat-no" title="statement not covered" > h4 = (h4 + e) & 0xffffffffffffffffn;</span>
|
|
840
|
-
<span class="cstat-no" title="statement not covered" > h5 = (h5 + f) & 0xffffffffffffffffn;</span>
|
|
841
|
-
<span class="cstat-no" title="statement not covered" > h6 = (h6 + g) & 0xffffffffffffffffn;</span>
|
|
842
|
-
<span class="cstat-no" title="statement not covered" > h7 = (h7 + h) & 0xffffffffffffffffn;</span>
|
|
843
|
-
}
|
|
844
|
-
|
|
845
|
-
const result = <span class="cstat-no" title="statement not covered" >new Uint8Array(64);</span>
|
|
846
|
-
const resultView = <span class="cstat-no" title="statement not covered" >new DataView(result.buffer);</span>
|
|
847
|
-
<span class="cstat-no" title="statement not covered" > resultView.setBigUint64(0, h0, false);</span>
|
|
848
|
-
<span class="cstat-no" title="statement not covered" > resultView.setBigUint64(8, h1, false);</span>
|
|
849
|
-
<span class="cstat-no" title="statement not covered" > resultView.setBigUint64(16, h2, false);</span>
|
|
850
|
-
<span class="cstat-no" title="statement not covered" > resultView.setBigUint64(24, h3, false);</span>
|
|
851
|
-
<span class="cstat-no" title="statement not covered" > resultView.setBigUint64(32, h4, false);</span>
|
|
852
|
-
<span class="cstat-no" title="statement not covered" > resultView.setBigUint64(40, h5, false);</span>
|
|
853
|
-
<span class="cstat-no" title="statement not covered" > resultView.setBigUint64(48, h6, false);</span>
|
|
854
|
-
<span class="cstat-no" title="statement not covered" > resultView.setBigUint64(56, h7, false);</span>
|
|
855
|
-
|
|
856
|
-
<span class="cstat-no" title="statement not covered" > return (returnBytes) ? result as Uint8Array : Array.from(result).map(<span class="fstat-no" title="function not covered" >b </span>=> <span class="cstat-no" title="statement not covered" >b.toString(16).padStart(2, '0'))</span>.join('') as string;</span>
|
|
857
|
-
}
|
|
858
|
-
}</pre></td></tr></table></pre>
|
|
859
|
-
|
|
860
|
-
<div class='push'></div><!-- for sticky footer -->
|
|
861
|
-
</div><!-- /wrapper -->
|
|
862
|
-
<div class='footer quiet pad2 space-top1 center small'>
|
|
863
|
-
Code coverage generated by
|
|
864
|
-
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
865
|
-
at 2026-04-07T10:15:46.746Z
|
|
866
|
-
</div>
|
|
867
|
-
<script src="prettify.js"></script>
|
|
868
|
-
<script>
|
|
869
|
-
window.onload = function () {
|
|
870
|
-
prettyPrint();
|
|
871
|
-
};
|
|
872
|
-
</script>
|
|
873
|
-
<script src="sorter.js"></script>
|
|
874
|
-
<script src="block-navigation.js"></script>
|
|
875
|
-
</body>
|
|
876
|
-
</html>
|
|
877
|
-
|