1 /* -*- Mode: C; tab-width: 8 -*-*/ 2 /* This Source Code Form is subject to the terms of the Mozilla Public 3 * License, v. 2.0. If a copy of the MPL was not distributed with this 4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 5 6 #ifndef _CMMFT_H_ 7 #define _CMMFT_H_ 8 9 #include "secasn1.h" 10 11 /* 12 * These are the enumerations used to distinguish between the different 13 * choices available for the CMMFCertOrEncCert structure. 14 */ 15 typedef enum { 16 cmmfNoCertOrEncCert = 0, 17 cmmfCertificate = 1, 18 cmmfEncryptedCert = 2 19 } CMMFCertOrEncCertChoice; 20 21 /* 22 * This is the enumeration and the corresponding values used to 23 * represent the CMMF type PKIStatus 24 */ 25 typedef enum { 26 cmmfNoPKIStatus = -1, 27 cmmfGranted = 0, 28 cmmfGrantedWithMods = 1, 29 cmmfRejection = 2, 30 cmmfWaiting = 3, 31 cmmfRevocationWarning = 4, 32 cmmfRevocationNotification = 5, 33 cmmfKeyUpdateWarning = 6, 34 cmmfNumPKIStatus 35 } CMMFPKIStatus; 36 37 /* 38 * These enumerations are used to represent the corresponding values 39 * in PKIFailureInfo defined in CMMF. 40 */ 41 typedef enum { 42 cmmfBadAlg = 0, 43 cmmfBadMessageCheck = 1, 44 cmmfBadRequest = 2, 45 cmmfBadTime = 3, 46 cmmfBadCertId = 4, 47 cmmfBadDataFormat = 5, 48 cmmfWrongAuthority = 6, 49 cmmfIncorrectData = 7, 50 cmmfMissingTimeStamp = 8, 51 cmmfNoFailureInfo = 9 52 } CMMFPKIFailureInfo; 53 54 typedef struct CMMFPKIStatusInfoStr CMMFPKIStatusInfo; 55 typedef struct CMMFCertOrEncCertStr CMMFCertOrEncCert; 56 typedef struct CMMFCertifiedKeyPairStr CMMFCertifiedKeyPair; 57 typedef struct CMMFCertResponseStr CMMFCertResponse; 58 typedef struct CMMFCertResponseSeqStr CMMFCertResponseSeq; 59 typedef struct CMMFPOPODecKeyChallContentStr CMMFPOPODecKeyChallContent; 60 typedef struct CMMFChallengeStr CMMFChallenge; 61 typedef struct CMMFRandStr CMMFRand; 62 typedef struct CMMFPOPODecKeyRespContentStr CMMFPOPODecKeyRespContent; 63 typedef struct CMMFKeyRecRepContentStr CMMFKeyRecRepContent; 64 typedef struct CMMFCertRepContentStr CMMFCertRepContent; 65 66 /* Export this so people can call SEC_ASN1EncodeItem instead of having to 67 * write callbacks that are passed in to the high level encode function 68 * for CMMFCertRepContent. 69 */ 70 extern const SEC_ASN1Template CMMFCertRepContentTemplate[]; 71 extern const SEC_ASN1Template CMMFPOPODecKeyChallContentTemplate[]; 72 73 #endif /*_CMMFT_H_*/ 74