|
| result_t | useKey (const std::string &name, const std::string &pin) |
| | Load the actual private key.
|
| |
| virtual result_t | connectToKey (int idx, bool priv)=0 |
| | loads key for encryption/decryption
|
| |
| virtual result_t | usePSS (int idx) |
| | whether to use PSS RSA padding
|
| |
| virtual result_t | decryptRSA (std::vector< uint8_t > &dst, const std::vector< uint8_t > &data, bool oaep, unsigned int idx) |
| | decryptRSA
|
| |
| virtual result_t | deriveConcatKDF (std::vector< uint8_t > &dst, const std::vector< uint8_t > &public_key, const std::string &digest, const std::vector< uint8_t > &algorithm_id, const std::vector< uint8_t > &party_uinfo, const std::vector< uint8_t > &party_vinfo, unsigned int idx) |
| | Derive key by ConcatKDF algorithm.
|
| |
| virtual result_t | deriveHMACExtract (std::vector< uint8_t > &dst, const std::vector< uint8_t > &public_key, const std::vector< uint8_t > &salt, unsigned int idx) |
| | Get CDoc2 KEK pre-master from ECC key.
|
| |
| virtual result_t | sign (std::vector< uint8_t > &dst, HashAlgorithm algorithm, const std::vector< uint8_t > &digest, unsigned int idx) |
| | sign Sign message with given algorithm
|
| |
| | WinBackend (const std::string &provider) |
| |
| virtual | ~WinBackend () |
| |
| | CryptoBackend ()=default |
| |
| virtual | ~CryptoBackend () noexcept=default |
| |
| | CryptoBackend (const CryptoBackend &)=delete |
| |
| CryptoBackend & | operator= (const CryptoBackend &)=delete |
| |
| | CDOC_DISABLE_MOVE (CryptoBackend) |
| |
| virtual std::string | getLastErrorStr (result_t code) const |
| |
| virtual result_t | random (std::vector< uint8_t > &dst, unsigned int size) |
| | Fill vector with random bytes.
|
| |
| virtual result_t | deriveECDH1 (std::vector< uint8_t > &dst, const std::vector< uint8_t > &public_key, unsigned int idx) |
| | Derive shared secret.
|
| |
| virtual result_t | decryptRSA (std::vector< uint8_t > &dst, const std::vector< uint8_t > &data, bool oaep, unsigned int idx) |
| | decryptRSA
|
| |
| virtual result_t | deriveConcatKDF (std::vector< uint8_t > &dst, const std::vector< uint8_t > &public_key, const std::string &digest, const std::vector< uint8_t > &algorithm_id, const std::vector< uint8_t > &party_uinfo, const std::vector< uint8_t > &party_vinfo, unsigned int idx) |
| | Derive key by ConcatKDF algorithm.
|
| |
| virtual result_t | deriveHMACExtract (std::vector< uint8_t > &dst, const std::vector< uint8_t > &public_key, const std::vector< uint8_t > &salt, unsigned int idx) |
| | Get CDoc2 KEK pre-master from ECC key.
|
| |
| virtual result_t | getSecret (std::vector< uint8_t > &dst, unsigned int idx) |
| | Get secret value (either password or symmetric key) for a lock.
|
| |
| virtual result_t | getKeyMaterial (std::vector< uint8_t > &dst, const std::vector< uint8_t > &pw_salt, int32_t kdf_iter, unsigned int idx) |
| | Get CDoc2 key material for HKDF expansion.
|
| |
| virtual result_t | extractHKDF (std::vector< uint8_t > &dst, const std::vector< uint8_t > &salt, const std::vector< uint8_t > &pw_salt, int32_t kdf_iter, unsigned int idx) |
| | Get CDoc2 KEK pre-master from symmetric key.
|
| |
| virtual result_t | sign (std::vector< uint8_t > &dst, HashAlgorithm algorithm, const std::vector< uint8_t > &digest, unsigned int idx) |
| | sign Sign message with given algorithm
|
| |
| virtual int | test (libcdoc::Lock &lock) |
| |
A convenience class for Windows NCrypt cryptographic operations.
It has default implementations of all CryptoBackend methods. Instead the user has to implement connectToKey method. The latter should find the correct private or secret key for the lock and then call useKey to load the key.