RNCryptor

CCCryptor (AES encryption) wrappers for iOS and Mac in Swift. -- For ObjC, see RNCryptor/RNCryptor-objc

MIT License

Stars
3.4K
Committers
38

Bot releases are hidden (Show)

RNCryptor - Swift 5 Latest Release

Published by rnapier over 5 years ago

  • Updates to Swift 5
  • Uses modular headers
RNCryptor - 5.0.3 -- Warning fixes for Swift 4.1

Published by rnapier over 6 years ago

  • #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.
  • #252. Use semver for tags rather than custom RNCryptor-# tags.
RNCryptor - 5.0.2 - Better builds

Published by rnapier almost 7 years ago

This is a minor release that fixes some build configuration issues.

  • 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)
RNCryptor - RNCryptor 5.0.1 - Swift 3 (with Cocoapods)

Published by rnapier about 8 years ago

  • 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

See build details and artifacts at buddybuild:
https://dashboard.buddybuild.com/apps/57ea731dbd45750100873fb1/build/57ea785c3dd53201003bef05

RNCryptor - Swift 2.3, Xcode 8

Published by rnapier about 8 years ago

For those remaining on Swift 2.3, the swift2 branch (4.x) will continue to support you. If you're on Swift 3, please see master and release 5.0.

RNCryptor - Swift 3

Published by rnapier about 8 years ago

This is the Swift 3 release. If you still need 2.2(3) support, see RNCryptor-4.0.0. If you need ObjC support, see RNCryptor/RNCryptor-objc.

Note that this release removes ObjC bridging. There are just too many little tricky bugs in the compiler. If you need ObjC, I recommend the ObjC-specific version. They should even be able to live in the same project together.

RNCryptor - RNCryptor v4.0 - Swift 2

Published by rnapier almost 9 years ago

RNCryptor 4 is a complete rewrite of RNCryptor for Swift 2 with full bridging support to Objective-C. It has a streamlined API, simpler installation, and improved internals. It continues to use the v3 data format and is fully interoperable with other RNCryptor implementations.

For users desiring a fully Objective-C solution, v3 is still available. I don't currently plan to do significant new work on v3, but will consider it if there is strong interest. Going forward, I expect most OS X and iOS projects to be able to accept a mix of ObjC and Swift code. Objective-C continues to be a fully supported language in RNCryptor 4.

RNCryptor - Swift 2

Published by rnapier about 9 years ago

RNCryptor 4 is a complete rewrite of RNCryptor for Swift 2 with full bridging support to Objective-C. It has a streamlined API, simpler installation, and improved internals. It continues to use the v3 data format and is fully interoperable with other RNCryptor implementations.

For users desiring a fully Objective-C solution, v3 is still available. I don't currently plan to do significant new work on v3, but will consider it if there is strong interest. Going forward, I expect most OS X and iOS projects to be able to accept a mix of ObjC and Swift code. Objective-C continues to be a fully supported language in RNCryptor 4.

I plan to convert this to a final release in a week or so if no major issues are discovered.

RNCryptor - Tweaks to CocoaPods

Published by rnapier about 9 years ago

CocoaPods was including private headers. Removed.

RNCryptor - RNCryptor v3.0.0 - Remove OpenSSL. Add Swift frameworks.

Published by rnapier about 9 years ago

RNCryptor v3 has one backward-incompatible change: OpenSSL support has been removed. OpenSSL encryption is not a secure format, and supporting it over-complicates RNCryptor. For those needing OpenSSL compatibility see rnapier/RNOpenSSLCryptor.

RNCryptor now cleanly integrates with Swift as a framework. The recommended way to do this is with Carthage, but CocoaPods is also tested and works.

A native Swift 2 version of RNCryptor is now in alpha and should be available around the time Xcode 7 is released.

Most of the rest of the changes in RNCryptor v3 are documentation and testing related. There are a few minor improvements in robustness (most are better defensive coding and do not solve actual bugs).

Going forward, I will be using Semantic Versioning. Previous versions of RNCryptor have not done this.

RNCryptor - RNCryptor v2.2

Published by rnapier almost 11 years ago

Version 2.2

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.

Security Issues

  • Issue #91: Use constant time HMAC comparisons to avoid timing attacks
  • Issue #77: KeyForPassword() broken for multi-byte passwords (UTF-8)

Other Noteable Changes

  • 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