### Interface

# Gcr Certificate

#### Description [src]

    interface Gcr.Certificate : GObject.Object

An interface that represents an X.509 certificate.

Objects can implement this interface to make a certificate usable with the GCR library.

Various methods are available to parse out relevant bits of the certificate. However no verification of the validity of a certificate is done here. Use your favorite crypto library to do this.

You can use `GcrSimpleCertificate` to simply load a certificate for which you already have the raw certificate data.

The `GcrCertificate` interface has several properties that must be implemented. You can use a mixin to implement these properties if desired. See the `gcr_certificate_mixin_class_init()` and `gcr_certificate_mixin_get_property()` functions.

#### Prerequisite

In order to implement Certificate, your type must inherit from`GObject`.

#### Implementations

- GcrPkcs11Certificate
- GcrSimpleCertificate

#### Functions

###### gcr_certificate_mixin_class_init

Initialize the certificate mixin for the class. This mixin implements the various required properties for the certificate.

###### gcr_certificate_mixin_get_property

Implementation to get various required certificate properties. This should be called from your derived class get_property function, or used as a get_property virtual function.

#### Instance methods

###### gcr_certificate_get_basic_constraints

Get the basic constraints for the certificate if present. If `FALSE` is returned then no basic constraints are present and the `is_ca` and `path_len` arguments are not changed.

###### gcr_certificate_get_der_data

Gets the raw DER data for an X.509 certificate.

###### gcr_certificate_get_expiry_date

Get the expiry date of this certificate.

###### gcr_certificate_get_fingerprint

Calculate the fingerprint for this certificate.

###### gcr_certificate_get_fingerprint_hex

Calculate the fingerprint for this certificate, and return it as a hex string.

###### gcr_certificate_get_interface_elements

Get the list of sections from the certificate that can be shown to the user interface.

###### gcr_certificate_get_issued_date

Get the issued date of this certificate.

###### gcr_certificate_get_issuer_cn

Get the common name of the issuer of this certificate.

###### gcr_certificate_get_issuer_dn

Get the full issuer DN of the certificate as a (mostly) readable string.

###### gcr_certificate_get_issuer_name

Get a name to represent the issuer of this certificate.

###### gcr_certificate_get_issuer_part

Get a part of the DN of the issuer of this certificate.

###### gcr_certificate_get_issuer_raw

Get the raw DER data for the issuer DN of the certificate.

###### gcr_certificate_get_key_size

Get the key size in bits of the public key represented by this certificate.

###### gcr_certificate_get_serial_number

Get the raw binary serial number of the certificate.

###### gcr_certificate_get_serial_number_hex

Get the serial number of the certificate as a hex string.

###### gcr_certificate_get_subject_cn

Get the common name of the subject of this certificate.

###### gcr_certificate_get_subject_dn

Get the full subject DN of the certificate as a (mostly) readable string.

###### gcr_certificate_get_subject_name

Get a name to represent the subject of this certificate.

###### gcr_certificate_get_subject_part

Get a part of the DN of the subject of this certificate.

###### gcr_certificate_get_subject_raw

Get the raw DER data for the subject DN of the certificate.

###### gcr_certificate_get_version

Get the version of the X.509 certificate.

###### gcr_certificate_is_issuer

Check if `issuer` could be the issuer of this certificate. This is done by comparing the relevant subject and issuer fields. No signature check is done. Proper verification of certificates must be done via a crypto library.

###### gcr_certificate_mixin_emit_notify

Implementers of the `GcrCertificate` mixin should call this function to notify when the certificate has changed to emit notifications on the various properties.

#### Properties

###### Gcr.Certificate:description

A readable description for this certificate.

###### Gcr.Certificate:expiry-date

The expiry date of the certificate.

###### Gcr.Certificate:issuer-name

Common name part of the certificate issuer.

###### Gcr.Certificate:label

A readable label for this certificate.

###### Gcr.Certificate:subject-name

No description available.

#### Interface structure

    struct GcrCertificateIface {
      GTypeInterface parent;
      const guint8* (* get_der_data) (
        GcrCertificate* self,
        gsize* n_data
      );

    }

The interface that implementors of `GcrCertificate` must implement.

###### Interface members

`parent` |
    GTypeInterface
| The parent interface type.
`get_der_data` |
    const guint8* (* get_der_data) (
        GcrCertificate* self,
        gsize* n_data
      )
| A method which returns the RAW der data of the certificate.

#### Virtual methods

###### Gcr.Certificate.get_der_data

Gets the raw DER data for an X.509 certificate.