Botan 3.2.0
Crypto and TLS for C&
Public Member Functions | List of all members
Botan::PKCS11::CertificateProperties Class Reference

Common attributes of all certificate objects. More...

#include <p11_object.h>

Inheritance diagram for Botan::PKCS11::CertificateProperties:
Botan::PKCS11::StorageObjectProperties Botan::PKCS11::ObjectProperties Botan::PKCS11::AttributeContainer

Public Member Functions

template<typename TAlloc >
void add_binary (AttributeType attribute, const std::vector< uint8_t, TAlloc > &binary)
 
void add_binary (AttributeType attribute, const uint8_t *value, size_t length)
 
void add_bool (AttributeType attribute, bool value)
 
void add_class (ObjectClass object_class)
 
void add_string (AttributeType attribute, std::string_view value)
 
const std::vector< Attribute > & attributes () const
 
CertificateType cert_type () const
 
 CertificateProperties (CertificateType cert_type)
 
size_t count () const
 
Attributedata () const
 
ObjectClass object_class () const
 
void set_category (CertificateCategory category)
 
void set_check_value (const std::vector< uint8_t > &checksum)
 
void set_copyable (bool value)
 
void set_destroyable (bool value)
 
void set_end_date (Date date)
 
void set_label (std::string_view label)
 
void set_modifiable (bool value)
 
void set_private (bool value)
 
void set_public_key_info (const std::vector< uint8_t > &pubkey_info)
 
void set_start_date (Date date)
 
void set_token (bool value)
 
void set_trusted (bool value)
 

Detailed Description

Common attributes of all certificate objects.

Definition at line 210 of file p11_object.h.

Constructor & Destructor Documentation

◆ CertificateProperties()

Botan::PKCS11::CertificateProperties::CertificateProperties ( CertificateType  cert_type)
Parameters
cert_typetype of certificate

Definition at line 117 of file p11_object.cpp.

117 :
119 add_numeric(AttributeType::CertificateType, static_cast<CK_CERTIFICATE_TYPE>(m_cert_type));
120}
CertificateType cert_type() const
Definition p11_object.h:247
StorageObjectProperties(ObjectClass object_class)
CK_ULONG CK_CERTIFICATE_TYPE
Definition pkcs11t.h:393

References Botan::PKCS11::CertificateType.

Member Function Documentation

◆ add_binary() [1/2]

template<typename TAlloc >
void Botan::PKCS11::AttributeContainer::add_binary ( AttributeType  attribute,
const std::vector< uint8_t, TAlloc > &  binary 
)
inlineinherited

Add a binary attribute (e.g. CKA_ID / AttributeType::Id).

Parameters
attributeattribute type
binarybinary attribute value to add

Definition at line 79 of file p11_object.h.

79 {
80 add_binary(attribute, binary.data(), binary.size());
81 }
void add_binary(AttributeType attribute, const uint8_t *value, size_t length)

◆ add_binary() [2/2]

void Botan::PKCS11::AttributeContainer::add_binary ( AttributeType  attribute,
const uint8_t *  value,
size_t  length 
)
inherited

Add a binary attribute (e.g. CKA_ID / AttributeType::Id).

Parameters
attributeattribute type
valuebinary attribute value to add
lengthsize of the binary attribute value in bytes

Definition at line 30 of file p11_object.cpp.

30 {
31 m_vectors.push_back(secure_vector<uint8_t>(value, value + length));
32 add_attribute(attribute, reinterpret_cast<const uint8_t*>(m_vectors.back().data()), static_cast<Ulong>(length));
33}
CK_ULONG Ulong
Definition p11.h:814

Referenced by Botan::PKCS11::Object::search(), and Botan::PKCS11::Object::search().

◆ add_bool()

void Botan::PKCS11::AttributeContainer::add_bool ( AttributeType  attribute,
bool  value 
)
inherited

Add a bool attribute (e.g. CKA_SENSITIVE / AttributeType::Sensitive).

Parameters
attributeattribute type
valueboolean value to add

Definition at line 35 of file p11_object.cpp.

35 {
36 m_numerics.push_back(value ? True : False);
37 add_attribute(attribute, reinterpret_cast<uint8_t*>(&m_numerics.back()), sizeof(Bbool));
38}
CK_BBOOL Bbool
Definition p11.h:812
const Bbool True
Definition p11.h:833
const Bbool False
Definition p11.h:834

References Botan::PKCS11::False, and Botan::PKCS11::True.

◆ add_class()

void Botan::PKCS11::AttributeContainer::add_class ( ObjectClass  object_class)
inherited

Add a class attribute (CKA_CLASS / AttributeType::Class).

Parameters
object_classclass attribute to add

Definition at line 18 of file p11_object.cpp.

18 {
19 m_numerics.emplace_back(static_cast<uint64_t>(object_class));
20 add_attribute(
21 AttributeType::Class, reinterpret_cast<uint8_t*>(&m_numerics.back()), static_cast<Ulong>(sizeof(ObjectClass)));
22}

References Botan::PKCS11::Class.

Referenced by Botan::PKCS11::AttributeContainer::AttributeContainer().

◆ add_string()

void Botan::PKCS11::AttributeContainer::add_string ( AttributeType  attribute,
std::string_view  value 
)
inherited

Add a string attribute (e.g. CKA_LABEL / AttributeType::Label).

Parameters
attributeattribute type
valuestring value to add

Definition at line 24 of file p11_object.cpp.

24 {
25 m_strings.push_back(std::string(value));
26 add_attribute(
27 attribute, reinterpret_cast<const uint8_t*>(m_strings.back().data()), static_cast<Ulong>(value.size()));
28}

Referenced by Botan::PKCS11::Object::search(), and Botan::PKCS11::Object::search().

◆ attributes()

const std::vector< Attribute > & Botan::PKCS11::AttributeContainer::attributes ( ) const
inlineinherited
Returns
the attributes this container contains

Definition at line 44 of file p11_object.h.

44{ return m_attributes; }

Referenced by Botan::PKCS11::Object::search(), Botan::PKCS11::Object::search(), and Botan::PKCS11::Object::search().

◆ cert_type()

CertificateType Botan::PKCS11::CertificateProperties::cert_type ( ) const
inline
Returns
the certificate type of this certificate object

Definition at line 247 of file p11_object.h.

247{ return m_cert_type; }

◆ count()

size_t Botan::PKCS11::AttributeContainer::count ( ) const
inlineinherited
Returns
the number of attributes in this container

Definition at line 50 of file p11_object.h.

50{ return m_attributes.size(); }

Referenced by Botan::PKCS11::Object::copy(), and Botan::PKCS11::Object::Object().

◆ data()

Attribute * Botan::PKCS11::AttributeContainer::data ( ) const
inlineinherited
Returns
raw attribute data

Definition at line 47 of file p11_object.h.

47{ return const_cast<Attribute*>(m_attributes.data()); }
CK_ATTRIBUTE Attribute
Definition p11.h:823

Referenced by Botan::PKCS11::Object::copy(), and Botan::PKCS11::Object::Object().

◆ object_class()

ObjectClass Botan::PKCS11::ObjectProperties::object_class ( ) const
inlineinherited
Returns
the object class of this object

Definition at line 158 of file p11_object.h.

158{ return m_object_class; }

◆ set_category()

void Botan::PKCS11::CertificateProperties::set_category ( CertificateCategory  category)
inline
Parameters
categoryone of CertificateCategory

Definition at line 219 of file p11_object.h.

219 {
220 add_numeric(AttributeType::CertificateCategory, static_cast<CK_CERTIFICATE_CATEGORY>(category));
221 }
CK_ULONG CK_CERTIFICATE_CATEGORY
Definition pkcs11t.h:1923

◆ set_check_value()

void Botan::PKCS11::CertificateProperties::set_check_value ( const std::vector< uint8_t > &  checksum)
inline
Parameters
checksumthe value of this attribute is derived from the certificate by taking the first three bytes of the SHA - 1 hash of the certificate object's CKA_VALUE attribute

Definition at line 227 of file p11_object.h.

◆ set_copyable()

void Botan::PKCS11::StorageObjectProperties::set_copyable ( bool  value)
inlineinherited
Parameters
valueif true the object can be copied using C_CopyObject

Definition at line 186 of file p11_object.h.

void add_bool(AttributeType attribute, bool value)

◆ set_destroyable()

void Botan::PKCS11::StorageObjectProperties::set_destroyable ( bool  value)
inlineinherited
Parameters
valueif true the object can be destroyed using C_DestroyObject

Definition at line 189 of file p11_object.h.

◆ set_end_date()

void Botan::PKCS11::CertificateProperties::set_end_date ( Date  date)
inline
Parameters
dateend date for the certificate

Definition at line 237 of file p11_object.h.

237 {
238 add_binary(AttributeType::EndDate, reinterpret_cast<uint8_t*>(&date), sizeof(Date));
239 }
CK_DATE Date
Definition p11.h:829

◆ set_label()

void Botan::PKCS11::StorageObjectProperties::set_label ( std::string_view  label)
inlineinherited
Parameters
labeldescription of the object (RFC2279 string)

Definition at line 171 of file p11_object.h.

void add_string(AttributeType attribute, std::string_view value)

◆ set_modifiable()

void Botan::PKCS11::StorageObjectProperties::set_modifiable ( bool  value)
inlineinherited
Parameters
valueif true the object can be modified, otherwise it is read-only

Definition at line 183 of file p11_object.h.

◆ set_private()

void Botan::PKCS11::StorageObjectProperties::set_private ( bool  value)
inlineinherited
Parameters
valueif true the object is a private object; otherwise the object is a public object When private, a user may not access the object until the user has been authenticated to the token

Definition at line 180 of file p11_object.h.

◆ set_public_key_info()

void Botan::PKCS11::CertificateProperties::set_public_key_info ( const std::vector< uint8_t > &  pubkey_info)
inline
Parameters
pubkey_infoDER-encoding of the SubjectPublicKeyInfo for the public key contained in this certificate

Definition at line 242 of file p11_object.h.

◆ set_start_date()

void Botan::PKCS11::CertificateProperties::set_start_date ( Date  date)
inline
Parameters
datestart date for the certificate

Definition at line 232 of file p11_object.h.

232 {
233 add_binary(AttributeType::StartDate, reinterpret_cast<uint8_t*>(&date), sizeof(Date));
234 }

◆ set_token()

void Botan::PKCS11::StorageObjectProperties::set_token ( bool  value)
inlineinherited
Parameters
valueif true the object is a token object; otherwise the object is a session object

Definition at line 174 of file p11_object.h.

◆ set_trusted()

void Botan::PKCS11::CertificateProperties::set_trusted ( bool  value)
inline
Parameters
valuethe certificate can be trusted for the application that it was created (can only be set to true by SO user)

Definition at line 216 of file p11_object.h.


The documentation for this class was generated from the following files: