<< " -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
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;
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);
case 'd':
ret = decrypt_storage(optarg);
break;
+ case 'p':
+ ret = change_password(optarg);
+ break;
case 's':
ret = get_state(optarg);
break;