From: Lukasz Pawelczyk Date: Tue, 9 May 2017 16:07:22 +0000 (+0200) Subject: Extension operations added to CLI tool X-Git-Tag: submit/tizen/20170724.061427~4 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=f8c78ef8dcfb5fabc384debd45c9bc31e3028dc8;p=platform%2Fcore%2Fsecurity%2Fode.git Extension operations added to CLI tool Change-Id: Ic4ab188fd31508ed5dcd2ddc7bb85c7cff2892c6 --- diff --git a/tools/cli/ode-admin-cli.cpp b/tools/cli/ode-admin-cli.cpp index b73de8a..0487c41 100644 --- a/tools/cli/ode-admin-cli.cpp +++ b/tools/cli/ode-admin-cli.cpp @@ -31,6 +31,7 @@ #include #include #include +#include extern char** environ; @@ -39,16 +40,17 @@ static inline int usage(const std::string name) std::cout << "Usage: " << name << " [Option]" << std::endl << std::endl << "Options :" << std::endl - << " -m, --mount=internal|external mount" << std::endl - << " -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 - << " -w, --waitmnt=internal|external wait for mount"<< std::endl - << " -r, --erase=FILE|DIRECTORY secure-erase" << std::endl - << " -c, --clean=DIRECTORY secure-clean" << std::endl - << " -h, --help show this" << std::endl + << " -m, --mount=internal|external|extension mount" << std::endl + << " -u, --umount=internal|external|extension umount" << std::endl + << " -e, --encrypt=internal|external encrypt" << std::endl + << " -d, --decrypt=internal|external decrypt" << std::endl + << " -f, --format=extension format and setup encryption" << std::endl + << " -p, --changepw=internal|external|extension change password" << std::endl + << " -s, --state=internal|external|extension get state" << std::endl + << " -w, --waitmnt=internal|external|extension wait for mount"<< std::endl + << " -r, --erase=FILE|DIRECTORY secure-erase" << std::endl + << " -c, --clean=DIRECTORY secure-clean" << std::endl + << " -h, --help show this" << std::endl << std::endl; return -1; @@ -74,10 +76,33 @@ static inline std::string getPassword() { return password; } -static inline void printSelectableStorage() +static inline void printSelectableStorage(bool internal = true, + bool external = true, + bool extension = true) { - std::cerr << "Just choose one among followings :" << std::endl - << "internal, external" << std::endl; + bool firstDone = false; + std::cerr << "Just choose one among followings :" << std::endl; + + if (internal) { + std::cerr << "internal"; + firstDone = true; + } + if (external) { + if (firstDone) { + std::cerr << ", "; + } + std::cerr << "external"; + firstDone = true; + } + if (extension) { + if (firstDone) { + std::cerr << ", "; + } + std::cerr << "extension"; + firstDone = true; + } + + std::cerr << std::endl; } static inline int mount(const std::string name) @@ -100,6 +125,9 @@ static inline int mount(const std::string name) } else { std::cerr << "Password setting failed" << std::endl; } + } else if (name == "extension") { + std::string password = getPassword(); + ret = ode_extension_encryption_mount(password.c_str()); } else { printSelectableStorage(); return -1; @@ -120,6 +148,8 @@ static inline int umount(const std::string name) ret = ode_internal_encryption_umount(); } else if (name == "external") { ret = ode_external_encryption_umount(); + } else if (name == "extension") { + ret = ode_extension_encryption_umount(); } else { printSelectableStorage(); return -1; @@ -208,7 +238,7 @@ static inline int encrypt_storage(const std::string name) } ret = ode_external_encryption_encrypt(password.c_str(), options); } else { - printSelectableStorage(); + printSelectableStorage(true, true, false); return -1; } @@ -236,7 +266,45 @@ static inline int decrypt_storage(const std::string name) ode_external_encryption_clean_password(password.c_str()); } } else { - printSelectableStorage(); + printSelectableStorage(true, true, false); + return -1; + } + + if (ret != 0) { + std::cerr << "Error : " << ret <