#CryptoSwift Crypto related functions and helpers for Swift implemented in Swift. (#PureSwift)
##Requirements Good mood
##Features
- Easy to use
- Convenience extensions
###What implemented?
#####Cipher
#####Message authenticators
###Why Why? Because I can.
##Installation
Drag the CryptoSwift.xcodeproj file into your Xcode project, and add CryptoSwift.framework as a dependency for your target.
##Usage
import CryptoSwift
Generally you should use CryptoSwift.Hash
,CryptoSwift.Cipher
enums or convenience extensions
Hash enum usage
/* Hash enum usage */
var data:NSData = NSData(bytes: [49, 50, 51] as [Byte], length: 3)
if let data = CryptoSwift.Hash.md5(data).calculate() {
println(data.hexString)
}
Hashing a data
let hash = data.md5()
let hash = data.sha1()
let hash = data.sha224()
let hash = data.sha256()
let hash = data.sha384()
let hash = data.sha512()
let crc = data.crc32()
println(hash.hexString)
Hashing a String and printing result
if let hash = "123".md5() {
println(hash)
}
Working with Cipher
// convenience setup tuple
let setup = (key: keyData, iv: ivData)
// encrypt
if let encrypted = Cipher.ChaCha20(setup).encrypt(dataToEncrypt) {
// decrypt
if let decrypted = Cipher.ChaCha20(setup).decrypt(encrypted) {
// validate result
if (encrypted.isEqual(decrypted)) {
print("Decryption failed!")
}
}
}
with extensions
// convenience setup tuple
let setup = (key: keyData, iv: ivData)
if let encrypted = dataToEncrypt.encrypt(Cipher.ChaCha20(setup)) {
if let decrypted = encrypted.decrypt(Cipher.ChaCha20(setup)) {
println(decrypted)
}
}
Message authenticators
// Calculate Message Authentication Code (MAC) for message
let mac = Authenticator.Poly1305(key: key).authenticate(message)
##Contact Marcin Krzyżanowski @krzyzanowskim
##Licence see LICENSE file