All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning.
- #272. Correct warnings related to incorrect memory access. The previous code was invalid Swift (it accessed a value inside its own
withUnsafeBytes
block), but happened to work. - Removes a
Data.init
work-around that is no longer needed.
- Update Swift Package Manager support
- Update Linux support
- Add tvOS support
- Update to Xcode 9.1 settings
- Update to Swift 4 (no code changes; completely backward compatible)
- Remove code coverage from Release builds (necessary for Carthage)
- Perform final decryption after HMAC validation. Fixes #185. This improves security very slightly. There is no known or proposed attack that could exploit the previous behavior, but where possible it is better to validate prior to decryption.
- Fix CocoaPods
5.0.0 Swift 3.0. Drop ObjC bridge.
- Rework for Swift 3
- Drops ObjC bridging. There are too many problems with the Swift compiler at this point to support this cleanly. ObjC code should use RNCryptor-ObjC.
- #159 Add WatchOS support to Podspec
- Better debugging output in case of unexpected cryptor failure
- Added Examples/KeyDerivation to explain how to manually derive keys
4.0.0 - Complete rewrite in Swift with ObjC bridging
- No changes from beta except version bump
4.0.0-beta.1 - Complete rewrite in Swift with ObjC bridging
3.0.1 - CocoaPods fixes (Current ObjC Version)
- Removed private headers from CocoaPods
3.0.0 - Remove OpenSSL
- Remove OpenSSL support. This has been moved to rnapier/RNOpenSSLCryptor.
- Integrates with Swift as a framework
- Remove warnings on OS X 10.8
2.2 - Data format v3
Version 2.2 is a fairly large release. It's been almost a year since 2.1 came out, and there are many small and large bug fixes.
V2.2 updates the file format from 2 to 3. It will read format 2 files, but will only write format 3. These are not readable by RNCryptor v2.1. See Issue #77 for details. The PHP, Python, and Ruby implementations also write format 3 and read format 2 or 3.
- Issue #91: Use constant time HMAC comparisons to avoid timing attacks
- Issue #77: KeyForPassword() broken for multi-byte passwords (UTF-8)
- Improved PHP, Python, and Ruby implementations
- Improved test cases, with test vectors
- Issue #76: Support OSX in podspec
- Resolved static analyzer warnings
- Ensure compatibility with iOS 4.2
- Accept settings to RNDecryptor (Issue #65)
- Copy password rather than retain it (Issue #64)
- Crash when reading v1 header