| /* This Source Code Form is subject to the terms of the Mozilla Public |
| * License, v. 2.0. If a copy of the MPL was not distributed with this |
| * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ |
| |
| /* |
| * seccomon.h - common data structures for security libraries |
| * |
| * This file should have lowest-common-denominator datastructures |
| * for security libraries. It should not be dependent on any other |
| * headers, and should not require linking with any libraries. |
| */ |
| |
| #ifndef _SECCOMMON_H_ |
| #define _SECCOMMON_H_ |
| |
| #include "utilrename.h" |
| #include "prtypes.h" |
| |
| #ifdef __cplusplus |
| #define SEC_BEGIN_PROTOS extern "C" { |
| #define SEC_END_PROTOS } |
| #else |
| #define SEC_BEGIN_PROTOS |
| #define SEC_END_PROTOS |
| #endif |
| |
| #include "secport.h" |
| |
| typedef enum { |
| siBuffer = 0, |
| siClearDataBuffer = 1, |
| siCipherDataBuffer = 2, |
| siDERCertBuffer = 3, |
| siEncodedCertBuffer = 4, |
| siDERNameBuffer = 5, |
| siEncodedNameBuffer = 6, |
| siAsciiNameString = 7, |
| siAsciiString = 8, |
| siDEROID = 9, |
| siUnsignedInteger = 10, |
| siUTCTime = 11, |
| siGeneralizedTime = 12, |
| siVisibleString = 13, |
| siUTF8String = 14, |
| siBMPString = 15 |
| } SECItemType; |
| |
| typedef struct SECItemStr SECItem; |
| |
| struct SECItemStr { |
| SECItemType type; |
| unsigned char *data; |
| unsigned int len; |
| }; |
| |
| typedef struct SECItemArrayStr SECItemArray; |
| |
| struct SECItemArrayStr { |
| SECItem *items; |
| unsigned int len; |
| }; |
| |
| /* |
| ** A status code. Status's are used by procedures that return status |
| ** values. Again the motivation is so that a compiler can generate |
| ** warnings when return values are wrong. Correct testing of status codes: |
| ** |
| ** SECStatus rv; |
| ** rv = some_function (some_argument); |
| ** if (rv != SECSuccess) |
| ** do_an_error_thing(); |
| ** |
| */ |
| typedef enum _SECStatus { |
| SECWouldBlock = -2, |
| SECFailure = -1, |
| SECSuccess = 0 |
| } SECStatus; |
| |
| /* |
| ** A comparison code. Used for procedures that return comparision |
| ** values. Again the motivation is so that a compiler can generate |
| ** warnings when return values are wrong. |
| */ |
| typedef enum _SECComparison { |
| SECLessThan = -1, |
| SECEqual = 0, |
| SECGreaterThan = 1 |
| } SECComparison; |
| |
| #endif /* _SECCOMMON_H_ */ |