Implementation of ckmc_import_wrapped_key
[platform/core/security/key-manager.git] / src / include / ckm / ckm-manager.h
index 8f67384..defe6ce 100644 (file)
@@ -1,5 +1,5 @@
 /*
- *  Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *  Copyright (c) 2000 - 2019 Samsung Electronics Co., Ltd All Rights Reserved
  *
  *  Licensed under the Apache License, Version 2.0 (the "License");
  *  you may not use this file except in compliance with the License.
@@ -55,10 +55,6 @@ public:
                const Policy &keyPolicy,
                const Policy &certPolicy);
 
-       /*
-        * Data must be extractable. If you set extractable bit to false function will
-        * return ERROR_INPUT_PARAM.
-        */
        int saveData(const Alias &alias, const RawBuffer &data, const Policy &policy);
 
        int removeAlias(const Alias &alias);
@@ -78,8 +74,14 @@ public:
 
        // send request for list of all keys/certificates/data that application/user may use
        int getKeyAliasVector(AliasVector &aliasVector);
+       int getKeyAliasPwdVector(AliasPwdVector &aliasPwdVector);
+       int getKeyEncryptionStatus(const Alias &alias, bool &status);
        int getCertificateAliasVector(AliasVector &aliasVector);
+       int getCertificateAliasPwdVector(AliasPwdVector &aliasPwdVector);
+       int getCertificateEncryptionStatus(const Alias &alias, bool &status);
        int getDataAliasVector(AliasVector &aliasVector);
+       int getDataAliasPwdVector(AliasPwdVector &aliasPwdVector);
+       int getDataEncryptionStatus(const Alias &alias, bool &status);
 
        int createKeyPairRSA(
                const int size,              // size in bits [1024, 2048, 4096]
@@ -143,7 +145,7 @@ public:
        int ocspCheck(const CertificateShPtrVector &certificateChainVector,
                                  int &ocspStatus);
 
-       int setPermission(const Alias &alias, const Label &accessor,
+       int setPermission(const Alias &alias, const ClientId &accessor,
                                          PermissionMask permissionMask);
 
        // This function will encrypt data.
@@ -168,11 +170,24 @@ public:
                                const RawBuffer &encrypted,
                                RawBuffer &decrypted);
 
+       int deriveKey(const CryptoAlgorithm &algo,
+                                 const Alias &secretAlias,
+                                 const Password &secretPassword,
+                                 const Alias &newKeyAlias,
+                                 const Policy &newKeyPolicy);
+
        static ManagerShPtr create();
 
+       int importWrappedKey(const CryptoAlgorithm &params,
+                                                const Alias &wrappingKeyAlias,
+                                                const Password &wrappingKeyPassword,
+                                                const Alias &alias,
+                                                const RawBuffer &encryptedKey,
+                                                const KeyType keyType,
+                                                const Policy &policy);
+
 private:
        std::unique_ptr<Impl> m_impl;
 };
 
 } // namespace CKM
-