- 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 aVerificationResult
.
-
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
PublicKey
andPrivateKey
now expose their keychain reference and the data they were created with, in thereference
andoriginalData
fields. #60PublicKey
andPrivateKey
now have a methoddata()
which returns the key data as exported by the keychain. #60PublicKey
andPrivateKey
now can be exported to PEM via thepemString()
method, or base64 via thebase64String()
method. #60PublicKey
andPrivateKey
now can be created from aSecKey
reference. #48- Fixed a bug that would pass a wrong bit size to
SecKeyCreateWithData
on iOS 10+. https://github.com/TakeScoop/SwiftyRSA/issues/58
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 likePublicKey(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; useverifySignature()
andsignDigest()
- 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
- 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.