CCF
Loading...
Searching...
No Matches
Public Types | Public Member Functions | List of all members
ccf::crypto::KeyPair Class Referenceabstract

#include <key_pair.h>

Inherited by ccf::crypto::KeyPair_OpenSSL.

Public Types

enum class  Signer { SUBJECT = 0 , ISSUER = 1 }
 

Public Member Functions

virtual ~KeyPair ()=default
 
virtual Pem private_key_pem () const =0
 
virtual Pem public_key_pem () const =0
 
virtual std::vector< uint8_t > public_key_der () const =0
 
virtual std::vector< uint8_t > private_key_der () const =0
 
virtual bool verify (const std::vector< uint8_t > &contents, const std::vector< uint8_t > &signature)=0
 
virtual bool verify (const uint8_t *contents, size_t contents_size, const uint8_t *signature, size_t signature_size)=0
 
virtual std::vector< uint8_t > sign_hash (const uint8_t *hash, size_t hash_size) const =0
 
virtual int sign_hash (const uint8_t *hash, size_t hash_size, size_t *sig_size, uint8_t *sig) const =0
 
virtual std::vector< uint8_t > sign (std::span< const uint8_t > d, MDType md_type={}) const =0
 
virtual Pem create_csr (const std::string &subject_name, const std::vector< SubjectAltName > &subject_alt_names, const std::optional< Pem > &public_key=std::nullopt) const =0
 
Pem create_csr (const std::string &subject_name) const
 
virtual std::vector< uint8_t > create_csr_der (const std::string &subject_name, const std::vector< SubjectAltName > &subject_alt_names, const std::optional< Pem > &public_key=std::nullopt) const =0
 
virtual Pem sign_csr (const Pem &issuer_cert, const Pem &signing_request, const std::string &valid_from, const std::string &valid_to, bool ca=false, Signer signer=Signer::SUBJECT) const
 
Pem self_sign (const std::string &name, const std::string &valid_from, const std::string &valid_to, const std::optional< SubjectAltName > subject_alt_name=std::nullopt, bool ca=true) const
 
Pem self_sign (const std::string &subject_name, const std::string &valid_from, const std::string &valid_to, const std::vector< SubjectAltName > &subject_alt_names, bool ca=true) const
 
virtual std::vector< uint8_t > derive_shared_secret (const PublicKey &peer_key)=0
 
virtual std::vector< uint8_t > public_key_raw () const =0
 
virtual CurveID get_curve_id () const =0
 
virtual PublicKey::Coordinates coordinates () const =0
 
virtual JsonWebKeyECPrivate private_key_jwk (const std::optional< std::string > &kid=std::nullopt) const =0
 

Member Enumeration Documentation

◆ Signer

enum class ccf::crypto::KeyPair::Signer
strong
Enumerator
SUBJECT 
ISSUER 

Constructor & Destructor Documentation

◆ ~KeyPair()

virtual ccf::crypto::KeyPair::~KeyPair ( )
virtualdefault

Member Function Documentation

◆ coordinates()

virtual PublicKey::Coordinates ccf::crypto::KeyPair::coordinates ( ) const
pure virtual

◆ create_csr() [1/2]

Pem ccf::crypto::KeyPair::create_csr ( const std::string &  subject_name) const
inline

◆ create_csr() [2/2]

virtual Pem ccf::crypto::KeyPair::create_csr ( const std::string &  subject_name,
const std::vector< SubjectAltName > &  subject_alt_names,
const std::optional< Pem > &  public_key = std::nullopt 
) const
pure virtual

◆ create_csr_der()

virtual std::vector< uint8_t > ccf::crypto::KeyPair::create_csr_der ( const std::string &  subject_name,
const std::vector< SubjectAltName > &  subject_alt_names,
const std::optional< Pem > &  public_key = std::nullopt 
) const
pure virtual

◆ derive_shared_secret()

virtual std::vector< uint8_t > ccf::crypto::KeyPair::derive_shared_secret ( const PublicKey peer_key)
pure virtual

◆ get_curve_id()

virtual CurveID ccf::crypto::KeyPair::get_curve_id ( ) const
pure virtual

◆ private_key_der()

virtual std::vector< uint8_t > ccf::crypto::KeyPair::private_key_der ( ) const
pure virtual

◆ private_key_jwk()

virtual JsonWebKeyECPrivate ccf::crypto::KeyPair::private_key_jwk ( const std::optional< std::string > &  kid = std::nullopt) const
pure virtual

◆ private_key_pem()

virtual Pem ccf::crypto::KeyPair::private_key_pem ( ) const
pure virtual

◆ public_key_der()

virtual std::vector< uint8_t > ccf::crypto::KeyPair::public_key_der ( ) const
pure virtual

◆ public_key_pem()

virtual Pem ccf::crypto::KeyPair::public_key_pem ( ) const
pure virtual

◆ public_key_raw()

virtual std::vector< uint8_t > ccf::crypto::KeyPair::public_key_raw ( ) const
pure virtual

◆ self_sign() [1/2]

Pem ccf::crypto::KeyPair::self_sign ( const std::string &  name,
const std::string &  valid_from,
const std::string &  valid_to,
const std::optional< SubjectAltName subject_alt_name = std::nullopt,
bool  ca = true 
) const
inline

◆ self_sign() [2/2]

Pem ccf::crypto::KeyPair::self_sign ( const std::string &  subject_name,
const std::string &  valid_from,
const std::string &  valid_to,
const std::vector< SubjectAltName > &  subject_alt_names,
bool  ca = true 
) const
inline

◆ sign()

virtual std::vector< uint8_t > ccf::crypto::KeyPair::sign ( std::span< const uint8_t >  d,
MDType  md_type = {} 
) const
pure virtual

◆ sign_csr()

virtual Pem ccf::crypto::KeyPair::sign_csr ( const Pem issuer_cert,
const Pem signing_request,
const std::string &  valid_from,
const std::string &  valid_to,
bool  ca = false,
Signer  signer = Signer::SUBJECT 
) const
inlinevirtual

◆ sign_hash() [1/2]

virtual std::vector< uint8_t > ccf::crypto::KeyPair::sign_hash ( const uint8_t *  hash,
size_t  hash_size 
) const
pure virtual

◆ sign_hash() [2/2]

virtual int ccf::crypto::KeyPair::sign_hash ( const uint8_t *  hash,
size_t  hash_size,
size_t *  sig_size,
uint8_t *  sig 
) const
pure virtual

◆ verify() [1/2]

virtual bool ccf::crypto::KeyPair::verify ( const std::vector< uint8_t > &  contents,
const std::vector< uint8_t > &  signature 
)
pure virtual

◆ verify() [2/2]

virtual bool ccf::crypto::KeyPair::verify ( const uint8_t *  contents,
size_t  contents_size,
const uint8_t *  signature,
size_t  signature_size 
)
pure virtual

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