Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
p6cert.h
Go to the documentation of this file.
1 
11 #ifndef P6CERT_H__
12 #define P6CERT_H__ 1
13 
14 #include "p6crypto.h"
15 #include "p6digest.h"
16 
17 namespace P6R {
18 
19 #ifdef __cplusplus
20 extern "C" {
21 #endif
22 
23 
32 const P6CERTFLAGS P6CERT_NOFLAGS = 0x00000000;
33 
34 
40 interface p6ICertInit : public p6ICom
41 {
52  P6COMMETHOD initialize( P6CERTFLAGS flags ) = 0;
53 
68  P6COMMETHOD loadCert( const P6WCHAR* pCertFile ) = 0;
69 
85  P6COMMETHOD loadCertFromBuffer( P6VOID* pBuffer, P6UINT32 cBuffer ) = 0;
86 
102  P6COMMETHOD loadCertDERFromBuffer( P6VOID* pBuffer, P6UINT32 cBuffer ) = 0;
103 };
104 
105 // {D467D71E-DE03-4810-929B-C65B4A9C4E85}
106 #define IF_p6ICertInit {0xd467d71e,0xde03,0x4810,{0x92,0x9b,0xc6,0x5b,0x4a,0x9c,0x4e,0x85}}
107 
108 
119 interface p6IEnumCertIDs : public p6ICom
120 {
121  P6COMMETHOD next(P6R::P6UINT32 cElements,const P6R::P6CHAR **parElements,P6R::P6UINT32* pcReturned) = 0;
122  P6COMMETHOD reset(void) = 0;
123 };
124 
125 // {4B5EFEE5-1CA5-4477-BB0A-3540E615D2B8}
126 #define IF_p6IEnumCertIDs {0x4B5EFEE5,0x1CA5,0x4477,{0xBB,0x0A,0x35,0x40,0xE6,0x15,0xD2,0xB8}}
127 
129 const P6CERTMATCHFLAGS P6CMF_NOFLAGS = 0x00000000;
130 const P6CERTMATCHFLAGS P6CMF_DISABLE_WILDCARDS = 0x00000001;
131 const P6CERTMATCHFLAGS P6CMF_ALWAYS_CHECK_SUBJECT = 0x00000002;
132 
133 
149 const P6CERTKEYUSAGE P6CKU_USAGEMASK = 0x000001ff;
150 const P6CERTKEYUSAGE P6CKU_DIGITAL_SIGNATURE = 0x00000001;
151 const P6CERTKEYUSAGE P6CKU_NON_REPUDIATION = 0x00000002;
152 const P6CERTKEYUSAGE P6CKU_KEY_ENCIPHERMENT = 0x00000004;
153 const P6CERTKEYUSAGE P6CKU_DATA_ENCIPHERMENT = 0x00000008;
154 const P6CERTKEYUSAGE P6CKU_KEY_AGREEMENT = 0x00000010;
155 const P6CERTKEYUSAGE P6CKU_KEY_CERT_SIGN = 0x00000020;
156 const P6CERTKEYUSAGE P6CKU_CRL_SIGN = 0x00000040;
157 const P6CERTKEYUSAGE P6CKU_ENCIPHER_ONLY = 0x00000080;
158 const P6CERTKEYUSAGE P6CKU_DECIPHER_ONLY = 0x00000100;
159 
160 const P6CERTKEYUSAGE P6CEKU_EXUSAGEMASK = 0x0003fd00;
161 const P6CERTKEYUSAGE P6CEKU_EXSERVERAUTH = 0x00000200; // OID 1.3.6.1.5.5.7.3.1 TAG id-kp-serverAuth
162 const P6CERTKEYUSAGE P6CEKU_EXCLIENTAUTH = 0x00000400; // OID 1.3.6.1.5.5.7.3.2 TAG id-kp-clientAuth
163 const P6CERTKEYUSAGE P6CEKU_EXCODESIGNING = 0x00000800; // OID 1.3.6.1.5.5.7.3.3 TAG id-kp-codeSigning
164 const P6CERTKEYUSAGE P6CEKU_EXEMAILPROTECTION = 0x00001000; // OID 1.3.6.1.5.5.7.3.4 TAG id-kp-emailProtection
165 const P6CERTKEYUSAGE P6CEKU_EXTIMESTAMPING = 0x00002000; // OID 1.3.6.1.5.5.7.3.8 TAG id-kp-timeStamping
166 const P6CERTKEYUSAGE P6CEKU_EXOCSPSIGNING = 0x00004000; // OID 1.3.6.1.5.5.7.3.9 TAG id-kp-OCSPSigning
167 const P6CERTKEYUSAGE P6CEKU_EXMSCODEIND = 0x00008000; // OID 1.3.6.1.4.1.311.2.1.21 TAG msCodeInd - "Microsoft Individual Code Signing"
168 const P6CERTKEYUSAGE P6CEKU_EXMSCODECOM = 0x00010000; // OID 1.3.6.1.4.1.311.2.1.22 TAG msCodeCom - "Microsoft Commercial Code Signing"
169 const P6CERTKEYUSAGE P6CEKU_EXMSCTLSIGN = 0x00020000; // OID 1.3.6.1.4.1.311.10.3.1 TAG msCTLSign - "Microsoft Trust List Signing"
170 const P6CERTKEYUSAGE P6CEKU_EXMSSGC = 0x00040000; // OID 1.3.6.1.4.1.311.10.3.3 TAG msSGC - "Microsoft Server Gated Crypto"
171 const P6CERTKEYUSAGE P6CEKU_EXMSEFS = 0x00080000; // OID 1.3.6.1.4.1.311.10.3.4 TAG msEFS - "Microsoft Encrypted File System"
172 const P6CERTKEYUSAGE P6CEKU_EXNSSGC = 0x00100000; // OID 2.16.840.1.113730.4.1 TAG nsSGC - "Netscape Server Gated Crypto"
173 
180 interface p6ICert : public p6ICom
181 {
201  P6COMMETHOD getDistinguishedName( P6WCHAR* pBuffer, P6SIZE cBuffer, P6SIZE* pcWritten ) = 0;
202 
215  P6COMMETHOD serializeToFile( const P6WCHAR* pFile ) = 0;
216 
236  P6COMMETHOD serializeToBuffer( P6VOID* pBuffer, P6UINT32 cBuffer, P6UINT32* pcBytesWritten ) = 0;
237 
257  P6COMMETHOD serializeDERToBuffer( P6VOID* pBuffer, P6UINT32 cBuffer, P6UINT32* pcBytesWritten ) = 0;
258 
274  P6COMMETHOD printCertificate( const P6WCHAR* pCertFile ) = 0;
275 
288  P6COMMETHOD isEquals( p6ICert* pOtherCert, P6BOOL* pbEqual ) = 0;
289 
305  P6COMMETHOD getFingerprint( P6R::P6DIGESTS nDigest, P6R::P6BYTE* pBuffer, P6R::P6SIZE cBuffer, P6R::P6SIZE *pcWritten ) = 0;
306 
322  P6COMMETHOD getFingerprintHexStr( P6R::P6DIGESTS nDigest, P6R::P6CHAR* pBuffer, P6R::P6SIZE cBuffer, P6R::P6SIZE *pcWritten ) = 0;
323 
339  P6COMMETHOD getFingerprintHexStrW( P6R::P6DIGESTS nDigest, P6R::P6WCHAR* pBuffer, P6R::P6SIZE cBuffer, P6R::P6SIZE *pcWritten ) = 0;
340 
351 
368  P6COMMETHOD matchDnsName(const P6R::P6CHAR *pszDnsName,P6CERTMATCHFLAGS fFlags) = 0;
369 
387  P6COMMETHOD matchDnsNameW(const P6R::P6WCHAR *pszDnsName,P6CERTMATCHFLAGS fFlags) = 0;
388 
403 
420 
421  P6COMMETHOD getIssuerName(P6R::P6WCHAR *pBuffer,P6R::P6SIZE cBuffer,P6R::P6SIZE *pcWritten) = 0;
422 
439 
440  P6COMMETHOD getSerialNumber(P6R::P6WCHAR *pBuffer,P6R::P6SIZE cBuffer,P6R::P6SIZE *pcWritten) = 0;
441 
443 
461  P6COMMETHOD getPublicKey( P6UCHAR* pBuffer, P6SIZE cBuffer, P6SIZE* pcWritten ) = 0;
462 };
463 
464 // {204FAA90-579C-4bc9-80A3-ECB9D4EE3105}
465 #define IF_p6ICert {0x204faa90,0x579c,0x4bc9,{0x80,0xa3,0xec,0xb9,0xd4,0xee,0x31,0x5}}
466 
467 
474 interface p6ICert2 : public p6ICom
475 {
495  P6COMMETHOD getDistinguishedName( P6WCHAR* pBuffer, P6SIZE cBuffer, P6SIZE* pcWritten ) = 0;
496 
509  P6COMMETHOD serializeToFile( const P6WCHAR* pFile ) = 0;
510 
530  P6COMMETHOD serializeToBuffer( P6VOID* pBuffer, P6UINT32 cBuffer, P6UINT32* pcBytesWritten ) = 0;
531 
551  P6COMMETHOD serializeDERToBuffer( P6VOID* pBuffer, P6UINT32 cBuffer, P6UINT32* pcBytesWritten ) = 0;
552 
568  P6COMMETHOD printCertificate( const P6WCHAR* pCertFile ) = 0;
569 
582  P6COMMETHOD isEquals( p6ICert* pOtherCert, P6BOOL* pbEqual ) = 0;
583 
599  P6COMMETHOD getFingerprint( P6R::P6DIGESTS nDigest, P6R::P6BYTE* pBuffer, P6R::P6SIZE cBuffer, P6R::P6SIZE *pcWritten ) = 0;
600 
616  P6COMMETHOD getFingerprintHexStr( P6R::P6DIGESTS nDigest, P6R::P6CHAR* pBuffer, P6R::P6SIZE cBuffer, P6R::P6SIZE *pcWritten ) = 0;
617 
633  P6COMMETHOD getFingerprintHexStrW( P6R::P6DIGESTS nDigest, P6R::P6WCHAR* pBuffer, P6R::P6SIZE cBuffer, P6R::P6SIZE *pcWritten ) = 0;
634 
645 
662  P6COMMETHOD matchDnsName(const P6R::P6CHAR *pszDnsName,P6CERTMATCHFLAGS fFlags) = 0;
663 
681  P6COMMETHOD matchDnsNameW(const P6R::P6WCHAR *pszDnsName,P6CERTMATCHFLAGS fFlags) = 0;
682 
697 
714 
715  P6COMMETHOD getIssuerName(P6R::P6WCHAR *pBuffer,P6R::P6SIZE cBuffer,P6R::P6SIZE *pcWritten) = 0;
716 
733 
734  P6COMMETHOD getSerialNumber(P6R::P6WCHAR *pBuffer,P6R::P6SIZE cBuffer,P6R::P6SIZE *pcWritten) = 0;
735 
737 
755  P6COMMETHOD getPublicKey( P6UCHAR* pBuffer, P6SIZE cBuffer, P6SIZE* pcWritten ) = 0;
756 
774  P6COMMETHOD getSubjectPublicKeyInfo( P6UCHAR* pBuffer, P6SIZE cBuffer, P6SIZE* pcWritten ) = 0;
775 };
776 
777 // {36284E03-4801-4273-91C9-EB2574877CF9}
778 #define IF_p6ICert2 {0x36284e03,0x4801,0x4273,{0x91,0xc9,0xeb,0x25,0x74,0x87,0x7c,0xf9}}
779 
780 
781 // {AAF9C5A8-5EE2-4490-85E1-A897F53DAC16}
782 #define COMP_p6Cert {0xaaf9c5a8,0x5ee2,0x4490,{0x85,0xe1,0xa8,0x97,0xf5,0x3d,0xac,0x16}}
783 
784 
785 
792 interface p6IEnumCerts : public p6ICom
793 {
794 
812  P6COMMETHOD next(P6R::P6UINT32 cElements,P6R::p6ComPtr<P6R::p6ICert> *parElements,P6R::P6UINT32 *pcReturned) = 0;
813 
820  P6COMMETHOD reset() = 0;
821 };
822 // {D3810A32-2F26-4F44-A103-D9AA21610C3D}
823 #define IF_p6IEnumCerts {0xD3810A32,0x2F26,0x4F44,{0xA1,0x03,0xD9,0xAA,0x21,0x61,0x0C,0x3D}}
824 
825 
826 
827 #ifdef __cplusplus
828 }
829 #endif
830 
831 } // namespace
832 
833 
834 #endif
P6UINT32 P6CERTFLAGS
P6CERTFLAGS.
Definition: p6cert.h:31
size_t P6SIZE
Definition: p6types.h:62
virtual P6R::P6ERR getPublicKey(P6UCHAR *pBuffer, P6SIZE cBuffer, P6SIZE *pcWritten)=0
This method is used to get a copy of the public key stored in the certificate (in DER format)...
This interface is used to enumerate a set of certificates.
Definition: p6cert.h:792
unsigned char P6UCHAR
Definition: p6types.h:74
virtual P6R::P6ERR getFingerprintHexStrW(P6R::P6DIGESTS nDigest, P6R::P6WCHAR *pBuffer, P6R::P6SIZE cBuffer, P6R::P6SIZE *pcWritten)=0
This method is used to get a fingerprint (using the requested digest method) for the certificate...
A smart pointer implementation to help manage and use [p6]COM based interfaces.
Definition: p6comptr.h:214
Cryptography component definitions.
virtual P6R::P6ERR next(P6R::P6UINT32 cElements, P6R::p6ComPtr< P6R::p6ICert > *parElements, P6R::P6UINT32 *pcReturned)=0
Retrieves the specified number of certificate interfaces.
virtual P6R::P6ERR printCertificate(const P6WCHAR *pCertFile)=0
Print the contents of the certificate in parsed form to a file.
virtual P6R::P6ERR serializeToBuffer(P6VOID *pBuffer, P6UINT32 cBuffer, P6UINT32 *pcBytesWritten)=0
Write the certificate in this component to the provided buffer in PEM format.
unsigned int P6UINT32
Definition: p6types.h:40
virtual P6R::P6ERR enumCertIDs(P6R::p6IEnumCertIDs **ppEnum)=0
Returns an enumerator that provides access to the certicates RFC 6125 DNS-IDs and CN-IDs...
virtual P6R::P6ERR enumCertIDs(P6R::p6IEnumCertIDs **ppEnum)=0
Returns an enumerator that provides access to the certicates RFC 6125 DNS-IDs and CN-IDs...
const P6CERTKEYUSAGE P6CEKU_EXCODESIGNING
Definition: p6cert.h:163
const P6CERTKEYUSAGE P6CEKU_EXMSCODEIND
Definition: p6cert.h:167
virtual P6R::P6ERR loadCertDERFromBuffer(P6VOID *pBuffer, P6UINT32 cBuffer)=0
This function loads the certificate (in DER ASN.1 format) contained in the specified buffer...
const P6CERTFLAGS P6CERT_NOFLAGS
Definition: p6cert.h:32
virtual P6R::P6ERR matchDnsName(const P6R::P6CHAR *pszDnsName, P6CERTMATCHFLAGS fFlags)=0
Matches the hostname against the certificate hostname.
virtual P6R::P6ERR serializeToFile(const P6WCHAR *pFile)=0
Write the certificate in this component to the file defined in the parameter in PEM format...
bool P6BOOL
Boolean type.
Definition: p6types.h:101
virtual P6R::P6ERR getKeyUsage(P6R::P6CERTKEYUSAGE *pUsage)=0
Retrieves the key usage extension (OID 2.5.29.15) bits for the certificate.
const P6CERTMATCHFLAGS P6CMF_NOFLAGS
Definition: p6cert.h:129
P6UINT32 P6CERTKEYUSAGE
P6R::P6CERTUSAGE defines values returned by the p6ICert::getKeyUsage() method.
Definition: p6cert.h:148
const P6CERTKEYUSAGE P6CEKU_EXMSEFS
Definition: p6cert.h:171
virtual P6R::P6ERR printCertificate(const P6WCHAR *pCertFile)=0
Print the contents of the certificate in parsed form to a file.
const P6CERTKEYUSAGE P6CEKU_EXEMAILPROTECTION
Definition: p6cert.h:164
const P6CERTKEYUSAGE P6CKU_DIGITAL_SIGNATURE
Definition: p6cert.h:150
virtual P6R::P6ERR getIssuerName(P6R::P6WCHAR *pBuffer, P6R::P6SIZE cBuffer, P6R::P6SIZE *pcWritten)=0
virtual P6R::P6ERR matchDnsNameW(const P6R::P6WCHAR *pszDnsName, P6CERTMATCHFLAGS fFlags)=0
Matches the hostname against the certificate hostname.
const P6CERTKEYUSAGE P6CEKU_EXSERVERAUTH
Definition: p6cert.h:161
virtual P6R::P6ERR initialize(P6CERTFLAGS flags)=0
Place the component in its initial state.
virtual P6R::P6ERR isEquals(p6ICert *pOtherCert, P6BOOL *pbEqual)=0
Is the certificate in the &#39;pOtherCert&#39; parameter the same as the certificate stored in this component...
virtual P6R::P6ERR getIssuerHash(P6R::P6SIZE *pHash)=0
This method returns a hash of the issuer field that can by used to easily compare the issue field...
const P6CERTKEYUSAGE P6CEKU_EXMSCODECOM
Definition: p6cert.h:168
virtual P6R::P6ERR loadCertFromBuffer(P6VOID *pBuffer, P6UINT32 cBuffer)=0
This function loads the certificate (in PEM format) contained in the specified buffer.
virtual P6R::P6ERR serializeToBuffer(P6VOID *pBuffer, P6UINT32 cBuffer, P6UINT32 *pcBytesWritten)=0
Write the certificate in this component to the provided buffer in PEM format.
virtual P6R::P6ERR getFingerprint(P6R::P6DIGESTS nDigest, P6R::P6BYTE *pBuffer, P6R::P6SIZE cBuffer, P6R::P6SIZE *pcWritten)=0
This method is used to get a fingerprint (using the requested digest method) for the certificate...
const P6CERTKEYUSAGE P6CEKU_EXOCSPSIGNING
Definition: p6cert.h:166
const P6CERTKEYUSAGE P6CEKU_EXMSSGC
Definition: p6cert.h:170
wchar_t P6WCHAR
Wide character type see p6i18n.h.
Definition: p6types.h:76
virtual P6R::P6ERR matchDnsNameW(const P6R::P6WCHAR *pszDnsName, P6CERTMATCHFLAGS fFlags)=0
Matches the hostname against the certificate hostname.
const P6CERTMATCHFLAGS P6CMF_ALWAYS_CHECK_SUBJECT
Definition: p6cert.h:131
const P6CERTKEYUSAGE P6CKU_KEY_ENCIPHERMENT
Definition: p6cert.h:152
The base interface all [p6]COM components must derive from and implement.
Definition: p6comdef.h:96
const P6CERTKEYUSAGE P6CEKU_EXTIMESTAMPING
Definition: p6cert.h:165
virtual P6R::P6ERR getSerialNumber(P6R::P6WCHAR *pBuffer, P6R::P6SIZE cBuffer, P6R::P6SIZE *pcWritten)=0
virtual P6R::P6ERR serializeDERToBuffer(P6VOID *pBuffer, P6UINT32 cBuffer, P6UINT32 *pcBytesWritten)=0
Write the certificate in this component to the provided buffer in DER ASN.1 format.
virtual P6R::P6ERR isEquals(p6ICert *pOtherCert, P6BOOL *pbEqual)=0
Is the certificate in the &#39;pOtherCert&#39; parameter the same as the certificate stored in this component...
const P6CERTKEYUSAGE P6CKU_KEY_CERT_SIGN
Definition: p6cert.h:155
virtual P6R::P6ERR getDistinguishedName(P6WCHAR *pBuffer, P6SIZE cBuffer, P6SIZE *pcWritten)=0
Extract an RFC 2253 compatible representation of the Subject name of the certificate.
const P6CERTKEYUSAGE P6CKU_USAGEMASK
Definition: p6cert.h:149
virtual P6R::P6ERR getVersionNumber(P6R::P6UINT32 *pVersion)=0
virtual P6R::P6ERR getFingerprintHexStrW(P6R::P6DIGESTS nDigest, P6R::P6WCHAR *pBuffer, P6R::P6SIZE cBuffer, P6R::P6SIZE *pcWritten)=0
This method is used to get a fingerprint (using the requested digest method) for the certificate...
virtual P6R::P6ERR getSerialNumber(P6R::P6WCHAR *pBuffer, P6R::P6SIZE cBuffer, P6R::P6SIZE *pcWritten)=0
An enumerator that enumerates a certificates RFC 6125 DNS-IDs and CN-IDs.
Definition: p6cert.h:119
virtual P6R::P6ERR getFingerprint(P6R::P6DIGESTS nDigest, P6R::P6BYTE *pBuffer, P6R::P6SIZE cBuffer, P6R::P6SIZE *pcWritten)=0
This method is used to get a fingerprint (using the requested digest method) for the certificate...
P6UINT8 P6BYTE
Definition: p6types.h:32
P6UINT32 P6CERTMATCHFLAGS
Definition: p6cert.h:128
virtual P6R::P6ERR serializeDERToBuffer(P6VOID *pBuffer, P6UINT32 cBuffer, P6UINT32 *pcBytesWritten)=0
Write the certificate in this component to the provided buffer in DER ASN.1 format.
virtual P6R::P6ERR getSubjectHash(P6R::P6SIZE *pHash)=0
This method returns a hash of the subject field that can by used to easily compare the subject field...
const P6CERTKEYUSAGE P6CKU_NON_REPUDIATION
Definition: p6cert.h:151
virtual P6R::P6ERR matchDnsName(const P6R::P6CHAR *pszDnsName, P6CERTMATCHFLAGS fFlags)=0
Matches the hostname against the certificate hostname.
virtual P6R::P6ERR getSubjectPublicKeyInfo(P6UCHAR *pBuffer, P6SIZE cBuffer, P6SIZE *pcWritten)=0
This method is used to get a copy of the public key stored in the certificate in DER encoding of subj...
Used to initialize and load a certificate from a file or buffer.
Definition: p6cert.h:40
This interface allows the caller to access parts of an X509 V3 certificate for use in protocols and i...
Definition: p6cert.h:180
virtual P6R::P6ERR getDistinguishedName(P6WCHAR *pBuffer, P6SIZE cBuffer, P6SIZE *pcWritten)=0
Extract an RFC 2253 compatible representation of the Subject name of the certificate.
const P6CERTKEYUSAGE P6CKU_DECIPHER_ONLY
Definition: p6cert.h:158
const P6CERTMATCHFLAGS P6CMF_DISABLE_WILDCARDS
Definition: p6cert.h:130
virtual P6R::P6ERR loadCert(const P6WCHAR *pCertFile)=0
This function loads the certificate (in PEM format) contained in the specified file.
virtual P6R::P6ERR reset(void)=0
const P6CERTKEYUSAGE P6CEKU_EXMSCTLSIGN
Definition: p6cert.h:169
const P6CERTKEYUSAGE P6CKU_CRL_SIGN
Definition: p6cert.h:156
#define P6COMMETHOD
Definition: p6types.h:917
virtual P6R::P6ERR getFingerprintHexStr(P6R::P6DIGESTS nDigest, P6R::P6CHAR *pBuffer, P6R::P6SIZE cBuffer, P6R::P6SIZE *pcWritten)=0
This method is used to get a fingerprint (using the requested digest method) for the certificate...
virtual P6R::P6ERR getFingerprintHexStr(P6R::P6DIGESTS nDigest, P6R::P6CHAR *pBuffer, P6R::P6SIZE cBuffer, P6R::P6SIZE *pcWritten)=0
This method is used to get a fingerprint (using the requested digest method) for the certificate...
const P6CERTKEYUSAGE P6CKU_DATA_ENCIPHERMENT
Definition: p6cert.h:153
virtual P6R::P6ERR getKeyUsage(P6R::P6CERTKEYUSAGE *pUsage)=0
Retrieves the key usage extension (OID 2.5.29.15) bits for the certificate.
virtual P6R::P6ERR getIssuerHash(P6R::P6SIZE *pHash)=0
This method returns a hash of the issuer field that can by used to easily compare the issue field...
Interface definition for the one way digest functions.
This interface allows the caller to access parts of an X509 V3 certificate for use in protocols and i...
Definition: p6cert.h:474
virtual P6R::P6ERR getIssuerName(P6R::P6WCHAR *pBuffer, P6R::P6SIZE cBuffer, P6R::P6SIZE *pcWritten)=0
const P6CERTKEYUSAGE P6CEKU_EXCLIENTAUTH
Definition: p6cert.h:162
const P6CERTKEYUSAGE P6CKU_ENCIPHER_ONLY
Definition: p6cert.h:157
const P6CERTKEYUSAGE P6CEKU_EXUSAGEMASK
Definition: p6cert.h:160
const P6CERTKEYUSAGE P6CKU_KEY_AGREEMENT
Definition: p6cert.h:154
void P6VOID
Definition: p6types.h:75
virtual P6R::P6ERR serializeToFile(const P6WCHAR *pFile)=0
Write the certificate in this component to the file defined in the parameter in PEM format...
virtual P6R::P6ERR next(P6R::P6UINT32 cElements, const P6R::P6CHAR **parElements, P6R::P6UINT32 *pcReturned)=0
virtual P6R::P6ERR reset()=0
Resets the &quot;cursor&quot; back the beginning causing the next() method to start enumerating from the beginn...
const P6CERTKEYUSAGE P6CEKU_EXNSSGC
Definition: p6cert.h:172
virtual P6R::P6ERR getSubjectHash(P6R::P6SIZE *pHash)=0
This method returns a hash of the subject field that can by used to easily compare the subject field...
virtual P6R::P6ERR getVersionNumber(P6R::P6UINT32 *pVersion)=0
virtual P6R::P6ERR getPublicKey(P6UCHAR *pBuffer, P6SIZE cBuffer, P6SIZE *pcWritten)=0
This method is used to get a copy of the public key stored in the certificate (in DER format)...
P6DIGESTS
Definition: p6digest.h:295
char P6CHAR
Narrow character type.
Definition: p6types.h:71