diff options
Diffstat (limited to 'src/manager/client-async/client-manager-async-impl.h')
-rw-r--r-- | src/manager/client-async/client-manager-async-impl.h | 301 |
1 files changed, 151 insertions, 150 deletions
diff --git a/src/manager/client-async/client-manager-async-impl.h b/src/manager/client-async/client-manager-async-impl.h index 6975c7c5..c0cfaab5 100644 --- a/src/manager/client-async/client-manager-async-impl.h +++ b/src/manager/client-async/client-manager-async-impl.h @@ -29,165 +29,166 @@ namespace CKM { -class ManagerAsync::Impl -{ +class ManagerAsync::Impl { public: - Impl(); - - NONCOPYABLE(Impl); - - virtual ~Impl(); - - void saveKey( - const ObserverPtr& observer, - const Alias& alias, - const KeyShPtr& key, - const Policy& policy); - void saveCertificate( - const ObserverPtr& observer, - const Alias& alias, - const CertificateShPtr& cert, - const Policy& policy); - void saveData( - const ObserverPtr& observer, - const Alias& alias, - const RawBuffer& data, - const Policy& policy); - void savePKCS12( - const ObserverPtr& observer, - const Alias &alias, - const PKCS12ShPtr &pkcs, - const Policy &keyPolicy, - const Policy &certPolicy); - - void createSignature( - const ObserverPtr& observer, - const Alias& privateKeyAlias, - const Password& password, - const RawBuffer& message, - const CryptoAlgorithm& cAlgorithm); - void verifySignature( - const ObserverPtr& observer, - const Alias& publicKeyOrCertAlias, - const Password& password, - const RawBuffer& message, - const RawBuffer& signature, - const CryptoAlgorithm& cAlgorithm); - - void ocspCheck( - const ObserverPtr& observer, - const CertificateShPtrVector& certificateChainVector); - - void setPermission( - const ObserverPtr& observer, - const Alias& alias, - const Label& accessor, - PermissionMask permissionMask); - - // generic methods - void saveBinaryData( - const ManagerAsync::ObserverPtr& observer, - const Alias& alias, - DataType dataType, - const RawBuffer& rawData, - const Policy& policy); - - void removeAlias( - const ManagerAsync::ObserverPtr& observer, - const Alias &alias); - - void getBinaryData( - const ManagerAsync::ObserverPtr& observer, - const Alias &alias, - DataType sendDataType, - const Password &password); - - void getPKCS12( - const ManagerAsync::ObserverPtr& observer, - const Alias &alias, - const Password &keyPassword, - const Password &certPassword); - - void getBinaryDataAliasVector( - const ManagerAsync::ObserverPtr& observer, - DataType dataType); - - void createKeyPair( - const ManagerAsync::ObserverPtr& observer, - const KeyType key_type, - const int additional_param, - const Alias &privateKeyAlias, - const Alias &publicKeyAlias, - const Policy &policyPrivateKey, - const Policy &policyPublicKey); - - void createKeyAES( - const ManagerAsync::ObserverPtr& observer, - const size_t size, - const Alias &keyAlias, - const Policy &policyKey); - - template <typename T> - void getCertChain( - const ManagerAsync::ObserverPtr& observer, - LogicCommand command, - const CertificateShPtr &certificate, - const T &untrusted, - const T &trusted, - bool useSystemTrustedCertificates) - { - observerCheck(observer); - if (!certificate) { - observer->ReceivedError(CKM_API_ERROR_INPUT_PARAM); - return; - } - try_catch_async([&] { - sendToStorage(observer, - static_cast<int>(command), - m_counter, - certificate->getDER(), - untrusted, - trusted, - useSystemTrustedCertificates); - }, [&observer](int error){ observer->ReceivedError(error);}); - } - - void crypt( - const ObserverPtr& observer, - const CryptoAlgorithm& algo, - const Alias& keyAlias, - const Password& password, - const RawBuffer& input, - bool encryption); + Impl(); + + NONCOPYABLE(Impl); + + virtual ~Impl(); + + void saveKey( + const ObserverPtr &observer, + const Alias &alias, + const KeyShPtr &key, + const Policy &policy); + void saveCertificate( + const ObserverPtr &observer, + const Alias &alias, + const CertificateShPtr &cert, + const Policy &policy); + void saveData( + const ObserverPtr &observer, + const Alias &alias, + const RawBuffer &data, + const Policy &policy); + void savePKCS12( + const ObserverPtr &observer, + const Alias &alias, + const PKCS12ShPtr &pkcs, + const Policy &keyPolicy, + const Policy &certPolicy); + + void createSignature( + const ObserverPtr &observer, + const Alias &privateKeyAlias, + const Password &password, + const RawBuffer &message, + const CryptoAlgorithm &cAlgorithm); + void verifySignature( + const ObserverPtr &observer, + const Alias &publicKeyOrCertAlias, + const Password &password, + const RawBuffer &message, + const RawBuffer &signature, + const CryptoAlgorithm &cAlgorithm); + + void ocspCheck( + const ObserverPtr &observer, + const CertificateShPtrVector &certificateChainVector); + + void setPermission( + const ObserverPtr &observer, + const Alias &alias, + const Label &accessor, + PermissionMask permissionMask); + + // generic methods + void saveBinaryData( + const ManagerAsync::ObserverPtr &observer, + const Alias &alias, + DataType dataType, + const RawBuffer &rawData, + const Policy &policy); + + void removeAlias( + const ManagerAsync::ObserverPtr &observer, + const Alias &alias); + + void getBinaryData( + const ManagerAsync::ObserverPtr &observer, + const Alias &alias, + DataType sendDataType, + const Password &password); + + void getPKCS12( + const ManagerAsync::ObserverPtr &observer, + const Alias &alias, + const Password &keyPassword, + const Password &certPassword); + + void getBinaryDataAliasVector( + const ManagerAsync::ObserverPtr &observer, + DataType dataType); + + void createKeyPair( + const ManagerAsync::ObserverPtr &observer, + const KeyType key_type, + const int additional_param, + const Alias &privateKeyAlias, + const Alias &publicKeyAlias, + const Policy &policyPrivateKey, + const Policy &policyPublicKey); + + void createKeyAES( + const ManagerAsync::ObserverPtr &observer, + const size_t size, + const Alias &keyAlias, + const Policy &policyKey); + + template <typename T> + void getCertChain( + const ManagerAsync::ObserverPtr &observer, + LogicCommand command, + const CertificateShPtr &certificate, + const T &untrusted, + const T &trusted, + bool useSystemTrustedCertificates) + { + observerCheck(observer); + + if (!certificate) { + observer->ReceivedError(CKM_API_ERROR_INPUT_PARAM); + return; + } + + try_catch_async([&]() { + sendToStorage(observer, static_cast<int>(command), m_counter, + certificate->getDER(), untrusted, trusted, useSystemTrustedCertificates); + }, [&observer](int error) { + observer->ReceivedError(error); + }); + } + + void crypt( + const ObserverPtr &observer, + const CryptoAlgorithm &algo, + const Alias &keyAlias, + const Password &password, + const RawBuffer &input, + bool encryption); private: - template <typename... Args> - void sendToStorage(const ManagerAsync::ObserverPtr& observer, const Args&... args) - { - m_counter++; // yes, it changes m_counter argument passed in args + template <typename... Args> + void sendToStorage(const ManagerAsync::ObserverPtr &observer, + const Args &... args) + { + m_counter++; // yes, it changes m_counter argument passed in args - auto send = MessageBuffer::Serialize(args...); - thread()->sendMessage(AsyncRequest(observer, - SERVICE_SOCKET_CKM_STORAGE, - send.Pop(), - m_counter)); - } + auto send = MessageBuffer::Serialize(args...); + thread()->sendMessage(AsyncRequest(observer, + SERVICE_SOCKET_CKM_STORAGE, + send.Pop(), + m_counter)); + } - void observerCheck(const ManagerAsync::ObserverPtr& observer); + void observerCheck(const ManagerAsync::ObserverPtr &observer); - typedef std::unique_ptr<ConnectionThread> ConnectionThreadPtr; + typedef std::unique_ptr<ConnectionThread> ConnectionThreadPtr; - ConnectionThreadPtr& thread() { - if (!m_thread || m_thread->finished()) { - m_thread.reset(new ConnectionThread()); - m_thread->run(); - } - return m_thread; - } + ConnectionThreadPtr &thread() + { + if (!m_thread || m_thread->finished()) { + m_thread.reset(new ConnectionThread()); + m_thread->run(); + } - ConnectionThreadPtr m_thread; + return m_thread; + } - static int m_counter; + ConnectionThreadPtr m_thread; + + static int m_counter; }; } // namespace CKM |