RetroZilla/security/nss/lib/crmf/cmmfit.h
2018-05-19 22:01:21 +08:00

117 lines
3.4 KiB
C

/* -*- Mode: C; tab-width: 8 -*-*/
/* 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/. */
#ifndef _CMMFIT_H_
#define _CMMFIT_H_
/*
* All fields marked by a PKIStausInfo in comments is an integer
* with the following possible values.
*
* Integer Value Meaning
* ------------- -------
* 0 granted- got exactly what you asked for.
*
* 1 grantedWithMods-got something like what you asked
* for;requester is responsible for ascertainging the
* differences.
*
* 2 rejection-you don't get what you asked for; more
* information elsewhere in the message
*
* 3 waiting-the request body part has not yet been
* processed, expect to hear more later.
*
* 4 revocationWarning-this message contains a warning
* that a revocation is imminent.
*
* 5 revocationNotification-notification that a
* revocation has occurred.
*
* 6 keyUpdateWarning-update already done for the
* oldCertId specified in FullCertTemplate.
*/
struct CMMFPKIStatusInfoStr {
SECItem status;
SECItem statusString;
SECItem failInfo;
};
struct CMMFCertOrEncCertStr {
union {
CERTCertificate *certificate;
CRMFEncryptedValue *encryptedCert;
} cert;
CMMFCertOrEncCertChoice choice;
SECItem derValue;
};
struct CMMFCertifiedKeyPairStr {
CMMFCertOrEncCert certOrEncCert;
CRMFEncryptedValue *privateKey;
SECItem derPublicationInfo; /* We aren't creating
* PKIPublicationInfo's, so
* we'll store away the der
* here if we decode one that
* does have pubInfo.
*/
SECItem unwrappedPrivKey;
};
struct CMMFCertResponseStr {
SECItem certReqId;
CMMFPKIStatusInfo status; /*PKIStatusInfo*/
CMMFCertifiedKeyPair *certifiedKeyPair;
};
struct CMMFCertRepContentStr {
CERTCertificate **caPubs;
CMMFCertResponse **response;
PLArenaPool *poolp;
PRBool isDecoded;
};
struct CMMFChallengeStr {
SECAlgorithmID *owf;
SECItem witness;
SECItem senderDER;
SECItem key;
SECItem challenge;
SECItem randomNumber;
};
struct CMMFRandStr {
SECItem integer;
SECItem senderHash;
CERTGeneralName *sender;
};
struct CMMFPOPODecKeyChallContentStr {
CMMFChallenge **challenges;
PLArenaPool *poolp;
int numChallenges;
int numAllocated;
};
struct CMMFPOPODecKeyRespContentStr {
SECItem **responses;
PLArenaPool *poolp;
};
struct CMMFKeyRecRepContentStr {
CMMFPKIStatusInfo status; /* PKIStatusInfo */
CERTCertificate *newSigCert;
CERTCertificate **caCerts;
CMMFCertifiedKeyPair **keyPairHist;
PLArenaPool *poolp;
int numKeyPairs;
int allocKeyPairs;
PRBool isDecoded;
};
#endif /* _CMMFIT_H_ */