1 | # jsSHA - ChangeLog
|
2 |
|
3 | ## 3.2.0 (2020-12-07)
|
4 |
|
5 | - Added ESM versions of all variants (thanks wKovacs64!).
|
6 |
|
7 | ## 3.1.2 (2020-08-08)
|
8 |
|
9 | - Added explicit package.json export to support React (thanks canpoyrazoglu!).
|
10 |
|
11 | ## 3.1.1 (2020-07-22)
|
12 |
|
13 | - Added dist subpath exports to provide forward compatibility with newer node
|
14 | versions (thanks aravinth2094!).
|
15 |
|
16 | ## 3.1.0 - Still-At-Home Edition (2020-04-15)
|
17 |
|
18 | - Added support for cSHAKE128/256 and KMAC128/256 (thanks paulg446 for the
|
19 | ticket and mrecachinas for the test vector help!).
|
20 | - Added TypeScript declarations for all variant files (thanks wKovacs64!).
|
21 | - Deprecated `setHMACKey` and `getHMAC` in order to unify MAC API. See the
|
22 | [jsSHA Wiki] for more information.
|
23 |
|
24 | [jssha wiki]: https://github.com/Caligatio/jsSHA/wiki
|
25 |
|
26 | ## 3.0.0 - Stay-At-Home Order Edition (2020-04-09)
|
27 |
|
28 | - Transitioned codebase to [TypeScript] while still maintaining v2 backwards
|
29 | compatible output files (thanks for the solid start oberondelafay!).
|
30 | - v2 backwards compatible files now use the [Universal Module Definition
|
31 | (UMD)][umd] format which should support all well-known loaders.
|
32 | - Added a oft-requested ECMAScript 2015 (ES6) ECMAScript Module (ESM) version of
|
33 | the library (dist/sha.mjs).
|
34 | - Reworked package exports to allow Node.js and other tools to smartly choose
|
35 | between ES6 ESM module and ES3 UMD versions of the library.
|
36 | - TypeScript declarations are now included with the library for the default
|
37 | entry points (dist/sha.js and dist/sha.mjs).
|
38 | - Source maps are now included with the library for the default entry points.
|
39 | - Limited hash variant files (sha1.js, sha256.js, sha512.js, and sha3.js) are
|
40 | now accessed via exports rather than file path (e.g. using
|
41 | `require("jssha/sha1")` rather than the previous
|
42 | `require("jssha/src/sha1.js"`).
|
43 | - Changed build system from [Google Closure Compiler][gcc] to [Rollup] with
|
44 | [terser] as the minifier/uglifer (thanks blikblum!). This resulted in slightly
|
45 | larger output files but infinitely better maintainability.
|
46 | - Optimized 64-bit functions by removing unneeded logical/arithmetic/bit
|
47 | operations.
|
48 | - Completely overhauled testing due to transition to TypeScript. This resulted
|
49 | in the ability to get true 100% unit test coverage and identification of a few
|
50 | lurking/obscure bugs (see v2.4.2 and v2.4.1).
|
51 |
|
52 | [typescript]: https://www.typescriptlang.org/
|
53 | [rollup]: https://rollupjs.org/
|
54 | [terser]: https://github.com/terser/terser
|
55 | [umd]: https://github.com/umdjs/umd
|
56 |
|
57 | ## 2.4.2 (2020-04-08)
|
58 |
|
59 | This marks the last v2.X feature release. The codebase is transitioning to
|
60 | TypeScript and, while the API is intended to be fully backwards-compatible, the
|
61 | version will be bumped to v3 as a safety precaution.
|
62 |
|
63 | - Fixed incorrect SHAKE128 results when output length was greater than 1344-bits
|
64 | and SHAKE256 results when output length was greater than 1088-bits (1344 and
|
65 | 1088 being internal state size for each variant).
|
66 |
|
67 | ## 2.4.1 (2020-04-04)
|
68 |
|
69 | - Fixed incorrect HMAC results when using SHA-3 if the key was 1-4 bytes shorter
|
70 | than the internal block size of the chosen SHA-3 variant.
|
71 |
|
72 | ## 2.4.0 (2020-03-26)
|
73 |
|
74 | - Reduced ECMAScript dependency to v3 (thanks TitusInfo!)
|
75 | - Added support for Uint8Array input/output as UINT8ARRAY (thanks nazar-pc!)
|
76 |
|
77 | ## 1.6.3 (2020-03-26)
|
78 |
|
79 | - Reduced ECMAScript dependency to v3 (thanks TitusInfo!)
|
80 |
|
81 | ## 2.3.1 (2017-06-10)
|
82 |
|
83 | - Fix issue with SHA-3 and using a combination of TEXT/UTF-16 input (thanks
|
84 | frostschutz!)
|
85 |
|
86 | ## 2.3.0 (2017-05-13)
|
87 |
|
88 | - Sped up SHA-3 implementation by adding little-endian capability to conversion
|
89 | functions
|
90 | - Further sped up SHA-3 implementation by decomposing xor_64 function (thanks
|
91 | frostschutz!)
|
92 | - Fixed incorrect results when using ArrayBuffers (thanks conref!)
|
93 | - Added externs/sha.js for [Google Closure Compiler][gcc] users (thanks IvanRF!)
|
94 |
|
95 | ## 2.2.0 (2016-07-10)
|
96 |
|
97 | - Added support for the SHA-3 family of hashes (SHA3-224, SHA3-256, SHA3-384,
|
98 | SHA3-512, SHAKE128, and SHAKE256)
|
99 | - Fixed bug with using ARRAYBUFFER as a HMAC key type
|
100 | - Switched testing framework to Mocha and Chai
|
101 |
|
102 | ## 2.1.0 (2016-05-13)
|
103 |
|
104 | - Added ability to call `update` on hashes between `getHash` and `getHMAC` calls
|
105 | - Added new input and output type, "ARRAYBUFFER" which is a JavaScript
|
106 | ArrayBuffer
|
107 | - Now keeping smaller build files in NPM (thanks vogievetsky!)
|
108 | - Fixed problem with hashing strings over 4 billion bits (thanks Eicar!)
|
109 |
|
110 | ## 2.0.2 (2015-10-31)
|
111 |
|
112 | - Fixed inability to have a blank "b64Pad" (thanks xlc!)
|
113 | - Added file hashing test (thanks kofalt!)
|
114 |
|
115 | ## 2.0.1 (2015-06-25)
|
116 |
|
117 | - Fixed major issue with all hashes failing if raw input was a particular size
|
118 | (thanks treus!)
|
119 |
|
120 | ## 2.0.0 (2015-06-13)
|
121 |
|
122 | - Completely reworked API to support streaming inputs
|
123 | - Exceptions now throw Errors instead of strings (thanks jclem!)
|
124 |
|
125 | ## 1.6.1 (2015-06-25)
|
126 |
|
127 | - Fixed issue with SHA-512 family of hashes failing if raw input was a
|
128 | particular size
|
129 |
|
130 | ## 1.6.0 (2015-03-08)
|
131 |
|
132 | This marks the last v1.X new feature release. The API is changing significantly
|
133 | with upcoming v2.0 to support streaming and it will be too difficult to support
|
134 | the older API style with new features.
|
135 |
|
136 | - Added a BYTES input and output format that is a raw byte string
|
137 | - Fixed broken AMD support (thanks drewcovi!)
|
138 | - Fixed broken UTF-8 parsing on non-BMP Unicode characters
|
139 | - Changed array references to remove warnings on Icedove
|
140 | - Replaced "UTF16" encoding with "UTF16BE" (big endian) and "UTF16LE" (little
|
141 | endian) to remove confusion
|
142 |
|
143 | ## 1.5.1 (2013-12-15)
|
144 |
|
145 | - Changed [Google Closure Compiler][gcc] options to produce "strict" compatible
|
146 | code
|
147 |
|
148 | ## 1.5 (2013-12-15)
|
149 |
|
150 | - Added optional numRounds argument to getHash
|
151 | - Note: this necessitated removing the hash result caching functionality
|
152 | - Reduced file size by optimizing internal constants
|
153 | - Removed charSize input and replaced with encoding to handle Unicode. NOTE:
|
154 | Only Code points up to 0xFFFF are supported.
|
155 | - charSize = 16 is effectively replaced by encoding = "UTF16"
|
156 | - charSize = 8 was wrong in terms of handling UTF-8 and has been replaced by
|
157 | encoding = "UTF8"
|
158 | - Changed method of referencing "window" to be compatible with WebWorkers,
|
159 | Node.js, and AMD (thanks piranna!)
|
160 |
|
161 | ## 1.42 (2012-12-28)
|
162 |
|
163 | - Readded v1.4 Safari patch to support older versions
|
164 |
|
165 | ## 1.41 (2012-12-23)
|
166 |
|
167 | - Fixed incorrect hash issue with Chrome x64 v25 (Dev channel), also provides
|
168 | stable patch to v1.4 Safari issue.
|
169 |
|
170 | ## 1.4 (2012-12-08)
|
171 |
|
172 | - Added new input type, TEXT, that is functionally identical to ASCII\*
|
173 | - Added new input type, B64, for base-64 encoded strings
|
174 | - Added new input and output formatting parameters
|
175 | - `getHash` and `getHMAC` take an optional parameter, outputFormatOpts, that
|
176 | is a hash list containing the keys "outputUpper" (boolean, only applicable
|
177 | to HEX output) and "b64Pad" (string, only applicable to Base-64 output) that
|
178 | have default values of false and "=", respectively
|
179 | - jsSHA constructor takes an optional parameter, charSize (8 or 16) that
|
180 | specifies the character width of the input (TEXT and ASCII input only)
|
181 | - Modified comments to be [Google Closure Compiler][gcc] compliant
|
182 | - Added a SUPPORTED_ALGS flag that, when used with the Google Closure Compiler,
|
183 | will remove unused functions/function portions
|
184 | - Removed all src/\*\_nice.js files as the SUPPORTED_ALGS flag renders them
|
185 | obsolete
|
186 | - All production-ready files are now produced using the Google Closure Compiler
|
187 | with ADVANCED_OPTIMIZATIONS resulting in further reduced filesizes
|
188 | - The SHA-1 only implementation now requires that that "SHA-1" be specified as
|
189 | the variant when using getHash and getHMAC
|
190 | - Removed test/HMAC.py as new NIST tests made the need for it obsolete
|
191 | - Significantly changed the test/test.html to make it easier to understand and
|
192 | to allow for easier adding of test cases
|
193 | - Replaced previous error returning code with thrown exceptions
|
194 | - Fix for 64-bit Safari issue (thanks Ron Garret and Chris Warren-Smith!)
|
195 | - NOTE: While this fix works, it is merely a workaround for a WebKit
|
196 | JavaScript optimizer bug, see https://bugs.webkit.org/show_bug.cgi?id=88673
|
197 | for more detail
|
198 |
|
199 | \* This library misused the term ASCII so input type of TEXT was added with the
|
200 | intention of deprecating ASCII
|
201 |
|
202 | [gcc]: https://developers.google.com/closure/compiler/
|
203 |
|
204 | ## 1.31 (2012-07-21)
|
205 |
|
206 | - Updated project URL to point to new GitHub repository
|
207 | - Added a compressed version of sha.js
|
208 |
|
209 | ## 1.3 (2010-09-01)
|
210 |
|
211 | - Changed method of declaring objects/classes
|
212 | - Moved non-instance specific variables and methods to class scope
|
213 | - Removed logically correct but unneeded conditionals
|
214 |
|
215 | ## 1.2 (2009-07-22)
|
216 |
|
217 | - Added the HMAC algorithm for all supported hashes (using both ASCII and hex
|
218 | keys)
|
219 | - As a result of adding HMAC, added support for hash input text to be hex (ASCII
|
220 | representation of hex)
|
221 | - Added multiple variants of safeAdd functions, resulting in a significant
|
222 | performance gain
|
223 | - Removed wrapper.js file
|
224 | - Used a different JavaScript compressor resulting in smaller file sizes
|
225 |
|
226 | ## 1.11 (2008-12-07)
|
227 |
|
228 | - Fixed a base-64 encoding issue resulting from a missing capital 'X'
|
229 |
|
230 | ## 1.1 (2008-09-25)
|
231 |
|
232 | - Fixed an issue with incorrect hashes being generated when jsSHA ojbects were
|
233 | used to generate multiple hashes
|
234 |
|
235 | ## 1.0 (2008-09-25)
|
236 |
|
237 | - Made all functions/variables follow an object-orientated methodology
|
238 | - Removed support for string hash output as the hash is rarely ASCII friendly
|
239 | - Changed the interface to calculate hashes (see README)
|
240 | - Made sha.js validate against [JSLint] using "Recommended" settings
|
241 |
|
242 | [jslint]: http://www.jslint.com
|
243 |
|
244 | ## 0.1 (2008-02-21)
|
245 |
|
246 | - Initial public release
|