📄 cert.h
字号:
const void *dnComponentListHead2,
const BOOLEAN dn1substring );
/* Read/write a DN */
int checkDN( const void *dnComponentListHead,
const BOOLEAN checkCN, const BOOLEAN checkC,
CRYPT_ATTRIBUTE_TYPE *errorLocus,
CRYPT_ERRTYPE_TYPE *errorType );
int sizeofDN( const void *dnComponentListHead );
int readDNTag( STREAM *stream, void **dnComponentListHead,
const int tag );
int readDNstring( const char *string, const int stringLength,
void **dnComponentListHead );
int writeDN( STREAM *stream, const void *dnComponentListHead,
const int tag );
int writeDNstring( STREAM *stream, const void *dnComponentListHead );
#define readDNData( stream, dnComponentListHead ) \
readDNTag( stream, dnComponentListHead, NO_TAG )
#define readDN( stream, dnComponentListHead ) \
readDNTag( stream, dnComponentListHead, DEFAULT_TAG )
/****************************************************************************
* *
* Attribute Manipulation Functions *
* *
****************************************************************************/
/* Find information on an attribute */
ATTRIBUTE_LIST *findAttributeByOID( const ATTRIBUTE_LIST *attributeListPtr,
const BYTE *oid );
ATTRIBUTE_LIST *findAttribute( const ATTRIBUTE_LIST *attributeListPtr,
const CRYPT_ATTRIBUTE_TYPE attributeID );
ATTRIBUTE_LIST *findAttributeField( const ATTRIBUTE_LIST *attributeListPtr,
const CRYPT_ATTRIBUTE_TYPE fieldID,
const CRYPT_ATTRIBUTE_TYPE subFieldID );
ATTRIBUTE_LIST *findAttributeFieldEx( const ATTRIBUTE_LIST *attributeListPtr,
const CRYPT_ATTRIBUTE_TYPE fieldID );
int getDefaultFieldValue( const CRYPT_ATTRIBUTE_TYPE fieldID );
/* Move the current attribute cursor */
int moveAttributeCursor( ATTRIBUTE_LIST **currentCursor,
const CRYPT_ATTRIBUTE_TYPE certInfoType,
const int position );
/* Add/delete attributes/attribute fields */
int addAttribute( const ATTRIBUTE_TYPE attributeType,
ATTRIBUTE_LIST **listHeadPtr, const BYTE *oid,
const BOOLEAN critical, const void *data,
const int dataLength );
int addAttributeField( ATTRIBUTE_LIST **attributeListPtr,
const CRYPT_ATTRIBUTE_TYPE fieldID,
const CRYPT_ATTRIBUTE_TYPE subFieldID,
const void *data, const int dataLength,
const int flags, CRYPT_ATTRIBUTE_TYPE *errorLocus,
CRYPT_ERRTYPE_TYPE *errorType );
void deleteAttribute( ATTRIBUTE_LIST **attributeListPtr,
ATTRIBUTE_LIST **listCursorPtr,
ATTRIBUTE_LIST *listItem );
void deleteAttributeField( ATTRIBUTE_LIST **attributeListPtr,
ATTRIBUTE_LIST **listCursorPtr,
ATTRIBUTE_LIST *listItem );
void deleteAttributes( ATTRIBUTE_LIST **attributeListPtr );
int copyAttributes( ATTRIBUTE_LIST **destListHeadPtr,
ATTRIBUTE_LIST *srcListPtr,
CRYPT_ATTRIBUTE_TYPE *errorLocus,
CRYPT_ERRTYPE_TYPE *errorType );
int copyIssuerAttributes( ATTRIBUTE_LIST **destListHeadPtr,
const ATTRIBUTE_LIST *srcListPtr,
CRYPT_ATTRIBUTE_TYPE *errorLocus,
CRYPT_ERRTYPE_TYPE *errorType,
const CRYPT_CERTTYPE_TYPE type );
int copyRequestAttributes( ATTRIBUTE_LIST **destListHeadPtr,
const ATTRIBUTE_LIST *srcListPtr,
CRYPT_ATTRIBUTE_TYPE *errorLocus,
CRYPT_ERRTYPE_TYPE *errorType );
int copyRevocationAttributes( ATTRIBUTE_LIST **destListHeadPtr,
const ATTRIBUTE_LIST *srcListPtr,
CRYPT_ATTRIBUTE_TYPE *errorLocus,
CRYPT_ERRTYPE_TYPE *errorType );
/* Read/write a collection of attributes */
int checkAttributes( const ATTRIBUTE_TYPE attributeType,
const ATTRIBUTE_LIST *listHeadPtr,
CRYPT_ATTRIBUTE_TYPE *errorLocus,
CRYPT_ERRTYPE_TYPE *errorType );
int sizeofAttributes( const ATTRIBUTE_LIST *attributeListPtr );
int writeAttributes( STREAM *stream, ATTRIBUTE_LIST *attributeListPtr,
const CRYPT_CERTTYPE_TYPE type,
const int attributeSize );
int readAttributes( STREAM *stream, ATTRIBUTE_LIST **attributeListPtrPtr,
const CRYPT_CERTTYPE_TYPE type, const int attributeSize,
CRYPT_ATTRIBUTE_TYPE *errorLocus,
CRYPT_ERRTYPE_TYPE *errorType );
/****************************************************************************
* *
* Revication Information Manipulation Functions *
* *
****************************************************************************/
/* Add/delete a revocation entry */
int addRevocationEntry( REVOCATION_INFO **listHeadPtr,
REVOCATION_INFO **newEntryPosition,
const CRYPT_ATTRIBUTE_TYPE valueType,
const void *value, const int valueLength );
void deleteRevocationEntries( REVOCATION_INFO **listHeadPtr );
/* Copy a set of revocation entries */
int copyRevocationEntries( REVOCATION_INFO **destListHeadPtr,
const REVOCATION_INFO *srcListPtr,
CRYPT_ATTRIBUTE_TYPE *errorLocus,
CRYPT_ERRTYPE_TYPE *errorType );
/* Determine whether a cert has been revoked by this CRL/OCSP response */
int checkRevocation( const CERT_INFO *certInfoPtr, CERT_INFO *revocationInfoPtr );
/****************************************************************************
* *
* Certificate Functions *
* *
****************************************************************************/
/* Create a locked certificate information object ready for further
initialisation */
int createCertificateInfo( CERT_INFO **certInfoPtrPtr,
const CRYPT_USER cryptOwner,
const CRYPT_CERTTYPE_TYPE certType );
/* Read a certificate object */
int readCertInfo( STREAM *stream, CERT_INFO *certInfoPtr );
int readAttributeCertInfo( STREAM *stream, CERT_INFO *certInfoPtr );
int readCertRequestInfo( STREAM *stream, CERT_INFO *certInfoPtr );
int readCRMFRequestInfo( STREAM *stream, CERT_INFO *certInfoPtr );
int readRevRequestInfo( STREAM *stream, CERT_INFO *certInfoPtr );
int readCRLInfo( STREAM *stream, CERT_INFO *certInfoPtr );
int readCertChain( STREAM *stream, CRYPT_CERTIFICATE *iCryptCert,
const CRYPT_USER cryptOwner,
const CRYPT_CERTTYPE_TYPE type,
const CRYPT_KEYID_TYPE keyIDtype,
const void *keyID, const int keyIDlength,
const BOOLEAN dataOnlyCert );
int readSPKACInfo( STREAM *stream, CERT_INFO *certInfoPtr );
int readCMSAttributes( STREAM *stream, CERT_INFO *attributeInfoPtr );
int readOCSPRequestInfo( STREAM *stream, CERT_INFO *certInfoPtr );
int readOCSPResponseInfo( STREAM *stream, CERT_INFO *certInfoPtr );
int readPKIUserInfo( STREAM *stream, CERT_INFO *userInfoPtr );
/* Write a certificate object */
int writeCertInfo( STREAM *stream, CERT_INFO *subjectCertInfoPtr,
const CERT_INFO *issuerCertInfoPtr,
const CRYPT_CONTEXT iIssuerCryptContext );
int writeAttributeCertInfo( STREAM *stream, CERT_INFO *subjectCertInfoPtr,
const CERT_INFO *issuerCertInfoPtr,
const CRYPT_CONTEXT iIssuerCryptContext );
int writeCertRequestInfo( STREAM *stream, CERT_INFO *subjectCertInfoPtr,
const CERT_INFO *issuerCertInfoPtr,
const CRYPT_CONTEXT iIssuerCryptContext );
int writeCRMFRequestInfo( STREAM *stream, CERT_INFO *subjectCertInfoPtr,
const CERT_INFO *issuerCertInfoPtr,
const CRYPT_CONTEXT iIssuerCryptContext );
int writeRevRequestInfo( STREAM *stream, CERT_INFO *subjectCertInfoPtr,
const CERT_INFO *issuerCertInfoPtr,
const CRYPT_CONTEXT iIssuerCryptContext );
int writeCRLInfo( STREAM *stream, CERT_INFO *subjectCertInfoPtr,
const CERT_INFO *issuerCertInfoPtr,
const CRYPT_CONTEXT iIssuerCryptContext );
int writeCertChain( STREAM *stream, const CERT_INFO *certInfoPtr );
int writeCMSAttributes( STREAM *stream, CERT_INFO *attributeInfoPtr );
int writeOCSPRequestInfo( STREAM *stream, CERT_INFO *subjectCertInfoPtr,
const CERT_INFO *issuerCertInfoPtr,
const CRYPT_CONTEXT iIssuerCryptContext );
int writeOCSPResponseInfo( STREAM *stream, CERT_INFO *subjectCertInfoPtr,
const CERT_INFO *issuerCertInfoPtr,
const CRYPT_CONTEXT iIssuerCryptContext );
int writePKIUserInfo( STREAM *stream, CERT_INFO *userInfoPtr,
const CERT_INFO *issuerCertInfoPtr,
const CRYPT_CONTEXT iIssuerCryptContext );
/* Write a CRL object */
int sizeofCRLentry( REVOCATION_INFO *crlEntry );
int writeCRLentry( STREAM *stream, const REVOCATION_INFO *crlEntry );
/* Check a certificate object */
int checkCert( CERT_INFO *subjectCertInfoPtr,
const CERT_INFO *issuerCertInfoPtr );
int checkCertChain( CERT_INFO *certInfoPtr );
/* Check that a key cert is valid for a particular purpose */
int checkCertUsage( const CERT_INFO *certInfoPtr, const int keyUsage,
const RESOURCE_MESSAGE_CHECK_TYPE exactUsage,
CRYPT_ATTRIBUTE_TYPE *errorLocus,
CRYPT_ERRTYPE_TYPE *errorType );
/* Trust management */
int addTrustInfo( const CERT_INFO *certInfoPtr );
int deleteTrustInfo( const CERT_INFO *certInfoPtr );
BOOLEAN checkCertTrusted( const CERT_INFO *certInfoPtr );
CRYPT_CERTIFICATE findTrustedCert( const void *dn, const int dnSize );
/* Add/get/delete a certificate component */
int addCertComponent( CERT_INFO *certInfoPtr,
const CRYPT_ATTRIBUTE_TYPE certInfoType,
const void *certInfo, const int certInfoLength );
int getCertComponent( CERT_INFO *certInfoPtr,
const CRYPT_ATTRIBUTE_TYPE certInfoType,
void *certInfo, int *certInfoLength );
int deleteCertComponent( CERT_INFO *certInfoPtr,
const CRYPT_ATTRIBUTE_TYPE certInfoType );
/* Import/export a certificate */
int importCert( const void *certObject, const int certObjectLength,
CRYPT_CERTIFICATE *certificate,
const CRYPT_USER cryptOwner,
const CRYPT_KEYID_TYPE keyIDtype,
const void *keyID, const int keyIDlength,
const CERTFORMAT_TYPE formatType );
int exportCert( void *certObject, int *certObjectLength,
const CRYPT_CERTFORMAT_TYPE certFormatType,
const CERT_INFO *certInfoPtr, const int maxLength );
/* Sign/sig check a certificate */
int signCert( CERT_INFO *certInfoPtr, const CRYPT_CONTEXT signContext );
int checkCertValidity( CERT_INFO *certInfoPtr, const CRYPT_HANDLE sigCheckKey );
/* Read/write a SET OF Certificate */
int sizeofCertSet( const CERT_INFO *certInfoPtr );
int writeCertSet( STREAM *stream, const CERT_INFO *certInfoPtr );
/* Oddball routines: copy a cert chain, assemble a cert chain from certs
read from an object */
int copyCertChain( CERT_INFO *certInfoPtr, const CRYPT_HANDLE certChain );
int assembleCertChain( CRYPT_CERTIFICATE *iCertificate,
const CRYPT_HANDLE iCertSource,
const CRYPT_KEYID_TYPE keyIDtype,
const void *keyID, const int keyIDlength,
const int options );
#endif /* _CERT_DEFINED */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -