⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 nzt.h

📁 SQLAPI C/C++ 连接Oracle 数据库!
💻 H
📖 第 1 页 / 共 5 页
字号:
 * The pobj_nzttBufferBlock member is a pointer to the output object. */struct nzttBufferBlock{# define NZT_NO_AUTO_REALLOC     0x1   uword flags_nzttBufferBlock;     /* Flags */   ub4 buflen_nzttBufferBlock;   /* Total length of buffer */   ub4 usedlen_nzttBufferBlock;  /* Length of used buffer part */   ub1 *buffer_nzttBufferBlock;     /* Pointer to buffer */};typedef struct nzttBufferBlock nzttBufferBlock;/* * Wallet. */struct nzttWallet{   ub1 *ldapName_nzttWallet;              /* user's LDAP Name */   ub4  ldapNamelen_nzttWallet;           /* len of user's LDAP Name */   nzttPolicy securePolicy_nzttWallet;    /* secured-policy of the wallet */   nzttPolicy openPolicy_nzttWallet;      /* open-policy of the wallet */   nzttPersona *persona_nzttWallet;       /* List of personas in wallet */   nzttWalletPrivate *private_nzttWallet; /* Private wallet information */#ifdef NZDEPRECATED   ub4 npersona_nzttWallet;            /* Number of personas */#endif};/* * The wallet contains, one or more personas.  A persona always * contains its private key and its identity.  It may also contain * other 3rd party identites.  All identities qualified with trust * where the qualifier can indicate anything from untrusted to trusted * for specific operations. *//* * Persona * * Structure containing information about a persona. */struct nzttPersona{   ub1 *genericName_nzttPersona;              /* user-friendly persona name  */   ub4  genericNamelen_nzttPersona;           /* persona-name length */   nzttPersonaPrivate *private_nzttPersona;   /* Opaque part of persona */   nzttIdentity *mycertreqs_nzttPersona;      /* My cert-requests */   nzttIdentity *mycerts_nzttPersona;         /* My certificates */   nzttIdentity *mytps_nzttPersona;           /* List of trusted identities */   struct nzttPersona *next_nzttPersona;      /* Next persona */#ifdef NZDEPRECATED_MULTIPLECERTS  /* As Persona has multiple certs for different     usages, Persona Usage does not mean anything. Similarly     each key pair has its own state and Persona state itself     does not mean anything. - lk 5/31/00  */   nzttUsage usage_nzttPersona;               /* persona usage; SSL/SET/.. */   nzttState state_nzttPersona;               /* persona state-requested/ready */   ub4 ntps_nzttPersona;                   /* Num of trusted identities */#endif};/* * Identity * * Structure containing information about an identity. * * NOTE *  -- the next_trustpoint field only applies to trusted identities and *     has no meaning (i.e. is NULL) for self identities. */struct nzttIdentity{   text *dn_nzttIdentity;                      /* Alias */   ub4 dnlen_nzttIdentity;                  /* Length of alias */   text *comment_nzttIdentity;                 /* Comment  */   ub4 commentlen_nzttIdentity;             /* Length of comment */   nzttIdentityPrivate *private_nzttIdentity;  /* Opaque part of identity */   nzttIdentity *next_nzttIdentity;            /* next identity in list */};struct nzttB64Cert{   ub1 *b64Cert_nzttB64Cert;   ub4  b64Certlen_nzttB64Cert;   struct nzttB64Cert *next_nzttB64Cert;};typedef struct nzttB64Cert nzttB64Cert;struct nzttPKCS7ProtInfo{   nzttCipherType mictype_nzttPKCS7ProtInfo;    /* Hash cipher */   nzttCipherType symmtype_nzttPKCS7ProtInfo;   /* Symmetric cipher */   ub4 keylen_nzttPKCS7ProtInfo;             /* Length of key to use */};typedef struct nzttPKCS7ProtInfo nzttPKCS7ProtInfo;/* * Protection Information. * * Information specific to a type of protection. */union nzttProtInfo{   nzttPKCS7ProtInfo pkcs7_nzttProtInfo;};typedef union nzttProtInfo nzttProtInfo;/* * A description of a persona so that the toolkit can create one.  A * persona can be symmetric or asymmetric and both contain an * identity.  The identity for an asymmetric persona will be the * certificate and the identity for the symmetric persona will be * descriptive information about the persona.  In either case, an * identity will have been created before the persona is created. * * A persona can be stored separately from the wallet that references * it.  By default, a persona is stored with the wallet (it inherits * with WRL used to open the wallet).  If a WRL is specified, then it * is used to store the actuall persona and the wallet will have a * reference to it. */struct nzttPersonaDesc{   ub4 privlen_nzttPersonaDesc;        /* Length of private info (key)*/   ub1 *priv_nzttPersonaDesc;             /* Private information */   ub4 prllen_nzttPersonaDesc;         /* Length of PRL */   text *prl_nzttPersonaDesc;             /* PRL for storage */   ub4 aliaslen_nzttPersonaDesc;       /* Length of alias */   text *alias_nzttPersonaDesc;           /* Alias */   ub4 longlen_nzttPersonaDesc;        /* Length of longer description*/   text *long_nzttPersonaDesc;            /* Longer persona description */};typedef struct nzttPersonaDesc nzttPersonaDesc;/* * A description of an identity so that the toolkit can create one. * Since an identity can be symmetric or asymmetric, the asymmetric * identity information will not be used when a symmetric identity is * created.  This means the publen_nzttIdentityDesc and * pub_nzttIdentityDesc members will not be used when creating a * symmetric identity. */struct nzttIdentityDesc{   ub4 publen_nzttIdentityDesc;        /* Length of identity */   ub1 *pub_nzttIdentityDesc;             /* Type specific identity */   ub4 dnlen_nzttIdentityDesc;         /* Length of alias */   text *dn_nzttIdentityDesc;             /* Alias */   ub4 longlen_nzttIdentityDesc;       /* Length of longer description */   text *long_nzttIdentityDesc;           /* Longer description */   ub4 quallen_nzttIdentityDesc;       /* Length of trust qualifier */   text *trustqual_nzttIdentityDesc;      /* Trust qualifier */};typedef struct nzttIdentityDesc nzttIdentityDesc;/********************************//* PUBLIC FUNCTION DECLARATIONS *//********************************//*---------------------- nztwOpenWallet ----------------------*//* * NAME *    nztwOpenWallet - Open a wallet based on a wallet Resource Locator (WRL). *  * PARAMETERS *    osscntxt {IN}     OSS context.  *    wrllen   {IN}     Length of WRL. *    wrl      {IN}     WRL. *    pwdlen   {IN}     Length of password. *    pwd      {IN}     Password. *    wallet   {IN/OUT} Initialized wallet structure.    *  * NOTES *    The syntax for a WRL is <Wallet Type>:<Wallet Type Parameters>. * *    Wallet Type       Wallet Type Parameters. *    -----------       ---------------------- *    File              Pathname (e.g. "file:/home/asriniva") *    Oracle            Connect string (e.g. "oracle:scott/tiger@oss") * *    There are also defaults.  If the WRL is NZT_DEFAULT_WRL, then *    the platform specific WRL default is used.  If only the wallet *    type is specified, then the WRL type specific default is used *    (e.g. "oracle:") * *    There is an implication with Oracle that should be stated: An *    Oracle based wallet can be implemented in a user's private space *    or in world readable space. * *    When the wallet is opened, the password is verified by hashing *    it and comparing against the password hash stored with the *    wallet.  The list of personas (and their associated identities) *    is built and stored into the wallet structure. *     * RETURNS *    NZERROR_OK           Success. *    NZERROR_RIO_OPEN     RIO could not open wallet (see network trace file). *    NZERROR_TK_PASSWORD  Password verification failed. *    NZERROR_TK_WRLTYPE   WRL type is not known. *    NZERROR_TK_WRLPARM   WRL parm does not match type. */#ifdef __STDC__nzerror nztwOpenWallet(nzctx *, ub4, text *, ub4, text *,                            nzttWallet *);#elsenzerror nztwOpenWallet(/*_ nzctx *, ub4, text *, ub4, text *,                            nzttWallet * _*/);#endif /* __STDC __*//*---------------------- nztwCloseWallet ----------------------*//* * NAME *    nztwCloseWallet - Close a wallet *  * PARAMETERS *    osscntxt {IN}     OSS context. *    wallet   {IN/OUT} Wallet. *  * NOTES *    Closing a wallet also closes all personas associated with that *    wallet.  It does not cause a persona to automatically be saved *    if it has changed.  The implication is that a persona can be *    modified by an application but if it is not explicitly saved it *    reverts back to what was in the wallet. * * RETURNS *    NZERROR_OK           Success. *    NZERROR_RIO_CLOSE    RIO could not close wallet (see network trace file). */#ifdef __STDC__nzerror nztwCloseWallet(nzctx *, nzttWallet *);#elsenzerror nztwCloseWallet(/*_ nzctx *, nzttWallet * _*/);#endif /* __STDC__ *//*--------------------nztwGetCertInfo----------------------------*//****NOTE: This function is a temporary hack.****//****DO NOT CALL.  It will soon disappear.****/nzerror nztwGetCertInfo(/*_ nzctx *nz_context,                            nzosContext *nzosCtx,                            nzttWallet *walletRef,                            void *peerCert _*/);/*------------------------ nztwConstructWallet -----------------------*//* *  * nzerror nztwConstructWallet( nzctx *oss_context, 	 *				  nzttPolicy openPolicy, *				  nzttPolicy securePolicy, *				  ub1 *ldapName, *				  ub4 ldapNamelen, *				  nzstrc *wrl, *				  nzttPersona *personas, *				  nzttWallet **wallet ); *//*---------------------- nztwRetrievePersonaCopy ----------------------*//* * NAME *    nztwRetrievePersonaCopy - Retrieves a persona based from wallet *  * PARAMETERS *    osscntxt {IN}     OSS context.  *    wallet   {IN}     Wallet. *    index    {IN}     Which wallet index to remove (first persona is zero). *    persona  {OUT}    Persona found. *  * NOTES *    Retrieves a persona from the wallet based on the index number passed *    in.  This persona is a COPY of the one stored in the wallet, therefore *    it is perfectly fine for the wallet to be closed after this call is  *    made. * *    The caller is responsible for disposing of the persona when completed. * * RETURNS *    NZERROR_OK           Success. */#ifdef __STDC__nzerror nztwRetrievePersonaCopy(nzctx *, nzttWallet *, ub4, nzttPersona **);#elsenzerror nztwRetrievePersonaCopy(/*_ nzctx *, nzttWallet *, ub4,                            nzttPersona ** _*/);#endif /* __STDC __*//*---------------------- nztwRetrievePersonaCopyByName ----------------------*//* * NAME *    nztwRetrievePersonaCopyByName - Retrieves a persona based on its name. * * PARAMETERS *    osscntxt {IN}     OSS context. *    wallet   {IN}     Wallet. *    name    {IN}     Name of the persona  *    persona  {OUT}    Persona found. * * NOTES *    Retrieves a persona from the wallet based on the name of the persona.  *    This persona is a COPY of the one stored in the wallet, therefore *    it is perfectly fine for the wallet to be closed after this call is *    made. * *    The caller is responsible for disposing of the persona when completed. * * RETURNS *    NZERROR_OK           Success. */#ifdef __STDC__nzerror nztwRetrievePersonaCopyByName(nzctx *, nzttWallet *, char *, nzttPersona **);#elsenzerror nztwRetrievePersonaCopyByName(/*_ nzctx *, nzttWallet *, char *,                           nzttPersona ** _*/);#endif /* __STDC __*//*---------------------- nzteOpenPersona ----------------------*//* * NAME *    nzteOpenPersona - Open a persona. *  * PARAMETERS *    osscntxt {IN}     OSS context.  *    persona  {IN/OUT} Persona. *  * NOTES *     * RETURNS *    NZERROR_OK           Success. *    NZERROR_TK_PASSWORD  Password failed to decrypt persona. *    NZERROR_TK_BADPRL    Persona resource locator did not work. *    NZERROR_RIO_OPEN     Could not open persona (see network trace file). */#ifdef __STDC__nzerror nzteOpenPersona(nzctx *, nzttPersona *);#elsenzerror nzteOpenPersona(/*_ nzctx *, nzttPersona * _*/);#endif /* __STDC __*//*--------------------- nzteClosePersona ---------------------*//* * NAME *    nzteClosePersona - Close a persona. *  * PARAMETERS *    osscntxt {IN}     OSS context. *    persona  {IN/OUT} Persona. *  * NOTES *    Closing a persona does not store the persona, it simply releases *    the memory associated with the crypto engine. *     * RETURNS *    NZERROR_OK        Success. */#ifdef __STDC__nzerror nzteClosePersona(nzctx *, nzttPersona *);#elsenzerror nzteClosePersona(/*_ nzctx *, nzttPersona * _*/);#endif /* __STDC __*//*--------------------- nzteDestroyPersona ---------------------*//* * NAME *    nzteDestroyPersona - Destroy a persona. *  * PARAMETERS *    osscntxt {IN}        OSS context. *    persona  {IN/OUT}    Persona. *  * NOTES *    The persona is destroyd in the open state, but it will *    not be associated with a wallet. *     *    The persona parameter is doubly indirect so that at the *    conclusion of the function, the pointer can be set to NULL. * * * RETURNS *    NZERROR_OK        Success. *    NZERROR_TK_TYPE   Unsupported itype/ctype combination. *    NZERROR_TK_PARMS  Error in persona description. */#ifdef __STDC__nzerror nzteDestroyPersona(nzctx *,  nzttPersona **);#elsenzerror nzteDestroyPersona(/*_ nzctx *, nzttPersona ** _*/);#endif /* __STDC __*//*---------------------- nzteRetrieveTrustedIdentCopy ----------------------*//* * NAME *    nzteRetrieveTrustedIdentCopy - Retrieves a trusted identity from persona *  * PARAMETERS *    osscntxt {IN}     OSS context.  *    persona  {IN}     Persona. *    index    {IN}     Which wallet index to remove (first element is zero). *    identity {OUT}    Trusted Identity from this persona. *  * NOTES *    Retrieves a trusted identity from the persona based on the index  *    number passed in.  This identity is a COPY of the one stored in  *    the persona, therefore it is perfectly fine to close the persona *    after this call is made. * *    The caller is responsible for freeing the memory of this object  *    by calling nztiAbortIdentity it is no longer needed *

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -