scclib
Stable Cloud Computing C++ Library
Classes | Typedefs | Enumerations | Functions

X.509 and RSA certificates. More...

#include <map>
#include <memory>
#include <set>
#include <system_error>
#include <fstream>
#include <algorithm>
#include <crypto/der.h>
#include <crypto/rsa.h>
#include <crypto/ecc.h>
#include <crypto/bignum.h>
Include dependency graph for cert.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  scc::crypto::PublicKeyCert
 Public key information certificate. More...
 
struct  scc::crypto::RsaPublicKeyCert
 RSA public key certificate. More...
 
struct  scc::crypto::RsaPrivateKeyCert
 RSA private key certificate. More...
 
struct  scc::crypto::EcParametersCert
 From: https://tools.ietf.org/html/rfc3279#section-2.3.5. More...
 
struct  scc::crypto::EcPublicKeyCert
 Elliptic curve public key. More...
 
struct  scc::crypto::EcPrivateKeyCert
 Private key certificate utility. More...
 
struct  scc::crypto::DirectoryString
 An x.509 directory string is used to store generic names. More...
 
struct  scc::crypto::RDNComp
 
struct  scc::crypto::RelativeDistinguishedName
 
struct  scc::crypto::GeneralName
 General name. More...
 
struct  scc::crypto::ExtBase
 X.509 extensions. More...
 
struct  scc::crypto::ExtSubjectAlternativeName
 Subject alternative name. More...
 
struct  scc::crypto::ExtAuthorityKeyIdentifier
 Authority key identifier. More...
 
struct  scc::crypto::ExtSubjectKeyIdentifier
 Subject key identifier. More...
 
struct  scc::crypto::ExtIssuerAlternativeName
 Issuer alternative name. More...
 
struct  scc::crypto::ExtBasicConstraints
 Basic constraints. More...
 
struct  scc::crypto::ExtKeyUsage
 Key usage. More...
 
struct  scc::crypto::ExtExtendedKeyUsage
 Extended key usage. More...
 
struct  scc::crypto::X509Cert
 X.509 certificate. More...
 
struct  scc::crypto::CertBundle
 Certificate bundle. More...
 

Typedefs

using scc::crypto::RDNPair = std::pair< oid_value, DirectoryString >
 An x.509 relative distingushed name is a set of attribute / directory string names. More...
 
using scc::crypto::ExtBasePtr = std::shared_ptr< ExtBase >
 

Enumerations

enum  scc::crypto::KeyAlgoType {
  unknown = 0 , scc::crypto::rsa , scc::crypto::ec_p192r1 , scc::crypto::ec_p224r1 ,
  scc::crypto::ec_p256r1 , scc::crypto::ec_p384r1 , scc::crypto::ec_p521r1
}
 Key algorithm type. More...
 
enum class  scc::crypto::AttributeType {
  unknown , name , surname , given_name ,
  generation_qualifier , common_name , locality_name , state_or_province_name ,
  organization_name , organizational_unit_name , title , dn_qualifier ,
  country_name , serial_number , pseudonym , organization_id ,
  street_address , domain_component , email_address
}
 Attribute types. More...
 
enum class  ExtType {
  subject_alternative_name , authority_key_identifier , subject_key_identifier , issuer_alternative_name ,
  basic_constraints , key_usage , extended_key_usage
}
 
enum class  scc::crypto::X509SignatureAlgo : int {
  unknown = 0x0 , rsa_md5 = 0x01 , rsa_sha1 = 0x02 , rsa_sha224 = 0x03 ,
  rsa_sha256 = 0x04 , rsa_sha384 = 0x05 , rsa_sha512 = 0x06 , ecdsa_sha1 = 0x10 ,
  ecdsa_sha224 = 0x20 , ecdsa_sha256 = 0x30 , ecdsa_sha384 = 0x40 , ecdsa_sha512 = 0x50
}
 Signature algorithms for X.509 certificates. More...
 

Functions

std::ostream & operator<< (std::ostream &, const scc::crypto::X509Cert &)
 
std::ostream & operator<< (std::ostream &, const scc::crypto::KeyAlgoType &)
 
std::ostream & operator<< (std::ostream &, const scc::crypto::X509SignatureAlgo &)
 

Detailed Description

X.509 and RSA certificates.

Definition in file cert.h.