1package argon2 2 3// #cgo pkg-config: libargon2 4// #include <argon2.h> 5import "C" 6 7import ( 8 "errors" 9 "fmt" 10) 11 12// Error represents the internal error code propagated from libargon2. 13type Error int 14 15func (e Error) Error() string { 16 msg := C.argon2_error_message(C.int(e)) 17 return fmt.Sprintf("argon2: %s", C.GoString(msg)) 18} 19 20var ( 21 ErrContext = errors.New("argon2: context is nil") 22 ErrPassword = errors.New("argon2: password is nil or empty") 23 ErrSalt = errors.New("argon2: salt is nil or empty") 24 ErrHash = errors.New("argon2: hash is nil or empty") 25) 26 27var ( 28 ErrOutputPtrNull Error = C.ARGON2_OUTPUT_PTR_NULL 29 ErrOutputTooShort Error = C.ARGON2_OUTPUT_TOO_SHORT 30 ErrOutputTooLong Error = C.ARGON2_OUTPUT_TOO_LONG 31 ErrPwdTooShort Error = C.ARGON2_PWD_TOO_SHORT 32 ErrPwdTooLong Error = C.ARGON2_PWD_TOO_LONG 33 ErrSaltTooShort Error = C.ARGON2_SALT_TOO_SHORT 34 ErrSaltTooLong Error = C.ARGON2_SALT_TOO_LONG 35 ErrAdTooShort Error = C.ARGON2_AD_TOO_SHORT 36 ErrAdTooLong Error = C.ARGON2_AD_TOO_LONG 37 ErrSecretTooShort Error = C.ARGON2_SECRET_TOO_SHORT 38 ErrSecretTooLong Error = C.ARGON2_SECRET_TOO_LONG 39 ErrTimeTooSmall Error = C.ARGON2_TIME_TOO_SMALL 40 ErrTimeTooLarge Error = C.ARGON2_TIME_TOO_LARGE 41 ErrMemoryTooLittle Error = C.ARGON2_MEMORY_TOO_LITTLE 42 ErrMemoryTooMuch Error = C.ARGON2_MEMORY_TOO_MUCH 43 ErrLanesTooFew Error = C.ARGON2_LANES_TOO_FEW 44 ErrLanesTooMany Error = C.ARGON2_LANES_TOO_MANY 45 ErrPwdPtrMismatch Error = C.ARGON2_PWD_PTR_MISMATCH 46 ErrSaltPtrMismatch Error = C.ARGON2_SALT_PTR_MISMATCH 47 ErrSecretPtrMismatch Error = C.ARGON2_SECRET_PTR_MISMATCH 48 ErrAdPtrMismatch Error = C.ARGON2_AD_PTR_MISMATCH 49 ErrMemoryAllocationError Error = C.ARGON2_MEMORY_ALLOCATION_ERROR 50 ErrFreeMemoryCbkNull Error = C.ARGON2_FREE_MEMORY_CBK_NULL 51 ErrAllocateMemoryCbkNull Error = C.ARGON2_ALLOCATE_MEMORY_CBK_NULL 52 ErrIncorrectParameter Error = C.ARGON2_INCORRECT_PARAMETER 53 ErrIncorrectType Error = C.ARGON2_INCORRECT_TYPE 54 ErrOutPtrMismatch Error = C.ARGON2_OUT_PTR_MISMATCH 55 ErrThreadsTooFew Error = C.ARGON2_THREADS_TOO_FEW 56 ErrThreadsTooMany Error = C.ARGON2_THREADS_TOO_MANY 57 ErrMissingArgs Error = C.ARGON2_MISSING_ARGS 58 ErrEncodingFail Error = C.ARGON2_ENCODING_FAIL 59 ErrDecodingFail Error = C.ARGON2_DECODING_FAIL 60 ErrThreadFail Error = C.ARGON2_THREAD_FAIL 61 ErrDecodingLengthFail Error = C.ARGON2_DECODING_LENGTH_FAIL 62 ErrVerifyMismatch Error = C.ARGON2_VERIFY_MISMATCH 63) 64