forked from krzyzanowskim/CryptoSwift
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGELOG
335 lines (274 loc) · 8.71 KB
/
CHANGELOG
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
1.4.3
- Fix PCBC mode.
1.4.2
- Update Xcode project to Xcode 13
- Add SHA3 support for HMAC
- Update HMAC.Variant API (deprecate current cases)
1.4.1
- Introduce ISO 10126 padding
- fix various compiler warnings
- Revert Xcode project deployment target
1.4.0
- Customize CFB segment size (cfb8, cfb128).
- Adapt Swift @inlineable for better code optimization
1.3.8
- Revert xcframework revolution. Back to build from sources. (I'm sorry)
1.3.7
- Re-release to workaround Swift Package Manager release
1.3.6
- Fix macOS binary
- Windows support
1.3.5
- Re-release binary framework due to codesign issue
1.3.4
- Distribute optimized binary (xcframework) via SPM for apple platforms
1.3.3
- Adds OCB Authenticated-Encryption Algorithm (RFC7253)
- build-framework.sh output CryptoSwift.xcframework
- Xcode 12.2 maintenance updates
- Removed CryptoSwift.playground (couldn't make it work since Xcode 12 update)
1.3.2
- Swift 5.3 update (Xcode 12)
- Bump target platform (iOS 9, macOS 10.12)
- Allow CMAC with any Cipher
- Remove CMAC key limit
1.3.1
- Fix tests
- Swift 5.2 update
- Address possible timing issue
1.3.0
- Adds ISO-78164 padding
- Performance improvements
- Swift 5.1 update
1.2.0
- Performance improvements
- Workaround Xcode test builds with Xcode 11
1.1.3
- Fix build crash: https://bugs.swift.org/browse/SR-11630
- Fixes Xcode project tests build
- SwiftFormat all the things
- Increase/fix SHA2 data length for big input by use Int64 for calculation
1.1.2
- Fix Swift 5.0 build (for real this time)
1.1.1
- Fix Swift 5.0 build
1.1.0
- Replace RandomBytesSequence with Swift.RandomNumberGenerator
- Fix CBC-MAC
- Update SPM support
- Update for Xcode 11 and Swift 5.1
- Xcode: BUILD_LIBRARY_FOR_DISTRIBUTION = YES
1.0.0
- Swift 5
- Let's
- Celebrate
- This
- Event
- With
- 1.0.0 release
- After
- 4 years
- Thank you
0.15.0
- Adds The scrypt Password-Based Key Derivation Function (https://tools.ietf.org/html/rfc7914)
- Minor improvements
0.14.0
- Fixed decryption of AES-GCM ciphertexts with custom tag length
0.13.1
- Adds AES-GCM tag length configuration.
- Fixes count check for initializing UInt64 from Data.
0.13.0
- Adds CBC-MAC authenticator.
- Adds AES-CCM operation mode.
0.12.0
- Swift 4.2 maintenance update.
0.11.0
- API: Cryptor.seek() is throwable
- Adds proper stream support for CTR encryption with Updaptable interface.
- Refactor internals for the stream cipher modes.
- Set minimum deployment target to 8.0 (again).
0.10.0
- API: BlockMode is no longer an enum. Please migrate to eg. CBC() etc...
- Adds AES-GCM support. #97 - Feature sponsored by GesundheitsCloud (http://www.gesundheitscloud.de/)
- Adds CRC32c support.
- Improves AES variant validation.
- Fixes empty password in PBKDF2.
0.9.0
- Swift 4.1 compatibility
- Added CMAC message authenticator https://tools.ietf.org/html/rfc4493
- Added AEADChaCha20Poly1305 (AEAD_CHACHA20_POLY1305) https://tools.ietf.org/html/rfc7539#section-2.8.1
0.8.3
- Fixes SHA3 padding.
- Fixes Carthage builds.
0.8.2
- Fixes SHA3 partial updates calculations.
- Makes ChaCha20 processing faster again.
0.8.1
- Adds Data(hex:) helper.
- Adds HKDF (HMAC-based Extract-and-Expand Key Derivation Function)
- Prevent ChaCha overflow error
0.8.0
- Adds SHA3 Keccak variants
- Adds String.bytes helper to convert String to array of bytes
- Improves AES performance
- Speeds up compilation times with Swift 4
- Fixes: Blowfish minimum key size is 5
- Removes Ciphers "iv" parameter (value moved to BlockMode)
- BlockMode uses associated value for IV value where apply e.g. .CBC(iv: ivbytes)
- Refactors internal hacks no longer needed with Swift 4
0.7.2
- Adds Padding enum (.pkcs5, .pkcs7, .noPadding, .zeroPadding)
- Removes Generics from the public API.
- Slightly improves SHA1, SHA2, SHA3 performance.
- Update SPM configuration for Swift 4
0.7.1
- Swift 4.0 compatibility release
0.7.0
- Swift 3.2 compatibility release
0.6.9
- Fixed padding issue where padding was not properly added in CTR mode.
- Fixed thrown error on decrypting empty string,
- Fixed CI build script.
- Added String.encryptToBase64()
0.6.8
- Speed up MD5()
- Faster Array(hex:)
- Improve AES performance
- Fix tvOS bitcode
- Fix Blowfish CFB, OFB, CTR block modes.
- Fix Blowfish for 32-bit arch.
- Fix ChaCha20 preconditions
0.6.7
- Release for Xcode 8.2
- Fix playground example
0.6.6
- Rework ChaCha20
- Fix Poly1305
0.6.5
- Significant performance improvement when processing lange amount of data.
- Degeneric functions and change Sequence -> Collection in generic constraints.
0.6.4
- More performance improvements
- Add convenient Digest.sha2(bytes:variant)
- New: Blowfish cipher
0.6.3
- Hotfix release
- Fixes bitPadding() that breaks Digests calculations, introduced in 0.6.2
0.6.2
- SHA performance improvements by using less Swift in Swift
- Fix public access to all digests classes
0.6.1
- Update tests.
- New: RandomBytesSequence urandom values on Linux.
- Throw appropriate error for AES with invalid input where padding is needed.
- Improve performance, especially to SHA-1, SHA-2, PBKDF and related.
- Set deployment targets for all platform. Fixes Carthage builds.
- New: SHA-3 implementation (request #291)
- SHA-1 conforms to Updatable protocol and may be calculated incrementally.
- SHA-2 conforms to Updatable protocol and may be calculated incrementally.
0.6.0
- Remove bridge() workaround for Linux (not needed)
- make MD5() public
- Update README
- Convenience HMAC initializer for String input
0.6.0-beta2
- SHA-2 fix #319
- HashProtocol -> Digest and refactor
- MD5 conforms to Updatable protocol and may be calculated incrementally
- Cipher protocol accepts Collection input now
0.6.0-beta1
- Swift 3 compatibility
- Multiplatform, Single-scheme Xcode Project
- Swift Package Manager fully supported (build and tests)
- Improved Linux support
- Travis configuration added
- Public interface tests added
- enum Authenticator -> protocol Authenticator
- CRC -> Checksum
- String.encrypt() returns hex string instead of Array<UInt8>
- removed String.decrypt()
- enum Hash -> struct Hash
- Convenience initializer of Array of bytes with Hex string. Array<UInt8>(hex: "0xb1b1b2b2")
- Fix reusability of ChaCha20 instance
- Replace optional initializers with throwable initializers
- Allow to set initial counter explicitly (AES block modes). RandomAccessCryptor.seek()
0.5.2
- Fix AES-CTR incremental updates. #287
- Fixed PBKDF2 tests. #295
- Fixed assertion check in PKCS7. #288
- Updatable protocol accept SequenceType in place of Array
0.5.1
- Fixed PBKDF2 not taking key length parameter into account
- Switch to Array<> in code
0.5
- Added PBKDF1 https://tools.ietf.org/html/rfc2898#section-5.1
- Added PBKDF2 https://tools.ietf.org/html/rfc2898#section-5.2
- UpdatableCryptor protocol allows incremental encryption stream of data
- CryptoSwift.playground
- Docs update
- Added reflection control to CRC-32 (Luís Silva)
- Fix AES.init() (Pascal Pfiffner)
0.4.1
- fix NoPadding()
0.4
- Padding setup is now part of cipher constructor
- Added PBKDF2 http://tools.ietf.org/html/rfc2898#section-5.2
- Add BlockCipher protocol
- Rename Cipher -> CipherProtocol
- Remove build-frameworks.sh script
- Keep sensitive data in memory with SecureBytes
- Allows direct use of HMAC and Poly1305
- README update
- Fix missing Foundation import on Linux
0.3.1
- replace deprecated Bit with new enum.
0.3
- Swift 2.2 support
- use generators for cipher block modes should reduce memory overload.
- add OFB block mode
- add PCBC block mode
- String.decryptBase64ToString to decrypt Base64 encoded strings
- broke up complicated expressions which were taking ages to compile
0.2.3
- enable bitcode setting for Debug on an Apple TV
- faster compilation times
- improve padding functions
0.2.2
- Fix ChaCha20 cipher
- Replace for(;;) with for-in
- Workaround for "NSString are not yet implicitly convertible to String" on Linux
0.2.1
- Fix linux build
- re-add umbrella header
0.2
- Rabbit cipher (RFC4503)
- Linux Swift support
- Swift Package Manager support
- tvOS support
- Add optional seed to CRC
- Add umbrella header (CryptoSwift.h)
- Fix AES in CTR mode
- Fix no padding support for CTR and CFB block modes
- Fix access to AES.Error and ChaCha20.Error
0.1.1
- Fix Cococapods package (missing Foundation integration)
0.1.0
- Major performance improvements.
- Transition from Optionals to throw error.
- Replace enum Cipher with protocol for ciphers.
- Added CRC16
- Fixed AES CFB decryption
- Drop internal "Foundation" dependency, nonetheless it is supported as usual.
0.0.16
- Critical fix for private "md5" selector issue (#135)
0.0.15
- Fix 32-bit CTR block mode
- Carthage support update
- Mark as App-Extension-Safe API
0.0.14
- hexString -> toHextString() #105
- CTR (Counter mode)
- Hex string is lowercase now
- Carthage support
- Tests update
- Swift 2.0 support - overall update