/** ** abac_util_cert.c ** utility code related process/handling of certificate_t **/ #include #include #include #include #include #include #include #include #include #include #include #include #include #include "abac_util.h" static int debug=0; char *cert_get_keyid(certificate_t *cert) { // get the keyid x509_t *x509 = (x509_t *)cert; chunk_t keyid = x509->get_subjectKeyIdentifier(x509); chunk_t string = chunk_to_hex(keyid, NULL, 0); return (char *)string.ptr; } certificate_t *cert_get_id_cert_from_file(char *filename) { certificate_t *cert = lib->creds->create(lib->creds, CRED_CERTIFICATE, CERT_X509, BUILD_FROM_FILE, filename, BUILD_X509_FLAG, X509_AA, // attribute authority, dumb BUILD_END ); return cert; } certificate_t *cert_get_id_cert_from_chunk(chunk_t chunk) { certificate_t *cert = lib->creds->create(lib->creds, CRED_CERTIFICATE, CERT_X509, BUILD_BLOB_ASN1_DER, chunk, BUILD_X509_FLAG, X509_AA, BUILD_END ); return cert; } certificate_t *cert_get_id_cert_from_pem_chunk(chunk_t chunk) { certificate_t *cert = lib->creds->create(lib->creds, CRED_CERTIFICATE, CERT_X509, BUILD_BLOB_PEM, chunk, BUILD_X509_FLAG, X509_AA, BUILD_END ); return cert; } certificate_t *cert_get_attr_cert_from_file(char *filename) { certificate_t *cert = lib->creds->create(lib->creds, CRED_CERTIFICATE, CERT_X509_AC, BUILD_FROM_FILE, filename, BUILD_END ); return cert; } certificate_t *cert_get_attr_cert_from_chunk(chunk_t chunk) { certificate_t *cert = lib->creds->create(lib->creds, CRED_CERTIFICATE, CERT_X509_AC, BUILD_BLOB_ASN1_DER, chunk, BUILD_END ); return cert; }