9#ifndef BOTAN_P11_X509_H_
10#define BOTAN_P11_X509_H_
12#include <botan/p11_object.h>
14#if defined(BOTAN_HAS_X509_CERTIFICATES)
16#include <botan/x509cert.h>
32 X509_CertificateProperties(
const std::vector<uint8_t>& subject,
const std::vector<uint8_t>& value);
34 X509_CertificateProperties(
const X509_Certificate& cert) :
35 X509_CertificateProperties(cert.raw_subject_dn(), cert.
BER_encode())
39 inline void set_id(
const std::vector<uint8_t>&
id)
41 add_binary(AttributeType::Id,
id);
45 inline void set_issuer(
const std::vector<uint8_t>& issuer)
47 add_binary(AttributeType::Issuer, issuer);
51 inline void set_serial(
const std::vector<uint8_t>& serial)
53 add_binary(AttributeType::SerialNumber, serial);
57 inline void set_subject_pubkey_hash(
const std::vector<uint8_t>&
hash)
59 add_binary(AttributeType::HashOfSubjectPublicKey,
hash);
63 inline void set_issuer_pubkey_hash(
const std::vector<uint8_t>&
hash)
65 add_binary(AttributeType::HashOfIssuerPublicKey,
hash);
69 inline void set_hash_alg(MechanismType alg)
71 add_numeric(AttributeType::NameHashAlgorithm,
static_cast<Ulong>(alg));
75 inline const std::vector<uint8_t>& subject()
const
81 inline const std::vector<uint8_t>& value()
const
87 const std::vector<uint8_t> m_subject;
88 const std::vector<uint8_t> m_value;
102 PKCS11_X509_Certificate(Session& session, ObjectHandle handle);
109 PKCS11_X509_Certificate(Session& session,
const X509_CertificateProperties& props);
int(* final)(unsigned char *, CTX *)
#define BOTAN_PUBLIC_API(maj, min)
secure_vector< uint8_t > BER_encode(const Private_Key &key)