Line data Source code
1 : /* This Source Code Form is subject to the terms of the Mozilla Public
2 : * License, v. 2.0. If a copy of the MPL was not distributed with this
3 : * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
4 :
5 : /*
6 : * seccomon.h - common data structures for security libraries
7 : *
8 : * This file should have lowest-common-denominator datastructures
9 : * for security libraries. It should not be dependent on any other
10 : * headers, and should not require linking with any libraries.
11 : */
12 :
13 : #ifndef _SECCOMMON_H_
14 : #define _SECCOMMON_H_
15 :
16 : #include "utilrename.h"
17 : #include "prtypes.h"
18 :
19 : #ifdef __cplusplus
20 : #define SEC_BEGIN_PROTOS extern "C" {
21 : #define SEC_END_PROTOS }
22 : #else
23 : #define SEC_BEGIN_PROTOS
24 : #define SEC_END_PROTOS
25 : #endif
26 :
27 : #include "secport.h"
28 :
29 : typedef enum {
30 : siBuffer = 0,
31 : siClearDataBuffer = 1,
32 : siCipherDataBuffer = 2,
33 : siDERCertBuffer = 3,
34 : siEncodedCertBuffer = 4,
35 : siDERNameBuffer = 5,
36 : siEncodedNameBuffer = 6,
37 : siAsciiNameString = 7,
38 : siAsciiString = 8,
39 : siDEROID = 9,
40 : siUnsignedInteger = 10,
41 : siUTCTime = 11,
42 : siGeneralizedTime = 12,
43 : siVisibleString = 13,
44 : siUTF8String = 14,
45 : siBMPString = 15
46 : } SECItemType;
47 :
48 : typedef struct SECItemStr SECItem;
49 :
50 86 : struct SECItemStr {
51 : SECItemType type;
52 : unsigned char *data;
53 : unsigned int len;
54 : };
55 :
56 : typedef struct SECItemArrayStr SECItemArray;
57 :
58 : struct SECItemArrayStr {
59 : SECItem *items;
60 : unsigned int len;
61 : };
62 :
63 : /*
64 : ** A status code. Status's are used by procedures that return status
65 : ** values. Again the motivation is so that a compiler can generate
66 : ** warnings when return values are wrong. Correct testing of status codes:
67 : **
68 : ** SECStatus rv;
69 : ** rv = some_function (some_argument);
70 : ** if (rv != SECSuccess)
71 : ** do_an_error_thing();
72 : **
73 : */
74 : typedef enum _SECStatus {
75 : SECWouldBlock = -2,
76 : SECFailure = -1,
77 : SECSuccess = 0
78 : } SECStatus;
79 :
80 : /*
81 : ** A comparison code. Used for procedures that return comparision
82 : ** values. Again the motivation is so that a compiler can generate
83 : ** warnings when return values are wrong.
84 : */
85 : typedef enum _SECComparison {
86 : SECLessThan = -1,
87 : SECEqual = 0,
88 : SECGreaterThan = 1
89 : } SECComparison;
90 :
91 : #endif /* _SECCOMMON_H_ */
|