/**********************************************************
 * This file has been automatically created by "typemaker2"
 * from the file "ct_context.xml".
 * Please do not edit this file, all changes will be lost.
 * Better edit the mentioned source file instead.
 **********************************************************/

#ifndef GWEN_CRYPT_TOKEN_CONTEXT_CT_CONTEXT_H
#define GWEN_CRYPT_TOKEN_CONTEXT_CT_CONTEXT_H


#ifdef __cplusplus
extern "C" {
#endif

/** @page P_GWEN_CRYPT_TOKEN_CONTEXT Structure GWEN_CRYPT_TOKEN_CONTEXT
<p>This page describes the properties of GWEN_CRYPT_TOKEN_CONTEXT.</p>



<h1>GWEN_CRYPT_TOKEN_CONTEXT</h1>



@anchor GWEN_CRYPT_TOKEN_CONTEXT_id
<h2>id</h2>

<p>Set this property with @ref GWEN_Crypt_Token_Context_SetId(), get it with @ref GWEN_Crypt_Token_Context_GetId().</p>


@anchor GWEN_CRYPT_TOKEN_CONTEXT_signKeyId
<h2>signKeyId</h2>

<p>Set this property with @ref GWEN_Crypt_Token_Context_SetSignKeyId(), get it with @ref GWEN_Crypt_Token_Context_GetSignKeyId().</p>


@anchor GWEN_CRYPT_TOKEN_CONTEXT_signKeyNum
<h2>signKeyNum</h2>

<p>Set this property with @ref GWEN_Crypt_Token_Context_SetSignKeyNum(), get it with @ref GWEN_Crypt_Token_Context_GetSignKeyNum().</p>


@anchor GWEN_CRYPT_TOKEN_CONTEXT_signKeyVer
<h2>signKeyVer</h2>

<p>Set this property with @ref GWEN_Crypt_Token_Context_SetSignKeyVer(), get it with @ref GWEN_Crypt_Token_Context_GetSignKeyVer().</p>


@anchor GWEN_CRYPT_TOKEN_CONTEXT_verifyKeyId
<h2>verifyKeyId</h2>

<p>Set this property with @ref GWEN_Crypt_Token_Context_SetVerifyKeyId(), get it with @ref GWEN_Crypt_Token_Context_GetVerifyKeyId().</p>


@anchor GWEN_CRYPT_TOKEN_CONTEXT_encipherKeyId
<h2>encipherKeyId</h2>

<p>Set this property with @ref GWEN_Crypt_Token_Context_SetEncipherKeyId(), get it with @ref GWEN_Crypt_Token_Context_GetEncipherKeyId().</p>


@anchor GWEN_CRYPT_TOKEN_CONTEXT_decipherKeyId
<h2>decipherKeyId</h2>

<p>Set this property with @ref GWEN_Crypt_Token_Context_SetDecipherKeyId(), get it with @ref GWEN_Crypt_Token_Context_GetDecipherKeyId().</p>


@anchor GWEN_CRYPT_TOKEN_CONTEXT_decipherKeyNum
<h2>decipherKeyNum</h2>

<p>Set this property with @ref GWEN_Crypt_Token_Context_SetDecipherKeyNum(), get it with @ref GWEN_Crypt_Token_Context_GetDecipherKeyNum().</p>


@anchor GWEN_CRYPT_TOKEN_CONTEXT_decipherKeyVer
<h2>decipherKeyVer</h2>

<p>Set this property with @ref GWEN_Crypt_Token_Context_SetDecipherKeyVer(), get it with @ref GWEN_Crypt_Token_Context_GetDecipherKeyVer().</p>


@anchor GWEN_CRYPT_TOKEN_CONTEXT_authSignKeyId
<h2>authSignKeyId</h2>

<p>Set this property with @ref GWEN_Crypt_Token_Context_SetAuthSignKeyId(), get it with @ref GWEN_Crypt_Token_Context_GetAuthSignKeyId().</p>


@anchor GWEN_CRYPT_TOKEN_CONTEXT_authSignKeyNum
<h2>authSignKeyNum</h2>

<p>Set this property with @ref GWEN_Crypt_Token_Context_SetAuthSignKeyNum(), get it with @ref GWEN_Crypt_Token_Context_GetAuthSignKeyNum().</p>


@anchor GWEN_CRYPT_TOKEN_CONTEXT_authSignKeyVer
<h2>authSignKeyVer</h2>

<p>Set this property with @ref GWEN_Crypt_Token_Context_SetAuthSignKeyVer(), get it with @ref GWEN_Crypt_Token_Context_GetAuthSignKeyVer().</p>


@anchor GWEN_CRYPT_TOKEN_CONTEXT_authVerifyKeyId
<h2>authVerifyKeyId</h2>

<p>Set this property with @ref GWEN_Crypt_Token_Context_SetAuthVerifyKeyId(), get it with @ref GWEN_Crypt_Token_Context_GetAuthVerifyKeyId().</p>


@anchor GWEN_CRYPT_TOKEN_CONTEXT_tempSignKeyId
<h2>tempSignKeyId</h2>

<p>Set this property with @ref GWEN_Crypt_Token_Context_SetTempSignKeyId(), get it with @ref GWEN_Crypt_Token_Context_GetTempSignKeyId().</p>


@anchor GWEN_CRYPT_TOKEN_CONTEXT_keyHashNum
<h2>keyHashNum</h2>

<p>Set this property with @ref GWEN_Crypt_Token_Context_SetKeyHashNum(), get it with @ref GWEN_Crypt_Token_Context_GetKeyHashNum().</p>


@anchor GWEN_CRYPT_TOKEN_CONTEXT_keyHashVer
<h2>keyHashVer</h2>

<p>Set this property with @ref GWEN_Crypt_Token_Context_SetKeyHashVer(), get it with @ref GWEN_Crypt_Token_Context_GetKeyHashVer().</p>


@anchor GWEN_CRYPT_TOKEN_CONTEXT_keyHashAlgo
<h2>keyHashAlgo</h2>

<p>Set this property with @ref GWEN_Crypt_Token_Context_SetKeyHashAlgo(), get it with @ref GWEN_Crypt_Token_Context_GetKeyHashAlgo().</p>


@anchor GWEN_CRYPT_TOKEN_CONTEXT_keyHash
<h2>keyHash</h2>

<p>Set this property with @ref GWEN_Crypt_Token_Context_SetKeyHash(), get it with @ref GWEN_Crypt_Token_Context_GetKeyHash().</p>


@anchor GWEN_CRYPT_TOKEN_CONTEXT_keyStatus
<h2>keyStatus</h2>

<p>Set this property with @ref GWEN_Crypt_Token_Context_SetKeyStatus(), get it with @ref GWEN_Crypt_Token_Context_GetKeyStatus().</p>


@anchor GWEN_CRYPT_TOKEN_CONTEXT_protocolVersion
<h2>protocolVersion</h2>

For RDH cards this is the RDH version supported.
<p>Set this property with @ref GWEN_Crypt_Token_Context_SetProtocolVersion(), get it with @ref GWEN_Crypt_Token_Context_GetProtocolVersion().</p>


@anchor GWEN_CRYPT_TOKEN_CONTEXT_cid
<h2>cid</h2>

<p>Set this property with @ref GWEN_Crypt_Token_Context_SetCid(), get it with @ref GWEN_Crypt_Token_Context_GetCid().</p>


@anchor GWEN_CRYPT_TOKEN_CONTEXT_serviceId
<h2>serviceId</h2>

For Homebanking this is the bank code
<p>Set this property with @ref GWEN_Crypt_Token_Context_SetServiceId(), get it with @ref GWEN_Crypt_Token_Context_GetServiceId().</p>


@anchor GWEN_CRYPT_TOKEN_CONTEXT_userId
<h2>userId</h2>

<p>Set this property with @ref GWEN_Crypt_Token_Context_SetUserId(), get it with @ref GWEN_Crypt_Token_Context_GetUserId().</p>


@anchor GWEN_CRYPT_TOKEN_CONTEXT_customerId
<h2>customerId</h2>

<p>Set this property with @ref GWEN_Crypt_Token_Context_SetCustomerId(), get it with @ref GWEN_Crypt_Token_Context_GetCustomerId().</p>


@anchor GWEN_CRYPT_TOKEN_CONTEXT_userName
<h2>userName</h2>

<p>Set this property with @ref GWEN_Crypt_Token_Context_SetUserName(), get it with @ref GWEN_Crypt_Token_Context_GetUserName().</p>


@anchor GWEN_CRYPT_TOKEN_CONTEXT_peerId
<h2>peerId</h2>

<p>Set this property with @ref GWEN_Crypt_Token_Context_SetPeerId(), get it with @ref GWEN_Crypt_Token_Context_GetPeerId().</p>


@anchor GWEN_CRYPT_TOKEN_CONTEXT_peerName
<h2>peerName</h2>

<p>Set this property with @ref GWEN_Crypt_Token_Context_SetPeerName(), get it with @ref GWEN_Crypt_Token_Context_GetPeerName().</p>


@anchor GWEN_CRYPT_TOKEN_CONTEXT_address
<h2>address</h2>

<p>Set this property with @ref GWEN_Crypt_Token_Context_SetAddress(), get it with @ref GWEN_Crypt_Token_Context_GetAddress().</p>


@anchor GWEN_CRYPT_TOKEN_CONTEXT_port
<h2>port</h2>

<p>Set this property with @ref GWEN_Crypt_Token_Context_SetPort(), get it with @ref GWEN_Crypt_Token_Context_GetPort().</p>


@anchor GWEN_CRYPT_TOKEN_CONTEXT_systemId
<h2>systemId</h2>

<p>Set this property with @ref GWEN_Crypt_Token_Context_SetSystemId(), get it with @ref GWEN_Crypt_Token_Context_GetSystemId().</p>

*/

/* needed system headers */
#include <gwenhywfar/types.h>
#include <gwenhywfar/list1.h>
#include <gwenhywfar/list2.h>
#include <gwenhywfar/inherit.h>
#include <gwenhywfar/db.h>
#include <gwenhywfar/xml.h>

/* pre-headers */
#include <gwenhywfar/types.h>
#include <gwenhywfar/bindata.h>
#include <gwenhywfar/base64.h>

typedef struct GWEN_CRYPT_TOKEN_CONTEXT GWEN_CRYPT_TOKEN_CONTEXT;
GWEN_LIST_FUNCTION_LIB_DEFS(GWEN_CRYPT_TOKEN_CONTEXT, GWEN_Crypt_Token_Context, GWENHYWFAR_API)
GWEN_LIST2_FUNCTION_LIB_DEFS(GWEN_CRYPT_TOKEN_CONTEXT, GWEN_Crypt_Token_Context, GWENHYWFAR_API)
GWEN_INHERIT_FUNCTION_LIB_DEFS(GWEN_CRYPT_TOKEN_CONTEXT, GWENHYWFAR_API)



/* post-headers */


/** Constructor. */
GWENHYWFAR_API GWEN_CRYPT_TOKEN_CONTEXT *GWEN_Crypt_Token_Context_new(void);

/** Destructor. */
GWENHYWFAR_API void GWEN_Crypt_Token_Context_free(GWEN_CRYPT_TOKEN_CONTEXT *p_struct);

GWENHYWFAR_API void GWEN_Crypt_Token_Context_Attach(GWEN_CRYPT_TOKEN_CONTEXT *p_struct);

GWENHYWFAR_API GWEN_CRYPT_TOKEN_CONTEXT *GWEN_Crypt_Token_Context_dup(const GWEN_CRYPT_TOKEN_CONTEXT *p_struct);

GWENHYWFAR_API GWEN_CRYPT_TOKEN_CONTEXT *GWEN_Crypt_Token_Context_copy(GWEN_CRYPT_TOKEN_CONTEXT *p_struct,
                                                                       const GWEN_CRYPT_TOKEN_CONTEXT *p_src);

/** Getter.
 * Use this function to get the member "id" (see @ref GWEN_CRYPT_TOKEN_CONTEXT_id)
*/
GWENHYWFAR_API uint32_t GWEN_Crypt_Token_Context_GetId(const GWEN_CRYPT_TOKEN_CONTEXT *p_struct);

/** Getter.
 * Use this function to get the member "signKeyId" (see @ref GWEN_CRYPT_TOKEN_CONTEXT_signKeyId)
*/
GWENHYWFAR_API uint32_t GWEN_Crypt_Token_Context_GetSignKeyId(const GWEN_CRYPT_TOKEN_CONTEXT *p_struct);

/** Getter.
 * Use this function to get the member "signKeyNum" (see @ref GWEN_CRYPT_TOKEN_CONTEXT_signKeyNum)
*/
GWENHYWFAR_API uint32_t GWEN_Crypt_Token_Context_GetSignKeyNum(const GWEN_CRYPT_TOKEN_CONTEXT *p_struct);

/** Getter.
 * Use this function to get the member "signKeyVer" (see @ref GWEN_CRYPT_TOKEN_CONTEXT_signKeyVer)
*/
GWENHYWFAR_API uint32_t GWEN_Crypt_Token_Context_GetSignKeyVer(const GWEN_CRYPT_TOKEN_CONTEXT *p_struct);

/** Getter.
 * Use this function to get the member "verifyKeyId" (see @ref GWEN_CRYPT_TOKEN_CONTEXT_verifyKeyId)
*/
GWENHYWFAR_API uint32_t GWEN_Crypt_Token_Context_GetVerifyKeyId(const GWEN_CRYPT_TOKEN_CONTEXT *p_struct);

/** Getter.
 * Use this function to get the member "encipherKeyId" (see @ref GWEN_CRYPT_TOKEN_CONTEXT_encipherKeyId)
*/
GWENHYWFAR_API uint32_t GWEN_Crypt_Token_Context_GetEncipherKeyId(const GWEN_CRYPT_TOKEN_CONTEXT *p_struct);

/** Getter.
 * Use this function to get the member "decipherKeyId" (see @ref GWEN_CRYPT_TOKEN_CONTEXT_decipherKeyId)
*/
GWENHYWFAR_API uint32_t GWEN_Crypt_Token_Context_GetDecipherKeyId(const GWEN_CRYPT_TOKEN_CONTEXT *p_struct);

/** Getter.
 * Use this function to get the member "decipherKeyNum" (see @ref GWEN_CRYPT_TOKEN_CONTEXT_decipherKeyNum)
*/
GWENHYWFAR_API uint32_t GWEN_Crypt_Token_Context_GetDecipherKeyNum(const GWEN_CRYPT_TOKEN_CONTEXT *p_struct);

/** Getter.
 * Use this function to get the member "decipherKeyVer" (see @ref GWEN_CRYPT_TOKEN_CONTEXT_decipherKeyVer)
*/
GWENHYWFAR_API uint32_t GWEN_Crypt_Token_Context_GetDecipherKeyVer(const GWEN_CRYPT_TOKEN_CONTEXT *p_struct);

/** Getter.
 * Use this function to get the member "authSignKeyId" (see @ref GWEN_CRYPT_TOKEN_CONTEXT_authSignKeyId)
*/
GWENHYWFAR_API uint32_t GWEN_Crypt_Token_Context_GetAuthSignKeyId(const GWEN_CRYPT_TOKEN_CONTEXT *p_struct);

/** Getter.
 * Use this function to get the member "authSignKeyNum" (see @ref GWEN_CRYPT_TOKEN_CONTEXT_authSignKeyNum)
*/
GWENHYWFAR_API uint32_t GWEN_Crypt_Token_Context_GetAuthSignKeyNum(const GWEN_CRYPT_TOKEN_CONTEXT *p_struct);

/** Getter.
 * Use this function to get the member "authSignKeyVer" (see @ref GWEN_CRYPT_TOKEN_CONTEXT_authSignKeyVer)
*/
GWENHYWFAR_API uint32_t GWEN_Crypt_Token_Context_GetAuthSignKeyVer(const GWEN_CRYPT_TOKEN_CONTEXT *p_struct);

/** Getter.
 * Use this function to get the member "authVerifyKeyId" (see @ref GWEN_CRYPT_TOKEN_CONTEXT_authVerifyKeyId)
*/
GWENHYWFAR_API uint32_t GWEN_Crypt_Token_Context_GetAuthVerifyKeyId(const GWEN_CRYPT_TOKEN_CONTEXT *p_struct);

/** Getter.
 * Use this function to get the member "tempSignKeyId" (see @ref GWEN_CRYPT_TOKEN_CONTEXT_tempSignKeyId)
*/
GWENHYWFAR_API uint32_t GWEN_Crypt_Token_Context_GetTempSignKeyId(const GWEN_CRYPT_TOKEN_CONTEXT *p_struct);

/** Getter.
 * Use this function to get the member "keyHashNum" (see @ref GWEN_CRYPT_TOKEN_CONTEXT_keyHashNum)
*/
GWENHYWFAR_API uint32_t GWEN_Crypt_Token_Context_GetKeyHashNum(const GWEN_CRYPT_TOKEN_CONTEXT *p_struct);

/** Getter.
 * Use this function to get the member "keyHashVer" (see @ref GWEN_CRYPT_TOKEN_CONTEXT_keyHashVer)
*/
GWENHYWFAR_API uint32_t GWEN_Crypt_Token_Context_GetKeyHashVer(const GWEN_CRYPT_TOKEN_CONTEXT *p_struct);

/** Getter.
 * Use this function to get the member "keyHashAlgo" (see @ref GWEN_CRYPT_TOKEN_CONTEXT_keyHashAlgo)
*/
GWENHYWFAR_API uint32_t GWEN_Crypt_Token_Context_GetKeyHashAlgo(const GWEN_CRYPT_TOKEN_CONTEXT *p_struct);

/** Getter.
 * Use this function to get the member "keyStatus" (see @ref GWEN_CRYPT_TOKEN_CONTEXT_keyStatus)
*/
GWENHYWFAR_API uint32_t GWEN_Crypt_Token_Context_GetKeyStatus(const GWEN_CRYPT_TOKEN_CONTEXT *p_struct);

/** Getter.
 * Use this function to get the member "protocolVersion" (see @ref GWEN_CRYPT_TOKEN_CONTEXT_protocolVersion)
*/
GWENHYWFAR_API uint32_t GWEN_Crypt_Token_Context_GetProtocolVersion(const GWEN_CRYPT_TOKEN_CONTEXT *p_struct);

/** Getter.
 * Use this function to get the member "serviceId" (see @ref GWEN_CRYPT_TOKEN_CONTEXT_serviceId)
*/
GWENHYWFAR_API const char *GWEN_Crypt_Token_Context_GetServiceId(const GWEN_CRYPT_TOKEN_CONTEXT *p_struct);

/** Getter.
 * Use this function to get the member "userId" (see @ref GWEN_CRYPT_TOKEN_CONTEXT_userId)
*/
GWENHYWFAR_API const char *GWEN_Crypt_Token_Context_GetUserId(const GWEN_CRYPT_TOKEN_CONTEXT *p_struct);

/** Getter.
 * Use this function to get the member "customerId" (see @ref GWEN_CRYPT_TOKEN_CONTEXT_customerId)
*/
GWENHYWFAR_API const char *GWEN_Crypt_Token_Context_GetCustomerId(const GWEN_CRYPT_TOKEN_CONTEXT *p_struct);

/** Getter.
 * Use this function to get the member "userName" (see @ref GWEN_CRYPT_TOKEN_CONTEXT_userName)
*/
GWENHYWFAR_API const char *GWEN_Crypt_Token_Context_GetUserName(const GWEN_CRYPT_TOKEN_CONTEXT *p_struct);

/** Getter.
 * Use this function to get the member "peerId" (see @ref GWEN_CRYPT_TOKEN_CONTEXT_peerId)
*/
GWENHYWFAR_API const char *GWEN_Crypt_Token_Context_GetPeerId(const GWEN_CRYPT_TOKEN_CONTEXT *p_struct);

/** Getter.
 * Use this function to get the member "peerName" (see @ref GWEN_CRYPT_TOKEN_CONTEXT_peerName)
*/
GWENHYWFAR_API const char *GWEN_Crypt_Token_Context_GetPeerName(const GWEN_CRYPT_TOKEN_CONTEXT *p_struct);

/** Getter.
 * Use this function to get the member "address" (see @ref GWEN_CRYPT_TOKEN_CONTEXT_address)
*/
GWENHYWFAR_API const char *GWEN_Crypt_Token_Context_GetAddress(const GWEN_CRYPT_TOKEN_CONTEXT *p_struct);

/** Getter.
 * Use this function to get the member "port" (see @ref GWEN_CRYPT_TOKEN_CONTEXT_port)
*/
GWENHYWFAR_API int GWEN_Crypt_Token_Context_GetPort(const GWEN_CRYPT_TOKEN_CONTEXT *p_struct);

/** Getter.
 * Use this function to get the member "systemId" (see @ref GWEN_CRYPT_TOKEN_CONTEXT_systemId)
*/
GWENHYWFAR_API const char *GWEN_Crypt_Token_Context_GetSystemId(const GWEN_CRYPT_TOKEN_CONTEXT *p_struct);

/** Setter.
 * Use this function to set the member "id" (see @ref GWEN_CRYPT_TOKEN_CONTEXT_id)
*/
GWENHYWFAR_API void GWEN_Crypt_Token_Context_SetId(GWEN_CRYPT_TOKEN_CONTEXT *p_struct, uint32_t p_src);

/** Setter.
 * Use this function to set the member "signKeyId" (see @ref GWEN_CRYPT_TOKEN_CONTEXT_signKeyId)
*/
GWENHYWFAR_API void GWEN_Crypt_Token_Context_SetSignKeyId(GWEN_CRYPT_TOKEN_CONTEXT *p_struct, uint32_t p_src);

/** Setter.
 * Use this function to set the member "signKeyNum" (see @ref GWEN_CRYPT_TOKEN_CONTEXT_signKeyNum)
*/
GWENHYWFAR_API void GWEN_Crypt_Token_Context_SetSignKeyNum(GWEN_CRYPT_TOKEN_CONTEXT *p_struct, uint32_t p_src);

/** Setter.
 * Use this function to set the member "signKeyVer" (see @ref GWEN_CRYPT_TOKEN_CONTEXT_signKeyVer)
*/
GWENHYWFAR_API void GWEN_Crypt_Token_Context_SetSignKeyVer(GWEN_CRYPT_TOKEN_CONTEXT *p_struct, uint32_t p_src);

/** Setter.
 * Use this function to set the member "verifyKeyId" (see @ref GWEN_CRYPT_TOKEN_CONTEXT_verifyKeyId)
*/
GWENHYWFAR_API void GWEN_Crypt_Token_Context_SetVerifyKeyId(GWEN_CRYPT_TOKEN_CONTEXT *p_struct, uint32_t p_src);

/** Setter.
 * Use this function to set the member "encipherKeyId" (see @ref GWEN_CRYPT_TOKEN_CONTEXT_encipherKeyId)
*/
GWENHYWFAR_API void GWEN_Crypt_Token_Context_SetEncipherKeyId(GWEN_CRYPT_TOKEN_CONTEXT *p_struct, uint32_t p_src);

/** Setter.
 * Use this function to set the member "decipherKeyId" (see @ref GWEN_CRYPT_TOKEN_CONTEXT_decipherKeyId)
*/
GWENHYWFAR_API void GWEN_Crypt_Token_Context_SetDecipherKeyId(GWEN_CRYPT_TOKEN_CONTEXT *p_struct, uint32_t p_src);

/** Setter.
 * Use this function to set the member "decipherKeyNum" (see @ref GWEN_CRYPT_TOKEN_CONTEXT_decipherKeyNum)
*/
GWENHYWFAR_API void GWEN_Crypt_Token_Context_SetDecipherKeyNum(GWEN_CRYPT_TOKEN_CONTEXT *p_struct, uint32_t p_src);

/** Setter.
 * Use this function to set the member "decipherKeyVer" (see @ref GWEN_CRYPT_TOKEN_CONTEXT_decipherKeyVer)
*/
GWENHYWFAR_API void GWEN_Crypt_Token_Context_SetDecipherKeyVer(GWEN_CRYPT_TOKEN_CONTEXT *p_struct, uint32_t p_src);

/** Setter.
 * Use this function to set the member "authSignKeyId" (see @ref GWEN_CRYPT_TOKEN_CONTEXT_authSignKeyId)
*/
GWENHYWFAR_API void GWEN_Crypt_Token_Context_SetAuthSignKeyId(GWEN_CRYPT_TOKEN_CONTEXT *p_struct, uint32_t p_src);

/** Setter.
 * Use this function to set the member "authSignKeyNum" (see @ref GWEN_CRYPT_TOKEN_CONTEXT_authSignKeyNum)
*/
GWENHYWFAR_API void GWEN_Crypt_Token_Context_SetAuthSignKeyNum(GWEN_CRYPT_TOKEN_CONTEXT *p_struct, uint32_t p_src);

/** Setter.
 * Use this function to set the member "authSignKeyVer" (see @ref GWEN_CRYPT_TOKEN_CONTEXT_authSignKeyVer)
*/
GWENHYWFAR_API void GWEN_Crypt_Token_Context_SetAuthSignKeyVer(GWEN_CRYPT_TOKEN_CONTEXT *p_struct, uint32_t p_src);

/** Setter.
 * Use this function to set the member "authVerifyKeyId" (see @ref GWEN_CRYPT_TOKEN_CONTEXT_authVerifyKeyId)
*/
GWENHYWFAR_API void GWEN_Crypt_Token_Context_SetAuthVerifyKeyId(GWEN_CRYPT_TOKEN_CONTEXT *p_struct, uint32_t p_src);

/** Setter.
 * Use this function to set the member "tempSignKeyId" (see @ref GWEN_CRYPT_TOKEN_CONTEXT_tempSignKeyId)
*/
GWENHYWFAR_API void GWEN_Crypt_Token_Context_SetTempSignKeyId(GWEN_CRYPT_TOKEN_CONTEXT *p_struct, uint32_t p_src);

/** Setter.
 * Use this function to set the member "keyHashNum" (see @ref GWEN_CRYPT_TOKEN_CONTEXT_keyHashNum)
*/
GWENHYWFAR_API void GWEN_Crypt_Token_Context_SetKeyHashNum(GWEN_CRYPT_TOKEN_CONTEXT *p_struct, uint32_t p_src);

/** Setter.
 * Use this function to set the member "keyHashVer" (see @ref GWEN_CRYPT_TOKEN_CONTEXT_keyHashVer)
*/
GWENHYWFAR_API void GWEN_Crypt_Token_Context_SetKeyHashVer(GWEN_CRYPT_TOKEN_CONTEXT *p_struct, uint32_t p_src);

/** Setter.
 * Use this function to set the member "keyHashAlgo" (see @ref GWEN_CRYPT_TOKEN_CONTEXT_keyHashAlgo)
*/
GWENHYWFAR_API void GWEN_Crypt_Token_Context_SetKeyHashAlgo(GWEN_CRYPT_TOKEN_CONTEXT *p_struct, uint32_t p_src);

/** Setter.
 * Use this function to set the member "keyStatus" (see @ref GWEN_CRYPT_TOKEN_CONTEXT_keyStatus)
*/
GWENHYWFAR_API void GWEN_Crypt_Token_Context_SetKeyStatus(GWEN_CRYPT_TOKEN_CONTEXT *p_struct, uint32_t p_src);

/** Setter.
 * Use this function to set the member "protocolVersion" (see @ref GWEN_CRYPT_TOKEN_CONTEXT_protocolVersion)
*/
GWENHYWFAR_API void GWEN_Crypt_Token_Context_SetProtocolVersion(GWEN_CRYPT_TOKEN_CONTEXT *p_struct, uint32_t p_src);

/** Setter.
 * Use this function to set the member "serviceId" (see @ref GWEN_CRYPT_TOKEN_CONTEXT_serviceId)
*/
GWENHYWFAR_API void GWEN_Crypt_Token_Context_SetServiceId(GWEN_CRYPT_TOKEN_CONTEXT *p_struct, const char *p_src);

/** Setter.
 * Use this function to set the member "userId" (see @ref GWEN_CRYPT_TOKEN_CONTEXT_userId)
*/
GWENHYWFAR_API void GWEN_Crypt_Token_Context_SetUserId(GWEN_CRYPT_TOKEN_CONTEXT *p_struct, const char *p_src);

/** Setter.
 * Use this function to set the member "customerId" (see @ref GWEN_CRYPT_TOKEN_CONTEXT_customerId)
*/
GWENHYWFAR_API void GWEN_Crypt_Token_Context_SetCustomerId(GWEN_CRYPT_TOKEN_CONTEXT *p_struct, const char *p_src);

/** Setter.
 * Use this function to set the member "userName" (see @ref GWEN_CRYPT_TOKEN_CONTEXT_userName)
*/
GWENHYWFAR_API void GWEN_Crypt_Token_Context_SetUserName(GWEN_CRYPT_TOKEN_CONTEXT *p_struct, const char *p_src);

/** Setter.
 * Use this function to set the member "peerId" (see @ref GWEN_CRYPT_TOKEN_CONTEXT_peerId)
*/
GWENHYWFAR_API void GWEN_Crypt_Token_Context_SetPeerId(GWEN_CRYPT_TOKEN_CONTEXT *p_struct, const char *p_src);

/** Setter.
 * Use this function to set the member "peerName" (see @ref GWEN_CRYPT_TOKEN_CONTEXT_peerName)
*/
GWENHYWFAR_API void GWEN_Crypt_Token_Context_SetPeerName(GWEN_CRYPT_TOKEN_CONTEXT *p_struct, const char *p_src);

/** Setter.
 * Use this function to set the member "address" (see @ref GWEN_CRYPT_TOKEN_CONTEXT_address)
*/
GWENHYWFAR_API void GWEN_Crypt_Token_Context_SetAddress(GWEN_CRYPT_TOKEN_CONTEXT *p_struct, const char *p_src);

/** Setter.
 * Use this function to set the member "port" (see @ref GWEN_CRYPT_TOKEN_CONTEXT_port)
*/
GWENHYWFAR_API void GWEN_Crypt_Token_Context_SetPort(GWEN_CRYPT_TOKEN_CONTEXT *p_struct, int p_src);

/** Setter.
 * Use this function to set the member "systemId" (see @ref GWEN_CRYPT_TOKEN_CONTEXT_systemId)
*/
GWENHYWFAR_API void GWEN_Crypt_Token_Context_SetSystemId(GWEN_CRYPT_TOKEN_CONTEXT *p_struct, const char *p_src);

/* list1 functions */
GWENHYWFAR_API GWEN_CRYPT_TOKEN_CONTEXT_LIST *GWEN_Crypt_Token_Context_List_dup(const GWEN_CRYPT_TOKEN_CONTEXT_LIST
                                                                                *p_src);

GWENHYWFAR_API void GWEN_Crypt_Token_Context_ReadDb(GWEN_CRYPT_TOKEN_CONTEXT *p_struct, GWEN_DB_NODE *p_db);

GWENHYWFAR_API int GWEN_Crypt_Token_Context_WriteDb(const GWEN_CRYPT_TOKEN_CONTEXT *p_struct, GWEN_DB_NODE *p_db);

GWENHYWFAR_API GWEN_CRYPT_TOKEN_CONTEXT *GWEN_Crypt_Token_Context_fromDb(GWEN_DB_NODE *p_db);

GWENHYWFAR_API int GWEN_Crypt_Token_Context_toDb(const GWEN_CRYPT_TOKEN_CONTEXT *p_struct, GWEN_DB_NODE *p_db);

GWENHYWFAR_API void GWEN_Crypt_Token_Context_ReadXml(GWEN_CRYPT_TOKEN_CONTEXT *p_struct, GWEN_XMLNODE *p_db);

GWENHYWFAR_API void GWEN_Crypt_Token_Context_WriteXml(const GWEN_CRYPT_TOKEN_CONTEXT *p_struct, GWEN_XMLNODE *p_db);

GWENHYWFAR_API void GWEN_Crypt_Token_Context_toXml(const GWEN_CRYPT_TOKEN_CONTEXT *p_struct, GWEN_XMLNODE *p_db);

GWENHYWFAR_API GWEN_CRYPT_TOKEN_CONTEXT *GWEN_Crypt_Token_Context_fromXml(GWEN_XMLNODE *p_db);

GWENHYWFAR_API GWEN_CRYPT_TOKEN_CONTEXT *GWEN_Crypt_Token_Context_List_GetById(const GWEN_CRYPT_TOKEN_CONTEXT_LIST
                                                                               *p_list, uint32_t p_cmp);

GWENHYWFAR_API void GWEN_Crypt_Token_Context_SetKeyHash(GWEN_CRYPT_TOKEN_CONTEXT *st, const uint8_t *p, uint32_t len);
GWENHYWFAR_API const uint8_t *GWEN_Crypt_Token_Context_GetKeyHashPtr(const GWEN_CRYPT_TOKEN_CONTEXT *st);
GWENHYWFAR_API uint32_t GWEN_Crypt_Token_Context_GetKeyHashLen(const GWEN_CRYPT_TOKEN_CONTEXT *st);
GWENHYWFAR_API void GWEN_Crypt_Token_Context_SetCid(GWEN_CRYPT_TOKEN_CONTEXT *st, const uint8_t *p, uint32_t len);
GWENHYWFAR_API const uint8_t *GWEN_Crypt_Token_Context_GetCidPtr(const GWEN_CRYPT_TOKEN_CONTEXT *st);
GWENHYWFAR_API uint32_t GWEN_Crypt_Token_Context_GetCidLen(const GWEN_CRYPT_TOKEN_CONTEXT *st);
/* end-headers */


#ifdef __cplusplus
}
#endif

#endif

