1/* 2 * The contents of this file are subject to the Mozilla Public 3 * License Version 1.1 (the "License"); you may not use this file 4 * except in compliance with the License. You may obtain a copy of 5 * the License at http://www.mozilla.org/MPL/ 6 * 7 * Software distributed under the License is distributed on an "AS 8 * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or 9 * implied. See the License for the specific language governing 10 * rights and limitations under the License. 11 * 12 * The Original Code is the Netscape security libraries. 13 * 14 * The Initial Developer of the Original Code is Netscape 15 * Communications Corporation. Portions created by Netscape are 16 * Copyright (C) 1994-2000 Netscape Communications Corporation. All 17 * Rights Reserved. 18 * 19 * Contributor(s): 20 * 21 * Alternatively, the contents of this file may be used under the 22 * terms of the GNU General Public License Version 2 or later (the 23 * "GPL"), in which case the provisions of the GPL are applicable 24 * instead of those above. If you wish to allow use of your 25 * version of this file only under the terms of the GPL and not to 26 * allow others to use your version of this file under the MPL, 27 * indicate your decision by deleting the provisions above and 28 * replace them with the notice and other provisions required by 29 * the GPL. If you do not delete the provisions above, a recipient 30 * may use your version of this file under either the MPL or the 31 * GPL. 32 */ 33 34/* 35 * seccomon.h - common data structures for security libraries 36 * 37 * This file should have lowest-common-denominator datastructures 38 * for security libraries. It should not be dependent on any other 39 * headers, and should not require linking with any libraries. 40 * 41 * $Id: seccomon.h,v 1.4 2004/03/23 21:31:41 mb Exp $ 42 */ 43 44#ifndef _SECCOMMON_H_ 45#define _SECCOMMON_H_ 46 47#include <security_asn1/prtypes.h> 48 49 50#ifdef __cplusplus 51# define SEC_BEGIN_PROTOS extern "C" { 52# define SEC_END_PROTOS } 53#else 54# define SEC_BEGIN_PROTOS 55# define SEC_END_PROTOS 56#endif 57 58#include <security_asn1/secport.h> 59 60#ifdef __APPLE__ 61 62#include <Security/SecAsn1Types.h> 63 64/* 65 * Encode directly to/from SecAsn1Item. 66 * Avoid the need for SECItemStr.type; see SEC_ANS1_SIGNED_INT 67 * in secasn1t.h. 68 */ 69typedef SecAsn1Item SECItem; 70#else 71/* Original NSS */ 72typedef enum { 73 siBuffer = 0, 74 siClearDataBuffer = 1, 75 siCipherDataBuffer = 2, 76 siDERCertBuffer = 3, 77 siEncodedCertBuffer = 4, 78 siDERNameBuffer = 5, 79 siEncodedNameBuffer = 6, 80 siAsciiNameString = 7, 81 siAsciiString = 8, 82 siDEROID = 9, 83 siUnsignedInteger = 10, 84 siUTCTime = 11, 85 siGeneralizedTime = 12 86} SECItemType; 87 88typedef struct SECItemStr SECItem; 89 90struct SECItemStr { 91 SECItemType type; 92 unsigned char *data; 93 unsigned int len; 94}; 95#endif /* __APPLE__ */ 96 97/* 98** A status code. Status's are used by procedures that return status 99** values. Again the motivation is so that a compiler can generate 100** warnings when return values are wrong. Correct testing of status codes: 101** 102** SECStatus rv; 103** rv = some_function (some_argument); 104** if (rv != SECSuccess) 105** do_an_error_thing(); 106** 107*/ 108typedef enum _SECStatus { 109 SECWouldBlock = -2, 110 SECFailure = -1, 111 SECSuccess = 0 112} SECStatus; 113 114/* 115** A comparison code. Used for procedures that return comparision 116** values. Again the motivation is so that a compiler can generate 117** warnings when return values are wrong. 118*/ 119typedef enum _SECComparison { 120 SECLessThan = -1, 121 SECEqual = 0, 122 SECGreaterThan = 1 123} SECComparison; 124 125#endif /* _SECCOMMON_H_ */ 126