BMHCrypto is a pure Swift packages built on CryptoKit, adds useful extensions and ready to use.
Simplify usage of cryptographic operation such as hashing, encryption / decryption. Pure Swift, I am not gonna reinvent the wheel, package always will be based on CryptoKit or whatever released by Apple.
- iOS 13.0+ / tvOS 13.0+ / watchOS 6.0+ / macOS 10.15+
- Swift 5.0+
Swift Package Manager
Swift Package Manager is built into new versions of Xcode. To install
BMHCrypto with SPM:
Open your project in Xcode
Click "File" -> "Swift Packages" -> "Add Package Dependency..."
Paste the following URL:
- Click "Next" -> "Next" -> "Finish"
You can use The Swift Package Manager to install
BMHCrypto by adding the proper description to your
import PackageDescription let package = Package( name: "YOUR_PROJECT_NAME", targets: , dependencies: [ .package(url: "https://github.com/muhasturk/BMHCrypto.git", from: "0.1.0") ] )
BMHCrypto to your targets dependencies like so:
.target( name: "YOUR_TARGET_NAME", dependencies: [ "BMHCrypto", ] ),
swift package update.
Important: These algorithms aren’t considered cryptographically secure, but are provided for backward compatibility with older services that require them. For new services, avoid these algorithms.
Cryptographically Secure Hashes
Message Authentication Codes
Do not forget to import
// Anything That Conforms DataProtocol let plainText = "BMH"
// Returns String Representation plainText.md5 plainText.sha1 plainText.sha256 plainText.sha384 plainText.sha512
// Share Same Key let key = SymmetricKey(size: .bits256) // Plain Data Could Be Anything let data = Data() // Encrypt let encrypted = data.encryptChaChaPoly(with: key) // Decrypt let decrypted = encrypted.decryptChaChaPoly(with: key)
// Share Same Key let key = SymmetricKey(size: .bits256) // Plain Data Could Be Anything let data = Data() // Encrypt let encrypted = data.encryptAES(with: key) // Decrypt let decrypted = encrypted?.decryptAES(with: key)
let key = SymmetricKey(size: .bits256) // Shareable String Key let savedKey = key.base64EncodedString // Ready to Use SymmetricKey let convertedKey = savedKey.asSymmetricKey
Mustafa Hasturk 📧 mustafa[at]hasturk.dev
Bug reports and pull requests are welcome.
BMHCrypto is released under the MIT license. See LICENSE for more information.