- Home
- Download
- News
- Documentation

- FAQ
- Tutorial
- API reference
- Examples

- XML Digital Signature

- Online Verifier

- XML Encryption
- XML Canonicalization
- Reporting Bugs
- Mailing list
- Related
- Authors

# x509

## Name

x509 -- X509 certificates support implementation for MS Crypto.

## Synopsis

    #define             xmlSecMSCryptoKeyDataX509Id
    xmlSecKeyDataIdxmlSecMSCryptoKeyDataX509GetKlass   (void);
    PCCERT_CONTEXTxmlSecMSCryptoKeyDataX509GetKeyCert (xmlSecKeyDataPtr data);
    intxmlSecMSCryptoKeyDataX509AdoptKeyCert
                                                            (xmlSecKeyDataPtr data,
                                                             PCCERT_CONTEXT cert);
    intxmlSecMSCryptoKeyDataX509AdoptCert  (xmlSecKeyDataPtr data,
                                                             PCCERT_CONTEXT cert);
    PCCERT_CONTEXTxmlSecMSCryptoKeyDataX509GetCert    (xmlSecKeyDataPtr data,
                                                             xmlSecSize pos);
    xmlSecSize          xmlSecMSCryptoKeyDataX509GetCertsSize
                                                            (xmlSecKeyDataPtr data);
    intxmlSecMSCryptoKeyDataX509AdoptCrl   (xmlSecKeyDataPtr data,
                                                             PCCRL_CONTEXT crl);
    PCCRL_CONTEXTxmlSecMSCryptoKeyDataX509GetCrl     (xmlSecKeyDataPtr data,
                                                             xmlSecSize pos);
    xmlSecSize          xmlSecMSCryptoKeyDataX509GetCrlsSize
                                                            (xmlSecKeyDataPtr data);
    #define             xmlSecMSCryptoKeyDataRawX509CertId
    xmlSecKeyDataIdxmlSecMSCryptoKeyDataRawX509CertGetKlass
                                                            (void);
    #define             xmlSecMSCryptoX509StoreId
    xmlSecKeyDataStoreIdxmlSecMSCryptoX509StoreGetKlass   (void);
    intxmlSecMSCryptoX509StoreAdoptCert    (xmlSecKeyDataStorePtr store,
                                                             PCCERT_CONTEXT cert,
                                                             xmlSecKeyDataType type);
    intxmlSecMSCryptoX509StoreAdoptKeyStore
                                                            (xmlSecKeyDataStorePtr store,
                                                             HCERTSTORE keyStore);
    intxmlSecMSCryptoX509StoreAdoptTrustedStore
                                                            (xmlSecKeyDataStorePtr store,
                                                             HCERTSTORE trustedStore);
    intxmlSecMSCryptoX509StoreAdoptUntrustedStore
                                                            (xmlSecKeyDataStorePtr store,
                                                             HCERTSTORE untrustedStore);
    voidxmlSecMSCryptoX509StoreEnableSystemTrustedCerts
                                                            (xmlSecKeyDataStorePtr store,
                                                             int val);

## Description

X509 certificates support implementation for MS Crypto.

## Details

### xmlSecMSCryptoKeyDataX509Id

    #define             xmlSecMSCryptoKeyDataX509Id

The MSCrypto X509 data klass.

### xmlSecMSCryptoKeyDataX509GetKlass ()

    xmlSecKeyDataId     xmlSecMSCryptoKeyDataX509GetKlass   (void);

The MSCrypto X509 key data klass (http://www.w3.org/TR/xmldsig-core/sec-X509Data).

Returns : | the X509 data klass.

### xmlSecMSCryptoKeyDataX509GetKeyCert ()

    PCCERT_CONTEXT      xmlSecMSCryptoKeyDataX509GetKeyCert (xmlSecKeyDataPtr data);

Gets the certificate from which the key was extracted.

`data` : | the pointer to X509 key data.
Returns : | the key's certificate or NULL if key data was not used for key extraction or an error occurs.

### xmlSecMSCryptoKeyDataX509AdoptKeyCert ()

    int                 xmlSecMSCryptoKeyDataX509AdoptKeyCert
                                                            (xmlSecKeyDataPtr data,
                                                             PCCERT_CONTEXT cert);

Sets the key's certificate in `data`.

`data` : | the pointer to X509 key data.
`cert` : | the pointer to MSCRYPTO X509 certificate.
Returns : | 0 on success or a negative value if an error occurs.

### xmlSecMSCryptoKeyDataX509AdoptCert ()

    int                 xmlSecMSCryptoKeyDataX509AdoptCert  (xmlSecKeyDataPtr data,
                                                             PCCERT_CONTEXT cert);

Adds certificate to the X509 key data.

`data` : | the pointer to X509 key data.
`cert` : | the pointer to MSCRYPTO X509 certificate.
Returns : | 0 on success or a negative value if an error occurs.

### xmlSecMSCryptoKeyDataX509GetCert ()

    PCCERT_CONTEXT      xmlSecMSCryptoKeyDataX509GetCert    (xmlSecKeyDataPtr data,
                                                             xmlSecSize pos);

Gets a certificate from X509 key data.

`data` : | the pointer to X509 key data.
`pos` : | the desired certificate position.
Returns : | the pointer to certificate or NULL if `pos` is larger than the number of certificates in `data` or an error occurs.

### xmlSecMSCryptoKeyDataX509GetCertsSize ()

    xmlSecSize          xmlSecMSCryptoKeyDataX509GetCertsSize
                                                            (xmlSecKeyDataPtr data);

Gets the number of certificates in `data`.

`data` : | the pointer to X509 key data.
Returns : | te number of certificates in `data`.

### xmlSecMSCryptoKeyDataX509AdoptCrl ()

    int                 xmlSecMSCryptoKeyDataX509AdoptCrl   (xmlSecKeyDataPtr data,
                                                             PCCRL_CONTEXT crl);

Adds CRL to the X509 key data.

`data` : | the pointer to X509 key data.
`crl` : | the pointer to MSCrypto X509 CRL.
Returns : | 0 on success or a negative value if an error occurs.

### xmlSecMSCryptoKeyDataX509GetCrl ()

    PCCRL_CONTEXT       xmlSecMSCryptoKeyDataX509GetCrl     (xmlSecKeyDataPtr data,
                                                             xmlSecSize pos);

Gets a CRL from X509 key data.

`data` : | the pointer to X509 key data.
`pos` : | the desired CRL position.
Returns : | the pointer to CRL or NULL if `pos` is larger than the number of CRLs in `data` or an error occurs.

### xmlSecMSCryptoKeyDataX509GetCrlsSize ()

    xmlSecSize          xmlSecMSCryptoKeyDataX509GetCrlsSize
                                                            (xmlSecKeyDataPtr data);

Gets the number of CRLs in `data`.

`data` : | the pointer to X509 key data.
Returns : | te number of CRLs in `data`.

### xmlSecMSCryptoKeyDataRawX509CertId

    #define             xmlSecMSCryptoKeyDataRawX509CertId

The MSCrypto raw X509 certificate klass.

### xmlSecMSCryptoKeyDataRawX509CertGetKlass ()

    xmlSecKeyDataId     xmlSecMSCryptoKeyDataRawX509CertGetKlass
                                                            (void);

The raw X509 certificates key data klass.

Returns : | raw X509 certificates key data klass.

### xmlSecMSCryptoX509StoreId

    #define             xmlSecMSCryptoX509StoreId

The MSCrypto X509 store klass.

### xmlSecMSCryptoX509StoreGetKlass ()

    xmlSecKeyDataStoreId  xmlSecMSCryptoX509StoreGetKlass   (void);

The MSCrypto X509 certificates key data store klass.

Returns : | pointer to MSCrypto X509 certificates key data store klass.

### xmlSecMSCryptoX509StoreAdoptCert ()

    int                 xmlSecMSCryptoX509StoreAdoptCert    (xmlSecKeyDataStorePtr store,
                                                             PCCERT_CONTEXT cert,
                                                             xmlSecKeyDataType type);

Adds trusted (root) or untrusted certificate to the store.

`store` : | the pointer to X509 key data store klass.
`cert` : | the pointer to PCCERT_CONTEXT X509 certificate.
`type` : | the certificate type (trusted/untrusted).
Returns : | 0 on success or a negative value if an error occurs.

### xmlSecMSCryptoX509StoreAdoptKeyStore ()

    int                 xmlSecMSCryptoX509StoreAdoptKeyStore
                                                            (xmlSecKeyDataStorePtr store,
                                                             HCERTSTORE keyStore);

Adds `keyStore` to the list of key stores.

`store` : | the pointer to X509 key data store klass.
`keyStore` : | the pointer to keys store.
Returns : | 0 on success or a negative value if an error occurs.

### xmlSecMSCryptoX509StoreAdoptTrustedStore ()

    int                 xmlSecMSCryptoX509StoreAdoptTrustedStore
                                                            (xmlSecKeyDataStorePtr store,
                                                             HCERTSTORE trustedStore);

Adds `trustedStore` to the list of trusted certs stores.

`store` : | the pointer to X509 key data store klass.
`trustedStore` : | the pointer to certs store.
Returns : | 0 on success or a negative value if an error occurs.

### xmlSecMSCryptoX509StoreAdoptUntrustedStore ()

    int                 xmlSecMSCryptoX509StoreAdoptUntrustedStore
                                                            (xmlSecKeyDataStorePtr store,
                                                             HCERTSTORE untrustedStore);

Adds `trustedStore` to the list of un-trusted certs stores.

`store` : | the pointer to X509 key data store klass.
`untrustedStore` : | the pointer to certs store.
Returns : | 0 on success or a negative value if an error occurs.

### xmlSecMSCryptoX509StoreEnableSystemTrustedCerts ()

    void                xmlSecMSCryptoX509StoreEnableSystemTrustedCerts
                                                            (xmlSecKeyDataStorePtr store,
                                                             int val);

Enables/disables the system trusted certs.

`store` : | the pointer to X509 key data store klass.
`val` : | the enable/disable flag