int main(void) { int rc; gnutls_certificate_credentials_t crt; gnutls_datum_t crldatum = { (uint8_t *) crl, strlen(crl) }; gnutls_x509_crl_t crl; rc = global_init(); if (rc) { printf("global_init rc %d: %s\n", rc, gnutls_strerror(rc)); return 1; } rc = gnutls_certificate_allocate_credentials(&crt); if (rc) { printf ("gnutls_certificate_allocate_credentials rc %d: %s\n", rc, gnutls_strerror(rc)); return 1; } rc = gnutls_certificate_set_x509_crl_mem(crt, &crldatum, GNUTLS_X509_FMT_PEM); if (rc != 1) { printf("gnutls_certificate_set_x509_crl_mem num %d\n", rc); return 1; } rc = gnutls_x509_crl_init(&crl); if (rc) { printf("gnutls_x509_crl_init rc %d: %s\n", rc, gnutls_strerror(rc)); return 1; } rc = gnutls_x509_crl_import(crl, &crldatum, GNUTLS_X509_FMT_PEM); if (rc) { printf("gnutls_x509_crl_import rc %d: %s\n", rc, gnutls_strerror(rc)); return 1; } rc = gnutls_certificate_set_x509_crl(crt, &crl, 1); if (rc < 0) { printf("gnutls_certificate_set_x509_crl rc %d: %s\n", rc, gnutls_strerror(rc)); return 1; } gnutls_x509_crl_deinit(crl); gnutls_certificate_free_credentials(crt); gnutls_global_deinit(); return 0; }
void certificate_credentials::set_x509_crl (const gnutls_datum_t & CRL, gnutls_x509_crt_fmt_t type) { RETWRAP (gnutls_certificate_set_x509_crl_mem (cred, &CRL, type)); }