A Swift wrapper for the Argon 2 hashing algorithm. Compatible with SPM.
This package has a single library, Argon2
, however due to the module name conflicts you should import it in your code simply as Argon
.
Argon2
is the Swift layer over the C functions for hashing and verifying byte arrays. It has methods to handle String
and more Swift-like configurations. This library does not give you access to the C interface.
The Argon2.Error
type is used to represent errors that are returned from the underlying hashing and verification functions. It has a code
property which is the error code of the error returned. You can see a whole list of the possible errors here.
The success code of a function is 0
, while all errors are negative numbers. If a positive error code is returned, it was from the Swift API, not the C library.
For an easy PR, you could create static cases for the Error
struct that match the errors in the C library.
HashMode
is an enum where the cases represent the possible hashing processes that a byte array can be sent through. There are i
, d
, and id
. There are documentation comments for these cases about their differences.
There are also two properties. method
, which is the hashing function for that hashing mode, and verify
, which is the verification function for that mode.
This is a struct that holds configuration information for hashing a byte array. The original Argon 2 repo didn't have any documentation on these values that I found, so I wrote some very vague API docs for the properties.
There is a default
static property that gets you an instance to pass into the hasher. The value for the properties where pulled from the example in the original repo's README.
The main type of the repo, Argon2
does not have any public initializers or properties. Instead it has static methods that can be called to hash and verify byte arrays or strings.
This repo is under the CC0 1.0 Universal license.