Argon2Swift
Swift bindings for the reference C implementation of Argon2, the winner of the Password Hash Competition.
Installation (Cocoapods)
Argon2Swift can be installed via Cocoapods by adding the following to your Podfile
:
pod Argon2Swift
Installation (SPM)
Argon2Swift can be installed via SPM (Swift Package Manger) by adding the following to your depencencies:
.package(url: "https://github.com/tmthecoder/Argon2Swift.git", .branch("main"))
Usage
High-level hashing and verification (for direct hashing & verification of byte arrays, check the example)
import Argon2Swift
// Create a password and a salt
let password = "password"
let s = Salt.newSalt()
//Hash with pre-set params (iterations: 32, memory: 256, parallelism: 2, length: 32, type: Argon2Type.i, version: Argon2Version.V13)
let result = try! Argon2Swift.hashPasswordString(password: password, salt: s)
//Raw hash values available as int list, base 64 string, and hex string
let hashData = result.hashData()
let base64Hash = result.base64String()
let hexHash = result.hexString()
//Encoded hash values available as int list and encoded string
let encodedData = result.encodedData()
let encodedString = result.encodedString()
//Verify password (returns true/false), uses default type (Argon2Type.i)
let verified = try! Argon2Swift.verifyHashString(password: password, hash: stringEncoded);
Features and bugs
Please file feature requests and bugs at the issue tracker.
Licensing
- Argon2Swift is Licensed under the MIT License
- The C implementation of Argon2 is licensed under a dual Apache and CC0 License