Add changing password in ode-admin-cli 04/99004/1
authorSungbae Yoo <sungbae.yoo@samsung.com>
Mon, 21 Nov 2016 10:29:20 +0000 (19:29 +0900)
committerSungbae Yoo <sungbae.yoo@samsung.com>
Mon, 21 Nov 2016 10:29:20 +0000 (19:29 +0900)
Change-Id: Ib89248eaf90c4297f2f575e5b04cb2dd02e5d428
Signed-off-by: Sungbae Yoo <sungbae.yoo@samsung.com>
tools/cli/ode-admin-cli.cpp

index 214bd80..d6abe1c 100644 (file)
@@ -42,6 +42,7 @@ static inline int usage(const std::string name)
                          << "   -u, --umount=internal|external   umount" << std::endl
                          << "   -e, --encrypt=internal|external  encrypt" << std::endl
                          << "   -d, --decrypt=internal|external  decrypt" << std::endl
+                         << "   -p, --changepw=internal|external change password" << std::endl
                          << "   -s, --state=internal|external    get state" << std::endl
                          << "   -r, --erase=FILE|DIRECTORY       secure-erase" << std::endl
                          << "   -c, --clean=DIRECTORY            secure-clean" << std::endl
@@ -163,6 +164,32 @@ static inline int decrypt_storage(const std::string name)
        return ret;
 }
 
+static inline int change_password(const std::string name)
+{
+       int ret;
+
+       std::cout << "Old ";
+       std::string oldPW = getPassword();
+
+       std::cout << "New ";
+       std::string newPW = getPassword();
+
+       if (name == "internal") {
+               ret = ode_internal_encryption_change_password(oldPW.c_str(), newPW.c_str());
+       } else if (name == "external") {
+               ret = ode_external_encryption_change_password(oldPW.c_str(), newPW.c_str());
+       } else {
+               printSelectableStorage();
+               return -1;
+       }
+
+       if (ret != 0) {
+               std::cerr << "Error : " << ret <<std::endl;
+       }
+
+       return ret;
+}
+
 static inline int get_state(const std::string name)
 {
        int ret, state;
@@ -228,7 +255,7 @@ int main(int argc, char* argv[])
                return EXIT_SUCCESS;
        }
 
-       while ((opt = getopt_long(argc, argv, "m:u:e:d:s:r:c:h", options, &index)) != -1) {
+       while ((opt = getopt_long(argc, argv, "m:u:e:d:p:s:r:c:h", options, &index)) != -1) {
                switch (opt) {
                case 'm':
                        ret = mount(optarg);
@@ -242,6 +269,9 @@ int main(int argc, char* argv[])
                case 'd':
                        ret = decrypt_storage(optarg);
                        break;
+               case 'p':
+                       ret = change_password(optarg);
+                       break;
                case 's':
                        ret = get_state(optarg);
                        break;