#ifndef COMMON_ERR_H
#define COMMON_ERR_H
#ifdef __cplusplus
extern "C" {
#endif
#define INTERNAL_OK 0
#define INTERNAL_BASE_ERR 0x01000000
#define INTERNAL_UNKNOWNERR (INTERNAL_BASE_ERR + 0x00000001)
#define INTERNAL_NOTSUPPORT (INTERNAL_BASE_ERR + 0x00000002)
#define INTERNAL_COMMFAIL (INTERNAL_BASE_ERR + 0x00000003)
#define INTERNAL_HARDFAIL (INTERNAL_BASE_ERR + 0x00000004)
#define INTERNAL_OPENDEVICE (INTERNAL_BASE_ERR + 0x00000005)
#define INTERNAL_OPENSESSION (INTERNAL_BASE_ERR + 0x00000006)
#define INTERNAL_PARDENY (INTERNAL_BASE_ERR + 0x00000007)
#define INTERNAL_KEYNOTEXIST (INTERNAL_BASE_ERR + 0x00000008)
#define INTERNAL_ALGNOTSUPPORT (INTERNAL_BASE_ERR + 0x00000009)
#define INTERNAL_ALGMODNOTSUPPORT (INTERNAL_BASE_ERR + 0x0000000A)
#define INTERNAL_PKOPERR (INTERNAL_BASE_ERR + 0x0000000B)
#define INTERNAL_SKOPERR (INTERNAL_BASE_ERR + 0x0000000C)
#define INTERNAL_SIGNERR (INTERNAL_BASE_ERR + 0x0000000D)
#define INTERNAL_VERIFYERR (INTERNAL_BASE_ERR + 0x0000000E)
#define INTERNAL_SYMOPERR (INTERNAL_BASE_ERR + 0x0000000F)
#define INTERNAL_STEPERR (INTERNAL_BASE_ERR + 0x00000010)
#define INTERNAL_FILESIZEERR (INTERNAL_BASE_ERR + 0x00000011)
#define INTERNAL_FILENOEXIST (INTERNAL_BASE_ERR + 0x00000012)
#define INTERNAL_FILEOFSERR (INTERNAL_BASE_ERR + 0x00000013)
#define INTERNAL_KEYTYPEERR (INTERNAL_BASE_ERR + 0x00000014)
#define INTERNAL_KEYERR (INTERNAL_BASE_ERR + 0x00000015)
#define INTERNAL_ENCDATAERR (INTERNAL_BASE_ERR + 0x00000016)
#define INTERNAL_RANDERR (INTERNAL_BASE_ERR + 0x00000017)
#define INTERNAL_PRKRERR (INTERNAL_BASE_ERR + 0x00000018)
#define INTERNAL_MACERR (INTERNAL_BASE_ERR + 0x00000019)
#define INTERNAL_FILEEXISTS (INTERNAL_BASE_ERR + 0x0000001A)
#define INTERNAL_FILEWERR (INTERNAL_BASE_ERR + 0x0000001B)
#define INTERNAL_NOBUFFER (INTERNAL_BASE_ERR + 0x0000001C)
#define INTERNAL_INARGERR (INTERNAL_BASE_ERR + 0x0000001D)
#define INTERNAL_OUTARGERR (INTERNAL_BASE_ERR + 0x0000001E)
#define INTERNAL_UKEYERR (INTERNAL_BASE_ERR + 0x0000001F)
#define INTERNAL_GENKEYERR (INTERNAL_BASE_ERR + 0x00000020)
#define INTERNAL_STATEERR (INTERNAL_BASE_ERR + 0x00000021)
#define INTERNAL_RETRYERR (INTERNAL_BASE_ERR + 0x00000022)
#define INTERNAL_DEVICE_BUSY (INTERNAL_BASE_ERR + 0x00000023)
#define CRYPT_MOD_OK 1
#define CRYPT_MOD_ERR 0
#define CRYPTO_MOD_BASE_ERR 0x01000
#define CRYPTO_MOD_TYPE_REPEATED_ERR (CRYPTO_MOD_BASE_ERR + 0x00001)
#define CRYPTO_MOD_TYPE_INVALID_ERR (CRYPTO_MOD_BASE_ERR + 0x00002)
#define CRYPTO_MOD_LIBPATH_REPEATED_ERR (CRYPTO_MOD_BASE_ERR + 0x00003)
#define CRYPTO_MOD_LIBPATH_INVALID_ERR (CRYPTO_MOD_BASE_ERR + 0x00004)
#define CRYPTO_MOD_CFG_PATH_REPEATED_ERR (CRYPTO_MOD_BASE_ERR + 0x00005)
#define CRYPTO_MOD_CFG_PATH_INVALID_ERR (CRYPTO_MOD_BASE_ERR + 0x00006)
#define CRYPTO_MOD_PARAM_TOO_MANY_ERR (CRYPTO_MOD_BASE_ERR + 0x00007)
#define CRYPTO_MOD_PARAM_INVALID_ERR (CRYPTO_MOD_BASE_ERR + 0x00008)
#define CRYPTO_MOD_UNSUPPORTED_SYMM_TYPE_ERR (CRYPTO_MOD_BASE_ERR + 0x00009)
#define CRYPTO_MOD_UNSUPPORTED_DIGEST_TYPE_ERR (CRYPTO_MOD_BASE_ERR + 0x0000A)
#define CRYPTO_MOD_DLOPEN_ERR (CRYPTO_MOD_BASE_ERR + 0x0000B)
#define CRYPTO_MOD_DLSYM_ERR (CRYPTO_MOD_BASE_ERR + 0x0000C)
#define CRYPTO_MOD_UNLOAD_ERR (CRYPTO_MOD_BASE_ERR + 0x0000D)
#define CRYPTO_MOD_NOT_LOADED_ERR (CRYPTO_MOD_BASE_ERR + 0x0000E)
#define CRYPTO_MOD_NOT_OPENDEVICE_ERR (CRYPTO_MOD_BASE_ERR + 0x0000F)
#define CRYPTO_MOD_NOT_OPENSESSION_ERR (CRYPTO_MOD_BASE_ERR + 0x00010)
#define CRYPTO_MOD_INVALID_KEY_ERR (CRYPTO_MOD_BASE_ERR + 0x00011)
#define CRYPTO_MOD_INVALID_CRYPTO_TYPE_ERR (CRYPTO_MOD_BASE_ERR + 0x00012)
#define CRYPTO_MOD_INVALID_KEY_CTX_ERR (CRYPTO_MOD_BASE_ERR + 0x00013)
#define CRYPTO_MOD_UNPADDING_ERR (CRYPTO_MOD_BASE_ERR + 0x00014)
#define CRYPTO_MOD_NOT_ENOUGH_SPACE_ERR (CRYPTO_MOD_BASE_ERR + 0x00015)
#define CRYPTO_MOD_DETERMINISTIC_DEC_VERIFY_ERR (CRYPTO_MOD_BASE_ERR + 0x00016)
#define CRYPTO_MOD_UNKNOWN_PARAM_ERR (CRYPTO_MOD_BASE_ERR + 0x00017)
extern void set_thread_errno(int errno);
extern const char* common_get_errmsg();
#ifdef __cplusplus
}
#endif
#endif