Swiftpack.co - Package - backslash-f/aescryptable

swift-version swift-package-manager platform build-status license

AESCryptable

Provides Advanced Encryption Standard (AES) capabilities.

Integration

Xcode 11+

AESCryptable Xcode 11 SPM

(More on the topic from WWDC 2019: Adopting Swift Packages in Xcode and Creating Swift Packages.)

Via Package.swift

In your Package.swift, add AESCryptable as a dependency:

dependencies: [
  // 🔐 AES encryption/decryption with random iv. Swift 5 and up.
  .package(url: "https://github.com/backslash-f/aescryptable", from: "1.0.0")
],

Associate the dependency with your target:

targets: [
  .target(name: "App", dependencies: ["AESCryptable"])
]

Run: swift build

Usage

import AESCryptable

do {
  // encrypt
  let aes = try AES(keyString: "01234567890123456789012345678901")
  let encryptedData = try aes.encrypt("The black knight always triumphs!")

  // decrypt
  let decryptedString = try aes.decrypt(encryptedData)
  print(decryptedString) // The black knight always triumphs!

} catch {
  print(error)
}

(Refer to the test class for a high-level overview.)

Demo

Clone the repo and use AESCryptable.playground to see the code in action:

AESCryptable Demo

Github

link
Stars: 15

Dependencies

Used By

Total: 0

Releases

Swift 5.1 + Xcode 11 - 2019-06-27 09:47:04

Minor refactor around AESError - 2019-04-04 15:58:09

Refactoring & Enhancements - 2019-04-04 15:57:37

Kudos to the user Leo from SO:

  • Favor Data(string.utf8) over string.data(using: .utf8)
  • Remove stringToDataFailed error

Also added a Playground to make it easier to see the code in action.

Random iv is back - 2019-04-03 12:10:09

  • Bring back random iv generation
  • Remove NSData.bytes usage

First Release - 2019-03-31 15:49:45