All password are stored in std::string now.
authorBartlomiej Grzelewski <b.grzelewski@samsung.com>
Tue, 3 Jun 2014 14:48:47 +0000 (16:48 +0200)
committerBartlomiej Grzelewski <b.grzelewski@samsung.com>
Fri, 12 Sep 2014 12:56:58 +0000 (14:56 +0200)
Change-Id: I4032fc43493102d30d0c6d1c6f0edcbdd3f0f4de

12 files changed:
src/include/ckm/ckm-type.h
src/include/ckm/key-manager.h
src/manager/client/client-control.cpp
src/manager/client/client-key-impl.cpp
src/manager/client/client-key-impl.h
src/manager/client/client-key.cpp
src/manager/client/client-manager-impl.cpp
src/manager/client/client-manager-impl.h
src/manager/client/client-manager.cpp
src/manager/service/ckm-logic.cpp
src/manager/service/ckm-logic.h
src/manager/service/ckm-service.cpp

index 77eb743..938973e 100644 (file)
@@ -41,13 +41,13 @@ enum class KeyType : int {
 };
 
 struct Policy {
-    Policy(const RawBuffer &pass = RawBuffer(), bool extract = true, bool rest = false)
+    Policy(const std::string &pass = std::string(), bool extract = true, bool rest = false)
       : password(pass)
       , extractable(extract)
       , restricted(rest)
     {}
     virtual ~Policy(){}
-    RawBuffer password;  // byte array used to encrypt data inside CKM
+    std::string password;  // byte array used to encrypt data inside CKM
     bool extractable;  // if true key may be extracted from storage
     bool restricted;   // if true only key owner may see data
 };
index 45cad63..bb47dd8 100644 (file)
@@ -39,7 +39,7 @@ class Control
 public:
     Control();
     // decrypt user key with password
-    int unlockUserKey(const std::string &user, const RawBuffer &password) const;
+    int unlockUserKey(const std::string &user, const std::string &password) const;
 
     // remove user key from memory
     int lockUserKey(const std::string &user) const;
@@ -48,13 +48,13 @@ public:
     int removeUserData(const std::string &user) const;
 
     // change password for user
-    int changeUserPassword(const std::string &user, const RawBuffer &oldPassword, const RawBuffer &newPassword) const;
+    int changeUserPassword(const std::string &user, const std::string &oldPassword, const std::string &newPassword) const;
 
        // This is work around for security-server api - resetPassword that may be called without passing oldPassword.
        // This api should not be supported on tizen 3.0
        // User must be already logged in and his DKEK is already loaded into memory in plain text form.
        // The service will use DKEK in plain text and encrypt it in encrypted form (using new password).
-       int resetUserPassword(const std::string &user, const RawBuffer &newPassword) const;
+       int resetUserPassword(const std::string &user, const std::string &newPassword) const;
 
     virtual ~Control();
 private:
@@ -70,7 +70,7 @@ public:
     };
 
     Key();
-    Key(const RawBuffer &rawData, KeyType type, const RawBuffer &password = RawBuffer()); // Import key
+    Key(const RawBuffer &rawData, KeyType type, const std::string &password = std::string()); // Import key
     Key(const Key &key);
     Key& operator=(const Key &key);
     virtual ~Key();
@@ -167,10 +167,10 @@ public:
     int removeKey(const Alias &alias);
     int removeCertificate(const Alias &alias);
 
-    int getKey(const Alias &alias, const RawBuffer &password, Key &key);
+    int getKey(const Alias &alias, const std::string &password, Key &key);
     int getCertificate(
             const Alias &alias,
-            const RawBuffer &password,
+            const std::string &password,
             Certificate &certificate);
 
     // This will extract list of all Keys and Certificates in Key Store
@@ -180,7 +180,7 @@ public:
     // Added By Dongsun Lee
     int saveData(const Alias &alias, const RawBuffer &data, const Policy &policy);
     int removeData(const Alias &alias);
-    int getData(const Alias &alias, const RawBuffer &password, RawBuffer &data);
+    int getData(const Alias &alias, const std::string &password, RawBuffer &data);
 //    int requestDataAliasVector(AliasVector &alias);
 //
 //    int createKeyPairRSA(
index 011e66d..6d30c8a 100644 (file)
@@ -36,7 +36,7 @@ public:
     ControlImpl& operator=(const ControlImpl &) = delete;
     ControlImpl& operator=(ControlImpl &&) = delete;
 
-    static int unlockUserKey(const std::string &user, const RawBuffer &password) {
+    static int unlockUserKey(const std::string &user, const std::string &password) {
         return try_catch([&] {
             if (user.empty())
                 return KEY_MANAGER_API_ERROR_INPUT_PARAM;
@@ -109,7 +109,7 @@ public:
         });
     }
 
-    static int changeUserPassword(const std::string &user, const RawBuffer &oldPassword, const RawBuffer &newPassword) {
+    static int changeUserPassword(const std::string &user, const std::string &oldPassword, const std::string &newPassword) {
         return try_catch([&] {
             if (user.empty())
                 return KEY_MANAGER_API_ERROR_INPUT_PARAM;
@@ -135,7 +135,7 @@ public:
         });
     }
 
-    static int resetUserPassword(const std::string &user, const RawBuffer &newPassword) {
+    static int resetUserPassword(const std::string &user, const std::string &newPassword) {
         return try_catch([&] {
             if (user.empty())
                 return KEY_MANAGER_API_ERROR_INPUT_PARAM;
@@ -169,7 +169,7 @@ Control::Control()
 
 Control::~Control(){}
 
-int Control::unlockUserKey(const std::string &user, const RawBuffer &password) const {
+int Control::unlockUserKey(const std::string &user, const std::string &password) const {
     return m_impl->unlockUserKey(user, password);
 }
 
@@ -181,11 +181,11 @@ int Control::removeUserData(const std::string &user) const {
     return m_impl->removeUserData(user);
 }
 
-int Control::changeUserPassword(const std::string &user, const RawBuffer &oldPassword, const RawBuffer &newPassword) const {
+int Control::changeUserPassword(const std::string &user, const std::string &oldPassword, const std::string &newPassword) const {
     return m_impl->changeUserPassword(user, oldPassword, newPassword);
 }
 
-int Control::resetUserPassword(const std::string &user, const RawBuffer &newPassword) const {
+int Control::resetUserPassword(const std::string &user, const std::string &newPassword) const {
     return m_impl->resetUserPassword(user, newPassword);
 }
 
index c6ca6d4..684049a 100644 (file)
@@ -57,24 +57,16 @@ KeyImpl& KeyImpl::operator=(KeyImpl &&second) {
     return *this;
 }
 
-//KeyImpl::KeyImpl(IStream &stream) {
-//    int type;
-//    Deserialization::Deserialize(stream, type);
-//    Deserialization::Deserialize(stream, m_key);
-//    m_type = static_cast<KeyType>(type);
-//}
-
-KeyImpl::KeyImpl(const RawBuffer &data, KeyType type, const RawBuffer &password)
+KeyImpl::KeyImpl(const RawBuffer &data, KeyType type, const std::string &password)
   : m_type(KeyType::KEY_NONE)
 {
     int size = 0;
     RSA *rsa = NULL;
     char *pass = NULL;
-    RawBuffer passtmp(password);
+    std::string passtmp(password);
 
     if (!passtmp.empty()) {
-        passtmp.push_back(0);
-        pass = reinterpret_cast<char*>(passtmp.data());
+        pass = const_cast<char *>(passtmp.c_str());
     }
 
     if (data[0] == PEM_FIRST_CHAR && type == KeyType::KEY_RSA_PUBLIC) {
index 32f9df0..9f9c891 100644 (file)
 namespace CKM {
 
 class KeyImpl
-//  : public ISerializable
 {
 public:
     KeyImpl();
-//  KeyImpl(IStream &stream);
-    KeyImpl(const RawBuffer &data, KeyType type, const RawBuffer &password);
+    KeyImpl(const RawBuffer &data, KeyType type, const std::string &password);
     KeyImpl(const KeyImpl &);
     KeyImpl(KeyImpl &&);
     KeyImpl& operator=(const KeyImpl &);
@@ -51,8 +49,6 @@ public:
         return (m_type == KeyType::KEY_NONE) || m_key.empty();
     }
 
-//    void Serialize(IStream &stream) const;
-
     virtual ~KeyImpl();
 private:
     KeyType m_type;
index c1415eb..d2aef87 100644 (file)
@@ -32,7 +32,7 @@ Key::Key()
 Key::Key(
     const RawBuffer &rawData,
     KeyType type,
-    const RawBuffer &password)
+    const std::string &password)
   : m_impl(new KeyImpl(rawData, type, password))
 {}
 
index 9b8da7f..80212c0 100644 (file)
@@ -141,7 +141,7 @@ int Manager::ManagerImpl::removeData(const Alias &alias) {
 int Manager::ManagerImpl::getBinaryData(
     const Alias &alias,
     DBDataType sendDataType,
-    const RawBuffer &password,
+    const std::string &password,
     DBDataType &recvDataType,
     RawBuffer &rawData)
 {
@@ -186,7 +186,7 @@ int Manager::ManagerImpl::getBinaryData(
     });
 }
 
-int Manager::ManagerImpl::getKey(const Alias &alias, const RawBuffer &password, Key &key) {
+int Manager::ManagerImpl::getKey(const Alias &alias, const std::string &password, Key &key) {
     DBDataType recvDataType;
     RawBuffer rawData;
 
@@ -210,7 +210,7 @@ int Manager::ManagerImpl::getKey(const Alias &alias, const RawBuffer &password,
     return KEY_MANAGER_API_SUCCESS;
 }
 
-int Manager::ManagerImpl::getCertificate(const Alias &alias, const RawBuffer &password, Certificate &cert)
+int Manager::ManagerImpl::getCertificate(const Alias &alias, const std::string &password, Certificate &cert)
 {
     DBDataType recvDataType;
     RawBuffer rawData;
@@ -238,7 +238,7 @@ int Manager::ManagerImpl::getCertificate(const Alias &alias, const RawBuffer &pa
     return KEY_MANAGER_API_SUCCESS;
 }
 
-int Manager::ManagerImpl::getData(const Alias &alias, const RawBuffer &password, RawBuffer &rawData)
+int Manager::ManagerImpl::getData(const Alias &alias, const std::string &password, RawBuffer &rawData)
 {
     DBDataType recvDataType;
 
index e7737da..91fc27e 100644 (file)
@@ -36,15 +36,15 @@ public:
 
     int saveKey(const Alias &alias, const Key &key, const Policy &policy);
     int removeKey(const Alias &alias);
-    int getKey(const Alias &alias, const RawBuffer &password, Key &key);
+    int getKey(const Alias &alias, const std::string &password, Key &key);
 
     int saveCertificate(const Alias &alias, const Certificate &cert, const Policy &policy);
     int removeCertificate(const Alias &alias);
-    int getCertificate(const Alias &alias, const RawBuffer &password, Certificate &cert);
+    int getCertificate(const Alias &alias, const std::string &password, Certificate &cert);
 
     int saveData(const Alias &alias, const RawBuffer &rawData, const Policy &policy);
     int removeData(const Alias &alias);
-    int getData(const Alias &alias, const RawBuffer &password, RawBuffer &cert);
+    int getData(const Alias &alias, const std::string &password, RawBuffer &cert);
 
 protected:
     int saveBinaryData(
@@ -60,7 +60,7 @@ protected:
     int getBinaryData(
         const Alias &alias,
         DBDataType sendDataType,
-        const RawBuffer &password,
+        const std::string &password,
         DBDataType &recvDataType,
         RawBuffer &rawData);
 
index 9edb9f6..5aa8889 100644 (file)
@@ -38,7 +38,7 @@ int Manager::removeKey(const Alias &alias) {
     return m_impl->removeKey(alias);
 }
 
-int Manager::getKey(const Alias &alias, const RawBuffer &password, Key &key) {
+int Manager::getKey(const Alias &alias, const std::string &password, Key &key) {
     return m_impl->getKey(alias, password, key);
 }
 
@@ -50,7 +50,7 @@ int Manager::removeCertificate(const Alias &alias) {
     return m_impl->removeCertificate(alias);
 }
 
-int Manager::getCertificate(const Alias &alias, const RawBuffer &password, Certificate &cert) {
+int Manager::getCertificate(const Alias &alias, const std::string &password, Certificate &cert) {
     return m_impl->getCertificate(alias, password, cert);
 }
 
@@ -62,7 +62,7 @@ int Manager::removeData(const Alias &alias) {
     return m_impl->removeData(alias);
 }
 
-int Manager::getData(const Alias &alias, const RawBuffer &password, RawBuffer &data) {
+int Manager::getData(const Alias &alias, const std::string &password, RawBuffer &data) {
     return m_impl->getData(alias, password, data);
 }
 
index 712aab4..9f76aaa 100644 (file)
@@ -30,7 +30,7 @@ namespace CKM {
 CKMLogic::CKMLogic(){}
 CKMLogic::~CKMLogic(){}
 
-RawBuffer CKMLogic::unlockUserKey(const std::string &user, const RawBuffer &password) {
+RawBuffer CKMLogic::unlockUserKey(const std::string &user, const std::string &password) {
     (void)user;
     (void)password;
 
@@ -57,8 +57,8 @@ RawBuffer CKMLogic::removeUserData(const std::string &user) {
 
 RawBuffer CKMLogic::changeUserPassword(
     const std::string &user,
-    const RawBuffer &oldPassword,
-    const RawBuffer &newPassword)
+    const std::string &oldPassword,
+    const std::string &newPassword)
 {
     (void)user;
     (void)oldPassword;
@@ -71,7 +71,7 @@ RawBuffer CKMLogic::changeUserPassword(
 
 RawBuffer CKMLogic::resetUserPassword(
     const std::string &user,
-    const RawBuffer &newPassword)
+    const std::string &newPassword)
 {
     (void)user;
     (void)newPassword;
@@ -126,7 +126,7 @@ RawBuffer CKMLogic::getData(
     int commandId,
     DBDataType dataType,
     const Alias &alias,
-    const RawBuffer &password)
+    const std::string &password)
 {
     (void)cred;
     (void)alias;
index 52f6255..b8116d2 100644 (file)
@@ -39,7 +39,7 @@ public:
     CKMLogic& operator=(CKMLogic &&) = delete;
     virtual ~CKMLogic();
 
-    RawBuffer unlockUserKey(const std::string &user, const RawBuffer &password);
+    RawBuffer unlockUserKey(const std::string &user, const std::string &password);
 
     RawBuffer lockUserKey(const std::string &user);
 
@@ -47,12 +47,12 @@ public:
 
     RawBuffer changeUserPassword(
         const std::string &user,
-        const RawBuffer &oldPassword,
-        const RawBuffer &newPassword);
+        const std::string &oldPassword,
+        const std::string &newPassword);
 
     RawBuffer resetUserPassword(
         const std::string &user,
-        const RawBuffer &newPassword);
+        const std::string &newPassword);
 
     RawBuffer saveData(
         Credentials &cred,
@@ -73,7 +73,7 @@ public:
         int commandId,
         DBDataType dataType,
         const Alias &alias,
-        const RawBuffer &password);
+        const std::string &password);
 
 private:
 
index 4e30428..7c70bc8 100644 (file)
@@ -105,7 +105,7 @@ RawBuffer CKMService::processControl(MessageBuffer &buffer) {
     int command;
     std::string user;
     ControlCommand cc;
-    RawBuffer newPass, oldPass;
+    std::string newPass, oldPass;
 
     Deserialization::Deserialize(buffer, command);
     Deserialization::Deserialize(buffer, user);
@@ -175,7 +175,7 @@ RawBuffer CKMService::processStorage(Credentials &cred, MessageBuffer &buffer){
         }
         case LogicCommand::GET:
         {
-            RawBuffer password;
+            std::string password;
             Deserialization::Deserialize(buffer, tmpDataType);
             Deserialization::Deserialize(buffer, alias);
             Deserialization::Deserialize(buffer, password);