Annotation of win32/sql/oracle/include/oci/nzt.h, revision 1.1.1.1
1.1 parser 1: /* DISABLE check_long_lines */
2:
3: /* Copyright (c) Oracle Corporation 1996, 1997, 1998, 1999. All Rights Reserved. */
4: /* Copyright (c) Oracle Corporation 1996, 1997, 1998, 1999. All Rights Reserved. */
5:
6: /*
7: * $Header: /var/lib/cvsroot/parser3/parser3/src/sql/oracle/oracle32/include/oci/nzt.h,v 1.1 2001/08/22 14:02:18 parser Exp $
8: * $Header: /var/lib/cvsroot/parser3/parser3/src/sql/oracle/oracle32/include/oci/nzt.h,v 1.1 2001/08/22 14:02:18 parser Exp $
9: */
10:
11: /*
12: * NAME
13: * nzt.h
14: *
15: * DESCRIPTION
16: * Toolkit public declarations.
17: *
18: * PUBLIC FUNCTIONS
19: * nztwOpenWallet - Open a wallet based on a WRL and pwd.
20: * nztwCloseWallet - Close a wallet.
21: * + nztwCreateWallet - Create a new wallet.
22: * + nztwDestroyWallet - Destroy an existing wallet.
23: * nztwRetrievePersonaCopy - Retieve a copy of a particular persona.
24: * + nzteStorePersona - Store a persona in the wallet.
25: * nzteOpenPersona - Open a persona.
26: * nzteClosePersona - Close a persona.
27: * + nzteRemovePersona - Remove a persona from a wallet.
28: * + nzteCreatePersona - Create a persona.
29: * nzteDestroyPersona - Destroy a persona.
30: * nztiStoreTrustedIdentity - Store an identity with associated trust.
31: * nzteRetrieveTrustedIdentCopy - Retrieves a trusted identity from persona
32: * + nzteSetProtection - Modify the protection set in a persona.
33: * + nzteGetProtection - Get the protection set in a persona
34: * nztePriKey - Get the Private Key (X509 Only)
35: * nzteMyCert - Get the Certificate (X509 only)
36: * nzteX509CreatePersona - Create a persona given an X509 Certificate.
37: * + nztiRemoveIdentity - Remove an identity from a persona.
38: * nztiCreateIdentity - Create an identity.
39: * nztiDuplicateIdentity - Create a complete copy of an identity.
40: * nztiAbortIdentity - Discard an unstored identity.
41: * nztidGetIdentityDesc - Gets Identity Description from Identity.
42: * nztidFreeIdentityDesc - Frees memory for Identity Desc object.
43: * nztSign - Generate an attached signature.
44: * + nztxSignExpansion - Determine size of signature.
45: * nztVerify - Verify an attached signature.
46: * nztValidate - Validate an identity.
47: * nztsd_SignDetached - Generate a detached signature.
48: * + nztxsd_SignDetachedExpansion - Determine size of detached signature.
49: * nztved_VerifyDetached - Verify a detached signature.
50: * + nztEncrypt - Symmetric key encryption.
51: * + nztxEncryptExpansion - Determine the tdu length for encryption.
52: * + nztDecrypt - Symmetric key decryption.
53: * + nztEnvelope - Sign then encrypt data for recipient(s).
54: * + nztDeEnvelope - Reverse nztEnvelope.
55: * + nztKeyedHash - Generate keyed hash.
56: * + nztxKeyedHashExpansion - Determine size of TDU for keyed hash.
57: * nztHash - Generate hash.
58: * + nztxHashExpansion - Determine the size of the TDU for a hash.
59: * nztSeedRandom - See the random number generator.
60: * nztrb_RandomBytes - Generate a series of random bytes.
61: * nztrn_RandomNumber - Generate a random number.
62: * nztbbInitBlock - Initialize a buffer block.
63: * nztbbReuseBlock - Reuse a buffer block.
64: * nztbbSizeBlock - Find the size of the buffer block.
65: * nztbbGrowBlock - Grow initialized buffer block by 'inc' bytes.
66: * nztbbPurgeBlock - Purge the memory used within a buffer block.
67: * nztbbSetBlock - Set block to known state.
68: * nztkec_PKEncrypt - Encrypt data then encrypt key for recipient.
69: * nztkdc_PKDecrypt - Decrypt PKEncrypt'ed data.
70: * nztific_FreeIdentityContent - Free the contents of an identity.
71: * nztifdn - Create an identity from a distinguished name
72: * nztcts_CipherSpecToStr - Converts the Cipher Spec Code To String
73: * nztiae_IsAuthEnabled - Checks to see if Authentication is Enabled
74: * in the current Cipher Spec.
75: * nztiae_IsEncrEnabled - Checks to see if Encryption is Enabled
76: * in the current Cipher Spec.
77: * nztiae_IsHashEnabled - Checks to see if Hashing is Enabled
78: * in the current Cipher Spec.
79: *
80: * NOTE: the '+' indicates that these functions are UNSUPPORTED at this time.
81: *
82: * NOTES
83: *
84: * MODIFIED
85: * skanjila 06/25/99 - Remove nztcts_CipherSpecToStr() to NZOS.
86: * skanjila 06/23/99 - Change API of nztcts_CipherSpecToStr.
87: * lkethana 06/18/99 - rem nztIPrivateAlloc, etc
88: * lkethana 06/10/99 - changing size_t to ub4
89: * lkethana 06/02/99 - add api for getting auth/encry/hash capability of c
90: * arswamin 12/28/98 - add NZT_MAX_MD5.
91: * arswamin 12/21/98 - change signature of compareDN
92: * qdinh 12/21/98 - change size_t to ub4.
93: * inetwork 11/22/98 - Removing NZDEPRECATED definition
94: * amthakur 09/14/98 - deprecating and updating the c-structures.
95: * arswamin 09/24/98 - adding NZTTWRL_NULL for SSO support.
96: * amthakur 07/30/98 - changing the prototype of nztGetCertChain.
97: * qdinh 05/01/98 - add NZTTIDENTTYPE_INVALID_TYPE
98: * qdinh 04/17/98 - add NZTTWRL_ORACLE.
99: * ascott 10/08/97 - implement nztiStoreTrustedIdentity
100: * ascott 10/07/97 - add nztiGetIdentityDesc
101: * ascott 09/28/97 - clarify prototype comments and error codes
102: * ascott 09/05/97 - update identity: create, destroy, duplicate
103: * ascott 08/21/97 - add GetCert and GetPriKey
104: * ascott 08/07/97 - add other WRL settings
105: * asriniva 03/25/97 - Add ANSI prototypes
106: * rwessman 03/19/97 - Added prototypes for nztific_FreeIdentityContent()
107: * asriniva 03/11/97 - Fix olint errors
108: * sdange 02/28/97 - Removed inclusion of nz0decl.h
109: * sdange 02/18/97 - Moved nzt specific declarations from nz0decl.h
110: * asriniva 01/21/97 - Remove prototypes.
111: * asriniva 10/31/96 - Include oratypes.h
112: * asriniva 10/15/96 - Declare buffer block helper functions
113: * asriniva 10/08/96 - First pass at wallet open/close
114: * asriniva 10/04/96 - Add random number seed function
115: * asriniva 10/03/96 - Reorder parameters in nztbbSetBlock
116: * asriniva 10/03/96 - Keep editing.
117: * asriniva 10/03/96 - Continued edits.
118: * asriniva 10/02/96 - Continue editing.
119: * asriniva 09/26/96 -
120: */
121:
122: /* ENABLE check_long_lines */
123:
124: #ifndef NZT_ORACLE
125: #define NZT_ORACLE
126:
127: #ifndef ORATYPES
128: # include <oratypes.h>
129: #endif /* ORATYPES */
130:
131: #ifndef NZERROR_ORACLE
132: # include <nzerror.h> /* NZ error type */
133: #endif /* NZERROR_ORACLE */
134:
135: #define NZT_MAX_SHA1 20
136: #define NZT_MAX_MD5 16
137:
138: /***************************************/
139: /* PUBLIC CONSTANTS, MACROS, AND TYPES */
140: /***************************************/
141:
142: /*
143: * Wallet Resource Locator Type Strings
144: *
145: * WRL TYPE PARAMETERS BEHAVIOR
146: * ======== ========== =====================================
147: * default: <none> Uses directory defined by the parameter
148: * SNZD_DEFAULT_FILE_DIRECTORY which in
149: * unix is "$HOME/oracle/oss"
150: *
151: * file: file path example: file:/home/ascott
152: *
153: * sqlnet: <none> In this case, the directory path will be
154: * retrieved from the sqlnet.ora file under
155: * the oss.source.my_wallet parameter.
156: *
157: */
158: /* Note that there is no NZT_NULL_WRL. Instead look in snzd.h for DEFAULT_WRP
159: * which is used in our new defaulting mechanism. The NZT_DEFAULT_WRL
160: * should be deprecated.
161: */
162: #define NZT_DEFAULT_WRL ((text *)"default:")
163: #define NZT_SQLNET_WRL ((text *)"sqlnet:")
164: #define NZT_FILE_WRL ((text *)"file:")
165: #define NZT_ORACLE_WRL ((text *)"oracle:")
166: #define NZT_NO_PASSWORD ((text *)"") /* NEVER USED */
167:
168: enum nzttwrl
169: {
170: NZTTWRL_DEFAULT = 1, /* Default, use SNZD_DEFAULT_FILE_DIRECTORY */
171: NZTTWRL_SQLNET, /* Use oss.source.my_wallet in sqlnet.ora file */
172: NZTTWRL_FILE, /* Find the wallet in this directory */
173: NZTTWRL_ORACLE, /* Get the wallet from OSS db */
174: NZTTWRL_NULL /* New SSO defaulting mechanism */
175: };
176: typedef enum nzttwrl nzttwrl;
177:
178: #ifndef NZ0DECL_ORACLE
179: /*
180: * With the elimination of nz0decl.h from public, we need this
181: * redundant typedef.
182: */
183: typedef struct nzctx nzctx;
184: #endif /* NZ0DECL_ORACLE */
185:
186: /* Moved from nz0decl.h */
187:
188: typedef struct nzttIdentity nzttIdentity;
189: typedef struct nzttIdentityPrivate nzttIdentityPrivate;
190: typedef struct nzttPersona nzttPersona;
191: typedef struct nzttPersonaPrivate nzttPersonaPrivate;
192: typedef struct nzttWallet nzttWallet;
193: typedef struct nzttWalletPrivate nzttWalletPrivate;
194: typedef struct nzttWalletObj nzttWalletObj; /* For wallet object */
195:
196: /*
197: * Crypto Engine State
198: *
199: * Once the crypto engine (CE) has been initialized for a particular
200: * cipher, it is either at the initial state, or it is continuing to
201: * use the cipher. NZTCES_END is used to change the state back to
202: * initialized and flush any remaining output. NZTTCES_RESET can be
203: * used to change the state back to initialized and throw away any
204: * remaining output.
205: */
206: enum nzttces
207: {
208: NZTTCES_CONTINUE = 1, /* Continue processing input */
209: NZTTCES_END, /* End processing input */
210: NZTTCES_RESET /* Reset processing and skip generating output */
211: };
212: typedef enum nzttces nzttces;
213:
214: /*
215: * Crypto Engine Functions
216: *
217: * List of crypto engine categories; used to index into protection
218: * vector.
219: */
220: enum nzttcef
221: {
222: NZTTCEF_DETACHEDSIGNATURE = 1, /* Signature, detached from content */
223: NZTTCEF_SIGNATURE, /* Signature combined with content */
224: NZTTCEF_ENVELOPING, /* Signature and encryption with content */
225: NZTTCEF_PKENCRYPTION, /* Encryption for one or more recipients */
226: NZTTCEF_ENCRYPTION, /* Symmetric encryption */
227: NZTTCEF_KEYEDHASH, /* Keyed hash/checkusm */
228: NZTTCEF_HASH, /* Hash/checsum */
229: NZTTCEF_RANDOM, /* Random byte generation */
230:
231: NZTTCEF_LAST /* Used for array size */
232: };
233: typedef enum nzttcef nzttcef;
234:
235: /*
236: * State of the persona.
237: */
238: enum nzttState
239: {
240: NZTTSTATE_EMPTY = 0, /* is not in any state(senseless???) */
241: NZTTSTATE_REQUESTED, /* cert-request */
242: NZTTSTATE_READY, /* certificate */
243: NZTTSTATE_INVALID, /* certificate */
244: NZTTSTATE_RENEWAL /* renewal-requested */
245: };
246: typedef enum nzttState nzttState;
247:
248: /*
249: * Cert-version types
250: *
251: * This is used to quickly look-up the cert-type
252: */
253: enum nzttVersion
254: {
255: NZTTVERSION_X509v1 = 1, /* X.509v1 */
256: NZTTVERSION_X509v3, /* X.509v3 */
257: #ifdef NZDEPRECATED
258: NZTTVERSION_SYMMETRIC, /* Symmetric */
259: #endif
260: NZTTVERSION_INVALID_TYPE /* For Initialization */
261: };
262: typedef enum nzttVersion nzttVersion;
263:
264: /*
265: * Cipher Types
266: *
267: * List of all cryptographic algorithms, some of which may not be
268: * available.
269: */
270: enum nzttCipherType
271: {
272: NZTTCIPHERTYPE_RSA = 1, /* RSA public key */
273: NZTTCIPHERTYPE_DES, /* DES */
274: NZTTCIPHERTYPE_RC4, /* RC4 */
275: NZTTCIPHERTYPE_MD5DES, /* DES encrypted MD5 with salt (PBE) */
276: NZTTCIPHERTYPE_MD5RC2, /* RC2 encrypted MD5 with salt (PBE) */
277: NZTTCIPHERTYPE_MD5, /* MD5 */
278: NZTTCIPHERTYPE_SHA /* SHA */
279: };
280: typedef enum nzttCipherType nzttCipherType;
281:
282: /*
283: * TDU Formats
284: *
285: * List of possible toolkit data unit (TDU) formats. Depending on the
286: * function and cipher used some may be not be available.
287: */
288: enum nztttdufmt
289: {
290: NZTTTDUFMT_PKCS7 = 1, /* PKCS7 format */
291: NZTTTDUFMT_RSAPAD, /* RSA padded format */
292: NZTTTDUFMT_ORACLEv1, /* Oracle v1 format */
293: NZTTTDUFMT_LAST /* Used for array size */
294: };
295: typedef enum nztttdufmt nztttdufmt;
296:
297: /*
298: * Validate State
299: *
300: * Possible validation states an identity can be in.
301: */
302: enum nzttValState
303: {
304: NZTTVALSTATE_NONE = 1, /* Needs to be validated */
305: NZTTVALSTATE_GOOD, /* Validated */
306: NZTTVALSTATE_REVOKED /* Failed to validate */
307: };
308: typedef enum nzttValState nzttValState;
309:
310: /*
311: * Policy Fields <----NEW (09/14/98)
312: *
313: * Policies enforced
314: */
315: enum nzttPolicy
316: {
317: NZTTPOLICY_NONE = 0,
318: NZTTPOLICY_RETRY_1, /* number of retries for decryption = 1 */
319: NZTTPOLICY_RETRY_2, /* number of retries for decryption = 2 */
320: NZTTPOLICY_RETRY_3 /* number of retries for decryption = 3 */
321: };
322: typedef enum nzttPolicy nzttPolicy;
323:
324: /*
325: * Persona Usage <----NEW (09/14/98)
326: *
327: * what a persona will be used for?
328: */
329: enum nzttUsage
330: {
331: NZTTUSAGE_NONE = 0,
332: NZTTUSAGE_SSL /* persona for SSL usage */
333: };
334: typedef enum nzttUsage nzttUsage;
335:
336: /*
337: * Personas and identities have unique id's that are represented with
338: * 128 bits.
339: */
340: typedef ub1 nzttID[16];
341:
342: /*
343: * Identity Types
344: *
345: * List of all Identity types..
346: */
347: enum nzttIdentType
348: {
349: NZTTIDENTITYTYPE_INVALID_TYPE = 0,
350: NZTTIDENTITYTYPE_CERTIFICTAE,
351: NZTTIDENTITYTYPE_CERT_REQ,
352: NZTTIDENTITYTYPE_RENEW_CERT_REQ,
353: NZTTIDENTITYTYPE_CLEAR_ETP,
354: NZTTIDENTITYTYPE_CLEAR_UTP,
355: NZTTIDENTITYTYPE_CLEAR_PTP
356: };
357: typedef enum nzttIdentType nzttIdentType;
358:
359: /*
360: * Timestamp as 32 bit quantity in UTC.
361: */
362: typedef ub1 nzttTStamp[4];
363:
364: /*
365: * Buffer Block
366: *
367: * A function that needs to fill (and possibly grow) an output buffer
368: * uses an output parameter block to describe each buffer.
369: *
370: * The flags_nzttBufferBlock member tells the function whether the
371: * buffer can be grown or not. If flags_nzttBufferBlock is 0, then
372: * the buffer will be realloc'ed automatically.
373: *
374: * The buflen_nzttBufferBLock member is set to the length of the
375: * buffer before the function is called and will be the length of the
376: * buffer when the function is finished. If buflen_nzttBufferBlock is
377: * 0, then the initial pointer stored in pobj_nzttBufferBlock is
378: * ignored.
379: *
380: * The objlen_nzttBufferBlock member is set to the length of the
381: * object stored in the buffer when the function is finished. If the
382: * initial buffer had a non-0 length, then it is possible that the
383: * object length is shorter than the buffer length.
384: *
385: * The pobj_nzttBufferBlock member is a pointer to the output object.
386: */
387: struct nzttBufferBlock
388: {
389: # define NZT_NO_AUTO_REALLOC 0x1
390:
391: uword flags_nzttBufferBlock; /* Flags */
392: ub4 buflen_nzttBufferBlock; /* Total length of buffer */
393: ub4 usedlen_nzttBufferBlock; /* Length of used buffer part */
394: ub1 *buffer_nzttBufferBlock; /* Pointer to buffer */
395: };
396: typedef struct nzttBufferBlock nzttBufferBlock;
397:
398: /*
399: * Wallet.
400: */
401: struct nzttWallet
402: {
403: ub1 *ldapName_nzttWallet; /* user's LDAP Name */
404: ub4 ldapNamelen_nzttWallet; /* len of user's LDAP Name */
405: nzttPolicy securePolicy_nzttWallet; /* secured-policy of the wallet */
406: nzttPolicy openPolicy_nzttWallet; /* open-policy of the wallet */
407: nzttPersona *persona_nzttWallet; /* List of personas in wallet */
408: nzttWalletPrivate *private_nzttWallet; /* Private wallet information */
409: #ifdef NZDEPRECATED
410: ub4 npersona_nzttWallet; /* Number of personas */
411: #endif
412: };
413:
414: /*
415: * The wallet contains, one or more personas. A persona always
416: * contains its private key and its identity. It may also contain
417: * other 3rd party identites. All identities qualified with trust
418: * where the qualifier can indicate anything from untrusted to trusted
419: * for specific operations.
420: */
421:
422: /*
423: * Persona
424: *
425: * Structure containing information about a persona.
426: */
427: struct nzttPersona
428: {
429: ub1 *genericName_nzttPersona; /* user-friendly persona name */
430: ub4 genericNamelen_nzttPersona; /* persona-name length */
431: nzttUsage usage_nzttPersona; /* persona usage; SSL/SET/.. */
432: nzttState state_nzttPersona; /* persona state-requested/ready */
433: nzttPersonaPrivate *private_nzttPersona; /* Opaque part of persona */
434: nzttIdentity *mycertreqs_nzttPersona; /* My cert-requests */
435: nzttIdentity *mycerts_nzttPersona; /* My certificates */
436: nzttIdentity *mytps_nzttPersona; /* List of trusted identities */
437: struct nzttPersona *next_nzttPersona; /* Next persona */
438: #ifdef NZDEPRECATED
439: ub4 ntps_nzttPersona; /* Num of trusted identities */
440: #endif
441: };
442:
443: /*
444: * Identity
445: *
446: * Structure containing information about an identity.
447: *
448: * NOTE
449: * -- the next_trustpoint field only applies to trusted identities and
450: * has no meaning (i.e. is NULL) for self identities.
451: */
452: struct nzttIdentity
453: {
454: text *dn_nzttIdentity; /* Alias */
455: ub4 dnlen_nzttIdentity; /* Length of alias */
456: text *comment_nzttIdentity; /* Comment */
457: ub4 commentlen_nzttIdentity; /* Length of comment */
458: nzttIdentityPrivate *private_nzttIdentity; /* Opaque part of identity */
459: nzttIdentity *next_nzttIdentity; /* next identity in list */
460: };
461:
462: struct nzttPKCS7ProtInfo
463: {
464: nzttCipherType mictype_nzttPKCS7ProtInfo; /* Hash cipher */
465: nzttCipherType symmtype_nzttPKCS7ProtInfo; /* Symmetric cipher */
466: ub4 keylen_nzttPKCS7ProtInfo; /* Length of key to use */
467: };
468: typedef struct nzttPKCS7ProtInfo nzttPKCS7ProtInfo;
469:
470: /*
471: * Protection Information.
472: *
473: * Information specific to a type of protection.
474: */
475: union nzttProtInfo
476: {
477: nzttPKCS7ProtInfo pkcs7_nzttProtInfo;
478: };
479: typedef union nzttProtInfo nzttProtInfo;
480:
481: /*
482: * A description of a persona so that the toolkit can create one. A
483: * persona can be symmetric or asymmetric and both contain an
484: * identity. The identity for an asymmetric persona will be the
485: * certificate and the identity for the symmetric persona will be
486: * descriptive information about the persona. In either case, an
487: * identity will have been created before the persona is created.
488: *
489: * A persona can be stored separately from the wallet that references
490: * it. By default, a persona is stored with the wallet (it inherits
491: * with WRL used to open the wallet). If a WRL is specified, then it
492: * is used to store the actuall persona and the wallet will have a
493: * reference to it.
494: */
495: struct nzttPersonaDesc
496: {
497: ub4 privlen_nzttPersonaDesc; /* Length of private info (key)*/
498: ub1 *priv_nzttPersonaDesc; /* Private information */
499: ub4 prllen_nzttPersonaDesc; /* Length of PRL */
500: text *prl_nzttPersonaDesc; /* PRL for storage */
501: ub4 aliaslen_nzttPersonaDesc; /* Length of alias */
502: text *alias_nzttPersonaDesc; /* Alias */
503: ub4 longlen_nzttPersonaDesc; /* Length of longer description*/
504: text *long_nzttPersonaDesc; /* Longer persona description */
505: };
506: typedef struct nzttPersonaDesc nzttPersonaDesc;
507:
508: /*
509: * A description of an identity so that the toolkit can create one.
510: * Since an identity can be symmetric or asymmetric, the asymmetric
511: * identity information will not be used when a symmetric identity is
512: * created. This means the publen_nzttIdentityDesc and
513: * pub_nzttIdentityDesc members will not be used when creating a
514: * symmetric identity.
515: */
516: struct nzttIdentityDesc
517: {
518: ub4 publen_nzttIdentityDesc; /* Length of identity */
519: ub1 *pub_nzttIdentityDesc; /* Type specific identity */
520: ub4 dnlen_nzttIdentityDesc; /* Length of alias */
521: text *dn_nzttIdentityDesc; /* Alias */
522: ub4 longlen_nzttIdentityDesc; /* Length of longer description */
523: text *long_nzttIdentityDesc; /* Longer description */
524: ub4 quallen_nzttIdentityDesc; /* Length of trust qualifier */
525: text *trustqual_nzttIdentityDesc; /* Trust qualifier */
526: };
527: typedef struct nzttIdentityDesc nzttIdentityDesc;
528:
529: /********************************/
530: /* PUBLIC FUNCTION DECLARATIONS */
531: /********************************/
532:
533: /*---------------------- nztwOpenWallet ----------------------*/
534:
535: /*
536: * NAME
537: * nztwOpenWallet - Open a wallet based on a wallet Resource Locator (WRL).
538: *
539: * PARAMETERS
540: * osscntxt {IN} OSS context.
541: * wrllen {IN} Length of WRL.
542: * wrl {IN} WRL.
543: * pwdlen {IN} Length of password.
544: * pwd {IN} Password.
545: * wallet {IN/OUT} Initialized wallet structure.
546: *
547: * NOTES
548: * The syntax for a WRL is <Wallet Type>:<Wallet Type Parameters>.
549: *
550: * Wallet Type Wallet Type Parameters.
551: * ----------- ----------------------
552: * File Pathname (e.g. "file:/home/asriniva")
553: * Oracle Connect string (e.g. "oracle:scott/tiger@oss")
554: *
555: * There are also defaults. If the WRL is NZT_DEFAULT_WRL, then
556: * the platform specific WRL default is used. If only the wallet
557: * type is specified, then the WRL type specific default is used
558: * (e.g. "oracle:")
559: *
560: * There is an implication with Oracle that should be stated: An
561: * Oracle based wallet can be implemented in a user's private space
562: * or in world readable space.
563: *
564: * When the wallet is opened, the password is verified by hashing
565: * it and comparing against the password hash stored with the
566: * wallet. The list of personas (and their associated identities)
567: * is built and stored into the wallet structure.
568: *
569: * RETURNS
570: * NZERROR_OK Success.
571: * NZERROR_RIO_OPEN RIO could not open wallet (see network trace file).
572: * NZERROR_TK_PASSWORD Password verification failed.
573: * NZERROR_TK_WRLTYPE WRL type is not known.
574: * NZERROR_TK_WRLPARM WRL parm does not match type.
575: */
576: #ifdef __STDC__
577: nzerror nztwOpenWallet(nzctx *, ub4, text *, ub4, text *,
578: nzttWallet *);
579: #else
580: nzerror nztwOpenWallet(/*_ nzctx *, ub4, text *, ub4, text *,
581: nzttWallet * _*/);
582: #endif /* __STDC __*/
583:
584: /*---------------------- nztwCloseWallet ----------------------*/
585:
586: /*
587: * NAME
588: * nztwCloseWallet - Close a wallet
589: *
590: * PARAMETERS
591: * osscntxt {IN} OSS context.
592: * wallet {IN/OUT} Wallet.
593: *
594: * NOTES
595: * Closing a wallet also closes all personas associated with that
596: * wallet. It does not cause a persona to automatically be saved
597: * if it has changed. The implication is that a persona can be
598: * modified by an application but if it is not explicitly saved it
599: * reverts back to what was in the wallet.
600: *
601: * RETURNS
602: * NZERROR_OK Success.
603: * NZERROR_RIO_CLOSE RIO could not close wallet (see network trace file).
604: */
605: #ifdef __STDC__
606: nzerror nztwCloseWallet(nzctx *, nzttWallet *);
607: #else
608: nzerror nztwCloseWallet(/*_ nzctx *, nzttWallet * _*/);
609: #endif /* __STDC__ */
610:
611: /*------------------------ nztwConstructWallet -----------------------*/
612: /*
613: *
614: * nzerror nztwConstructWallet( nzctx *oss_context,
615: * nzttPolicy openPolicy,
616: * nzttPolicy securePolicy,
617: * ub1 *ldapName,
618: * ub4 ldapNamelen,
619: * nzstrc *wrl,
620: * nzttPersona *personas,
621: * nzttWallet **wallet );
622: */
623:
624: /*---------------------- nztwRetrievePersonaCopy ----------------------*/
625:
626: /*
627: * NAME
628: * nztwRetrievePersonaCopy - Retrieves a persona based from wallet
629: *
630: * PARAMETERS
631: * osscntxt {IN} OSS context.
632: * wallet {IN} Wallet.
633: * index {IN} Which wallet index to remove (first persona is zero).
634: * persona {OUT} Persona found.
635: *
636: * NOTES
637: * Retrieves a persona from the wallet based on the index number passed
638: * in. This persona is a COPY of the one stored in the wallet, therefore
639: * it is perfectly fine for the wallet to be closed after this call is
640: * made.
641: *
642: * The caller is responsible for disposing of the persona when completed.
643: *
644: * RETURNS
645: * NZERROR_OK Success.
646: */
647: #ifdef __STDC__
648: nzerror nztwRetrievePersonaCopy(nzctx *, nzttWallet *, ub4, nzttPersona **);
649: #else
650: nzerror nztwRetrievePersonaCopy(/*_ nzctx *, nzttWallet *, ub4,
651: nzttPersona ** _*/);
652: #endif /* __STDC __*/
653:
654:
655: /*---------------------- nzteOpenPersona ----------------------*/
656:
657: /*
658: * NAME
659: * nzteOpenPersona - Open a persona.
660: *
661: * PARAMETERS
662: * osscntxt {IN} OSS context.
663: * persona {IN/OUT} Persona.
664: *
665: * NOTES
666: *
667: * RETURNS
668: * NZERROR_OK Success.
669: * NZERROR_TK_PASSWORD Password failed to decrypt persona.
670: * NZERROR_TK_BADPRL Persona resource locator did not work.
671: * NZERROR_RIO_OPEN Could not open persona (see network trace file).
672: */
673: #ifdef __STDC__
674: nzerror nzteOpenPersona(nzctx *, nzttPersona *);
675: #else
676: nzerror nzteOpenPersona(/*_ nzctx *, nzttPersona * _*/);
677: #endif /* __STDC __*/
678:
679: /*--------------------- nzteClosePersona ---------------------*/
680:
681: /*
682: * NAME
683: * nzteClosePersona - Close a persona.
684: *
685: * PARAMETERS
686: * osscntxt {IN} OSS context.
687: * persona {IN/OUT} Persona.
688: *
689: * NOTES
690: * Closing a persona does not store the persona, it simply releases
691: * the memory associated with the crypto engine.
692: *
693: * RETURNS
694: * NZERROR_OK Success.
695: */
696: #ifdef __STDC__
697: nzerror nzteClosePersona(nzctx *, nzttPersona *);
698: #else
699: nzerror nzteClosePersona(/*_ nzctx *, nzttPersona * _*/);
700: #endif /* __STDC __*/
701:
702: /*--------------------- nzteDestroyPersona ---------------------*/
703:
704: /*
705: * NAME
706: * nzteDestroyPersona - Destroy a persona.
707: *
708: * PARAMETERS
709: * osscntxt {IN} OSS context.
710: * persona {IN/OUT} Persona.
711: *
712: * NOTES
713: * The persona is destroyd in the open state, but it will
714: * not be associated with a wallet.
715: *
716: * The persona parameter is doubly indirect so that at the
717: * conclusion of the function, the pointer can be set to NULL.
718: *
719: *
720: * RETURNS
721: * NZERROR_OK Success.
722: * NZERROR_TK_TYPE Unsupported itype/ctype combination.
723: * NZERROR_TK_PARMS Error in persona description.
724: */
725: #ifdef __STDC__
726: nzerror nzteDestroyPersona(nzctx *, nzttPersona **);
727: #else
728: nzerror nzteDestroyPersona(/*_ nzctx *, nzttPersona ** _*/);
729: #endif /* __STDC __*/
730:
731: /*---------------------- nzteRetrieveTrustedIdentCopy ----------------------*/
732:
733: /*
734: * NAME
735: * nzteRetrieveTrustedIdentCopy - Retrieves a trusted identity from persona
736: *
737: * PARAMETERS
738: * osscntxt {IN} OSS context.
739: * persona {IN} Persona.
740: * index {IN} Which wallet index to remove (first element is zero).
741: * identity {OUT} Trusted Identity from this persona.
742: *
743: * NOTES
744: * Retrieves a trusted identity from the persona based on the index
745: * number passed in. This identity is a COPY of the one stored in
746: * the persona, therefore it is perfectly fine to close the persona
747: * after this call is made.
748: *
749: * The caller is responsible for freeing the memory of this object
750: * by calling nztiAbortIdentity it is no longer needed
751: *
752: * RETURNS
753: * NZERROR_OK Success.
754: */
755: #ifdef __STDC__
756: nzerror nzteRetrieveTrustedIdentCopy(nzctx *, nzttPersona *, ub4,
757: nzttIdentity **);
758: #else
759: nzerror nzteRetrieveTrustedIdentCopy(/*_ nzctx *, nzttPersona *, ub4,
760: nzttIdentity ** _*/);
761: #endif /* __STDC __*/
762:
763: /*--------------------- nztePriKey ---------------------*/
764:
765: /*
766: * NAME
767: * nztePriKey - Get the decrypted Private Key for the Persona
768: *
769: * PARAMETERS
770: * osscntxt {IN} OSS context.
771: * persona {IN} Persona.
772: * vkey {OUT} Private Key [B_KEY_OBJ]
773: * vkey_len {OUT} Private Key Length
774: *
775: * NOTES
776: * This funiction will only work for X.509 based persona which contain
777: * a private key.
778: * A copy of the private key is returned to the caller so that they do not
779: * have to worry about the key changeing "underneath them".
780: * Memory will be allocated for the vkey and therefore, the CALLER
781: * will be responsible for freeing this memory.
782: *
783: * RETURNS
784: * NZERROR_OK Success.
785: * NZERROR_NO_MEMORY ossctx is null.
786: * NZERROR_TK_BADPRL Persona resource locator did not work.
787: */
788: #ifdef __STDC__
789: nzerror nztePriKey(nzctx *, nzttPersona *, ub1 **, ub4 *);
790: #else
791: nzerror nztePriKey(/*_ nzctx *, nzttPersona *, ub1 **, ub4 * _*/);
792: #endif /* __STDC __*/
793:
794: /*--------------------- nzteMyCert ---------------------*/
795:
796: /*
797: * NAME
798: * nzteMyCert - Get the X.509 Certificate for a persona
799: *
800: * PARAMETERS
801: * osscntxt {IN} OSS context.
802: * persona {IN} Persona.
803: * cert {OUT} X.509 Certificate [BER encoded]
804: * cert_len {OUT} Certificate length
805: *
806: * NOTES
807: * This funiction will only work for X.509 based persona which contain
808: * a certificate for the self identity.
809: * A copy of the certificate is returned to the caller so that they do not
810: * have to worry about the certificate changeing "underneath them".
811: * Memory will be allocated for the cert and therefore, the CALLER
812: * will be responsible for freeing this memory.
813: *
814: * RETURNS
815: * NZERROR_OK Success.
816: * NZERROR_NO_MEMORY ossctx is null.
817: */
818: #ifdef __STDC__
819: nzerror nzteMyCert(nzctx *, nzttPersona *, ub1 **, ub4 *);
820: #else
821: nzerror nzteMyCert(/*_ nzctx *, nzttPersona *, ub1 **, ub4 * _*/);
822: #endif /* __STDC __*/
823:
824: /*--------------------- nzteX509CreatePersona ---------------------*/
825:
826: /*
827: * NAME
828: * nzteX509CreatePersona - Given a BER X.509 cert, create a persona
829: *
830: * PARAMETERS
831: * osscntxt {IN} OSS context.
832: * cert {IN} X.509 Certificate [BER encoded]
833: * cert_len {IN} Certificate length
834: * persona {OUT} Persona.
835: *
836: * NOTES
837: * Memory will be allocated for the persona and therefore, the CALLER
838: * will be responsible for freeing this memory.
839: *
840: * RETURNS
841: * NZERROR_OK Success.
842: * NZERROR_NO_MEMORY ossctx is null.
843: */
844: #ifdef __STDC__
845: nzerror nzteX509CreatePersona(nzctx *, ub1 *, ub4, nzttPersona **);
846: #else
847: nzerror nzteX509CreatePersona(/*_ nzctx *, ub1 *, ub4, nzttPersona ** _*/);
848: #endif /* __STDC __*/
849:
850: /*-------------------- nztiCreateIdentity --------------------*/
851:
852: /*
853: * NAME
854: * nztiCreateIdentity - Create an identity.
855: *
856: * PARAMETERS
857: * osscntxt {IN} OSS context.
858: * itype {IN} Identity type.
859: * desc {IN} Description of identity.
860: * identity {IN/OUT} Identity.
861: *
862: * NOTES
863: * Memory is only allocated for the identity structure. The elements in
864: * the description struct are not copied. Rather their pointers are copied
865: * into the identity structure. Therefore, the caller should not free
866: * the elements referenced by the desc. These elements will be freed
867: * when the nztiDestroyIdentity is called.
868: *
869: * RETURNS
870: * NZERROR_OK Success.
871: * NZERROR_PARMS Error in description.
872: */
873: #ifdef __STDC__
874: nzerror nztiCreateIdentity(nzctx *, nzttVersion, nzttIdentityDesc *,
875: nzttIdentity **);
876: #else
877: nzerror nztiCreateIdentity(/*_ nzctx *, nzttVersion, nzttIdentityDesc *,
878: nzttIdentity ** _*/);
879: #endif /* __STDC __*/
880:
881: #ifdef NZ_OLD_TOOLS
882: /*-------------------- nztiDuplicateIdentity --------------------*/
883:
884: /*
885: * NAME
886: * nztiDuplicateIdentity - Duplicate an identity.
887: *
888: * PARAMETERS
889: * osscntxt {IN} OSS context.
890: * identity {IN} Target Identity.
891: * new_identity {IN} New Identity.
892: *
893: * NOTES
894: * Memory for the identity is allocated inside the function, and all
895: * internal identity elements as well.
896: *
897: * RETURNS
898: * NZERROR_OK Success.
899: * NZERROR_TK_NOTFOUND Identity not found.
900: * NZERROR_PARMS Error in description.
901: */
902: #ifdef __STDC__
903: nzerror nztiDuplicateIdentity(nzctx *, nzttIdentity *,
904: nzttIdentity **);
905: #else
906: nzerror nztiDuplicateIdentity(/*_ nzctx *, nzttIdentity *,
907: nzttIdentity ** _*/);
908: #endif /* __STDC __*/
909: #endif /* NZ_OLD_TOOLS */
910:
911: /*--------------------- nztiAbortIdentity ---------------------*/
912:
913: /*
914: * NAME
915: * nztiAbortIdentity - Abort an unassociated identity.
916: *
917: * PARAMETERS
918: * osscntxt {IN} OSS context.
919: * identity {IN/OUT} Identity.
920: *
921: * NOTES
922: * It is an error to try to abort an identity that can be
923: * referenced through a persona.
924: *
925: * The identity pointer is set to NULL at the conclusion.
926: *
927: * RETURNS
928: * NZERROR_OK Success.
929: * NZERROR_CANTABORT Identity is associated with persona.
930: */
931: #ifdef __STDC__
932: nzerror nztiAbortIdentity(nzctx *, nzttIdentity **);
933: #else
934: nzerror nztiAbortIdentity(/*_ nzctx *, nzttIdentity ** _*/);
935: #endif /* __STDC __*/
936:
937: #ifdef NZ_OLD_TOOLS
938: /*----------------- nztidGetIdentityDesc -----------------*/
939:
940: /*
941: * NAME
942: * nztidGetIdentityDesc - Gets an Identity Description from the identity
943: *
944: * PARAMETERS
945: * osscntxt {IN} Success.
946: * identity {IN} Identity.
947: * description {IN/OUT} Identity Description.
948: *
949: * NOTES
950: * Memory is allocated for the Identity Description. It
951: * is the callers responsibility to free this memory by calling
952: * nztiFreeIdentityDesc.
953: *
954: * RETURNS
955: * NZERROR_OK Success.
956: */
957: #ifdef __STDC__
958: nzerror nztidGetIdentityDesc(nzctx *, nzttIdentity *,
959: nzttIdentityDesc **);
960: #else
961: nzerror nztidGetIdentityDesc(/*_ nzctx *, nzttIdentity *,
962: nzttIdentityDesc ** _*/);
963: #endif /* __STDC __*/
964:
965: /*----------------- nztidFreeIdentityDesc -----------------*/
966:
967: /*
968: * NAME
969: * nztidFreeIdentityDesc - Frees memory for Identity Desc object.
970: *
971: * PARAMETERS
972: * osscntxt {IN} oss context.
973: * description {IN/OUT} Identity Description.
974: *
975: * NOTES
976: * Memory is freed for all Identity description elements. Pointer is
977: * then set to null.
978: *
979: * RETURNS
980: * NZERROR_OK Success.
981: */
982: #ifdef __STDC__
983: nzerror nztidFreeIdentityDesc(nzctx *, nzttIdentityDesc **);
984: #else
985: nzerror nztidFreeIdentityDesc(/*_ nzctx *, nzttIdentityDesc ** _*/);
986: #endif /* __STDC __*/
987: #endif /* NZ_OLD_TOOLS */
988:
989: /*---------------- nztific_FreeIdentityContent ----------------*/
990:
991: /*
992: * NAME
993: * nztific_FreeIdentityContent - free the contents of an identity.
994: *
995: * PARAMETERS
996: * osscntxt {IN} OSS context.
997: * identity {IN/OUT} freed identity
998: *
999: * NOTES
1000: * Free a created identity.
1001: *
1002: * RETURNS
1003: * NZERROR_OK Success.
1004: */
1005: /*
1006: * Free the identity content.
1007: */
1008: #ifdef __STDC__
1009: nzerror nztific_FreeIdentityContent(nzctx *ossctx,
1010: nzttIdentity *identity);
1011: #else
1012: nzerror nztific_FreeIdentityContent(/*_ nzctx *ossctx,
1013: nzttIdentity *identity _*/);
1014: #endif /* __STDC __*/
1015:
1016:
1017: /*-------------------------- nztSign --------------------------*/
1018:
1019: /*
1020: * NAME
1021: * nztSign - Create an attached signature.
1022: *
1023: * PARAMETERS
1024: * osscntxt {IN} OSS context.
1025: * persona {IN} Open persona acting as signer.
1026: * state {IN} State of signature.
1027: * inlen {IN} Length of this input part.
1028: * in {IN} This input part.
1029: * tdubuf {IN/OUT} TDU buffer.
1030: *
1031: * NOTES
1032: *
1033: * RETURNS
1034: * NZERROR_OK Success.
1035: * NZERROR_TK_CANTGROW Needed to grow output buffer but could not.
1036: * NZERROR_TK_NOTOPEN Persona is not open.
1037: * NZERROR_TK_NOTSUPP Function not supported with persona.
1038: */
1039: #ifdef __STDC__
1040: nzerror nztSign(nzctx *, nzttPersona *, nzttces, ub4, ub1 *,
1041: nzttBufferBlock *);
1042: #else
1043: nzerror nztSign(/*_ nzctx *, nzttPersona *, nzttces, ub4, ub1 *,
1044: nzttBufferBlock * _*/);
1045: #endif /* __STDC __*/
1046:
1047: /*------------------------- nztVerify -------------------------*/
1048:
1049: /*
1050: * NAME
1051: * nztVerify - Verify an attached signature.
1052: *
1053: * PARAMETERS
1054: * osscntxt {IN} OSS context.
1055: * persona {IN} Persona.
1056: * state {IN} State of verification.
1057: * intdulen {IN} TDU length.
1058: * intdu {IN} TDU.
1059: * out {IN/OUT} Extracted message.
1060: * verified {OUT} TRUE if signature verified.
1061: * validated{OUT} TRUE if signing identity validated.
1062: * identity {OUT} Identity of signing party.
1063: *
1064: * NOTES
1065: *
1066: * RETURNS
1067: * NZERROR_OK Success.
1068: * NZERROR_TK_CANTGROW Needed to grow outptu buffer but could not.
1069: * NZERROR_TK_NOTOPEN Persona is not open.
1070: * NZERROR_TK_NOTSUPP Function not supported with persona.
1071: */
1072: #ifdef __STDC__
1073: nzerror nztVerify(nzctx *, nzttPersona *, nzttces, ub4, ub1 *,
1074: nzttBufferBlock *, boolean *, boolean *,
1075: nzttIdentity **);
1076: #else
1077: nzerror nztVerify(/*_ nzctx *, nzttPersona *, nzttces, ub4, ub1 *,
1078: nzttBufferBlock *, boolean *, boolean *,
1079: nzttIdentity ** _*/);
1080: #endif /* __STDC __*/
1081:
1082: /*------------------------ nztValidate ------------------------*/
1083:
1084: /*
1085: * NAME
1086: * nztValidate - Validate an identity.
1087: *
1088: * PARAMETERS
1089: * osscntxt {IN} OSS context.
1090: * persona {IN} Persona.
1091: * identity {IN} Identity.
1092: * validated{OUT} TRUE if identity was validated.
1093: *
1094: * NOTES
1095: *
1096: * RETURNS
1097: * NZERROR_OK Success.
1098: * NZERROR_TK_NOTOPEN Persona is not open.
1099: * NZERROR_TK_NOTSUPP Function not supported with persona.
1100: */
1101: #ifdef __STDC__
1102: nzerror nztValidate(nzctx *, nzttPersona *, nzttIdentity *, boolean *);
1103: #else
1104: nzerror nztValidate(/*_ nzctx *, nzttPersona *, nzttIdentity *, boolean * _*/);
1105: #endif /* __STDC __*/
1106:
1107: /*-------------------- nztsd_SignDetached --------------------*/
1108:
1109: /*
1110: * NAME
1111: * nztsd_SignDetached - Generate a detached signature.
1112: *
1113: * PARAMETERS
1114: * osscntxt {IN} OSS context.
1115: * persona {IN} Persona.
1116: * state {IN} State of signature.
1117: * inlen {IN} Length of this input part.
1118: * in {IN} This input part.
1119: * tdubuf {IN/OUT} TDU buffer.
1120: *
1121: * NOTES
1122: *
1123: * RETURNS
1124: * NZERROR_OK Success.
1125: * NZERROR_TK_CANTGROW Needed to grow output buffer but could not.
1126: * NZERROR_TK_NOTOPEN Persona is not open.
1127: * NZERROR_TK_NOTSUPP Function not supported with persona.
1128: */
1129: #ifdef __STDC__
1130: nzerror nztsd_SignDetached(nzctx *, nzttPersona *, nzttces, ub4, ub1 *,
1131: nzttBufferBlock *);
1132: #else
1133: nzerror nztsd_SignDetached(/*_ nzctx *, nzttPersona *, nzttces, ub4, ub1 *,
1134: nzttBufferBlock * _*/);
1135: #endif /* __STDC __*/
1136:
1137: /*------------------- nztved_VerifyDetached -------------------*/
1138:
1139: /*
1140: * NAME
1141: * nztved_VerifyDetached - Verify a detached signature.
1142: *
1143: * PARAMETERS
1144: * osscntxt {IN} OSS context.
1145: * persona {IN} Persona.
1146: * state {IN} State of verification.
1147: * inlen {IN} Length of data.
1148: * in {IN} Data.
1149: * intdulen {IN} Input TDU length.
1150: * tdu {IN} Input TDU.
1151: * verified {OUT} TRUE if signature verified.
1152: * validated{OUT} TRUE if signing identity validated.
1153: * identity {OUT} Identity of signing party.
1154: *
1155: * NOTES
1156: *
1157: * RETURNS
1158: * NZERROR_OK Success.
1159: * NZERROR_TK_NOTOPEN Persona is not open.
1160: * NZERROR_TK_NOTSUPP Function not supported with persona.
1161: */
1162: #ifdef __STDC__
1163: nzerror nztved_VerifyDetached(nzctx *, nzttPersona *, nzttces, ub4,
1164: ub1 *, ub4, ub1 *, boolean *, boolean *,
1165: nzttIdentity **);
1166: #else
1167: nzerror nztved_VerifyDetached(/*_ nzctx *, nzttPersona *, nzttces, ub4,
1168: ub1 *, ub4, ub1 *, boolean *, boolean *,
1169: nzttIdentity ** _*/);
1170: #endif /* __STDC __*/
1171:
1172: /*--------------------- nztkec_PKEncrypt ---------------------*/
1173:
1174: /*
1175: * NAME
1176: * nztkec_PKEncrypt - Encrypt data symmetrically, encrypt key asymmetrically
1177: *
1178: * PARAMETERS
1179: * osscntxt {IN} OSS context.
1180: * persona {IN} Persona.
1181: * nrecipients {IN} Number of recipients for this encryption.
1182: * recipients {IN} List of recipients.
1183: * state {IN} State of encryption.
1184: * inlen {IN} Length of this input part.
1185: * in {IN} This input part.
1186: * tdubuf {IN/OUT} TDU buffer.
1187: *
1188: * NOTES
1189: * There is a limitation of 1 recipient (nrecipients = 1) at this
1190: * time.
1191: *
1192: * RETURNS
1193: * NZERROR_OK Success.
1194: * NZERROR_TK_CANTGROW Needed to grow output buffer but could not.
1195: * NZERROR_TK_NOTOPEN Persona is not open.
1196: * NZERROR_TK_NOTSUPP Function not supported with persona.
1197: */
1198: #ifdef __STDC__
1199: nzerror nztkec_PKEncrypt(nzctx *, nzttPersona *, ub4, nzttIdentity *,
1200: nzttces, ub4, ub1 *, nzttBufferBlock *);
1201: #else
1202: nzerror nztkec_PKEncrypt(/*_ nzctx *, nzttPersona *, ub4, nzttIdentity *,
1203: nzttces, ub4, ub1 *, nzttBufferBlock * _*/);
1204: #endif /* __STDC __*/
1205:
1206: /*---------------- nztxkec_PKEncryptExpansion ----------------*/
1207:
1208: /*
1209: * NAME
1210: * nztxkec_PKEncryptExpansion - Determine the buffer needed for PKEncrypt
1211: *
1212: * PARAMETERS
1213: * osscntxt {IN} OSS context.
1214: * persona {IN} Persona.
1215: * nrecipients {IN} Number of recipients.
1216: * inlen {IN} Length of input.
1217: * tdulen {out} Length of buffer need.
1218: *
1219: * NOTES
1220: *
1221: * RETURNS
1222: * NZERROR_OK Success.
1223: * NZERROR_TK_NOTOPEN Persona is not open.
1224: * NZERROR_TK_NOTSUPP Function not supported with persona.
1225: */
1226: #ifdef __STDC__
1227: nzerror nztxkec_PKEncryptExpansion(nzctx *, nzttPersona *, ub4, ub4,
1228: ub4 *);
1229: #else
1230: nzerror nztxkec_PKEncryptExpansion(/*_ nzctx *, nzttPersona *, ub4, ub4,
1231: ub4 * _*/);
1232: #endif /* __STDC __*/
1233:
1234: /*--------------------- nztkdc_PKDecrypt ---------------------*/
1235:
1236: /*
1237: * NAME
1238: * nztkdc_PKDecrypt - Decrypt a PKEncrypted message.
1239: *
1240: * PARAMETERS
1241: * osscntxt {IN} OSS context.
1242: * persona {IN} Persona.
1243: * state {IN} State of encryption.
1244: * inlen {IN} Length of this input part.
1245: * in {IN} This input part.
1246: * tdubuf {IN/OUT} TDU buffer.
1247: *
1248: * NOTES
1249: *
1250: * RETURNS
1251: * NZERROR_OK Success.
1252: * NZERROR_TK_CANTGROW Needed to grow output buffer but could not.
1253: * NZERROR_TK_NOTOPEN Persona is not open.
1254: * NZERROR_TK_NOTSUPP Function not supported with persona.
1255: */
1256: #ifdef __STDC__
1257: nzerror nztkdc_PKDecrypt(nzctx *, nzttPersona *, nzttces, ub4, ub1 *,
1258: nzttBufferBlock *);
1259: #else
1260: nzerror nztkdc_PKDecrypt(/*_ nzctx *, nzttPersona *, nzttces, ub4, ub1 *,
1261: nzttBufferBlock * _*/);
1262: #endif /* __STDC __*/
1263:
1264: /*-------------------------- nztHash --------------------------*/
1265:
1266: /*
1267: * NAME
1268: * nztHash - Generate a hash.
1269: *
1270: * PARAMETERS
1271: * osscntxt {IN} OSS context.
1272: * persona {IN} Persona.
1273: * state {IN} State of hash.
1274: * inlen {IN} Length of this input.
1275: * in {IN} This input.
1276: * tdu {IN/OUT} Output tdu.
1277: *
1278: * NOTES
1279: *
1280: * RETURNS
1281: * NZERROR_OK Success.
1282: * NZERROR_TK_CANTGROW Needed to grow TDU buffer but could not.
1283: * NZERROR_TK_NOTOPEN Persona is not open.
1284: * NZERROR_TK_NOTSUPP Function not supported with persona.
1285: */
1286: #ifdef __STDC__
1287: nzerror nztHash(nzctx *, nzttPersona *, nzttces, ub4, ub1 *,
1288: nzttBufferBlock *);
1289: #else
1290: nzerror nztHash(/*_ nzctx *, nzttPersona *, nzttces, ub4, ub1 *,
1291: nzttBufferBlock * _*/);
1292: #endif /* __STDC __*/
1293:
1294: /*----------------------- nztSeedRandom -----------------------*/
1295:
1296: /*
1297: * NAME
1298: * nztSeedRandom - Seed the random function
1299: *
1300: * PARAMETERS
1301: * osscntxt {IN} OSS context.
1302: * persona {IN} Persona.
1303: * seedlen {IN} Length of seed.
1304: * seed {IN} Seed.
1305: *
1306: * NOTES
1307: *
1308: * RETURNS
1309: * NZERROR_OK Success.
1310: * NZERROR_TK_NOTOPEN Persona is not open.
1311: * NZERROR_TK_NOTSUPP Function not supported with persona.
1312: */
1313: #ifdef __STDC__
1314: nzerror nztSeedRandom(nzctx *, nzttPersona *, ub4, ub1 *);
1315: #else
1316: nzerror nztSeedRandom(/*_ nzctx *, nzttPersona *, ub4, ub1 * _*/);
1317: #endif /* __STDC __*/
1318:
1319: /*--------------------- nztrb_RandomBytes ---------------------*/
1320:
1321: /*
1322: * NAME
1323: * nztrb_RandomBytes - Generate a buffer random bytes.
1324: *
1325: * PARAMETERS
1326: * osscntxt {IN} OSS context.
1327: * persona {IN} Persona.
1328: * nbytes {IN} Number of bytes desired.
1329: * out {IN/OUT} Buffer block for bytes.
1330: *
1331: * NOTES
1332: *
1333: * RETURNS
1334: * NZERROR_OK Success.
1335: * NZERROR_TK_CANTGROW Needed to grow TDU buffer but could not.
1336: * NZERROR_TK_NOTOPEN Persona is not open.
1337: * NZERROR_TK_NOTSUPP Function not supported with persona.
1338: */
1339: #ifdef __STDC__
1340: nzerror nztrb_RandomBytes(nzctx *, nzttPersona *, ub4,
1341: nzttBufferBlock *);
1342: #else
1343: nzerror nztrb_RandomBytes(/*_ nzctx *, nzttPersona *, ub4,
1344: nzttBufferBlock * _*/);
1345: #endif /* __STDC __*/
1346:
1347: /*-------------------- nztrn_RandomNumber --------------------*/
1348:
1349: /*
1350: * NAME
1351: * nztrn_RandomNumber - Generate a random number
1352: *
1353: * PARAMETERS
1354: * osscntxt {IN} OSS context.
1355: * persona {IN} Persona.
1356: * num {OUT} Number.
1357: *
1358: * NOTES
1359: *
1360: * RETURNS
1361: * NZERROR_OK Success.
1362: * NZERROR_TK_NOTOPEN Persona is not open.
1363: * NZERROR_TK_NOTSUPP Function not supported with persona.
1364: */
1365: #ifdef __STDC__
1366: nzerror nztrn_RandomNumber(nzctx *, nzttPersona *, uword *);
1367: #else
1368: nzerror nztrn_RandomNumber(/*_ nzctx *, nzttPersona *, uword * _*/);
1369: #endif /* __STDC __*/
1370:
1371: /*---------------------- nztbbInitBlock ----------------------*/
1372:
1373: /*
1374: * NAME
1375: * nztbbInitBlock - Initialize a buffer block.
1376: *
1377: * PARAMETERS
1378: * osscntxt {IN} OSS context.
1379: * block {IN/OUT} Buffer block.
1380: *
1381: * NOTES
1382: * The buffer block is initialized to be empty (all members are set
1383: * to 0/NULL). Such a block will be allocated memory as needed.
1384: *
1385: * RETURNS
1386: * NZERROR_OK Success.
1387: */
1388: #ifdef __STDC__
1389: nzerror nztbbInitBlock(nzctx *, nzttBufferBlock *);
1390: #else
1391: nzerror nztbbInitBlock(/*_ nzctx *, nzttBufferBlock * _*/);
1392: #endif /* __STDC __*/
1393:
1394: /*---------------------- nztbbReuseBlock ----------------------*/
1395:
1396: /*
1397: * NAME
1398: * nztbbReuseBlock - Reuse an already initialized and possibly used block.
1399: *
1400: * PARAMETERS
1401: * osscntxt {IN} OSS context.
1402: * block {IN/OUT} Buffer block.
1403: *
1404: * NOTES
1405: * This function simply sets the used length member of the buffer
1406: * block to 0. If the block already has memory allocated to it,
1407: * this will cause it to be reused.
1408: *
1409: * RETURNS
1410: * NZERROR_OK Success.
1411: */
1412: #ifdef __STDC__
1413: nzerror nztbbReuseBlock(nzctx *, nzttBufferBlock *);
1414: #else
1415: nzerror nztbbReuseBlock(/*_ nzctx *, nzttBufferBlock * _*/);
1416: #endif /* __STDC __*/
1417:
1418: /*---------------------- nztbbSizeBlock ----------------------*/
1419:
1420: /*
1421: * NAME
1422: * nztbbSizeBlock - Size an initialized block to a particular size.
1423: *
1424: * PARAMETERS
1425: * osscntxt {IN} OSS context.
1426: * len {IN} Minimum number of unused bytes desired.
1427: * block {IN/OUT} Buffer block.
1428: *
1429: * NOTES
1430: *
1431: * RETURNS
1432: * NZERROR_OK Success.
1433: */
1434: #ifdef __STDC__
1435: nzerror nztbbSizeBlock(nzctx *, ub4, nzttBufferBlock *);
1436: #else
1437: nzerror nztbbSizeBlock(/*_ nzctx *, ub4, nzttBufferBlock * _*/);
1438: #endif /* __STDC __*/
1439:
1440: /*----------------------- nztbbGrowBlock -----------------------*/
1441:
1442: /*
1443: * NAME
1444: * nzbbGrowBlock - Increase the size of the buffer block.
1445: *
1446: * PARAMETERS
1447: * osscntxt {IN} OSS context.
1448: * inc {IN} Number of bytes to increase.
1449: * block {IN/OUT} Buffer block.
1450: *
1451: * NOTES
1452: *
1453: * RETURNS
1454: * NZERROR_OK Success.
1455: */
1456: #ifdef __STDC__
1457: nzerror nztbbGrowBlock(nzctx *, ub4, nzttBufferBlock *);
1458: #else
1459: nzerror nztbbGrowBlock(/*_ nzctx *, ub4, nzttBufferBlock * _*/);
1460: #endif /* __STDC __*/
1461:
1462: /*---------------------- nztbbPurgeBlock ----------------------*/
1463:
1464: /*
1465: * NAME
1466: * nztbbPurgeBlock - Purge a buffer block of its memory.
1467: *
1468: * PARAMETERS
1469: * osscntxt {IN} OSS context.
1470: * block {IN/OUT} Buffer block.
1471: *
1472: * NOTES
1473: * The memory used by the buffer block as the buffer is released.
1474: * The buffer block itself is not affected.
1475: *
1476: * RETURNS
1477: * NZERROR_OK Success.
1478: */
1479: #ifdef __STDC__
1480: nzerror nztbbPurgeBlock(nzctx *, nzttBufferBlock *);
1481: #else
1482: nzerror nztbbPurgeBlock(/*_ nzctx *, nzttBufferBlock * _*/);
1483: #endif /* __STDC __*/
1484:
1485: /*----------------------- nztbbSetBlock -----------------------*/
1486:
1487: /*
1488: * NAME
1489: * nztbbSetBlock - Set a buffer block to a known state.
1490: *
1491: * PARAMETERS
1492: * osscntxt {IN} OSS context.
1493: * flags {IN} Flags to set.
1494: * buflen {IN} Length of buffer.
1495: * usedlen {IN} Used length.
1496: * buffer {IN} Buffer.
1497: * block {IN/OUT} Buffer block
1498: *
1499: * NOTES
1500: * If buflen > 0, objlen == 0, and obj == NULL, then buflen bytes
1501: * of memory is allocated and a pointer is stored in the buffer
1502: * block.
1503: *
1504: * The buffer parameter remains unchanged.
1505: *
1506: * RETURNS
1507: * NZERROR_OK Success.
1508: */
1509: #ifdef __STDC__
1510: nzerror nztbbSetBlock(nzctx *, uword, ub4, ub4, ub1 *,
1511: nzttBufferBlock *);
1512: #else
1513: nzerror nztbbSetBlock(/*_ nzctx *, uword, ub4, ub4, ub1 *,
1514: nzttBufferBlock * _*/);
1515: #endif /* __STDC __*/
1516:
1517:
1518: /*--------------------- nztiGetSecInfo ---------------------*/
1519:
1520: /*
1521: * NAME
1522: * nztiGetSecInfo - Get some security information for SSL
1523: *
1524: * PARAMETERS
1525: * Name {IN/OUT} Description
1526: * osscntxt {IN} OSS context.
1527: * persona {IN} persona
1528: * dname {OUT} distinguished name of the certificate
1529: * dnamelen {OUT} length of the distinguished name
1530: * issuername {OUT} issuer name of the certificate
1531: * certhash {OUT} SHA1 hash of the certificate
1532: * certhashlen{OUT} length of the hash
1533: * NOTES
1534: * This function allocate memories for issuername, certhash, and dname.
1535: * To deallocate memory for those params, you should call nztdbuf_DestroyBuf.
1536: * RETURNS
1537: *
1538: */
1539: #ifdef __STDC__
1540: nzerror nztiGetSecInfo(nzctx *, nzttPersona *, text **, ub4 *,
1541: text **, ub4 *, ub1 **, ub4 *);
1542: #else
1543: nzerror nztiGetSecInfo(/*_ nzctx *, nzttPersona *, text **, ub4 *,
1544: text **, ub4 *, ub1 **, ub4 * _*/);
1545: #endif /* __STDC__ */
1546:
1547:
1548: /*---------------------- nztiGetDName ----------------------*/
1549:
1550: /*
1551: * NAME
1552: * nztiGetDName - Get the distinguished name for the given identity
1553: *
1554: * PARAMETERS
1555: * Name {IN/OUT} Description
1556: * osscntxt {IN} OSS context.
1557: * identity {IN} identity need to get dname from
1558: * dn {OUT} distinguished name
1559: * dnlen {OUT} length of the dname
1560: *
1561: * NOTES
1562: *
1563: * RETURNS
1564: *
1565: */
1566:
1567: #ifdef __STDC__
1568: nzerror nztiGetDName(nzctx *, nzttIdentity *,
1569: text **, ub4 *);
1570: #else
1571: nzerror nztiGetDName(/*_ nzctx *, nzttIdentity *,
1572: text **, ub4 * _*/);
1573: #endif /* __STDC__ */
1574:
1575: /*------------------- nztiGetIssuerName -------------------*/
1576:
1577: /*
1578: * NAME
1579: * nztiGetIssuerName - Get IssuerName for the given identity
1580: *
1581: * PARAMETERS
1582: * Name {IN/OUT} Description
1583: * osscntxt {IN} OSS context.
1584: * identity {IN} identity need to get issuername from
1585: * issuername {OUT} issuer's name
1586: * issuernamelen {OUT} length of the issuer's name
1587: *
1588: * NOTES
1589: *
1590: * RETURNS
1591: *
1592: */
1593: #ifdef __STDC__
1594: nzerror nztiGetIssuerName(nzctx *, nzttIdentity *,
1595: text **, ub4 *);
1596: #else
1597: nzerror nztiGetIssuerName(/*_ nzctx *, nzttIdentity *,
1598: text **, ub4 * _*/);
1599: #endif /* __STDC__ */
1600:
1601:
1602: /*-------------------- nztgch_GetCertHash --------------------*/
1603:
1604: /*
1605: * NAME
1606: * nztgch_GetCertHash - Get SHA1 hash for the certificate of the identity
1607: *
1608: * PARAMETERS
1609: * Name {IN/OUT} Description
1610: * osscntxt {IN} OSS context.
1611: * identity {IN} identity need to get issuername from
1612: * certHash {OUT} certHash buffer
1613: * hashLen {OUT} length of the certHash
1614: *
1615: * NOTES
1616: * Need to call nztdbuf_DestroyBuf to deallocate memory for certHash.
1617: * RETURNS
1618: *
1619: */
1620: #ifdef __STDC__
1621: nzerror nztgch_GetCertHash(nzctx *, nzttIdentity *,
1622: ub1 **, ub4 *);
1623: #else
1624: nzerror nztgch_GetCertHash(/*_ nzctx *, nzttIdentity *,
1625: ub1 **, ub4 * _*/);
1626: #endif /* __STDC__ */
1627:
1628: /*-------------------- nztdbuf_DestroyBuf --------------------*/
1629:
1630: /*
1631: * NAME
1632: * nztdbuf_DestroyBuf - Deallocation funtions for ub1 and text buffer
1633: *
1634: * PARAMETERS
1635: * Name {IN/OUT} Description
1636: * osscntxt {IN} OSS context.
1637: * buf {IN} Allocated buffer to be destroyed.
1638: *
1639: * NOTES
1640: *
1641: * RETURNS
1642: *
1643: */
1644: #ifdef __STDC__
1645: nzerror nztdbuf_DestroyBuf( nzctx *, dvoid **);
1646: #else
1647: nzerror nztdbuf_DestroyBuf(/*_ nzctx *, dvoid ** _*/);
1648: #endif /* __STDC__ */
1649:
1650:
1651: /*----------------------- nztGetCertChain -----------------------*/
1652:
1653: /*
1654: * NAME
1655: * nztGetCertChain -
1656: *
1657: * PARAMETERS
1658: * Name {IN/OUT} Description
1659: * osscntxt {IN} OSS context.
1660: *
1661: * NOTES
1662: *
1663: * RETURNS
1664: *
1665: */
1666: #ifdef __STDC__
1667: nzerror nztGetCertChain(nzctx *, nzttWallet * );
1668: #else
1669: nzerror nztGetCertChain(/*_ nzctx *, nzttWallet _*/);
1670: #endif /* __STDC__ */
1671:
1672: /*----------------------- nztCompareDN -----------------------*/
1673:
1674: /*
1675: * NAME
1676: * nztCompareDN -
1677: *
1678: * PARAMETERS
1679: * Name {IN/OUT} Description
1680: * osscntxt {IN} OSS context.
1681: * dn1 {IN} distinguished name 1
1682: * dn2 {IN} distinguished name 2
1683: *
1684: * NOTES
1685: *
1686: * RETURNS
1687: * NZERROR_OK succeeded
1688: * others failed
1689: *
1690: */
1691: #ifdef __STDC__
1692: nzerror nztCompareDN(nzctx *, ub1 *, ub4, ub1 *, ub4, boolean * );
1693: #else
1694: nzerror nztCompareDN(/*_ nzctx *, ub1 *,ub4 , ub1 *, ub4, boolean * _*/);
1695: #endif/* __STDC__ */
1696:
1697:
1698: #ifdef NZ_OLD_TOOLS
1699: /*--------------------- nztIdentityAlloc ---------------------*/
1700:
1701: /*
1702: * NAME
1703: * nztIdentityAlloc - Allocate memory for nzttIdentity context
1704: *
1705: * PARAMETERS
1706: * Name {IN/OUT} Description
1707: * osscntxt {IN} OSS context.
1708: * identity {OUT} nzttIdentity context
1709: *
1710: * NOTES
1711: *
1712: * RETURNS
1713: * NZERROR_OK succeeded
1714: * others failed
1715: *
1716: */
1717: #ifdef __STDC__
1718: nzerror nztIdentityAlloc(nzctx *, nzttIdentity **);
1719: #else
1720: nzerror nztIdentityAlloc(/*_ nzctx *, nzttIdentity ** _*/);
1721: #endif/* __STDC__ */
1722:
1723: /*--------------------- nztIPrivateAlloc ---------------------*/
1724:
1725: /*
1726: * NAME
1727: * nztIPrivateAlloc - Allocate memory for nzttIdentityPrivate
1728: *
1729: * PARAMETERS
1730: * Name {IN/OUT} Description
1731: *
1732: * osscntxt {IN} OSS context.
1733: * ipriv {OUT} identityPrivate structure
1734: * NOTES
1735: *
1736: * RETURNS
1737: * NZERROR_OK succeeded
1738: * others failed
1739: *
1740: */
1741:
1742: #ifdef __STDC__
1743: nzerror nztIPrivateAlloc( nzctx *, nzttIdentityPrivate **);
1744: #else
1745: nzerror nztIPrivateAlloc( nzctx *, nzttIdentityPrivate **);
1746: #endif /* __STDC__ */
1747:
1748:
1749: /*---------------------- nztIDupContent ----------------------*/
1750:
1751: /*
1752: * NAME
1753: * nztIDupContent -
1754: *
1755: * PARAMETERS
1756: * Name {IN/OUT} Description
1757: * osscntxt {IN} OSS context.
1758: * targetIdentity{OUT} target identity
1759: * sourceIdentity {IN} source identity
1760: * NOTES
1761: *
1762: * RETURNS
1763: * NZERROR_OK succeeded
1764: * others failed
1765: *
1766: */
1767:
1768: #ifdef __STDC__
1769: nzerror nztIDupContent( nzctx *, nzttIdentity *, nzttIdentity *);
1770: #else
1771: nzerror nztIDupContent(/*_ nzctx *, nzttIdentity *, nzttIdentity * _*/);
1772: #endif
1773: /*---------------------- nztIPDuplicate ----------------------*/
1774:
1775: /*
1776: * NAME
1777: * nztIPDuplicate -
1778: *
1779: * PARAMETERS
1780: * Name {IN/OUT} Description
1781: * osscntxt {IN} OSS context.
1782: * target_ipriv {OUT} target identityPrivate
1783: * source_ipriv {IN} source identityPrivate
1784: *
1785: * NOTES
1786: *
1787: * RETURNS
1788: * NZERROR_OK succeeded
1789: * others failed
1790: *
1791: */
1792: #ifdef __STDC__
1793: nzerror nztIPDuplicate( nzctx *, nzttIdentityPrivate **,
1794: nzttIdentityPrivate *);
1795: #else
1796: nzerror nztIPDuplicate(/*_ nzctx *, nzttIdentityPrivate **,
1797: nzttIdentityPrivate * _*/);
1798: #endif /* __STDC__ */
1799:
1800: /*--------------------- nztiDupIdentList ---------------------*/
1801:
1802: /*
1803: * NAME
1804: * nztiDupIdentList -
1805: *
1806: * PARAMETERS
1807: * Name {IN/OUT} Description
1808: * osscntxt {IN} OSS context.
1809: * source_identities {IN} source identity list
1810: * numIdent {OUT} number of identity in the list
1811: * ppidentity {OUT} Target of identity
1812: *
1813: * NOTES
1814: *
1815: * RETURNS
1816: * NZERROR_OK succeeded
1817: * others failed
1818: *
1819: */
1820: #ifdef __STDC__
1821: nzerror nztiDupIdentList( nzctx *, nzttIdentity *, ub4 *, nzttIdentity **);
1822: #else
1823:
1824: nzerror nztiDupIdentList(/*_ nzctx *, nzttIdentity *, ub4 *, nzttIdentity ** _*/);
1825: #endif
1826:
1827: /*--------------------- nztFreeIdentList ---------------------*/
1828:
1829: /*
1830: * NAME
1831: * nztFreeIdentList - Free memory for a list of Identities
1832: *
1833: * PARAMETERS
1834: * Name {IN/OUT} Description
1835: * osscntxt {IN} OSS context.
1836: * identity {IN} identity context
1837: *
1838: * NOTES
1839: *
1840: * RETURNS
1841: * NZERROR_OK succeeded
1842: * others failed
1843: *
1844: */
1845: #ifdef __STDC__
1846: nzerror nztFreeIdentList( nzctx *, nzttIdentity **);
1847: #else
1848: nzerror nztFreeIdentList(/*_ nzctx *, nzttIdentity ** _*/);
1849: #endif
1850: #endif /* NZ_OLD_TOOLS */
1851:
1852: /*--------------------- nztCheckVaLidity ---------------------*/
1853:
1854: /*
1855: * NAME
1856: * nztCheckVaLidity - Check the validity of certificate
1857: *
1858: * PARAMETERS
1859: * Name {IN/OUT} Description
1860: * osscntxt {IN} OSS context.
1861: * start_time Start time of the certificate
1862: * end_time End time of the certificate
1863: *
1864: * NOTES
1865: *
1866: * RETURNS
1867: * NZERROR_OK succeeded
1868: * others failed
1869: *
1870: */
1871: #ifdef __STDC__
1872: nzerror nztCheckValidity( nzctx *, ub4 , ub4 );
1873: #else
1874: nzerror nztCheckValidity(/*_ nzctx *, ub4 , ub4 _*/);
1875: #endif
1876:
1877: /*--------------------- nztwCreateWallet ---------------------*/
1878:
1879: /*
1880: * NAME
1881: * nztwCreateWallet - Create a new wallet.
1882: *
1883: * PARAMETERS
1884: * osscntxt {IN} OSS context.
1885: * wrllen {IN} Length of wallet resource locator.
1886: * wrl {IN} WRL.
1887: * pwdlen {IN} Length of password (see notes below).
1888: * pwd {IN} Password.
1889: * wallet {IN/OUT} Wallet.
1890: *
1891: * NOTES
1892: * It is an error to try to create a wallet that already exists.
1893: * The previously existing wallet must be destroyed first.
1894: *
1895: * The wallet itself is not encrypted. Rather, all the personas in
1896: * the wallet are encrypted under the same password. A hash of the
1897: * password is stored in the wallet.
1898: *
1899: * Upon success, an empty open wallet is stored in the wallet
1900: * parameter.
1901: *
1902: * RETURNS
1903: * NZERROR_OK Sucess.
1904: * NZERROR_TK_WALLET_EXISTS Wallet already exists.
1905: * NZERROR_RIO_OPEN RIO could not create wallet (see trace file).
1906: */
1907: #ifdef __STDC__
1908: nzerror nztwCreateWallet(nzctx *, ub4, text *, ub4, text *,
1909: nzttWallet *);
1910: #else
1911: nzerror nztwCreateWallet(/*_ nzctx *, ub4, text *, ub4, text *,
1912: nzttWallet * _*/);
1913: #endif /* __STDC__ */
1914:
1915:
1916: /*--------------------- nztwDestroyWallet ---------------------*/
1917:
1918: /*
1919: * NAME
1920: * nztwDestroyWallet - Destroy an existing wallet.
1921: *
1922: * PARAMETERS
1923: * osscntxt {IN} OSS context.
1924: * wrllen {IN} Length of wallet resource locator.
1925: * wrl {IN} WRL.
1926: * pwdlen {IN} Length of password.
1927: * pwd {IN} Password.
1928: * NOTES
1929: *
1930: * RETURNS
1931: * NZERROR_OK Success.
1932: * NZERROR_TK_PASSWORD Password verification failed.
1933: * NZERROR_RIO_OPEN RIO could not open wallet (see trace file).
1934: * NZERROR_RIO_DELETE Delete failed (see trace file).
1935: */
1936: #ifdef __STDC__
1937: nzerror nztwDestroyWallet(nzctx *, ub4, text *, ub4, text *);
1938: #else
1939: nzerror nztwDestroyWallet(/*_ nzctx *, ub4, text *, ub4, text * _*/);
1940: #endif /* __STDC __*/
1941:
1942: /*--------------------- nzteStorePersona ---------------------*/
1943:
1944: /*
1945: * NAME
1946: * nzteStorePersona - Store an open persona in a wallet.
1947: *
1948: * PARAMETERS
1949: * osscntxt {IN} OSS context.
1950: * persona {IN/OUT} Persona.
1951: * wallet {IN/OUT} Wallet.
1952: *
1953: * NOTES
1954: * If the open persona is not associated with any wallet (it was
1955: * created via the nzteClosePersona function), then storing the
1956: * persona creates that association. The wallet will also have an
1957: * updated persona list that reflects this association.
1958: *
1959: * If the open persona was associated with wallet 'A' (it was
1960: * opened via the nztwOpenWallet function), and is stored back into
1961: * wallet 'A', then then the old persona is overwritten by the new
1962: * persona if the password can be verified. Recall that all
1963: * personas have a unique identity id. If that id changes then
1964: * storing the persona will put a new persona in the wallet.
1965: *
1966: * If the open persona was associated with wallet 'A' and is stored
1967: * into wallet 'B', and if wallet 'B' does not contain a persona
1968: * with that unique identity id, then the persona will be copied
1969: * into wallet 'B', wallet 'B''s persona list will be updated, and
1970: * the persona structure will be updated to be associated with
1971: * wallet 'B'. If wallet 'B' already contained the persona, it
1972: * would be overwritten by the new persona.
1973: *
1974: * The persona parameter is doubly indirect so that at the
1975: * conclusion of the function call, the pointer can be directed to
1976: * the persona in the wallet.
1977: *
1978: * RETURNS
1979: * NZERROR_OK Success.
1980: * NZERROR_TK_PASSWORD Password verification failed.
1981: * NZERROR_RIO_STORE Store failed (see network trace file).
1982: */
1983: #ifdef __STDC__
1984: nzerror nzteStorePersona(nzctx *, nzttPersona **, nzttWallet *);
1985: #else
1986: nzerror nzteStorePersona(/*_ nzctx *, nzttPersona **, nzttWallet * _*/);
1987: #endif /* __STDC __*/
1988:
1989: /*--------------------- nzteRemovePersona ---------------------*/
1990:
1991: /*
1992: * NAME
1993: * nzteRemovePersona - Remove a persona from the wallet.
1994: *
1995: * PARAMETERS
1996: * osscntxt {IN} OSS context.
1997: * persona {IN/OUT} Persona.
1998: *
1999: * NOTES
2000: * The password is verified before trying to remove the persona.
2001: *
2002: * If the persona is open, it is closed. The persona is removed
2003: * from the wallet list and the persona pointer is set to NULL.
2004: *
2005: * A double indirect pointer to the persona is required so that the
2006: * persona pointer can be set to NULL upon completion.
2007: *
2008: * RETURNS
2009: * NZERROR_OK Success.
2010: * NZERROR_TK_PASSWORD Password verification failed.
2011: * NZERROR_RIO_DELETE Delete failed.
2012: */
2013: #ifdef __STDC__
2014: nzerror nzteRemovePersona(nzctx *, nzttPersona **);
2015: #else
2016: nzerror nzteRemovePersona(/*_ nzctx *, nzttPersona ** _*/);
2017: #endif /* __STDC __*/
2018:
2019: /*--------------------- nzteCreatePersona ---------------------*/
2020:
2021: /*
2022: * NAME
2023: * nzteCreatePersona - Create a persona.
2024: *
2025: * PARAMETERS
2026: * osscntxt {IN} OSS context.
2027: * itype {IN} Identity type.
2028: * ctype {IN} Cipher type.
2029: * desc {IN} Persona description.
2030: * persona {OUT} Persona.
2031: *
2032: * NOTES
2033: * The resulting persona is created in the open state, but it will
2034: * not be associated with a wallet.
2035: *
2036: * The memory for the persona is allocated by the function.
2037: *
2038: * RETURNS
2039: * NZERROR_OK Success.
2040: * NZERROR_TK_TYPE Unsupported itype/ctype combination.
2041: * NZERROR_TK_PARMS Error in persona description.
2042: */
2043: #ifdef __STDC__
2044: nzerror nzteCreatePersona(nzctx *, nzttVersion, nzttCipherType,
2045: nzttPersonaDesc *, nzttPersona **);
2046: #else
2047: nzerror nzteCreatePersona(/*_ nzctx *, nzttVersion, nzttCipherType,
2048: nzttPersonaDesc *, nzttPersona ** _*/);
2049: #endif /* __STDC __*/
2050:
2051:
2052: /*----------------- nztiStoreTrustedIdentity -----------------*/
2053:
2054: /*
2055: * NAME
2056: * nztiStoreTrustedIdentity - Store an identity into a persona.
2057: *
2058: * PARAMETERS
2059: * osscntxt {IN} Success.
2060: * identity {IN/OUT} Trusted Identity.
2061: * persona {IN/OUT} Persona.
2062: *
2063: * NOTES
2064: * The identity is not saved with the persona in the wallet until
2065: * the persona is stored.
2066: *
2067: * The identity parameter is double indirect so that it can point
2068: * into the persona at the conclusion of the call.
2069: *
2070: * RETURNS
2071: * NZERROR_OK Success.
2072: */
2073: #ifdef __STDC__
2074: nzerror nztiStoreTrustedIdentity(nzctx *, nzttIdentity **,
2075: nzttPersona *);
2076: #else
2077: nzerror nztiStoreTrustedIdentity(/*_ nzctx *, nzttIdentity **,
2078: nzttPersona * _*/);
2079: #endif /* __STDC __*/
2080:
2081: /*--------------------- nzteSetProtection ---------------------*/
2082:
2083: /*
2084: * NAME
2085: * nzteSetProtection - Set the protection type for a CE function.
2086: *
2087: * PARAMETERS
2088: * osscntxt {IN} OSS context.
2089: * persona {IN/OUT} Persona.
2090: * func {IN} CE function.
2091: * tdufmt {IN} TDU Format.
2092: * protinfo {IN} Protection information specific to this format.
2093: *
2094: * NOTES
2095: *
2096: * RETURNS
2097: * NZERROR_OK Success.
2098: * NZERROR_TK_PROTECTION Unsupported protection.
2099: * NZERROR_TK_PARMS Error in protection info.
2100: */
2101: #ifdef __STDC__
2102: nzerror nzteSetProtection(nzctx *, nzttPersona *, nzttcef, nztttdufmt,
2103: nzttProtInfo *);
2104: #else
2105: nzerror nzteSetProtection(/*_ nzctx *, nzttPersona *, nzttcef, nztttdufmt,
2106: nzttProtInfo * _*/);
2107: #endif /* __STDC __*/
2108:
2109: /*--------------------- nzteGetProtection ---------------------*/
2110:
2111: /*
2112: * NAME
2113: * nzteGetProtection - Get the protection type for a CE function.
2114: *
2115: * PARAMETERS
2116: * osscntxt {IN} OSS context.
2117: * persona {IN} Persona.
2118: * func {IN} CE function.
2119: * tdufmt {OUT} TDU format.
2120: * protinfo {OUT} Protection information.
2121: *
2122: * NOTES
2123: *
2124: * RETURNS
2125: * NZERROR_OK Success.
2126: */
2127: #ifdef __STDC__
2128: nzerror nzteGetProtection(nzctx *, nzttPersona *, nzttcef, nztttdufmt *,
2129: nzttProtInfo *);
2130: #else
2131: nzerror nzteGetProtection(/*_ nzctx *, nzttPersona *, nzttcef, nztttdufmt *,
2132: nzttProtInfo * _*/);
2133: #endif /* __STDC __*/
2134:
2135: /*-------------------- nztiRemoveIdentity --------------------*/
2136:
2137: /*
2138: * NAME
2139: * nztiRemoveIdentity - Remove an identity from an open persona.
2140: *
2141: * PARAMETERS
2142: * osscntxt {IN} OSS context.
2143: * identity {IN/OUT} Identity.
2144: *
2145: * NOTES
2146: * If the persona is not stored, this identity will still be in the
2147: * persona stored in the wallet.
2148: *
2149: * The identity parameter is doubly indirect so that at the
2150: * conclusion of the function, the pointer can be set to NULL.
2151: *
2152: * RETURNS
2153: * NZERROR_OK Success.
2154: * NZERROR_TK_NOTFOUND Identity not found.
2155: * NZERROR_TK_NOTOPEN Persona is not open.
2156: */
2157: #ifdef __STDC__
2158: nzerror nztiRemoveIdentity(nzctx *, nzttIdentity **);
2159: #else
2160: nzerror nztiRemoveIdentity(/*_ nzctx *, nzttIdentity ** _*/);
2161: #endif /* __STDC __*/
2162:
2163: /*----------------- nztifdn -----------------*/
2164:
2165: /*
2166: * NAME
2167: * nztifdn - create an Identity From a Distinguished Name
2168: *
2169: * PARAMETERS
2170: * osscntxt {IN} OSS context.
2171: * length {IN} Length of the distinguished name
2172: * distinguished_name {IN} distinguished name string
2173: * ppidentity {OUT} created identity
2174: *
2175: * NOTES
2176: * Given a distinguished name, return the identity that corresponds to it.
2177: *
2178: * RETURNS
2179: * NZERROR_OK Success.
2180: */
2181: #ifdef __STDC__
2182: nzerror nztifdn(nzctx *ossctx,
2183: ub4 length,
2184: text *distinguished_name,
2185: nzttIdentity **ppidentity);
2186: #else
2187: nzerror nztifdn(/*_ nzctx *ossctx,
2188: ub4 length,
2189: text *distinguished_name,
2190: nzttIdentity **ppidentity _*/);
2191: #endif /* __STDC __*/
2192:
2193: /*--------------------- nztxSignExpansion ---------------------*/
2194:
2195: /*
2196: * NAME
2197: * nztxSignExpansion - Determine the size of the attached signature buffer.
2198: *
2199: * PARAMETERS
2200: * osscntxt {IN} OSS context.
2201: * persona {IN} Persona.
2202: * inlen {IN} Length of input.
2203: * tdulen {OUT} Buffer needed for signature.
2204: *
2205: * NOTES
2206: *
2207: * RETURNS
2208: * NZERROR_OK Success.
2209: * NZERROR_TK_NOTOPEN Persona is not open.
2210: * NZERROR_TK_NOTSUPP Function not supported with persona.
2211: */
2212: #ifdef __STDC__
2213: nzerror nztxSignExpansion(nzctx *, nzttPersona *, ub4, ub4 *);
2214: #else
2215: nzerror nztxSignExpansion(/*_ nzctx *, nzttPersona *, ub4, ub4 * _*/);
2216: #endif /* __STDC __*/
2217:
2218: /*--------------- nztxsd_SignDetachedExpansion ---------------*/
2219:
2220: /*
2221: * NAME
2222: * nztxsd_SignDetachedExpansion - Determine the size of buffer needed.
2223: *
2224: * PARAMETERS
2225: * osscntxt {IN} OSS context.
2226: * persona {IN} Persona.
2227: * inlen {IN} Length of input.
2228: * tdulen {OUT} Buffer needed for signature.
2229: *
2230: * NOTES
2231: *
2232: * RETURNS
2233: * NZERROR_OK Success.
2234: * NZERROR_TK_NOTOPEN Persona is not open.
2235: * NZERROR_TK_NOTSUPP Function not supported with persona.
2236: */
2237: #ifdef __STDC__
2238: nzerror nztxsd_SignDetachedExpansion(nzctx *, nzttPersona *, ub4,
2239: ub4 *);
2240: #else
2241: nzerror nztxsd_SignDetachedExpansion(/*_ nzctx *, nzttPersona *, ub4,
2242: ub4 * _*/);
2243: #endif /* __STDC __*/
2244:
2245: /*------------------------ nztEncrypt ------------------------*/
2246:
2247: /*
2248: * NAME
2249: * nztEncrypt - Symmetrically encrypt
2250: *
2251: * PARAMETERS
2252: * osscntxt {IN} OSS context.
2253: * persona {IN} Persona.
2254: * inlen {IN} Length of this input part.
2255: * in {IN} This input part.
2256: * tdubuf {IN/OUT} TDU buffer.
2257: *
2258: * NOTES
2259: *
2260: * RETURNS
2261: * NZERROR_OK Success.
2262: * NZERROR_TK_CANTGROW Needed to grow TDU buffer but could not.
2263: * NZERROR_TK_NOTOPEN Persona is not open.
2264: * NZERROR_TK_NOTSUPP Function not supported with persona.
2265: */
2266: #ifdef __STDC__
2267: nzerror nztEncrypt(nzctx *, nzttPersona *, nzttces, ub4, ub1 *,
2268: nzttBufferBlock *);
2269: #else
2270: nzerror nztEncrypt(/*_ nzctx *, nzttPersona *, nzttces, ub4, ub1 *,
2271: nzttBufferBlock * _*/);
2272: #endif /* __STDC __*/
2273:
2274: /*------------------- nztxEncryptExpansion -------------------*/
2275:
2276: /*
2277: * NAME
2278: * nztxEncryptExpansion - Determine the size of the TDU to encrypt.
2279: *
2280: * PARAMETERS
2281: * osscntxt {IN} OSS context.
2282: * persona {IN} Persona.
2283: * inlen {IN} Length of this input part.
2284: * tdulen {OUT} Length of TDU.
2285: *
2286: * NOTES
2287: *
2288: * RETURNS
2289: * NZERROR_OK Success.
2290: * NZERROR_TK_NOTOPEN Persona is not open.
2291: * NZERROR_TK_NOTSUPP Function not supported with persona.
2292: */
2293: #ifdef __STDC__
2294: nzerror nztxEncryptExpansion(nzctx *, nzttPersona *, ub4, ub4 *);
2295: #else
2296: nzerror nztxEncryptExpansion(/*_ nzctx *, nzttPersona *, ub4, ub4 * _*/);
2297: #endif /* __STDC __*/
2298:
2299: /*------------------------ nztDecrypt ------------------------*/
2300:
2301: /*
2302: * NAME
2303: * nztDecrypt - Decrypt an Encrypted message.
2304: *
2305: * PARAMETERS
2306: * osscntxt {IN} OSS context.
2307: * persona {IN} Persona.
2308: * state {IN} State of decryption.
2309: * inlen {IN} Length of this input part.
2310: * in {IN} This input part.
2311: * out {IN/OUT} Cleartext message.
2312: *
2313: * NOTES
2314: *
2315: * RETURNS
2316: * NZERROR_OK Success.
2317: * NZERROR_TK_CANTGROW Needed to grow TDU buffer but could not.
2318: * NZERROR_TK_NOTOPEN Persona is not open.
2319: * NZERROR_TK_NOTSUPP Function not supported with persona.
2320: */
2321: #ifdef __STDC__
2322: nzerror nztDecrypt(nzctx *, nzttPersona *, nzttces, ub4, ub1 *,
2323: nzttBufferBlock *);
2324: #else
2325: nzerror nztDecrypt(/*_ nzctx *, nzttPersona *, nzttces, ub4, ub1 *,
2326: nzttBufferBlock * _*/);
2327: #endif /* __STDC __*/
2328:
2329: /*------------------------ nztEnvelope ------------------------*/
2330:
2331: /*
2332: * NAME
2333: * nztEnvelope - Sign and PKEncrypt a message.
2334: *
2335: * PARAMETERS
2336: * osscntxt {IN} OSS context.
2337: * persona {IN} Persona.
2338: * nrecipients {IN} Number of recipients for this encryption.
2339: * recipients {IN} List of recipients.
2340: * state {IN} State of encryption.
2341: * inlen {IN} Length of this input part.
2342: * in {IN} This input part.
2343: * tdubuf {IN/OUT} TDU buffer.
2344: *
2345: * NOTES
2346: *
2347: * RETURNS
2348: * NZERROR_OK Success.
2349: * NZERROR_TK_CANTGROW Needed to grow output buffer but could not.
2350: * NZERROR_TK_NOTOPEN Persona is not open.
2351: * NZERROR_TK_NOTSUPP Function not supported with persona.
2352: */
2353: #ifdef __STDC__
2354: nzerror nztEnvelope(nzctx *, nzttPersona *, ub4, nzttIdentity *,
2355: nzttces, ub4, ub1 *, nzttBufferBlock *);
2356: #else
2357: nzerror nztEnvelope(/*_ nzctx *, nzttPersona *, ub4, nzttIdentity *,
2358: nzttces, ub4, ub1 *, nzttBufferBlock * _*/);
2359: #endif /* __STDC __*/
2360:
2361: /*----------------------- nztDeEnvelope -----------------------*/
2362:
2363: /*
2364: * NAME
2365: * nztDeEnvelope - PKDecrypt and verify a message.
2366: *
2367: * PARAMETERS
2368: * osscntxt {IN} OSS context.
2369: * persona {IN} Persona.
2370: * state {IN} State of encryption.
2371: * inlen {IN} Length of this input part.
2372: * in {IN} This input part.
2373: * out {OUT} Message from TDU.
2374: * verified {OUT} TRUE if verified.
2375: * validated {OUT} TRUE if validated.
2376: * sender {OUT} Identity of sender.
2377: *
2378: * NOTES
2379: *
2380: * RETURNS
2381: * NZERROR_OK Success.
2382: * NZERROR_TK_CANTGROW Needed to grow TDU buffer but could not.
2383: * NZERROR_TK_NOTOPEN Persona is not open.
2384: * NZERROR_TK_NOTSUPP Function not supported with persona.
2385: */
2386: #ifdef __STDC__
2387: nzerror nztDeEnvelope(nzctx *, nzttPersona *, nzttces, ub4, ub1 *,
2388: nzttBufferBlock *, boolean *, boolean *,
2389: nzttIdentity **);
2390: #else
2391: nzerror nztDeEnvelope(/*_ nzctx *, nzttPersona *, nzttces, ub4, ub1 *,
2392: nzttBufferBlock *, boolean *, boolean *,
2393: nzttIdentity ** _*/);
2394: #endif /* __STDC __*/
2395:
2396: /*----------------------- nztKeyedHash -----------------------*/
2397:
2398: /*
2399: * NAME
2400: * nztKeyedHash - Generate a keyed hash.
2401: *
2402: * PARAMETERS
2403: * osscntxt {IN} OSS context.
2404: * persona {IN} Persona.
2405: * state {IN} State of hash.
2406: * inlen {IN} Length of this input.
2407: * in {IN} This input.
2408: * tdu {IN/OUT} Output tdu.
2409: *
2410: * NOTES
2411: *
2412: * RETURNS
2413: * NZERROR_OK Success.
2414: * NZERROR_TK_CANTGROW Needed to grow TDU buffer but could not.
2415: * NZERROR_TK_NOTOPEN Persona is not open.
2416: * NZERROR_TK_NOTSUPP Function not supported with persona.
2417: */
2418: #ifdef __STDC__
2419: nzerror nztKeyedHash(nzctx *, nzttPersona *, nzttces, ub4, ub1 *,
2420: nzttBufferBlock *);
2421: #else
2422: nzerror nztKeyedHash(/*_ nzctx *, nzttPersona *, nzttces, ub4, ub1 *,
2423: nzttBufferBlock * _*/);
2424: #endif /* __STDC __*/
2425:
2426: /*------------------ nztxKeyedHashExpansion ------------------*/
2427:
2428: /*
2429: * NAME
2430: * nztxKeyedHashExpansion - Determine the space needed for a keyed hash.
2431: *
2432: * PARAMETERS
2433: * osscntxt {IN} OSS context.
2434: * persona {IN} Persona.
2435: * inlen {IN} Length of this input.
2436: * tdulen {OUT} TDU length.
2437: *
2438: * NOTES
2439: *
2440: * RETURNS
2441: * NZERROR_OK Success.
2442: * NZERROR_TK_NOTOPEN Persona is not open.
2443: * NZERROR_TK_NOTSUPP Function not supported with persona.
2444: */
2445: #ifdef __STDC__
2446: nzerror nztxKeyedHashExpansion(nzctx *, nzttPersona *, ub4,
2447: ub4 *);
2448: #else
2449: nzerror nztxKeyedHashExpansion(/*_ nzctx *, nzttPersona *, ub4,
2450: ub4 * _*/);
2451: #endif /* __STDC __*/
2452:
2453: /*--------------------- nztxHashExpansion ---------------------*/
2454:
2455: /*
2456: * NAME
2457: * nztxHashExpansion - Determine the size of the TDU for a hash.
2458: *
2459: * PARAMETERS
2460: * osscntxt {IN} OSS context.
2461: * persona {IN} Persona.
2462: * inlen {IN} Length of this input.
2463: * tdulen {OUT} TDU length.
2464: *
2465: * NOTES
2466: *
2467: * RETURNS
2468: * NZERROR_OK Success.
2469: * NZERROR_TK_NOTOPEN Persona is not open.
2470: * NZERROR_TK_NOTSUPP Function not supported with persona.
2471: */
2472: #ifdef __STDC__
2473: nzerror nztxHashExpansion(nzctx *, nzttPersona *, ub4, ub4 *);
2474: #else
2475: nzerror nztxHashExpansion(/*_ nzctx *, nzttPersona *, ub4, ub4 * _*/);
2476: #endif /* __STDC __*/
2477:
2478: /*---------------- nztiae_IsAuthEnabled ----------------*/
2479:
2480: /*
2481: * NAME
2482: * nztiae_IsAuthEnabled - Checks to see if Authentication is Enabled
2483: * in the current Cipher Spec.
2484: *
2485: * PARAMETERS
2486: * ctx {IN} Oracle SSL Context
2487: * ncipher {IN} CipherSuite
2488: * authEnabled {OUT} Boolean for is Auth Enabled?
2489: *
2490: * NOTES
2491: *
2492: * RETURNS
2493: * NZERROR_OK on success.
2494: * NZERROR_TK_INV_CIPHR_TYPE if Cipher Spec is not Recognized.
2495: */
2496:
2497: #ifdef __STDC__
2498: nzerror nztiae_IsAuthEnabled( nzctx *, ub2, boolean *);
2499: #else
2500: nzerror nztiae_IsAuthEnabled(/*_ nzctx *ctx,
2501: ub2 ncipher,
2502: boolean *authEnabled _*/);
2503: #endif
2504:
2505: /*---------------- nztiee_IsEncrEnabled ----------------*/
2506: /*
2507: * NAME
2508: * nztiee_IsEncrEnabled - Checks to see if Encryption is Enabled
2509: * in the current Cipher Spec.
2510: *
2511: * PARAMETERS
2512: * ctx {IN} Oracle SSL Context
2513: * ncipher {IN} CipherSuite
2514: * EncrEnabled {OUT} Boolean for is Auth Enabled?
2515: *
2516: * NOTES
2517: *
2518: * RETURNS
2519: * NZERROR_OK on success.
2520: * NZERROR_TK_INV_CIPHR_TYPE if Cipher Spec is not Recognized.
2521: */
2522:
2523: #ifdef __STDC__
2524: nzerror nztiee_IsEncrEnabled( nzctx *, ub2, boolean *);
2525: #else
2526: nzerror nztiee_IsEncrEnabled(/*_ nzctx *ctx,
2527: ub2 ncipher,
2528: boolean *EncrEnabled _*/);
2529: #endif
2530: /*---------------- nztihe_IsHashEnabled ----------------*/
2531: /*
2532: * NAME
2533: * nztihe_IsHashEnabled - Checks to see if HAshing is Enabled
2534: * in the current Cipher Spec.
2535: *
2536: * PARAMETERS
2537: * ctx {IN} Oracle SSL Context
2538: * ncipher {IN} CipherSuite
2539: * hashEnabled {OUT} Boolean for is Auth Enabled?
2540: *
2541: * NOTES
2542: *
2543: * RETURNS
2544: * NZERROR_OK on success.
2545: * NZERROR_TK_INV_CIPHR_TYPE if Cipher Spec is not Recognized.
2546: */
2547:
2548: #ifdef __STDC__
2549: nzerror nztihe_IsHashEnabled( nzctx *, ub2, boolean *);
2550: #else
2551: nzerror nztihe_IsHashEnabled(/*_ nzctx *ctx,
2552: ub2 ncipher,
2553: boolean *hashEnabled _*/);
2554: #endif
2555: #endif /* NZT_ORACLE */
2556:
E-mail: