/* 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. Statuses 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 comparison ** 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_ */