DragonNest/Server/ServerCommon/KR/AuthCheck.h
2024-12-19 09:48:26 +08:00

372 lines
9.6 KiB
C

#pragma once
#ifndef EXTERN_C
#ifdef __cplusplus
#define EXTERN_C extern "C"
#else
#define EXTERN_C extern
#endif
#endif
#ifndef AUTHCHECK_EXPORTS
#define AUTHCHECK_API EXTERN_C __declspec(dllimport)
#else
#define AUTHCHECK_API EXTERN_C __declspec(dllexport)
#endif
#ifndef IN
#define IN
#endif
#ifndef OUT
#define OUT
#endif
enum AuthCheckError
{
AUTHCHECK_ERROR_OK = 0, // OK
AUTHCHECK_ERROR_INVALID_ARGUMENT, // Argument is not valid
AUTHCHECK_ERROR_INVALID_PASSPORT, // NexonPassport is not valid
AUTHCHECK_ERROR_TIMEOUT, // [obsolete] same as AUTHCHECK_ERROR_EXPIRED
AUTHCHECK_ERROR_EXPIRED = AUTHCHECK_ERROR_TIMEOUT, // NexonPassport is valid, but arleady expired
AUTHCHECK_ERROR_AUTH_SERVER_SHUTDOWN, // Authentication server is shutdown
AUTHCHECK_ERROR_UNSUPPORTED_LOCALE, // Unsupported Locale ID
AUTHCHECK_ERROR_SET_LOCALE_NEEDED, // call AuthCheck_SetLocale first
AUTHCHECK_ERROR_NO_SERVER_INFORMATION, // no server information in config file
AUTHCHECK_ERROR_USER_IP_MISMATCHED, // client ip address is mismatched with sso servers data
};
#ifndef _NMLOCALEID_DEFINED_
#define _NMLOCALEID_DEFINED_
enum NMLOCALEID
{
kLocaleID_Null = 0x00000000,
kLocaleID_KR = 0x00000001, // Korea, Republic of
kLocaleID_KR_Test = 0x10000001, // Test
kLocaleID_JP = 0x00000100, // Japan
kLocaleID_JP_Test = 0x10000100,
kLocaleID_JP2 = 0x00000101, // Japan arad
kLocaleID_TW = 0x00000102, // Taiwan CSO
kLocaleID_CN_CNC = 0x00000111, // China / CNC
kLocaleID_CN_CT = 0x00000112, // China / CT
kLocaleID_US = 0x00000200, // United States
kLocaleID_EU = 0x00000300, // Europe
};
#endif
#ifndef _NMPASSPORTTYPE_DEFINED_
#define _NMPASSPORTTYPE_DEFINED_
enum PassportType
{
kPassportType_Undefined,
kPassportType_Nexon,
kPassportType_Guest,
};
#endif
/*
returns : AUTHCHECK_ERROR_OK
AUTHCHECK_ERROR_UNSUPPORTED_LOCALE
*/
AUTHCHECK_API
AuthCheckError AuthCheck_SetLocale
(
IN NMLOCALEID uLocale
);
AUTHCHECK_API
void AuthCheck_SetTimeout
(
IN UINT32 uMilliseconds
);
AUTHCHECK_API
void AuthCheck_SetIntranetMode
(
IN BOOL bSet
);
AUTHCHECK_API
void AuthCheck_SetSoapHostA
(
IN const char * szHost // 32
);
AUTHCHECK_API
void AuthCheck_SetSoapHostW
(
IN const WCHAR * szHost // 32
);
AUTHCHECK_API
PassportType AuthCheck_GetPassportTypeA
(
IN const char * szPassport // 1024
);
AUTHCHECK_API
PassportType AuthCheck_GetPassportTypeW
(
IN const WCHAR * szPassport // 1024
);
/*
returns : AUTHCHECK_ERROR_OK
AUTHCHECK_ERROR_INVALID_ARGUMENT
AUTHCHECK_ERROR_INVALID_PASSPORT
AUTHCHECK_ERROR_EXPIRED
*/
AUTHCHECK_API
AuthCheckError AuthCheck_LocalCheckPassportA
(
IN const char* szPassport, // 1024
OUT char* pszId = NULL, // 32
OUT UINT32* pnNexonSN = NULL,
OUT char* pszLoginIp = NULL, // 32
OUT UINT32* puSex = NULL,
OUT UINT32* puAge = NULL,
OUT UINT32* puPwdHash = NULL,
OUT UINT32* puSsnHash = NULL,
OUT UINT32* puFlag0 = NULL,
OUT UINT32* puFlag1 = NULL,
OUT UINT32* pnServerHash = NULL,
OUT char* pszServerName = NULL, // 32
OUT char* pszNationCode = NULL // 3
);
/*
returns : AUTHCHECK_ERROR_OK
AUTHCHECK_ERROR_INVALID_ARGUMENT
AUTHCHECK_ERROR_INVALID_PASSPORT
AUTHCHECK_ERROR_EXPIRED
*/
AUTHCHECK_API
AuthCheckError AuthCheck_LocalCheckPassportW
(
IN const WCHAR* szPassport, // 1024
OUT WCHAR* pszId = NULL, // 32
OUT UINT32* pnNexonSN = NULL,
OUT WCHAR* pszLoginIp = NULL, // 32
OUT UINT32* puSex = NULL,
OUT UINT32* puAge = NULL,
OUT UINT32* puPwdHash = NULL,
OUT UINT32* puSsnHash = NULL,
OUT UINT32* puFlag0 = NULL,
OUT UINT32* puFlag1 = NULL,
OUT UINT32* pnServerHash = NULL,
OUT WCHAR* pszServerName = NULL, // 32
OUT WCHAR* pszNationCode = NULL // 3
);
/*
returns : AUTHCHECK_ERROR_OK
AUTHCHECK_ERROR_INVALID_ARGUMENT
AUTHCHECK_ERROR_INVALID_PASSPORT
AUTHCHECK_ERROR_EXPIRED
*/
AUTHCHECK_API
AuthCheckError AuthCheck_LocalCheckPassport2A
(
IN const char* szPassport, // 1024
OUT char* pszId = NULL, // 32
OUT UINT32* pnNexonSN = NULL,
OUT char* pszLoginIp = NULL, // 32
OUT UINT32* puSex = NULL,
OUT UINT32* puAge = NULL,
OUT UINT32* puPwdHash = NULL,
OUT UINT32* puSsnHash = NULL,
OUT UINT32* puFlag0 = NULL,
OUT UINT32* puFlag1 = NULL,
OUT UINT32* pnServerHash = NULL,
OUT char* pszServerName = NULL, // 32
OUT char* pszMeta = NULL // 1024
);
/*
returns : AUTHCHECK_ERROR_OK
AUTHCHECK_ERROR_INVALID_ARGUMENT
AUTHCHECK_ERROR_INVALID_PASSPORT
AUTHCHECK_ERROR_EXPIRED
*/
AUTHCHECK_API
AuthCheckError AuthCheck_LocalCheckPassport2W
(
IN const WCHAR* szPassport, // 1024
OUT WCHAR* pszId = NULL, // 32
OUT UINT32* pnNexonSN = NULL,
OUT WCHAR* pszLoginIp = NULL, // 32
OUT UINT32* puSex = NULL,
OUT UINT32* puAge = NULL,
OUT UINT32* puPwdHash = NULL,
OUT UINT32* puSsnHash = NULL,
OUT UINT32* puFlag0 = NULL,
OUT UINT32* puFlag1 = NULL,
OUT UINT32* pnServerHash = NULL,
OUT WCHAR* pszServerName = NULL, // 32
OUT WCHAR* pszMeta = NULL // 1024
);
/*
returns : AUTHCHECK_ERROR_OK
AUTHCHECK_ERROR_INVALID_ARGUMENT
AUTHCHECK_ERROR_INVALID_PASSPORT
AUTHCHECK_ERROR_EXPIRED
AUTHCHECK_ERROR_AUTH_SERVER_SHUTDOWN
*/
AUTHCHECK_API
AuthCheckError AuthCheck_CheckPassportA
(
IN const char* szPassport, // 1024
IN const char* szUserIp, // 32
IN BOOL bRemoteOnly = TRUE,
OUT char* pszId = NULL, // 32
OUT UINT32* pnNexonSN = NULL,
OUT char* pszLoginIp = NULL, // 32
OUT UINT32* puSex = NULL,
OUT UINT32* puAge = NULL,
OUT UINT32* puPwdHash = NULL,
OUT UINT32* puSsnHash = NULL,
OUT UINT32* puFlag0 = NULL,
OUT UINT32* puFlag1 = NULL,
OUT char* pszMeta = NULL, // 1024
OUT char* pszNationCode = NULL // 3
);
/*
returns : AUTHCHECK_ERROR_OK
AUTHCHECK_ERROR_INVALID_ARGUMENT
AUTHCHECK_ERROR_INVALID_PASSPORT
AUTHCHECK_ERROR_EXPIRED
AUTHCHECK_ERROR_AUTH_SERVER_SHUTDOWN
*/
AUTHCHECK_API
AuthCheckError AuthCheck_CheckPassportW
(
IN const WCHAR* szPassport, // 1024
IN const WCHAR* szUserIp, // 32
IN BOOL bRemoteOnly = TRUE,
OUT WCHAR* pszId = NULL, // 32
OUT UINT32* pnNexonSN = NULL,
OUT WCHAR* pszLoginIp = NULL, // 32
OUT UINT32* puSex = NULL,
OUT UINT32* puAge = NULL,
OUT UINT32* puPwdHash = NULL,
OUT UINT32* puSsnHash = NULL,
OUT UINT32* puFlag0 = NULL,
OUT UINT32* puFlag1 = NULL,
OUT WCHAR* pszMeta = NULL, // 1024
OUT WCHAR* pszNationCode = NULL // 3
);
AUTHCHECK_API
UINT32 AuthCheck_GetHashValueA
(
const char* szString
);
AUTHCHECK_API
UINT32 AuthCheck_GetHashValueW
(
const WCHAR* wszString
);
/*
returns : AUTHCHECK_ERROR_OK
AUTHCHECK_ERROR_INVALID_ARGUMENT
AUTHCHECK_ERROR_INVALID_PASSPORT
*/
AUTHCHECK_API
AuthCheckError AuthCheck_CheckGuestPassportA
(
IN const char * szPassport, // 1024
OUT INT32 * pnGameCode = NULL,
OUT INT64 * pnGuestSN = NULL,
OUT char * pszGuestId = NULL, // 32
OUT char * pszLoginIp = NULL, // 32
OUT SYSTEMTIME * pTimeCreated = NULL,
OUT SYSTEMTIME * pTimeToExpire = NULL
);
/*
returns : AUTHCHECK_ERROR_OK
AUTHCHECK_ERROR_INVALID_ARGUMENT
AUTHCHECK_ERROR_INVALID_PASSPORT
*/
AUTHCHECK_API
AuthCheckError AuthCheck_CheckGuestPassportW
(
IN const WCHAR * szPassport, // 1024
OUT INT32 * pnGameCode = NULL,
OUT INT64 * pnGuestSN = NULL,
OUT WCHAR * pszGuestId = NULL, // 32
OUT WCHAR * pszLoginIp = NULL, // 32
OUT SYSTEMTIME * pTimeCreated = NULL,
OUT SYSTEMTIME * pTimeToExpire = NULL
);
AUTHCHECK_API
UINT32 AuthCheck_LoginA
(
IN const char* szID, // 32
IN const char* szPwd, // 32
IN const char* szIP, // 32
IN UINT32 gameCode,
IN UINT32 locale,
OUT char* pszPassport = NULL, // 1024
OUT UINT32* pnUnreadNoteCount = NULL,
OUT UINT32* pnStatusFlag = NULL,
OUT UINT32* pnUpdateInterval = NULL
);
AUTHCHECK_API
UINT32 AuthCheck_LoginW
(
IN const WCHAR* szID, // 32
IN const WCHAR* szPwd, // 32
IN const WCHAR* szIP, // 32
IN UINT32 gameCode,
IN UINT32 locale,
OUT WCHAR* pszPassport = NULL, // 1024
OUT UINT32* pnUnreadNoteCount = NULL,
OUT UINT32* pnStatusFlag = NULL,
OUT UINT32* pnUpdateInterval = NULL
);
AUTHCHECK_API
UINT32 AuthCheck_LogoutA
(
IN const char* szPassport, // 1024
IN const char* szIP // 32
);
AUTHCHECK_API
UINT32 AuthCheck_LogoutW
(
IN const WCHAR* szPassport, // 1024
IN const WCHAR* szIP // 32
);
#if defined( UNICODE ) || defined( _UNICODE )
#define AuthCheck_SetSoapHost AuthCheck_SetSoapHostW
#define AuthCheck_GetPassportType AuthCheck_GetPassportTypeW
#define AuthCheck_LocalCheckPassport AuthCheck_LocalCheckPassportW
#define AuthCheck_LocalCheckPassport2 AuthCheck_LocalCheckPassport2W
#define AuthCheck_CheckPassport AuthCheck_CheckPassportW
#define AuthCheck_GetHashValue AuthCheck_GetHashValueW
#define AuthCheck_CheckGuestPassport AuthCheck_CheckGuestPassportW
#define AuthCheck_Login AuthCheck_LoginW
#define AuthCheck_Logout AuthCheck_LogoutW
#else
#define AuthCheck_SetSoapHost AuthCheck_SetSoapHostA
#define AuthCheck_GetPassportType AuthCheck_GetPassportTypeA
#define AuthCheck_LocalCheckPassport AuthCheck_LocalCheckPassportA
#define AuthCheck_LocalCheckPassport2 AuthCheck_LocalCheckPassport2A
#define AuthCheck_CheckPassport AuthCheck_CheckPassportA
#define AuthCheck_GetHashValue AuthCheck_GetHashValueA
#define AuthCheck_CheckGuestPassport AuthCheck_CheckGuestPassportA
#define AuthCheck_Login AuthCheck_LoginA
#define AuthCheck_Logout AuthCheck_LogoutA
#endif