VoldCommand("cryptfs") {
}
-static int getType(const char* type)
-{
- if (!strcmp(type, "default")) {
- return CRYPT_TYPE_DEFAULT;
- } else if (!strcmp(type, "password")) {
- return CRYPT_TYPE_PASSWORD;
- } else if (!strcmp(type, "pin")) {
- return CRYPT_TYPE_PIN;
- } else if (!strcmp(type, "pattern")) {
- return CRYPT_TYPE_PATTERN;
- } else {
- return -1;
- }
-}
-
int CommandListener::CryptfsCmd::runCommand(SocketClient *cli,
int argc, char **argv) {
if ((cli->getUid() != 0) && (cli->getUid() != AID_SYSTEM)) {
dumpArgs(argc, argv, -1);
rc = cryptfs_crypto_complete();
} else if (!strcmp(argv[1], "enablecrypto")) {
- const char* syntax = "Usage: cryptfs enablecrypto <wipe|inplace> "
- "default|password|pin|pattern [passwd]";
- if ( (argc != 4 && argc != 5)
+ if ( (argc != 4 && argc != 3)
|| (strcmp(argv[2], "wipe") && strcmp(argv[2], "inplace")) ) {
- cli->sendMsg(ResponseCode::CommandSyntaxError, syntax, false);
+ cli->sendMsg(ResponseCode::CommandSyntaxError,
+ "Usage: cryptfs enablecrypto <wipe|inplace> [passwd]",
+ false);
return 0;
}
- dumpArgs(argc, argv, 4);
+ dumpArgs(argc, argv, 3);
int tries;
for (tries = 0; tries < 2; ++tries) {
- int type = getType(argv[3]);
- if (type == -1) {
- cli->sendMsg(ResponseCode::CommandSyntaxError, syntax,
- false);
- return 0;
- } else if (type == CRYPT_TYPE_DEFAULT) {
- rc = cryptfs_enable_default(argv[2], /*allow_reboot*/false);
- } else {
- rc = cryptfs_enable(argv[2], type, argv[4],
- /*allow_reboot*/false);
- }
+ if(argc == 3)
+ rc = cryptfs_enable_default(argv[2], /*allow_reboot*/false);
+ else
+ rc = cryptfs_enable(argv[2], argv[3], /*allow_reboot*/false);
if (rc == 0) {
break;
cli->sendMsg(ResponseCode::CommandSyntaxError, syntax, false);
return 0;
}
- int type = getType(argv[2]);
- if (type == -1) {
+ int type = 0;
+ if (!strcmp(argv[2], "default")) {
+ type = CRYPT_TYPE_DEFAULT;
+ } else if (!strcmp(argv[2], "password")) {
+ type = CRYPT_TYPE_PASSWORD;
+ } else if (!strcmp(argv[2], "pin")) {
+ type = CRYPT_TYPE_PIN;
+ } else if (!strcmp(argv[2], "pattern")) {
+ type = CRYPT_TYPE_PATTERN;
+ } else {
cli->sendMsg(ResponseCode::CommandSyntaxError, syntax, false);
return 0;
}
return -1;
}
-int cryptfs_enable(char *howarg, int type, char *passwd, int allow_reboot)
+int cryptfs_enable(char *howarg, char *passwd, int allow_reboot)
{
- return cryptfs_enable_internal(howarg, type, passwd, allow_reboot);
+ /** @todo If we keep this route (user selected encryption)
+ * need to take a type in and pass it to here.
+ */
+ return cryptfs_enable_internal(howarg, CRYPT_TYPE_PASSWORD,
+ passwd, allow_reboot);
}
int cryptfs_enable_default(char *howarg, int allow_reboot)
int cryptfs_check_passwd(char *pw);
int cryptfs_verify_passwd(char *newpw);
int cryptfs_restart(void);
- int cryptfs_enable(char *flag, int type, char *passwd, int allow_reboot);
+ int cryptfs_enable(char *flag, char *passwd, int allow_reboot);
int cryptfs_changepw(int type, const char *newpw);
int cryptfs_enable_default(char *flag, int allow_reboot);
int cryptfs_setup_volume(const char *label, int major, int minor,