#include <protocols.h>
#include <ckm/ckm-type.h>
-#include <ckm/key-manager.h>
+#include <ckm/ckm-key.h>
+#include <ckm/ckm-manager.h>
namespace CKM {
-class Manager::ManagerImpl {
+class ManagerImpl : public Manager {
public:
- ManagerImpl()
- : m_counter(0)
- {}
+ ManagerImpl();
virtual ~ManagerImpl(){}
- int saveKey(const Alias &alias, const Key &key, const Policy &policy);
+ int saveKey(const Alias &alias, const KeyShPtr &key, const Policy &policy);
int removeKey(const Alias &alias);
- int getKey(const Alias &alias, const std::string &password, Key &key);
- int requestKeyAliasVector(AliasVector &aliasVector);
+ int getKey(const Alias &alias, const std::string &password, KeyShPtr &key);
+ int getKeyAliasVector(AliasVector &aliasVector);
- int saveCertificate(const Alias &alias, const Certificate &cert, const Policy &policy);
+ int saveCertificate(const Alias &alias, const CertificateShPtr &cert, const Policy &policy);
int removeCertificate(const Alias &alias);
- int getCertificate(const Alias &alias, const std::string &password, Certificate &cert);
- int requestCertificateAliasVector(AliasVector &aliasVector);
+ int getCertificate(const Alias &alias, const std::string &password, CertificateShPtr &cert);
+ int getCertificateAliasVector(AliasVector &aliasVector);
int saveData(const Alias &alias, const RawBuffer &rawData, const Policy &policy);
int removeData(const Alias &alias);
int getData(const Alias &alias, const std::string &password, RawBuffer &cert);
- int requestDataAliasVector(AliasVector &aliasVector);
-
+ int getDataAliasVector(AliasVector &aliasVector);
+
int createKeyPairRSA(
const int size, // size in bits [1024, 2048, 4096]
const Alias &privateKeyAlias,
const Policy &policyPublicKey = Policy());
int createKeyPairECDSA(
- const Key::ECType type,
+ ElipticCurve type,
const Alias &privateKeyAlias,
const Alias &publicKeyAlias,
const Policy &policyPrivateKey = Policy(),
const Policy &policyPublicKey = Policy());
+ int getCertificateChain(
+ const CertificateShPtr &certificate,
+ const CertificateShPtrVector &untrustedCertificates,
+ CertificateShPtrVector &certificateChainVector);
+
+ int getCertificateChain(
+ const CertificateShPtr &certificate,
+ const AliasVector &untrustedCertificates,
+ CertificateShPtrVector &certificateChainVector);
+
+ int createSignature(
+ const Alias &privateKeyAlias,
+ const std::string &password, // password for private_key
+ const RawBuffer &message,
+ const HashAlgorithm hash,
+ const RSAPaddingAlgorithm padding,
+ RawBuffer &signature);
+
+ int verifySignature(
+ const Alias &publicKeyOrCertAlias,
+ const std::string &password, // password for public_key (optional)
+ const RawBuffer &message,
+ const RawBuffer &signature,
+ const HashAlgorithm hash,
+ const RSAPaddingAlgorithm padding);
+
+ int ocspCheck(const CertificateShPtrVector &certificateChain, int &ocspCheck);
+
protected:
int saveBinaryData(
const Alias &alias,
int removeBinaryData(
const Alias &alias,
DBDataType dataType);
-
+
int getBinaryData(
const Alias &alias,
DBDataType sendDataType,
DBDataType &recvDataType,
RawBuffer &rawData);
- int requestBinaryDataAliasVector(
+ int getBinaryDataAliasVector(
DBDataType sendDataType,
AliasVector &aliasVector);
int m_counter;
+ static bool s_isInit;
};
} // namespace CKM