scclib
Stable Cloud Computing C++ Library
Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
scc::crypto::ExtKeyUsage Struct Reference

Key usage. More...

#include <cert.h>

Inheritance diagram for scc::crypto::ExtKeyUsage:
Inheritance graph
[legend]
Collaboration diagram for scc::crypto::ExtKeyUsage:
Collaboration graph
[legend]

Public Member Functions

 ExtKeyUsage (bool crit=false)
 
std::string name () const
 Return the name of the extension.
 
virtual std::string str (bool=false) const
 Print to string, optionally printing the value.
 
virtual void parse ()
 Parse value into the the local sub-class data.
 
virtual void dump ()
 Dump sub-class data into the value.
 
virtual bool implemented () const
 Is this implemented (sub-classed)? More...
 
void clear ()
 
- Public Member Functions inherited from scc::crypto::ExtBase
 ExtBase (bool crit=false)
 
BasePtr dump_seq ()
 Dump the extension into an Extension sequence.
 

Static Public Member Functions

static bool is_castable (ExtBasePtr b)
 
static ExtKeyUsagecast (ExtBasePtr b)
 
- Static Public Member Functions inherited from scc::crypto::ExtBase
static ExtBasePtr create (BasePtr)
 Create an extension. More...
 
static oid_value find_oid (ExtType)
 Find the oid associated with the extension type.
 

Public Attributes

bool digital_signature
 Public key is used for verifying digital signatures other than certificates and CRLs.
 
bool content_commitment
 Public key is used for verifying digital signatures in a content commitment (non-repudiation) service.
 
bool key_encipherment
 Public key is used to encipher private keys, e.g. in key transport.
 
bool data_encipherment
 Public key is used to encipher data. This should be rare, as most applications will use key transport to establish a symmetric key.
 
bool key_agreement
 Public key is used for key agreement, e.g. Diffie-Hellman key management.
 
bool key_cert_sign
 Public key is used for verifying signatures on public key certificates. ExtBasicConstraints conditional_access must be true if this is true.
 
bool crl_sign
 Public key is used for verifying certificates on certificate revocation lists, e.g. CRLs.
 
bool encipher_only
 If key_agreement set, public key can only be used for enciphering data while performing key agreement.
 
bool decipher_only
 If key_agreement set, public key can only be used for deciphering data while performing key agreement.
 
- Public Attributes inherited from scc::crypto::ExtBase
oid_value oid
 The oid of the extension.
 
bool critical
 Is the extension marked critical? If a CRL contains a critical extension that cannot be processed, it must not be used to determine the status of certificates.
 
BasePtr value
 Parsed extension value.
 

Detailed Description

Key usage.

https://tools.ietf.org/html/rfc5280#section-4.2.1.3

KeyUsage ::= BIT STRING { digitalSignature (0), nonRepudiation (1), – recent editions of X.509 have – renamed this bit to contentCommitment keyEncipherment (2), dataEncipherment (3), keyAgreement (4), keyCertSign (5), cRLSign (6), encipherOnly (7), decipherOnly (8) }

Definition at line 852 of file cert.h.

Member Function Documentation

◆ implemented()

virtual bool scc::crypto::ExtKeyUsage::implemented ( ) const
inlinevirtual

Is this implemented (sub-classed)?

If an extension is marked critical, but is unrecognized, it is not recommended for the service to proceed using the certificate.

Reimplemented from scc::crypto::ExtBase.

Definition at line 865 of file cert.h.


The documentation for this struct was generated from the following file: