printf("\tpkginfo --[imd|rmd] <manifest file name>\n\n");
printf("To set manifest validation\n");
printf("\tpkginfo --check <manifest file name>\n\n");
- printf("To set cert info in DB\n");
+ printf("To set cert info in DB [root only]\n");
printf("\tpkginfo --setcert <pkgid>\n\n");
- printf("To get cert info from DB\n");
+ printf("To get cert info from DB [root only]\n");
printf("\tpkginfo --getcert <pkgid>\n\n");
printf("To compare pkg cert info from DB\n");
printf("\tpkginfo --cmp-pkgcert <lhs_pkgid> <rhs_pkgid>\n\n");
printf("To compare app cert info from DB\n");
printf("\tpkginfo --cmp-appcert <lhs_appid> <rhs_appid>\n\n");
- printf("To delete all cert info from DB\n");
+ printf("To delete all cert info from DB [root only]\n");
printf("\tpkginfo --delcert <pkgid>\n\n");
printf("To add application filter values [Multiple values can be added]\n");
printf("\tpkginfo --app-flt\n\n");
return 0;
}
+static int _is_authorized(uid_t uid)
+{
+ if ((uid_t) OWNER_ROOT == uid) {
+ return 1;
+ } else {
+ printf("Error! This cmd is allowed for only root user!\n\n");
+ return 0;
+ }
+}
+
int main(int argc, char *argv[])
{
int ret = 0;
gettimeofday(&tv, NULL);
starttime = tv.tv_sec * 1000l + tv.tv_usec / 1000l;
+ if (argc < 2) {
+ __print_usage();
+ ret = -1;
+ goto end;
+ }
+
+ /* TODO : refactor all with getopt system funtion */
+ /* a group for the authorized user */
+ if (strcmp(argv[1], "--setcert") == 0) {
+ if (argc != 3 || !_is_authorized(getuid())) {
+ __print_usage();
+ ret = -1;
+ goto end;
+ }
+ ret = __set_certinfo_in_db(argv[2], 0);
+ if (ret == -1) {
+ printf("set certinfo in db failed\n");
+ goto end;
+ }
+ } else if (strcmp(argv[1], "--getcert") == 0) {
+ if (argc != 3 || !_is_authorized(getuid())) {
+ __print_usage();
+ ret = -1;
+ goto end;
+ }
+ ret = __get_certinfo_from_db(argv[2], 0);
+ if (ret == -1) {
+ printf("get certinfo from db failed\n");
+ goto end;
+ }
+ } else if (strcmp(argv[1], "--delcert") == 0) {
+ if (argc != 3 || !_is_authorized(getuid())) {
+ __print_usage();
+ ret = -1;
+ goto end;
+ }
+ ret = __del_certinfo_from_db(argv[2]);
+ if (ret == -1) {
+ printf("del certinfo from db failed\n");
+ goto end;
+ }
+ }
+
if (argc == 2) {
if (strcmp(argv[1], "--listpkg") == 0) {
ret = __get_pkg_list(getuid());
ret = -1;
goto end;
}
+ } else if (argc == 3) {
+ if (strcmp(argv[1], "--pkg") == 0) {
+ ret = __get_pkg_info(argv[2], getuid());
+ if (ret == -1) {
+ printf("get pkg info failed\n");
+ goto end;
+ }
+ } else if (strcmp(argv[1], "--app") == 0) {
+ ret = __get_app_info(argv[2]);
+ if (ret == -1) {
+ printf("get app info failed\n");
+ goto end;
+ }
+ } else if (strcmp(argv[1], "--list") == 0) {
+ ret = __get_app_list(argv[2], getuid());
+ if (ret == -1) {
+ printf("get app list failed\n");
+ goto end;
+ }
+ } else if (strcmp(argv[1], "--imd") == 0) {
+ printf("Not supported!\n");
+ goto end;
+ } else if (strcmp(argv[1], "--fota") == 0) {
+ printf("Not supported!\n");
+ goto end;
+ } else if (strcmp(argv[1], "--rmd") == 0) {
+ printf("Not supported!\n");
+ goto end;
+ } else if (strcmp(argv[1], "--check") == 0) {
+ ret = __check_manifest_validation(argv[2]);
+ if (ret == -1) {
+ printf("check manifest failed\n");
+ goto end;
+ }
+ } else if (strcmp(argv[1], "--category") == 0) {
+ ret = __get_app_category_list(argv[2]);
+ if (ret == -1) {
+ printf("get app category list failed\n");
+ goto end;
+ }
+ } else if (strcmp(argv[1], "--metadata") == 0) {
+ ret = __get_app_metadata_list(argv[2]);
+ if (ret == -1) {
+ printf("get app metadata list failed\n");
+ goto end;
+ }
+ } else if (strcmp(argv[1], "--appcontrol") == 0) {
+ ret = __get_app_control_list(argv[2]);
+ if (ret == -1) {
+ printf("get app control list failed\n");
+ goto end;
+ }
+ } else {
+ __print_usage();
+ ret = -1;
+ goto end;
+ }
} else if (argc == 4) {
if (strcmp(argv[1], "--cmp-pkgcert") == 0) {
ret = __compare_pkg_certinfo_from_db(argv[2], argv[3], getuid());
ret = -1;
goto end;
}
- }
-
- if (argc != 3) {
+ } else {
__print_usage();
ret = -1;
- goto end;
}
- if (!argv[1] || !argv[2]) {
- __print_usage();
- ret = -1;
- goto end;
- }
-
- if (strcmp(argv[1], "--pkg") == 0) {
- ret = __get_pkg_info(argv[2], getuid());
- if (ret == -1) {
- printf("get pkg info failed\n");
- goto end;
- }
- } else if (strcmp(argv[1], "--app") == 0) {
- ret = __get_app_info(argv[2]);
- if (ret == -1) {
- printf("get app info failed\n");
- goto end;
- }
- } else if (strcmp(argv[1], "--list") == 0) {
- ret = __get_app_list(argv[2], getuid());
- if (ret == -1) {
- printf("get app list failed\n");
- goto end;
- }
- } else if (strcmp(argv[1], "--imd") == 0) {
- printf("Not supported!\n");
- goto end;
- } else if (strcmp(argv[1], "--fota") == 0) {
- printf("Not supported!\n");
- goto end;
- } else if (strcmp(argv[1], "--rmd") == 0) {
- printf("Not supported!\n");
- goto end;
- } else if (strcmp(argv[1], "--setcert") == 0) {
- ret = __set_certinfo_in_db(argv[2], getuid());
- if (ret == -1) {
- printf("set certinfo in db failed\n");
- goto end;
- }
- } else if (strcmp(argv[1], "--getcert") == 0) {
- ret = __get_certinfo_from_db(argv[2], getuid());
- if (ret == -1) {
- printf("get certinfo from db failed\n");
- goto end;
- }
- } else if (strcmp(argv[1], "--delcert") == 0) {
- ret = __del_certinfo_from_db(argv[2]);
- if (ret == -1) {
- printf("del certinfo from db failed\n");
- goto end;
- }
- } else if (strcmp(argv[1], "--check") == 0) {
- ret = __check_manifest_validation(argv[2]);
- if (ret == -1) {
- printf("check manifest failed\n");
- goto end;
- }
- } else if (strcmp(argv[1], "--category") == 0) {
- ret = __get_app_category_list(argv[2]);
- if (ret == -1) {
- printf("get app category list failed\n");
- goto end;
- }
- } else if (strcmp(argv[1], "--metadata") == 0) {
- ret = __get_app_metadata_list(argv[2]);
- if (ret == -1) {
- printf("get app metadata list failed\n");
- goto end;
- }
- } else if (strcmp(argv[1], "--appcontrol") == 0) {
- ret = __get_app_control_list(argv[2]);
- if (ret == -1) {
- printf("get app control list failed\n");
- goto end;
- }
- } else
- __print_usage();
end:
gettimeofday(&tv, NULL);