lib/argon2/errors.rb
# frozen_string_literal: true
# Defines an array of errors that matches the enum list of errors from
# argon2.h. This allows return values to propagate errors through the FFI.
module Argon2
class ArgonHashFail < StandardError; end
ERRORS = %w[
ARGON2_OK
ARGON2_OUTPUT_PTR_NULL
ARGON2_OUTPUT_TOO_SHORT
ARGON2_OUTPUT_TOO_LONG
ARGON2_PWD_TOO_SHORT
ARGON2_PWD_TOO_LONG
ARGON2_SALT_TOO_SHORT
ARGON2_SALT_TOO_LONG
ARGON2_AD_TOO_SHORT
ARGON2_AD_TOO_LONG
ARGON2_SECRET_TOO_SHORT
ARGON2_SECRET_TOO_LONG
ARGON2_TIME_TOO_SMALL
ARGON2_TIME_TOO_LARGE
ARGON2_MEMORY_TOO_LITTLE
ARGON2_MEMORY_TOO_MUCH
ARGON2_LANES_TOO_FEW
ARGON2_LANES_TOO_MANY
ARGON2_PWD_PTR_MISMATCH
ARGON2_SALT_PTR_MISMATCH
ARGON2_SECRET_PTR_MISMATCH
ARGON2_AD_PTR_MISMATCH
ARGON2_MEMORY_ALLOCATION_ERROR
ARGON2_FREE_MEMORY_CBK_NULL
ARGON2_ALLOCATE_MEMORY_CBK_NULL
ARGON2_INCORRECT_PARAMETER
ARGON2_INCORRECT_TYPE
ARGON2_OUT_PTR_MISMATCH
ARGON2_THREADS_TOO_FEW
ARGON2_THREADS_TOO_MANY
ARGON2_MISSING_ARGS
ARGON2_ENCODING_FAIL
ARGON2_DECODING_FAIL
ARGON2_THREAD_FAIL
].freeze
end