crmft.h
来自「支持SSL v2/v3, TLS, PKCS #5, PKCS #7, PKCS」· C头文件 代码 · 共 218 行
H
218 行
/* -*- Mode: C; tab-width: 8 -*-*//* * The contents of this file are subject to the Mozilla Public * License Version 1.1 (the "License"); you may not use this file * except in compliance with the License. You may obtain a copy of * the License at http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or * implied. See the License for the specific language governing * rights and limitations under the License. * * The Original Code is the Netscape security libraries. * * The Initial Developer of the Original Code is Netscape * Communications Corporation. Portions created by Netscape are * Copyright (C) 1994-2000 Netscape Communications Corporation. All * Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the * terms of the GNU General Public License Version 2 or later (the * "GPL"), in which case the provisions of the GPL are applicable * instead of those above. If you wish to allow use of your * version of this file only under the terms of the GPL and not to * allow others to use your version of this file under the MPL, * indicate your decision by deleting the provisions above and * replace them with the notice and other provisions required by * the GPL. If you do not delete the provisions above, a recipient * may use your version of this file under either the MPL or the * GPL. *//* Header file with all of the structures and types that will be exported * by the security library for implementation of CRMF. */#ifndef _CRMFT_H_#define _CRMFT_H_/* Use these enumerated values for adding fields to the certificate request */typedef enum { crmfVersion, crmfSerialNumber, crmfSigningAlg, crmfIssuer, crmfValidity, crmfSubject, crmfPublicKey, crmfIssuerUID, crmfSubjectUID, crmfExtension} CRMFCertTemplateField;/* * An enumeration for the different types of controls. */typedef enum { crmfNoControl, crmfRegTokenControl, crmfAuthenticatorControl, crmfPKIPublicationInfoControl, crmfPKIArchiveOptionsControl, crmfOldCertIDControl, crmfProtocolEncrKeyControl} CRMFControlType;/* * The possible values that are passed into CRMF_CreatePKIPublicationInfo */typedef enum{ crmfDontPublish, crmfPleasePublish} CRMFPublicationAction;/* * An enumeration for the possible for pubMethod which is a part of * the SinglePubInfo ASN1 type. */typedef enum { crmfDontCare, crmfX500, crmfWeb, crmfLdap} CRMFPublicationMethod;/* * An enumeration for the different options for PKIArchiveOptions type. */typedef enum { crmfNoArchiveOptions, crmfEncryptedPrivateKey, crmfKeyGenParameters, crmfArchiveRemGenPrivKey} CRMFPKIArchiveOptionsType;/* * An enumeration for the different options for ProofOfPossession */typedef enum { crmfNoPOPChoice, crmfRAVerified, crmfSignature, crmfKeyEncipherment, crmfKeyAgreement} CRMFPOPChoice;/* * An enumertion type for options for the authInfo field of the * CRMFPOPOSigningKeyInput structure. */typedef enum { crmfSender, crmfPublicKeyMAC} CRMFPOPOSkiInputAuthChoice;/* * An enumeration for the SubsequentMessage Options. */typedef enum { crmfNoSubseqMess, crmfEncrCert, crmfChallengeResp} CRMFSubseqMessOptions;/* * An enumeration for the choice used by POPOPrivKey. */typedef enum { crmfNoMessage, crmfThisMessage, crmfSubsequentMessage, crmfDHMAC} CRMFPOPOPrivKeyChoice;/* * An enumeration for the choices for the EncryptedKey type. */typedef enum { crmfNoEncryptedKeyChoice, crmfEncryptedValueChoice, crmfEnvelopedDataChoice} CRMFEncryptedKeyChoice;/* * TYPE: CRMFEncoderOutputCallback * This function type defines a prototype for a function that the CRMF * library expects when encoding is performed. * * ARGUMENTS: * arg * This will be a pointer the user passed into an encoding function. * The user of the library is free to use this pointer in any way. * The most common use is to keep around a buffer for writing out * the DER encoded bytes. * buf * The DER encoded bytes that should be written out. * len * The number of DER encoded bytes to write out. * */typedef void (*CRMFEncoderOutputCallback) (void *arg, const char *buf, unsigned long len);/* * Type for the function that gets a password. Just in case we ever * need to support publicKeyMAC for POPOSigningKeyInput */typedef SECItem* (*CRMFMACPasswordCallback) (void *arg);typedef struct CRMFOptionalValidityStr CRMFOptionalValidity;typedef struct CRMFValidityCreationInfoStr CRMFGetValidity;typedef struct CRMFCertTemplateStr CRMFCertTemplate;typedef struct CRMFCertRequestStr CRMFCertRequest;typedef struct CRMFCertReqMsgStr CRMFCertReqMsg;typedef struct CRMFCertReqMessagesStr CRMFCertReqMessages;typedef struct CRMFProofOfPossessionStr CRMFProofOfPossession;typedef struct CRMFPOPOSigningKeyStr CRMFPOPOSigningKey;typedef struct CRMFPOPOSigningKeyInputStr CRMFPOPOSigningKeyInput;typedef struct CRMFPOPOPrivKeyStr CRMFPOPOPrivKey;typedef struct CRMFPKIPublicationInfoStr CRMFPKIPublicationInfo;typedef struct CRMFSinglePubInfoStr CRMFSinglePubInfo;typedef struct CRMFPKIArchiveOptionsStr CRMFPKIArchiveOptions;typedef struct CRMFEncryptedKeyStr CRMFEncryptedKey;typedef struct CRMFEncryptedValueStr CRMFEncryptedValue;typedef struct CRMFCertIDStr CRMFCertID;typedef struct CRMFCertIDStr CRMFOldCertID;typedef CERTSubjectPublicKeyInfo CRMFProtocolEncrKey;typedef struct CRMFValidityCreationInfoStr CRMFValidityCreationInfo;typedef struct CRMFCertExtCreationInfoStr CRMFCertExtCreationInfo;typedef struct CRMFPKMACValueStr CRMFPKMACValue;typedef struct CRMFAttributeStr CRMFAttribute;typedef struct CRMFControlStr CRMFControl;typedef CERTGeneralName CRMFGeneralName;typedef struct CRMFCertExtensionStr CRMFCertExtension;struct CRMFValidityCreationInfoStr { PRTime *notBefore; PRTime *notAfter;};struct CRMFCertExtCreationInfoStr { CRMFCertExtension **extensions; int numExtensions;};/* * Some ASN1 Templates that may be needed. */extern const SEC_ASN1Template CRMFCertReqMessagesTemplate[];extern const SEC_ASN1Template CRMFCertRequestTemplate[];#endif /*_CRMFT_H_*/
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?