Skip to content

Latest commit

 

History

History
143 lines (105 loc) · 6.16 KB

CHANGELOG.md

File metadata and controls

143 lines (105 loc) · 6.16 KB

SwiftyRSA Changelog

  • Support of the X509 header for any public key.
  • Added tests for Xcode 12.
  • Migrated to minimum requirements of Swift 5.0 and Xcode 10.2.
  • Made compatible with Swift 4.2 and Xcode 10
  • Fixed a potential crash when building dictionaries with CFString values #107
  • Fixed getting SwiftyRSA.SwiftyRSAError.keyAddFailed(-50) error when the device is locked on iOS 8 / 9.
  • Fixed compilation warnings for Xcode 9.1 / 9.2.
  • Added support for Swift 4.1 and Xcode 9.3.
  • Added ability to generate a RSA key pair by using SwiftyRSA.generateRSAKeyPair. #106
  • Added Swift 3.2 and 4.0 support.
  • SwiftyRSAError is now exposed as an enum so that it can be introspected. #68
  • Breaking: SwiftyRSA ObjC was refactored under the hood to offer a better experience with both Swift and ObjC runtimes. To use SwiftyRSA with Objective-C use the following pod:

    pod 'SwiftyRSA/ObjC'
    
    • Other methods of integration – like Carthage – are unaffected.
    • In Swift, ClearMessage.verify now returns a boolean instead of a VerificationResult.
  • Fixed an issue that prevented private keys from loading if they contained an ASN1 header. #71

  • Fixed an issue that prevented public/private keys from loading if their integers were represented with an Octet String ASN1 node. #70

  • Fixed Carthage integration by running SwiftLint only if it exists in a Pods directory. #66 #65
  • PublicKey and PrivateKey now expose their keychain reference and the data they were created with, in the reference and originalData fields. #60
  • PublicKey and PrivateKey now have a method data() which returns the key data as exported by the keychain. #60
  • PublicKey and PrivateKey now can be exported to PEM via the pemString() method, or base64 via the base64String() method. #60
  • PublicKey and PrivateKey now can be created from a SecKey reference. #48
  • Fixed a bug that would pass a wrong bit size to SecKeyCreateWithData on iOS 10+. https://github.com/TakeScoop/SwiftyRSA/issues/58

Breaking changes

For its 1.0 version, SwiftyRSA is getting an architecture overhaul to ensure separation of concerns and code clarity. We're introducing the following classes:

  • PublicKey/PrivateKey allow to extract a key from a PEM/DER/base64 string and now includes helpers like PublicKey(pemNamed: "public").
  • ClearMessage/EncryptedMessage represents a clear or encrypted message to process through the RSA algorithm.
  • Signature represents a message's signature that can be verified with a public key.

We recommend to check out the new usage instructions to migrate code from 0.x versions of SwiftyRSA.

  • Migrated source code to Swift 3.0
  • Don't reduce maxmim blocksize when padding is None #29
  • Add support for SHA2 (224,256,384 & 512 bits) digest algorithms
  • verifySHA1SignatureData & signSHA1Digest are now deprecated; use verifySignature() and signDigest()
  • Objective-C sign & verification functions now require a digestMethod: parameter
  • Added support to read multiple keys from an input file using publicKeysFromString(). #22
  • Added WatchOS and tvOS support. #23
  • Added digital signature creation & verification support. #7
  • Fixed compiler warnings for Carthage. #8
  • Added Carthage support. #3
  • Added NSData encryption/decryption.
  • Fixed a bug where SwiftyRSA couldn't encrypt/decrypt data which length was bigger than the RSA key block size. #6
  • Added support for headerless RSA public keys, improved public key header parsing function. #2
  • Added Objective-C support.
  • Added instructions to create public/private keys using ssh-keygen.
  • Fixed swift 3 compiler warnings. #4
  • SwiftyRSA is now unit tested on each commit with Travis CI.
  • Unit tests now run against the SwiftyRSA framework, and not the actual sources, which makes sure all required methods are public.

Initial release.