--- /dev/null
+Janusz Kozerski <j.kozerski@samsung.com>
--- /dev/null
+CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
+PROJECT(ug-setting-manage-certificates-efl C)
+
+INCLUDE(FindPkgConfig)
+
+SET(CMAKE_C_FLAGS_RELEASE "-O2 -Wall")
+SET(CMAKE_C_FLAGS_DEBUG "-O0 -Wall -g -ggdb")
+SET(CMAKE_C_FLAGS_CCOV "-O2 -Wall --coverage")
+
+SET(PREFIX ${CMAKE_INSTALL_PREFIX})
+SET(PKGNAME "lib${PROJECT_NAME}")
+SET(LIBDIR "${PREFIX}/lib")
+SET(VERSION 0.1.0)
+SET(RESDIR "${PREFIX}/res")
+SET(DATADIR "${RESDIR}/etc")
+SET(LOCALEDIR "${RESDIR}/locale")
+SET(ICONDIR "${RESDIR}/images")
+SET(EDJDIR "${RESDIR}/edje")
+SET(IMGDIR "${RESDIR}/images")
+
+SET(TARGET_CERT_VIEW "mgr-cert-view")
+SET(TARGET_CERT_SELECTION_UG "ug-cert-selection-ug-efl")
+SET(TARGET_CERT_MANAGER_UG "ug-setting-manage-certificates-efl")
+
+ADD_DEFINITIONS("-DPREFIX=\"${PREFIX}\"")
+ADD_DEFINITIONS("-DPKGNAME=\"${PKGNAME}\"")
+ADD_DEFINITIONS("-DPACKAGE_NAME=\"${PKGNAME}\"")
+ADD_DEFINITIONS("-DEDJDIR=\"${EDJDIR}\"")
+ADD_DEFINITIONS("-DPREFIX=\"${PREFIX}\"")
+ADD_DEFINITIONS("-DRESDIR=\"${RESDIR}\"")
+ADD_DEFINITIONS("-DDATADIR=\"${DATADIR}\"")
+ADD_DEFINITIONS("-DLOCALEDIR=\"${LOCALEDIR}\"")
+ADD_DEFINITIONS("-DEDJDIR=\"${EDJDIR}\"")
+ADD_DEFINITIONS("-DIMGDIR=\"${IMGDIR}\"")
+
+ADD_SUBDIRECTORY(view)
+ADD_SUBDIRECTORY(ug)
+ADD_SUBDIRECTORY(cert-selection-ug)
+
+# i18n
+ADD_SUBDIRECTORY(po)
--- /dev/null
+Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.\r
+\r
+ Apache License\r
+ Version 2.0, January 2004\r
+ http://www.apache.org/licenses/\r
+\r
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\r
+\r
+ 1. Definitions.\r
+\r
+ "License" shall mean the terms and conditions for use, reproduction,\r
+ and distribution as defined by Sections 1 through 9 of this document.\r
+\r
+ "Licensor" shall mean the copyright owner or entity authorized by\r
+ the copyright owner that is granting the License.\r
+\r
+ "Legal Entity" shall mean the union of the acting entity and all\r
+ other entities that control, are controlled by, or are under common\r
+ control with that entity. For the purposes of this definition,\r
+ "control" means (i) the power, direct or indirect, to cause the\r
+ direction or management of such entity, whether by contract or\r
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the\r
+ outstanding shares, or (iii) beneficial ownership of such entity.\r
+\r
+ "You" (or "Your") shall mean an individual or Legal Entity\r
+ exercising permissions granted by this License.\r
+\r
+ "Source" form shall mean the preferred form for making modifications,\r
+ including but not limited to software source code, documentation\r
+ source, and configuration files.\r
+\r
+ "Object" form shall mean any form resulting from mechanical\r
+ transformation or translation of a Source form, including but\r
+ not limited to compiled object code, generated documentation,\r
+ and conversions to other media types.\r
+\r
+ "Work" shall mean the work of authorship, whether in Source or\r
+ Object form, made available under the License, as indicated by a\r
+ copyright notice that is included in or attached to the work\r
+ (an example is provided in the Appendix below).\r
+\r
+ "Derivative Works" shall mean any work, whether in Source or Object\r
+ form, that is based on (or derived from) the Work and for which the\r
+ editorial revisions, annotations, elaborations, or other modifications\r
+ represent, as a whole, an original work of authorship. For the purposes\r
+ of this License, Derivative Works shall not include works that remain\r
+ separable from, or merely link (or bind by name) to the interfaces of,\r
+ the Work and Derivative Works thereof.\r
+\r
+ "Contribution" shall mean any work of authorship, including\r
+ the original version of the Work and any modifications or additions\r
+ to that Work or Derivative Works thereof, that is intentionally\r
+ submitted to Licensor for inclusion in the Work by the copyright owner\r
+ or by an individual or Legal Entity authorized to submit on behalf of\r
+ the copyright owner. For the purposes of this definition, "submitted"\r
+ means any form of electronic, verbal, or written communication sent\r
+ to the Licensor or its representatives, including but not limited to\r
+ communication on electronic mailing lists, source code control systems,\r
+ and issue tracking systems that are managed by, or on behalf of, the\r
+ Licensor for the purpose of discussing and improving the Work, but\r
+ excluding communication that is conspicuously marked or otherwise\r
+ designated in writing by the copyright owner as "Not a Contribution."\r
+\r
+ "Contributor" shall mean Licensor and any individual or Legal Entity\r
+ on behalf of whom a Contribution has been received by Licensor and\r
+ subsequently incorporated within the Work.\r
+\r
+ 2. Grant of Copyright License. Subject to the terms and conditions of\r
+ this License, each Contributor hereby grants to You a perpetual,\r
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable\r
+ copyright license to reproduce, prepare Derivative Works of,\r
+ publicly display, publicly perform, sublicense, and distribute the\r
+ Work and such Derivative Works in Source or Object form.\r
+\r
+ 3. Grant of Patent License. Subject to the terms and conditions of\r
+ this License, each Contributor hereby grants to You a perpetual,\r
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable\r
+ (except as stated in this section) patent license to make, have made,\r
+ use, offer to sell, sell, import, and otherwise transfer the Work,\r
+ where such license applies only to those patent claims licensable\r
+ by such Contributor that are necessarily infringed by their\r
+ Contribution(s) alone or by combination of their Contribution(s)\r
+ with the Work to which such Contribution(s) was submitted. If You\r
+ institute patent litigation against any entity (including a\r
+ cross-claim or counterclaim in a lawsuit) alleging that the Work\r
+ or a Contribution incorporated within the Work constitutes direct\r
+ or contributory patent infringement, then any patent licenses\r
+ granted to You under this License for that Work shall terminate\r
+ as of the date such litigation is filed.\r
+\r
+ 4. Redistribution. You may reproduce and distribute copies of the\r
+ Work or Derivative Works thereof in any medium, with or without\r
+ modifications, and in Source or Object form, provided that You\r
+ meet the following conditions:\r
+\r
+ (a) You must give any other recipients of the Work or\r
+ Derivative Works a copy of this License; and\r
+\r
+ (b) You must cause any modified files to carry prominent notices\r
+ stating that You changed the files; and\r
+\r
+ (c) You must retain, in the Source form of any Derivative Works\r
+ that You distribute, all copyright, patent, trademark, and\r
+ attribution notices from the Source form of the Work,\r
+ excluding those notices that do not pertain to any part of\r
+ the Derivative Works; and\r
+\r
+ (d) If the Work includes a "NOTICE" text file as part of its\r
+ distribution, then any Derivative Works that You distribute must\r
+ include a readable copy of the attribution notices contained\r
+ within such NOTICE file, excluding those notices that do not\r
+ pertain to any part of the Derivative Works, in at least one\r
+ of the following places: within a NOTICE text file distributed\r
+ as part of the Derivative Works; within the Source form or\r
+ documentation, if provided along with the Derivative Works; or,\r
+ within a display generated by the Derivative Works, if and\r
+ wherever such third-party notices normally appear. The contents\r
+ of the NOTICE file are for informational purposes only and\r
+ do not modify the License. You may add Your own attribution\r
+ notices within Derivative Works that You distribute, alongside\r
+ or as an addendum to the NOTICE text from the Work, provided\r
+ that such additional attribution notices cannot be construed\r
+ as modifying the License.\r
+\r
+ You may add Your own copyright statement to Your modifications and\r
+ may provide additional or different license terms and conditions\r
+ for use, reproduction, or distribution of Your modifications, or\r
+ for any such Derivative Works as a whole, provided Your use,\r
+ reproduction, and distribution of the Work otherwise complies with\r
+ the conditions stated in this License.\r
+\r
+ 5. Submission of Contributions. Unless You explicitly state otherwise,\r
+ any Contribution intentionally submitted for inclusion in the Work\r
+ by You to the Licensor shall be under the terms and conditions of\r
+ this License, without any additional terms or conditions.\r
+ Notwithstanding the above, nothing herein shall supersede or modify\r
+ the terms of any separate license agreement you may have executed\r
+ with Licensor regarding such Contributions.\r
+\r
+ 6. Trademarks. This License does not grant permission to use the trade\r
+ names, trademarks, service marks, or product names of the Licensor,\r
+ except as required for reasonable and customary use in describing the\r
+ origin of the Work and reproducing the content of the NOTICE file.\r
+\r
+ 7. Disclaimer of Warranty. Unless required by applicable law or\r
+ agreed to in writing, Licensor provides the Work (and each\r
+ Contributor provides its Contributions) on an "AS IS" BASIS,\r
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\r
+ implied, including, without limitation, any warranties or conditions\r
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\r
+ PARTICULAR PURPOSE. You are solely responsible for determining the\r
+ appropriateness of using or redistributing the Work and assume any\r
+ risks associated with Your exercise of permissions under this License.\r
+\r
+ 8. Limitation of Liability. In no event and under no legal theory,\r
+ whether in tort (including negligence), contract, or otherwise,\r
+ unless required by applicable law (such as deliberate and grossly\r
+ negligent acts) or agreed to in writing, shall any Contributor be\r
+ liable to You for damages, including any direct, indirect, special,\r
+ incidental, or consequential damages of any character arising as a\r
+ result of this License or out of the use or inability to use the\r
+ Work (including but not limited to damages for loss of goodwill,\r
+ work stoppage, computer failure or malfunction, or any and all\r
+ other commercial damages or losses), even if such Contributor\r
+ has been advised of the possibility of such damages.\r
+\r
+ 9. Accepting Warranty or Additional Liability. While redistributing\r
+ the Work or Derivative Works thereof, You may choose to offer,\r
+ and charge a fee for, acceptance of support, warranty, indemnity,\r
+ or other liability obligations and/or rights consistent with this\r
+ License. However, in accepting such obligations, You may act only\r
+ on Your own behalf and on Your sole responsibility, not on behalf\r
+ of any other Contributor, and only if You agree to indemnify,\r
+ defend, and hold each Contributor harmless for any liability\r
+ incurred by, or claims asserted against, such Contributor by reason\r
+ of your accepting any such warranty or additional liability.\r
+\r
+ END OF TERMS AND CONDITIONS\r
+\r
+ APPENDIX: How to apply the Apache License to your work.\r
+\r
+ To apply the Apache License to your work, attach the following\r
+ boilerplate notice, with the fields enclosed by brackets "[]"\r
+ replaced with your own identifying information. (Don't include\r
+ the brackets!) The text should be enclosed in the appropriate\r
+ comment syntax for the file format. We also recommend that a\r
+ file or class name and description of purpose be included on the\r
+ same "printed page" as the copyright notice for easier\r
+ identification within third-party archives.\r
+\r
+ Copyright [yyyy] [name of copyright owner]\r
+\r
+ Licensed under the Apache License, Version 2.0 (the "License");\r
+ you may not use this file except in compliance with the License.\r
+ You may obtain a copy of the License at\r
+\r
+ http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+ Unless required by applicable law or agreed to in writing, software\r
+ distributed under the License is distributed on an "AS IS" BASIS,\r
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ See the License for the specific language governing permissions and\r
+ limitations under the License.\r
+\r
--- /dev/null
+Copyright (c) Samsung Electronics Co., Ltd. All rights reserved.
+Except as noted, this software is licensed under Apache License, Version 2.
+Please, see the LICENSE file for Apache License terms and conditions.
--- /dev/null
+#!/bin/bash
+
+if [ $1 == "app" ]
+then
+ echo "Build App"
+ cp ./debian/control.app ./debian/control
+ cp ./debian/changelog.app ./debian/changelog
+ find ./debian -name "rules" -exec perl -pi -e 's/TYPE\ \?\=\ ug/TYPE\ \?\=\ app/g' {} \;
+else
+ echo "Build UG"
+ cp ./debian/control.ug ./debian/control
+ cp ./debian/changelog.ug ./debian/changelog
+ find ./debian -name "rules" -exec perl -pi -e 's/TYPE\ \?\=\ app/TYPE\ \?\=\ ug/g' {} \;
+fi
+
+sbs -b
--- /dev/null
+pkg_check_modules(ug-cert-selection-ug-efl_pkgs
+ REQUIRED
+ elementary
+ ui-gadget-1
+ evas
+ dlog
+ capi-appfw-application
+ cert-svc-vcore
+)
+
+SET(SRCS
+ src/cert-selection.c
+ src/cert-selection-uigadget.c
+)
+
+SET(CMAKE_INSTALL_RPATH "${PREFIX}/lib")
+
+INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/include)
+INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/view/include)
+INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/common/include)
+
+ADD_DEFINITIONS(${ug-cert-selection-ug-efl_pkgs_DEPS_CFLAGS})
+ADD_DEFINITIONS(${ug-cert-selection-ug-efl_pkgs_DEPS_OTHER})
+
+INCLUDE_DIRECTORIES(${ug-cert-selection-ug-efl_pkgs_INCLUDE_DIRS})
+
+ADD_LIBRARY(${TARGET_CERT_SELECTION_UG} SHARED ${SRCS})
+SET_TARGET_PROPERTIES(${TARGET_CERT_SELECTION_UG} PROPERTIES SOVERSION 0.1.0)
+
+TARGET_LINK_LIBRARIES(${TARGET_CERT_SELECTION_UG}
+ ${ug-cert-selection-ug-efl_pkgs_LIBRARIES}
+)
+
+INSTALL(TARGETS
+ ${TARGET_CERT_SELECTION_UG}
+ DESTINATION
+ ${LIBDIR}
+)
--- /dev/null
+/*
+ * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * @file cert-selection-uigadget.h
+ * @author Janusz Kozerski (j.kozerski@samsung.com)
+ * @version 1.0
+ */
+
+#ifndef __UG_SETTING_SELECT_CERTIFICATE_EFL_H__
+#define __UG_SETTING_SELECT_CERTIFICATE_EFL_H__
+
+#include <Elementary.h>
+#include <ui-gadget.h>
+#include <ui-gadget-module.h>
+#include <glib.h>
+#include <app.h>
+
+#ifndef PACKAGE
+#define PACKAGE "ug-setting-manage-certificates-efl"
+#endif
+
+#ifndef LOCALEDIR
+#define LOCALEDIR PREFIX "/res/locale"
+#endif
+
+struct ug_data {
+ Evas_Object *win_main;
+ Evas_Object *bg;
+ Evas_Object *layout_main;
+ Evas_Object *navi_bar;
+ GList *view_list;
+ ui_gadget_h ug;
+ ui_gadget_h sub_ug;
+ service_h *service;
+ void *data;
+};
+
+struct ug_data *get_ug_data();
+
+void cert_selection_cb(void *data, Evas_Object *obj, void *event_info);
+
+#ifdef LOG_TAG
+ #undef LOG_TAG
+#endif
+
+#ifndef LOG_TAG
+ #define LOG_TAG "CERT_SVC_UI"
+#endif
+
+#endif /* __UG_SETTING_SELECT_CERTIFICATE_EFL_H__ */
--- /dev/null
+/*
+ * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * @file cert-ui-api.c
+ * @author Janusz Kozerski (j.kozerski@samsung.com)
+ * @version 1.0
+ */
+
+#ifndef UG_MODULE_API
+#define UG_MODULE_API __attribute__ ((visibility("default")))
+#endif
+
+#include <stdio.h>
+#include <ui-gadget.h>
+#include <ui-gadget-module.h>
+#include <app.h>
+#include <dlog.h>
+
+#include "cert-selection-uigadget.h"
+
+#include <cert-svc/ccert.h>
+#include <cert-svc/cinstance.h>
+#include <cert-svc/ccrl.h>
+#include <cert-svc/cocsp.h>
+#include <cert-svc/cpkcs12.h>
+#include <cert-svc/cstring.h>
+
+#define STR_VIEWTYPE "viewtype"
+#define STR_MANAGE_APPLICATIONS "manage-applications"
+
+static struct ug_data *ugd = NULL;
+struct ug_data *get_ug_data() {
+ LOGD("get_ug_data()");
+ return ugd;
+}
+
+static void *on_create(ui_gadget_h ug, enum ug_mode mode, service_h service, void *priv) {
+
+ (void)mode;
+
+ if(NULL == ug)
+ return NULL;
+ if(NULL == priv)
+ return NULL;
+
+ ugd = priv;
+ ugd->ug = ug;
+
+ ugd->service = &service;
+
+ bindtextdomain(PACKAGE, LOCALEDIR);
+
+ ugd = priv;
+ ugd->ug = ug;
+
+ ugd->win_main = ug_get_parent_layout(ug);
+ if (NULL == ugd->win_main)
+ return NULL;
+
+ ugd->bg = elm_bg_add(ugd->win_main);
+ if (!ugd->bg) {
+ LOGD("ugd->bg is null");
+ free(ugd->win_main);
+ return NULL;
+ }
+ evas_object_size_hint_weight_set(ugd->bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ //elm_win_resize_object_add(ugd->win_main, ugd->bg);
+ evas_object_show(ugd->bg);
+
+ ugd->layout_main = elm_layout_add(ugd->win_main);
+ if (!ugd->layout_main) {
+ LOGD("ugd->layout_main is null");
+ free(ugd->win_main);
+ free(ugd->bg);
+ return NULL;
+ }
+ elm_layout_theme_set(ugd->layout_main, "layout", "application", "default");
+ evas_object_size_hint_weight_set(ugd->layout_main, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ //elm_win_resize_object_add(ugd->win_main, ugd->layout_main);
+ evas_object_show(ugd->layout_main);
+
+ elm_object_part_content_set(ugd->layout_main, "elm.swallow.bg", ugd->bg);
+
+ ugd->navi_bar = elm_naviframe_add(ugd->layout_main);
+ if (!ugd->navi_bar) {
+ LOGD("ugd->navi_bar is null");
+ free(ugd->win_main);
+ free(ugd->bg);
+ free(ugd->layout_main);
+ return NULL;
+ }
+ evas_object_show(ugd->navi_bar);
+ elm_object_part_content_set(ugd->layout_main, "elm.swallow.content", ugd->navi_bar);
+
+ cert_selection_cb((void*) ugd, NULL, NULL);
+
+ return ugd->layout_main;
+}
+
+static void on_start(ui_gadget_h ug, service_h service, void *priv) {
+
+ (void)ug;
+ (void)service;
+ (void)priv;
+}
+
+static void on_pause(ui_gadget_h ug, service_h service, void *priv) {
+
+ (void)ug;
+ (void)service;
+ (void)priv;
+}
+
+static void on_resume(ui_gadget_h ug, service_h service, void *priv) {
+
+ (void)ug;
+ (void)service;
+ (void)priv;
+}
+
+static void on_destroy(ui_gadget_h ug, service_h service, void *priv) {
+
+ (void)service;
+
+ if(NULL == ug){
+ LOGD("NULL == ug; return");
+ return;
+ }
+ if(NULL == priv){
+ LOGD("NULL == priv; return");
+ return;
+ }
+
+ ugd = priv;
+
+ evas_object_del(ugd->layout_main);
+ ugd->layout_main = NULL;
+}
+
+static void on_message(ui_gadget_h ug, service_h msg, service_h service, void *priv) {
+
+ (void)ug;
+ (void)msg;
+ (void)service;
+ (void)priv;
+}
+
+static void on_event(ui_gadget_h ug, enum ug_event event, service_h service, void *priv) {
+
+ (void)ug;
+ (void)service;
+ (void)priv;
+
+ switch (event) {
+ case UG_EVENT_LOW_MEMORY:
+ break;
+ case UG_EVENT_LOW_BATTERY:
+ break;
+ case UG_EVENT_LANG_CHANGE:
+ break;
+ case UG_EVENT_ROTATE_PORTRAIT:
+ break;
+ case UG_EVENT_ROTATE_PORTRAIT_UPSIDEDOWN:
+ break;
+ case UG_EVENT_ROTATE_LANDSCAPE:
+ break;
+ case UG_EVENT_ROTATE_LANDSCAPE_UPSIDEDOWN:
+ break;
+ default:
+ break;
+ }
+}
+
+static void on_key_event(ui_gadget_h ug, enum ug_key_event event, service_h service, void *priv) {
+
+ (void)service;
+ (void)priv;
+
+ if(NULL == ug){
+ LOGD("NULL == ug; return");
+ return;
+ }
+
+ switch (event) {
+ case UG_KEY_EVENT_END:
+ ug_destroy_me(ug);
+ break;
+ default:
+ break;
+ }
+}
+
+UG_MODULE_API int UG_MODULE_INIT(struct ug_module_ops *ops) {
+
+ if(NULL == ops){
+ LOGD("NULL == ops; return");
+ return -1;
+ }
+
+ ugd = calloc(1, sizeof(struct ug_data));
+
+ ops->create = on_create;
+ ops->start = on_start;
+ ops->pause = on_pause;
+ ops->resume = on_resume;
+ ops->destroy = on_destroy;
+ ops->message = on_message;
+ ops->event = on_event;
+ ops->key_event = on_key_event;
+ ops->priv = ugd;
+ ops->opt = UG_OPT_INDICATOR_ENABLE;
+
+ return 0;
+}
+
+UG_MODULE_API void UG_MODULE_EXIT(struct ug_module_ops *ops) {
+
+ if(NULL == ops){
+ LOGD("NULL == ops; return");
+ return;
+ }
+
+ ugd = ops->priv;
+ free(ugd);
+}
+
+UG_MODULE_API int setting_plugin_reset(service_h service, void *priv) {
+
+ (void)service;
+ (void)priv;
+ /* nothing to do for Setting>Reset */
+
+ return 0;
+}
--- /dev/null
+/*
+ * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * @file cert-selection.c
+ * @author Janusz Kozerski (j.kozerski@samsung.com)
+ * @version 1.0
+ */
+
+#include <Elementary.h>
+#include "dlog.h"
+
+#include <stdio.h>
+#include <dirent.h>
+
+#include <cert-svc/ccert.h>
+#include <cert-svc/cinstance.h>
+#include <cert-svc/ccrl.h>
+#include <cert-svc/cocsp.h>
+#include <cert-svc/cpkcs12.h>
+#include <cert-svc/cstring.h>
+
+#include "cert-selection-uigadget.h"
+
+#define CERT_MAX_DATA_SIZE 256
+
+static CertSvcInstance instance;
+static CertSvcStringList stringList;
+
+static int state_index = -1; //selected radio index
+static char *selected_name = NULL;
+static Eina_Bool selected = EINA_FALSE;
+static Evas_Object *radio_main = NULL;
+static Evas_Object *open_button = NULL;
+static Elm_Genlist_Item_Class itc;
+
+static void _open(void *data, Evas_Object *obj, void *event_info) {
+
+ LOGD("selected index = %d", state_index);
+ (void)obj;
+ (void)event_info;
+
+ struct ug_data *ad = (struct ug_data*) data;
+
+ if (selected) {
+ service_h service;
+ service_create(&service);
+ service_add_extra_data(service, "selected-cert", selected_name);
+ ug_send_result(ad->ug, service);
+ service_destroy(service);
+ LOGD("result send");
+ }
+
+ /* bg must delete before starting on_destroy */
+ LOGD("Closing UG");
+ free(selected_name);
+ evas_object_del(ad->bg);
+ ad->bg = NULL;
+ ug_destroy_me(ad->ug);
+}
+
+static void _cancel(void *data, Evas_Object *obj, void *event_info) {
+
+ (void)obj;
+ (void)event_info;
+
+ struct ug_data *ad = (struct ug_data*) data;
+
+ /* bg must delete before starting on_destroy */
+ LOGD("Closing UG");
+ free(selected_name);
+ evas_object_del(ad->bg);
+ ad->bg = NULL;
+ ug_destroy_me(ad->ug);
+}
+
+const char* get_email(CertSvcString alias) {
+ LOGD("get_email()");
+
+ const char *char_buffer;
+
+ CertSvcCertificateList certificateList;
+ CertSvcCertificate certificate;
+ CertSvcString email_buffer;
+ if (CERTSVC_SUCCESS != certsvc_pkcs12_load_certificate_list(
+ instance,
+ alias,
+ &certificateList)) {
+ return NULL;
+ }
+ if (CERTSVC_SUCCESS != certsvc_certificate_list_get_one(
+ certificateList,
+ 0,
+ &certificate)) {
+ return NULL;
+ }
+ if (CERTSVC_SUCCESS != certsvc_certificate_get_string_field(
+ certificate,
+ CERTSVC_SUBJECT_EMAIL_ADDRESS,
+ &email_buffer)) {
+ return NULL;
+ }
+ certsvc_string_to_cstring(email_buffer, &char_buffer, NULL);
+ return char_buffer;
+}
+
+static char *_gl_text_get(void *data, Evas_Object *obj, const char *part) {
+
+ (void)obj;
+ int index = (int) data;
+
+ CertSvcString buffer;
+ if (certsvc_string_list_get_one(stringList, index, &buffer) != CERTSVC_SUCCESS) {
+ return strdup("ERROR WHILE LOADING STRING");
+ }
+ char *char_buffer;
+
+ if (!strcmp(part, "elm.text.1") || !strcmp(part, "elm.text")) {
+ char_buffer = strndup(buffer.privateHandler, buffer.privateLength);
+ certsvc_string_free(buffer);
+ return char_buffer;
+ } else if (!strcmp(part, "elm.text.2")) {
+ return (char *) get_email(buffer);
+ }
+
+ return NULL;
+}
+
+static Evas_Object *_gl_content_get(void *data, Evas_Object *obj, const char *part) {
+
+ LOGD("_gl_content_get");
+
+ int index = (int) data;
+ Evas_Object *radio;
+ LOGD("index = %d", index);
+
+ if (!strcmp(part, "elm.icon") || !strcmp(part, "elm.swallow.icon")) {
+ radio = elm_radio_add(obj);
+ elm_radio_state_value_set(radio, index);
+ elm_radio_group_add(radio, radio_main);
+ elm_radio_value_pointer_set(radio, &state_index);
+ evas_object_size_hint_weight_set(radio, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(radio, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+ return radio;
+ }
+ return NULL;
+}
+
+static Eina_Bool _gl_state_get(void *data, Evas_Object *obj, const char *part) {
+
+ (void)data;
+ (void)obj;
+ (void)part;
+
+ return EINA_FALSE;
+}
+
+static void _gl_del(void *data, Evas_Object *obj) {
+
+ (void)data;
+ (void)obj;
+
+ return;
+}
+
+static void _gl_sel(void *data, Evas_Object *obj, void *event_info) {
+
+ LOGD("_gl_sel");
+ (void)obj;
+
+ if(NULL == event_info){
+ return;
+ }
+
+ int pkcs_index = (int) data;
+ LOGD("pkcs_index = %d", pkcs_index);
+
+ Elm_Object_Item *item = (Elm_Object_Item *) event_info;
+ elm_genlist_item_selected_set(item, EINA_FALSE);
+
+ state_index = pkcs_index;
+ elm_genlist_item_update(item);
+
+ selected = EINA_TRUE;
+
+ CertSvcString buffer;
+ if (certsvc_string_list_get_one(stringList, pkcs_index, &buffer) != CERTSVC_SUCCESS) {
+ selected = EINA_FALSE;
+ return;
+ }
+ elm_object_disabled_set(open_button, EINA_FALSE);
+
+ if(selected_name)
+ free(selected_name);
+ selected_name = malloc((buffer.privateLength+1) * sizeof(char));
+ strncpy(selected_name, buffer.privateHandler, buffer.privateLength);
+ selected_name[buffer.privateLength] = 0;
+ LOGD("SELECTED NAME = %s", selected_name);
+ certsvc_string_free(buffer);
+}
+
+void cert_selection_cb(void *data, Evas_Object *obj, void *event_info) {
+ LOGD("cert_selection");
+
+ (void)data;
+ (void)obj;
+ (void)event_info;
+
+ struct ug_data *ad = (struct ug_data *) data;
+ Evas_Object *genlist = NULL;
+ Evas_Object *layout = NULL;
+ Evas_Object *cancel_button = NULL;
+
+ state_index = -1;
+
+ layout = elm_layout_add(ad->win_main);
+ if (!layout)
+ return;
+ elm_layout_theme_set(layout, "layout", "tabbar", "default");
+
+ open_button = elm_button_add(ad->navi_bar);
+ if (!open_button) return;
+ elm_object_text_set(open_button, dgettext(PACKAGE, "IDS_ST_BUTTON_OPEN"));
+ elm_object_style_set(open_button, "naviframe/toolbar/left");
+ evas_object_smart_callback_add(open_button, "clicked", _open, ad);
+
+ cancel_button = elm_button_add(ad->navi_bar);
+ if (!cancel_button) return;
+ elm_object_text_set(cancel_button, dgettext(PACKAGE, "IDS_ST_SK2_CANCEL"));
+ elm_object_style_set(cancel_button, "naviframe/toolbar/right");
+ evas_object_smart_callback_add(cancel_button, "clicked", _cancel, ad);
+
+ // Create genlist;
+ genlist = elm_genlist_add(layout);
+ if (!radio_main) {
+ radio_main = elm_radio_add(genlist);
+ elm_radio_state_value_set(radio_main, 0);
+ elm_radio_value_set(radio_main, 0);
+ }
+
+ // Set genlist item class
+ itc.item_style = "2text.1icon.2";
+ itc.func.text_get = _gl_text_get;
+ itc.func.content_get = _gl_content_get;
+ itc.func.state_get = _gl_state_get;
+ itc.func.del = _gl_del;
+
+ if (certsvc_instance_new(&instance) == CERTSVC_FAIL) {
+ LOGD("CERTSVC_FAIL");
+ return;
+ }
+ certsvc_pkcs12_get_id_list(instance, &stringList);
+
+ int i;
+ int list_length;
+ certsvc_string_list_get_length(stringList, &list_length);
+
+ Elm_Object_Item *itm = NULL;
+
+ // No Content message when list is empty
+ if(1 > list_length){
+ Evas_Object *no_content = elm_layout_add(ad->win_main);
+ if(NULL == no_content){
+ return;
+ }
+ elm_layout_theme_set(no_content, "layout", "nocontents", "text");
+ elm_object_part_text_set(no_content, "elm.text", dgettext(PACKAGE, "IDS_ST_BODY_NO_CONTENT"));
+ evas_object_size_hint_weight_set(no_content, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_show(no_content);
+
+ itm = elm_naviframe_item_push(
+ ad->navi_bar,
+ dgettext(PACKAGE, "CERTIFICATE_SELECTION_SCREEN_TITLE"),
+ NULL,
+ NULL,
+ no_content,
+ NULL);
+ }
+ else {
+ for (i = 0; i < list_length; i++) {
+ elm_genlist_item_append(genlist, &itc, (void*) i, NULL, ELM_GENLIST_ITEM_NONE, _gl_sel, (void*) i);
+ }
+
+ itm = elm_naviframe_item_push(
+ ad->navi_bar,
+ dgettext(PACKAGE, "CERTIFICATE_SELECTION_SCREEN_TITLE"),
+ NULL,
+ NULL,
+ genlist,
+ NULL);
+ }
+ elm_object_item_part_content_set(itm, "toolbar_button1", open_button);
+ elm_object_item_part_content_set(itm, "toolbar_button2", cancel_button);
+ elm_object_disabled_set(open_button, EINA_TRUE);
+
+ LOGD("end of cert_selection");
+}
--- /dev/null
+cert-svc-ui (1.0.1-39) unstable; urgency=low
+
+ * Changed files location to /usr/ug/
+ * Fixed the UI to work with the New Winset (change in EFL - removed toolbar)
+ * Added localization in cert-svc-ui for Polish language
+
+ * Git : framework/security/cert-svc-ui
+
+ -- Tomasz Swierczek <t.swierczek@samsung.com> Thu, 08 Nov 2012 11:11:00 +0100
+
+cert-svc-ui (1.0.1-38) unstable; urgency=low
+
+ * Fixed FC while installed PFX without email address.
+
+ * Git : framework/security/cert-svc-ui
+
+ -- Tomasz Swierczek <t.swierczek@samsung.com> Wed, 24 Oct 2012 12:13:00 +0100
+
+cert-svc-ui (1.0.1-37) unstable; urgency=low
+
+ * Licence copied to proper location
+
+ * Git : framework/security/cert-svc-ui
+
+ -- Tomasz Swierczek <t.swierczek@samsung.com> Mon, 22 Oct 2012 15:20:00 +0100
+
+cert-svc-ui (1.0.1-36) unstable; urgency=low
+
+ * Fixed bugs from PLM - visual issues
+ * Added manifest file
+
+ * Git : framework/security/cert-svc-ui
+ * Tag : cert-svc_1.0.1-36
+
+ -- Tomasz Swierczek <t.swierczek@samsung.com> Fri, 05 Oct 2012 17:55:00 +0100
+
+cert-svc-ui (1.0.1-35) unstable; urgency=low
+
+ * Add /opt/etc/ssl/certs to trusted roots certificates.
+ * Remove "Uninstall" button from Trusted Root sub-menu.
+ * Add title in "Public Key" field.
+ * Add "NO_DATA" info to "Key Usage" if there's no info about key usage.
+
+ * Git : framework/security/cert-svc-ui
+ * Tag : cert-svc_1.0.1-35
+
+ -- Tomasz Swierczek <t.swierczek@samsung.com> Fri, 21 Sep 2012 14:1:00 +0200
--- /dev/null
+mgr-app (0.0.1-1) unstable; urgency=low
+
+ * first source package for building
+
+ -- ManHyun Hwang <mh222.hwang@samsung.com> Thu, 30 JUN 2011 13:43:34 +0900
+
--- /dev/null
+libug-setting-manage-application-efl (0.0.1-1) unstable; urgency=low
+
+ * first source package for building
+
+ -- ManHyun Hwang <mh222.hwang@samsung.com> Thu, 30 JUN 2011 13:43:34 +0900
+
--- /dev/null
+Name=manage application
+Exec=${PREFIX}/bin/mgr-app
+Hidden=False
+Version=@VERSION@
+Type=Application
+X-TIZEN-TaskManage=True
+X-TIZEN-Multiple=False
+
+Name[en_US]=manage application
+Name[nl_NL]=manage application
+Name[de_DE]=manage application
+Name[zh_HK]=manage application
+Name[zh_CN]=manage application
+Name[ru_RU]=manage application
+Name[ko_KR]=manage application
+Name[zh_TW]=manage application
+Name[ja_JP]=manage application
+Name[es_ES]=manage application
+Name[el_GR]=manage application
+Name[it_IT]=manage application
+Name[tr_TR]=manage application
+Name[pt_PT]=manage application
+Name[fr_FR]=manage application
+
--- /dev/null
+#!/bin/sh
+
+# file owner
+if [ ${USER} == "root" ]
+then
+ echo "Test if"
+else
+ eche "Test else"
+fi
+
--- /dev/null
+Source: cert-svc
+Section: libs
+Priority: extra
+Maintainer: KiDong Kim <kd0228.kim@samsung.com>
+Build-Depends: debhelper (>= 5),
+ libappcore-efl-dev,
+ autotools-dev,
+ libelm-dev,
+ libslp-setting-dev,
+ libui-gadget-dev,
+ libbundle-dev,
+ libaul-1-dev,
+ libefreet-dev,
+ libeina-dev,
+ shared-mime-info,
+# java-runtime-dev,
+ libail-0-dev,
+ libpkgmgr-client-dev,
+ libjava-parser-dev,
+ debhelper (>= 7.0.50),
+ libssl-dev,
+ dlog-dev,
+ ca-certificates,
+ wrt-commons-dev,
+ libxmlsec1-dev,
+ libsoup2.4-dev,
+ libecore-dev,
+ libxml2-dev,
+ libpcre-dev,
+ libslp-tapi-dev,
+ libappsvc-dev
+
+Package: libcert-svc1-ui
+Section: libs
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}, libappsvc-dev
+Description: Manage Application package
+
+#Package: libug-setting-manage-application-efl-dbg
+#Section: debug
+#Architecture: any
+#Depends: ${shlibs:Depends}, ${misc:Depends}, libug-setting-manage-application-efl-0 (= ${binary:Version})
+#Description: Manage Application debug(unstripped) package
+
+Package: libcert-svc-dev
+Section: libdevel
+Architecture: any
+Depends: ${misc:Depends}, libcert-svc1 (= ${binary:Version}), libssl-dev, dlog-dev
+Description: Certification service development package
+
+Package: libcert-svc1
+Section: libs
+Architecture: any
+Provides: libcert-svc-0
+Replaces: libcert-svc-0
+Depends: ${shlibs:Depends}, ${misc:Depends}, sqlite3
+Description: Certification service library and executable
+
+Package: libcert-svc1-dbg
+Section: debug
+Architecture: any
+Provides: libcert-svc-dbg
+Replaces: libcert-svc-dbg
+Depends: ${misc:Depends}, libcert-svc1 (= ${binary:Version})
+Description: debug package of cert-svc library
+
+Package: libcert-svc1-test
+Section: libs
+Architecture: any
+Depends: ${misc:Depends}, ${shlibs:Depends}, libcert-svc1 (= ${binary:Version})
+Description: test program for cert-svc
--- /dev/null
+Source: mgr-app
+Section: libs
+Priority: extra
+Maintainer: SangJun Na <juni.na@samsung.com>, Manhyun Hwang <mh222.hwang@samsung.com>, Eunmi Son <eunmi.son@samsung.com>
+Build-Depends: debhelper (>= 5),
+ libappcore-efl-dev,
+ autotools-dev,
+ libelm-dev,
+ libslp-setting-dev,
+ libui-gadget-dev,
+ libbundle-dev,
+ libaul-1-dev,
+ libefreet-dev,
+ libeina-dev,
+ shared-mime-info,
+# java-runtime-dev,
+ libail-0-dev,
+ libpkgmgr-client-dev,
+ libjava-parser-dev
+
+Package: mgr-app-0
+Section: libs
+Architecture: armel
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: Manage Application package
+
+Package: mgr-app-dbg
+Section: debug
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}, mgr-app-0 (= ${binary:Version})
+Description: Manage Application debug(unstripped) package
--- /dev/null
+Source: libug-setting-manage-application-efl
+Section: libs
+Priority: extra
+Maintainer: SangJun Na <juni.na@samsung.com>, Manhyun Hwang <mh222.hwang@samsung.com>, Eunmi Son <eunmi.son@samsung.com>
+Build-Depends: debhelper (>= 5),
+ libappcore-efl-dev,
+ autotools-dev,
+ libelm-dev,
+ libslp-setting-dev,
+ libui-gadget-dev,
+ libbundle-dev,
+ libaul-1-dev,
+ libefreet-dev,
+ libeina-dev,
+ shared-mime-info,
+# java-runtime-dev,
+ libail-0-dev,
+ libpkgmgr-client-dev,
+ libjava-parser-dev
+
+Package: libug-setting-manage-application-efl-0
+Section: libs
+Architecture: armel
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: Manage Application package
+
+Package: libug-setting-manage-application-efl-dbg
+Section: debug
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}, libug-setting-manage-application-efl-0 (= ${binary:Version})
+Description: Manage Application debug(unstripped) package
--- /dev/null
+/usr/include/*
+/usr/lib/pkgconfig/*
+/usr/lib/*.so
--- /dev/null
+/usr/bin/cert-svc-test*
+/opt/apps/widget/tests/vcore_widget_uncompressed/*
+/opt/apps/widget/tests/vcore_keys/*
+/opt/apps/widget/tests/vcore_certs/*
+/opt/apps/widget/tests/pkcs12/*
+/opt/share/cert-svc/certs/code-signing/wac/root_cacert0.pem
--- /dev/null
+/opt/ug/lib/libmgr-cert-common.so
+/opt/ug/lib/libmgr-cert-view.so
+/opt/ug/lib/libug-setting-manage-certificates-efl.so.*
+/opt/ug/lib/libug-setting-manage-certificates-efl.so
+/opt/ug/res/edje/ug-setting-manage-certificates-efl/
+/opt/ug/res/images/ug-setting-manage-certificates-efl/
+/opt/ug/res/locale/*/*/ug-setting-manage-certificates-efl.mo
--- /dev/null
+/usr/share/cert-svc/ca-certs/code-signing/java/operator
+/usr/share/cert-svc/ca-certs/code-signing/java/manufacture
+/usr/share/cert-svc/ca-certs/code-signing/java/thirdparty
+/usr/share/cert-svc/ca-certs/code-signing/debian
+/usr/share/cert-svc/ca-certs/code-signing/wac
+/opt/share/cert-svc/certs/code-signing/java/operator
+/opt/share/cert-svc/certs/code-signing/java/manufacture
+/opt/share/cert-svc/certs/code-signing/java/thirdparty
+/opt/share/cert-svc/certs/code-signing/wac
+/opt/share/cert-svc/certs/sim/operator
+/opt/share/cert-svc/certs/sim/thirdparty
+/opt/share/cert-svc/certs/ssl
+/opt/share/cert-svc/certs/user
+/opt/share/cert-svc/certs/trusteduser
+/opt/share/cert-svc/certs/mdm/security/cert
--- /dev/null
+/usr/bin/cert_svc_create_clean_db.sh
+/usr/lib/*.so.*
+/usr/bin/dpkg-pki-sig
+/opt/share/cert-svc/targetinfo
+/usr/share/cert-svc/cert_svc_vcore_db.sql
+/usr/share/cert-svc/fingerprint_list.xml
+/usr/share/cert-svc/fingerprint_list.xsd
+/usr/share/cert-svc/schema.xsd
+/opt/share/cert-svc/certs/code-signing/wac/wac0.root.preproduction.pem
+/opt/share/cert-svc/certs/code-signing/wac/wac0.root.production.pem
+/opt/share/cert-svc/certs/code-signing/wac/wac0.publisherid.pem
+/opt/share/cert-svc/certs/code-signing/wac/tizen0.root.preproduction.cert.pem
+
--- /dev/null
+/opt/etc/ssl/certs/ /usr/share/cert-svc/ca-certs/ssl
--- /dev/null
+#!/bin/sh -e
+
+USE_CERT=6524
+
+case "$1" in
+ configure)
+ if [ `whoami` = "root" ]
+ then
+ chown -R root:${USE_CERT} /opt/share/cert-svc/certs/
+ chmod -R 0775 /opt/share/cert-svc/certs/
+ fi
+
+ if [ -z ${2} ]
+ then
+ echo "This is new install of wrt-security"
+ echo "Calling /usr/bin/cert_svc_create_clean_db.sh"
+ /usr/bin/cert_svc_create_clean_db.sh
+ else
+ # Find out old and new version of databases
+ VCORE_OLD_DB_VERSION=`sqlite3 /opt/dbspace/.cert_svc_vcore.db ".tables" | grep "DB_VERSION_"`
+ VCORE_NEW_DB_VERSION=`cat /usr/share/cert-svc/cert_svc_vcore_db.sql | tr '[:blank:]' '\n' | grep DB_VERSION_`
+ echo "OLD vcore database version ${VCORE_OLD_DB_VERSION}"
+ echo "NEW vcore database version ${VCORE_NEW_DB_VERSION}"
+
+ if [ ${VCORE_OLD_DB_VERSION} -a ${VCORE_NEW_DB_VERSION} ]
+ then
+ if [ ${VCORE_OLD_DB_VERSION} = ${VCORE_NEW_DB_VERSION} ]
+ then
+ echo "Equal database detected so db installation ignored"
+ else
+ echo "Calling /usr/bin/cert_svc_create_clean_db.sh"
+ /usr/bin/cert_svc_create_clean_db.sh
+ fi
+ else
+ echo "Calling /usr/bin/cert_svc_create_clean_db.sh"
+ /usr/bin/cert_svc_create_clean_db.sh
+ fi
+ fi
+ ;;
+
+ abort-upgrade|abort-remove|abort-deconfigure)
+ ;;
+
+ *)
+ echo "postinst called with unknown argument \`$1'" >&2
+ exit 1
+ ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
--- /dev/null
+#!/usr/bin/make -f
+# -*- makefile -*-
+# Sample debian/rules that uses debhelper.
+# This file was originally written by Joey Hess and Craig Small.
+# As a special exception, when this file is copied by dh-make into a
+# dh-make output file, you may use that output file without restriction.
+# This special exception was added by Craig Small in version 0.37 of dh-make.
+
+# Uncomment this to turn on verbose mode.
+#export DH_VERBOSE=1
+
+ppTYPE ?= ugapp
+
+CFLAGS ?= -Wall -g
+LDFLAGS ?=
+ifneq (,$(findstring app,$(TYPE)))
+ PKGNAME ?= mgr-app
+ PREFIX ?= /opt/apps/mgr-app
+ RESDIR ?= /opt/apps/mgr-app/res
+ DATADIR ?= /opt/apps/mgr-app/data
+else
+ PKGNAME ?= libug-setting-manage-certificates-efl
+ PREFIX ?= /opt/ug
+ RESDIR ?= /opt/ug/res
+ DATADIR ?= /opt/ug/res/etc
+endif
+
+ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
+ CFLAGS += -O0
+ BUILD_TYPE=Debug
+else
+ CFLAGS += -O2
+ BUILD_TYPE=Release
+endif
+
+LDFLAGS += -Wl,--rpath=$(PREFIX)/lib -Wl,--as-needed
+
+CMAKE_BUILD_DIR ?= $(CURDIR)/cmake_build_tmp
+CMAKE_CERT_SVC_BUILD_DIR ?= $(CURDIR)/library
+
+
+configure: configure-stamp
+configure-stamp:
+ dh_testdir
+ # Add here commands to configure the package.
+ cd $(CMAKE_CERT_SVC_BUILD_DIR) && cmake .
+ mkdir -p $(CMAKE_BUILD_DIR) && cd $(CMAKE_BUILD_DIR) && CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" cmake ../ui/ -DCMAKE_INSTALL_PREFIX="$(PREFIX)" -DCMAKE_BUILD_TYPE="$(BUILD_TYPE)" -DPKGNAME="$(PKGNAME)" -DTYPE="$(TYPE)"
+ touch $(CMAKE_BUILD_DIR)/configure-stamp
+ touch $(CMAKE_CERT_SVC_BUILD_DIR)/configure-stamp
+
+build: build-stamp
+build-stamp: configure-stamp
+ dh_testdir
+
+ # Add here commands to compile the package.
+ cd $(CMAKE_CERT_SVC_BUILD_DIR) && $(MAKE)
+ cd $(CMAKE_BUILD_DIR) && $(MAKE)
+
+ for f in `find $(CURDIR)/debian/ -name "$(PREFIX)*.in"`; do \
+ cat $$f > $${f%.in}; \
+ sed -i -e "s#@PREFIX@#$(PREFIX)#g" $${f%.in}; \
+ sed -i -e "s#@RESDIR@#$(RESDIR)#g" $${f%.in}; \
+ sed -i -e "s#@DATADIR@#$(DATADIR)#g" $${f%.in}; \
+ sed -i -e "s#@PKGNAME@#$(PKGNAME)#g" $${f%.in}; \
+ done
+
+ touch $(CMAKE_BUILD_DIR)/$@
+ touch $(CMAKE_CERT_SVC_BUILD_DIR)/$@
+
+clean:
+ dh_testdir
+ dh_testroot
+ rm -f build-stamp configure-stamp
+
+ # Add here commands to clean up after the build process.
+ rm -rf $(CMAKE_BUILD_DIR)
+
+ for f in `find $(CURDIR)/debian/ -name "*.in"`; do \
+ rm -f $${f%.in}; \
+ done
+ dh_clean
+
+install: build
+ dh_testdir
+ dh_testroot
+ dh_clean -k
+ dh_installdirs
+
+ cd $(CMAKE_BUILD_DIR) && $(MAKE) DESTDIR=$(CURDIR)/debian/tmp install
+ cd $(CMAKE_CERT_SVC_BUILD_DIR) && $(MAKE) DESTDIR=$(CURDIR)/debian/tmp install
+
+
+# Build architecture-independent files here.
+binary-indep: build install
+# We have nothing to do by default.
+
+# Build architecture-dependent files here.
+binary-arch: build install
+ dh_testdir
+ dh_testroot
+ #dh_installchangelogs
+ #dh_installdocs
+ #dh_installexamples
+ dh_install --sourcedir=debian/tmp
+ #dh_installmenu
+ #dh_installdebconf
+ #dh_installlogrotate
+ #dh_installemacsen
+ #dh_installpam
+ #dh_installmime
+ #dh_python
+ #dh_installinit
+ #dh_installcron
+ #dh_installinfo
+ dh_installman
+ dh_link
+ #dh_strip --dbg-package=$(PKGNAME)-dbg
+ dh_compress
+ dh_fixperms
+ #dh_perl
+ dh_makeshlibs
+ dh_installdeb
+ dh_shlibdeps
+ dh_gencontrol
+ dh_md5sums
+ dh_builddeb
+
+binary: binary-indep binary-arch
+.PHONY: build clean binary-indep binary-arch binary install configure
+
--- /dev/null
+<manifest>
+ <request>
+ <domain name="_"/>
+ </request>
+</manifest>
--- /dev/null
+#sbs-git:slp/pkgs/c/cert-svc cert-svc 1.0.1 ad7eb7efcefb37b06017c69cb2fc44e6f7b6cab7
+Name: cert-svc-ui
+Summary: Certification service
+Version: 1.0.1
+Release: 47
+Group: System/Libraries
+License: SAMSUNG
+Source0: %{name}-%{version}.tar.gz
+Source1: %{name}.manifest
+
+Requires(post): /sbin/ldconfig
+Requires(postun): /sbin/ldconfig
+
+BuildRequires: cmake
+BuildRequires: gettext-tools
+BuildRequires: edje-tools
+BuildRequires: pkgconfig(dlog)
+BuildRequires: pkgconfig(ail)
+BuildRequires: pkgconfig(appcore-efl)
+BuildRequires: pkgconfig(appsvc)
+BuildRequires: pkgconfig(cert-svc-vcore)
+BuildRequires: pkgconfig(aul)
+BuildRequires: pkgconfig(dlog)
+BuildRequires: pkgconfig(edje)
+BuildRequires: pkgconfig(eina)
+BuildRequires: pkgconfig(elementary)
+BuildRequires: pkgconfig(evas)
+BuildRequires: pkgconfig(glib-2.0)
+BuildRequires: pkgconfig(ui-gadget-1)
+BuildRequires: pkgconfig(icu-i18n)
+BuildRequires: pkgconfig(bundle)
+BuildRequires: pkgconfig(ui-gadget-1)
+BuildRequires: pkgconfig(capi-appfw-application)
+BuildRequires: pkgconfig(glib-2.0)
+
+%description
+Certification service
+
+%prep
+%setup -q
+
+%define _ugdir /usr/ug
+
+%build
+%{!?build_type:%define build_type "Release"}
+cmake . -DCMAKE_INSTALL_PREFIX="%{_ugdir}" -DCMAKE_BUILD_TYPE=%{build_type} -DPKGNAME="cert-svc1-ui"
+#VERBOSE=1 make
+make
+
+%install
+rm -rf %{buildroot}
+mkdir -p %{buildroot}/usr/share/license
+cp LICENSE.APLv2 %{buildroot}/usr/share/license/%{name}
+%make_install
+install -D %{SOURCE1} %{buildroot}%{_datadir}/%{name}.manifest
+
+%clean
+rm -rf %{buildroot}
+
+%post -p /sbin/ldconfig
+
+%postun -p /sbin/ldconfig
+
+%files
+%defattr(-,root,root,-)
+%manifest %{_datadir}/%{name}.manifest
+%{_ugdir}/lib/libmgr-cert-view.so
+%{_ugdir}/lib/libug-setting-manage-certificates-efl.so.*
+%{_ugdir}/lib/libug-setting-manage-certificates-efl.so
+%{_ugdir}/lib/libug-cert-selection-ug-efl.so*
+%{_ugdir}/res/locale/*/LC_MESSAGES/*
+%{_datadir}/license/%{name}
--- /dev/null
+SET(POFILES
+ ar.po ca.po de_DE.po en.po es_MX.po fi.po ga.po hi.po hy.po it_IT.po kk.po lv.po nb.po pl.po ro.po sl.po th.po uz.po zh_HK.po
+ az.po cs.po el_GR.po en_US.po et.po fr_CA.po gl.po hr.po id.po ja_JP.po ko_KR.po mk.po nl_NL.po pt_BR.po ru_RU.po sr.po tr_TR.po vi.po zh_SG.po
+ bg.po da.po en_PH.po es_ES.po eu.po fr_FR.po he.po hu.po is.po ka.po lt.po ms.po no.po pt_PT.po sk.po sv.po uk.po zh_CN.po zh_TW.po
+)
+
+SET(MSGFMT "/usr/bin/msgfmt")
+
+FOREACH(pofile ${POFILES})
+ SET(pofile ${CMAKE_CURRENT_SOURCE_DIR}/${pofile})
+ MESSAGE("PO: ${pofile}")
+ GET_FILENAME_COMPONENT(absPofile ${pofile} ABSOLUTE)
+ GET_FILENAME_COMPONENT(lang ${absPofile} NAME_WE)
+ SET(moFile ${CMAKE_CURRENT_BINARY_DIR}/${lang}.mo)
+ ADD_CUSTOM_COMMAND(
+ OUTPUT ${moFile}
+ COMMAND ${MSGFMT} -o ${moFile} ${absPofile}
+ DEPENDS ${absPofile}
+ )
+ INSTALL(FILES ${moFile}
+ DESTINATION ${LOCALEDIR}/${lang}/LC_MESSAGES RENAME ${PROJECT_NAME}.mo)
+ SET(moFiles ${moFiles} ${moFile})
+ENDFOREACH(pofile)
+
+MESSAGE(".mo files: ${moFiles}")
+ADD_CUSTOM_TARGET(po ALL DEPENDS ${moFiles})
--- /dev/null
+msgid "IDS_ST_BODY_CERTIFICATES"
+msgstr "الشهادات"
+
+msgid "IDS_ST_BODY_VERSION_C"
+msgstr "النسخة:"
+
+msgid "IDS_ST_BUTTON_UNINSTALL"
+msgstr "إلغاء التثبيت"
+
+msgid "IDS_ST_BODY_MANUFACTURER"
+msgstr "المصنع"
+
+msgid "IDS_ST_BODY_SELECT_ALL"
+msgstr "اختيار الكل"
+
+msgid "IDS_ST_BODY_ISSUER_COLON"
+msgstr "جهة الإصدار:"
+
+msgid "IDS_ST_BUTTON_INSTALL"
+msgstr "تثبيت"
+
+msgid "IDS_ST_BODY_ALIAS_ALREADY_EXISTS_ENTER_A_UNIQUE_ALIAS"
+msgstr "الاسم المستعار موجود بالفعل. أدخل اسما مستعارا فريدا"
+
+msgid "IDS_ST_BODY_ALIAS_CANNOT_BE_EMPTY"
+msgstr "لا يمكن ترك الاسم المستعار فارغا"
+
+msgid "IDS_ST_BODY_CERTIFICATES_FOUND"
+msgstr "تم العثور على شهادات"
+
+msgid "IDS_ST_BODY_CERTIFICATE_DETAILS"
+msgstr "تفاصيل الشهادة"
+
+msgid "IDS_ST_BODY_CERTIFICATE_INFORMATION"
+msgstr "معلومات الشهادة"
+
+msgid "IDS_ST_BODY_CERTIFICATION_AUTHORITY_C"
+msgstr "المرجع المصدق:"
+
+msgid "IDS_ST_BODY_ENTER_KEY_ALIAS_C"
+msgstr "إدخال الاسم المستعار للمفتاح:"
+
+msgid "IDS_ST_BODY_ENTER_PASSWORD_C"
+msgstr "إدخال كلمة المرور:"
+
+msgid "IDS_ST_BODY_EXTERNAL_CERTIFICATES"
+msgstr "الشهادات الخارجية"
+
+msgid "IDS_ST_BODY_FALSE"
+msgstr "خطأ"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATE"
+msgstr "تثبيت الشهادة"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATES_FROM_SD_CARD_Q"
+msgstr "تثبيت الشهادات من بطاقة SD؟"
+
+msgid "IDS_ST_BODY_KEY_USAGE_C"
+msgstr "استخدام المفتاح:"
+
+msgid "IDS_ST_BODY_ORGANISATION_C"
+msgstr "المؤسسة:"
+
+msgid "IDS_ST_BODY_OWNER_C"
+msgstr "المالك:"
+
+msgid "IDS_ST_BODY_PUBLIC_KEY_C"
+msgstr "المفتاح العام:"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE"
+msgstr "اختر الشهادة"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE_TO_INSTALL"
+msgstr "حدد الشهادة المطلوب تثبيتها"
+
+msgid "IDS_ST_BODY_SERIAL_NUMBER_C"
+msgstr "الرقم التسلسلي:"
+
+msgid "IDS_ST_BODY_SIGNATURE_ALGORITHM_C"
+msgstr "خوارزمية التوقيع:"
+
+msgid "IDS_ST_BODY_TRUE"
+msgstr "صحيح"
+
+msgid "IDS_ST_BODY_TRUSTED_ROOT_CERTIFICATES"
+msgstr "الشهادات الجذر الموثوقة"
+
+msgid "IDS_ST_BODY_USER_CERTIFICATES"
+msgstr "شهادات المستخدم"
+
+msgid "IDS_ST_BODY_VALID_FROM_C"
+msgstr "صالح من:"
+
+msgid "IDS_ST_BODY_VALID_TO_C"
+msgstr "صالح حتى:"
+
+msgid "IDS_ST_BUTTON_OPEN"
+msgstr "فتح"
+
+msgid "IDS_ST_BODY_COMMON_NAME_C"
+msgstr "الاسم الشائع:"
+
+msgid "IDS_ST_BODY_INCORRECT_PASSWORD"
+msgstr "كلمة مرور غير صحيحة"
+
+msgid "IDS_ST_BODY_NO_CONTENT"
+msgstr "بدون محتويات"
+
+msgid "IDS_ST_BODY_NO_DATA"
+msgstr "لا توجد بيانات"
+
+msgid "IDS_ST_BUTTON_NO"
+msgstr "لا"
+
+msgid "IDS_ST_BUTTON_YES"
+msgstr "نعم"
+
+msgid "IDS_ST_SK2_CANCEL"
+msgstr "إلغاء"
+
+msgid "IDS_ST_SK2_OK"
+msgstr "موافق"
+
--- /dev/null
+msgid "IDS_ST_BODY_CERTIFICATES"
+msgstr "Sertifikatlar"
+
+msgid "IDS_ST_BODY_VERSION_C"
+msgstr "Versiyası:"
+
+msgid "IDS_ST_BUTTON_UNINSTALL"
+msgstr "Quraşdırmanı ləğv et"
+
+msgid "IDS_ST_BODY_MANUFACTURER"
+msgstr "İstehsalçı"
+
+msgid "IDS_ST_BODY_SELECT_ALL"
+msgstr "Hamısını seç"
+
+msgid "IDS_ST_BODY_ISSUER_COLON"
+msgstr "Emitent:"
+
+msgid "IDS_ST_BUTTON_INSTALL"
+msgstr "Yüklə"
+
+msgid "IDS_ST_BODY_ALIAS_ALREADY_EXISTS_ENTER_A_UNIQUE_ALIAS"
+msgstr "Ad artıq mövcuddur. Unikal ad daxil edin"
+
+msgid "IDS_ST_BODY_ALIAS_CANNOT_BE_EMPTY"
+msgstr "Ad boş ola bilməz"
+
+msgid "IDS_ST_BODY_CERTIFICATES_FOUND"
+msgstr "Sertifikatlar tapıldı"
+
+msgid "IDS_ST_BODY_CERTIFICATE_DETAILS"
+msgstr "Sertifikat detalları"
+
+msgid "IDS_ST_BODY_CERTIFICATE_INFORMATION"
+msgstr "Sertifikata dair məlumat"
+
+msgid "IDS_ST_BODY_CERTIFICATION_AUTHORITY_C"
+msgstr "Sertifikat üzrə səlahiyyətli orqan"
+
+msgid "IDS_ST_BODY_ENTER_KEY_ALIAS_C"
+msgstr "Kod adını daxil et:"
+
+msgid "IDS_ST_BODY_ENTER_PASSWORD_C"
+msgstr "Parolu daxil et:"
+
+msgid "IDS_ST_BODY_EXTERNAL_CERTIFICATES"
+msgstr "Xarici sertifikatlar"
+
+msgid "IDS_ST_BODY_FALSE"
+msgstr "Saxta"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATE"
+msgstr "Sertifikatı quraşdır"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATES_FROM_SD_CARD_Q"
+msgstr "SD kartdan sertifikatlar quraşdırılsın?"
+
+msgid "IDS_ST_BODY_KEY_USAGE_C"
+msgstr "Düymənin istifadəsi:"
+
+msgid "IDS_ST_BODY_ORGANISATION_C"
+msgstr "Təşkilat:"
+
+msgid "IDS_ST_BODY_OWNER_C"
+msgstr "Sahibi:"
+
+msgid "IDS_ST_BODY_PUBLIC_KEY_C"
+msgstr "Ümumi kod:"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE"
+msgstr "Sertifikat seç"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE_TO_INSTALL"
+msgstr "Quraşdırmaq üçün sertifikat seç"
+
+msgid "IDS_ST_BODY_SERIAL_NUMBER_C"
+msgstr "Seriya nömrəsi:"
+
+msgid "IDS_ST_BODY_SIGNATURE_ALGORITHM_C"
+msgstr "İmza alqoritmi:"
+
+msgid "IDS_ST_BODY_TRUE"
+msgstr "Doğru"
+
+msgid "IDS_ST_BODY_TRUSTED_ROOT_CERTIFICATES"
+msgstr "Etibarlı əsas sertifikat"
+
+msgid "IDS_ST_BODY_USER_CERTIFICATES"
+msgstr "İstifadəçi sertifikatları"
+
+msgid "IDS_ST_BODY_VALID_FROM_C"
+msgstr "...dan etibarlıdır:"
+
+msgid "IDS_ST_BODY_VALID_TO_C"
+msgstr "Bu tarixə qədər qüvvədədir:"
+
+msgid "IDS_ST_BUTTON_OPEN"
+msgstr "Aç"
+
+msgid "IDS_ST_BODY_COMMON_NAME_C"
+msgstr "Ümumi ad:"
+
+msgid "IDS_ST_BODY_INCORRECT_PASSWORD"
+msgstr "Yanlış şifrə"
+
+msgid "IDS_ST_BODY_NO_CONTENT"
+msgstr "Məzmun yoxdur"
+
+msgid "IDS_ST_BODY_NO_DATA"
+msgstr "Məlumat yoxdur"
+
+msgid "IDS_ST_BUTTON_NO"
+msgstr "Xeyr"
+
+msgid "IDS_ST_BUTTON_YES"
+msgstr "Bəli"
+
+msgid "IDS_ST_SK2_CANCEL"
+msgstr "İmtina"
+
+msgid "IDS_ST_SK2_OK"
+msgstr "OK"
+
--- /dev/null
+msgid "IDS_ST_BODY_CERTIFICATES"
+msgstr "Сертификати"
+
+msgid "IDS_ST_BODY_VERSION_C"
+msgstr "Версия:"
+
+msgid "IDS_ST_BUTTON_UNINSTALL"
+msgstr "Деинсталиране"
+
+msgid "IDS_ST_BODY_MANUFACTURER"
+msgstr "Производител"
+
+msgid "IDS_ST_BODY_SELECT_ALL"
+msgstr "Избери всички"
+
+msgid "IDS_ST_BODY_ISSUER_COLON"
+msgstr "Издател:"
+
+msgid "IDS_ST_BUTTON_INSTALL"
+msgstr "Инсталиране"
+
+msgid "IDS_ST_BODY_ALIAS_ALREADY_EXISTS_ENTER_A_UNIQUE_ALIAS"
+msgstr "Псевдонимът вече съществува. Въведете уникален псевдоним"
+
+msgid "IDS_ST_BODY_ALIAS_CANNOT_BE_EMPTY"
+msgstr "Псевдонимът не може да е празен"
+
+msgid "IDS_ST_BODY_CERTIFICATES_FOUND"
+msgstr "Намерени сертификати"
+
+msgid "IDS_ST_BODY_CERTIFICATE_DETAILS"
+msgstr "Детайли за сертификата"
+
+msgid "IDS_ST_BODY_CERTIFICATE_INFORMATION"
+msgstr "Информация за сертификат"
+
+msgid "IDS_ST_BODY_CERTIFICATION_AUTHORITY_C"
+msgstr "Издател на сертификата:"
+
+msgid "IDS_ST_BODY_ENTER_KEY_ALIAS_C"
+msgstr "Въведете псевдоним на ключ:"
+
+msgid "IDS_ST_BODY_ENTER_PASSWORD_C"
+msgstr "Въведете парола:"
+
+msgid "IDS_ST_BODY_EXTERNAL_CERTIFICATES"
+msgstr "Външни сертификати"
+
+msgid "IDS_ST_BODY_FALSE"
+msgstr "Невярно"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATE"
+msgstr "Инсталиране на сертификат"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATES_FROM_SD_CARD_Q"
+msgstr "Инсталиране на сертификати от SD карта?"
+
+msgid "IDS_ST_BODY_KEY_USAGE_C"
+msgstr "Предназначение на ключа:"
+
+msgid "IDS_ST_BODY_ORGANISATION_C"
+msgstr "Организация:"
+
+msgid "IDS_ST_BODY_OWNER_C"
+msgstr "Собственик:"
+
+msgid "IDS_ST_BODY_PUBLIC_KEY_C"
+msgstr "Публичен ключ:"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE"
+msgstr "Изберете сертификата"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE_TO_INSTALL"
+msgstr "Изберете сертификат за инсталиране"
+
+msgid "IDS_ST_BODY_SERIAL_NUMBER_C"
+msgstr "Сериен номер:"
+
+msgid "IDS_ST_BODY_SIGNATURE_ALGORITHM_C"
+msgstr "Алгоритъм на подписа:"
+
+msgid "IDS_ST_BODY_TRUE"
+msgstr "false"
+
+msgid "IDS_ST_BODY_TRUSTED_ROOT_CERTIFICATES"
+msgstr "Надеждни главни сертификати"
+
+msgid "IDS_ST_BODY_USER_CERTIFICATES"
+msgstr "Потребителски сертификати"
+
+msgid "IDS_ST_BODY_VALID_FROM_C"
+msgstr "Валидно от:"
+
+msgid "IDS_ST_BODY_VALID_TO_C"
+msgstr "Валидно до:"
+
+msgid "IDS_ST_BUTTON_OPEN"
+msgstr "Отвори"
+
+msgid "IDS_ST_BODY_COMMON_NAME_C"
+msgstr "Общо име:"
+
+msgid "IDS_ST_BODY_INCORRECT_PASSWORD"
+msgstr "Грешна парола"
+
+msgid "IDS_ST_BODY_NO_CONTENT"
+msgstr "Няма съдържание"
+
+msgid "IDS_ST_BODY_NO_DATA"
+msgstr "Няма данни"
+
+msgid "IDS_ST_BUTTON_NO"
+msgstr "Не"
+
+msgid "IDS_ST_BUTTON_YES"
+msgstr "Да"
+
+msgid "IDS_ST_SK2_CANCEL"
+msgstr "Отказ"
+
+msgid "IDS_ST_SK2_OK"
+msgstr "OK"
+
--- /dev/null
+msgid "IDS_ST_BODY_CERTIFICATES"
+msgstr "Certificats"
+
+msgid "IDS_ST_BODY_VERSION_C"
+msgstr "Versió:"
+
+msgid "IDS_ST_BUTTON_UNINSTALL"
+msgstr "Desinstal·lar"
+
+msgid "IDS_ST_BODY_MANUFACTURER"
+msgstr "Fabricant"
+
+msgid "IDS_ST_BODY_SELECT_ALL"
+msgstr "Seleccioni-ho tot"
+
+msgid "IDS_ST_BODY_ISSUER_COLON"
+msgstr "Emissor:"
+
+msgid "IDS_ST_BUTTON_INSTALL"
+msgstr "Instal·lar"
+
+msgid "IDS_ST_BODY_ALIAS_ALREADY_EXISTS_ENTER_A_UNIQUE_ALIAS"
+msgstr "Ja existeix l'àlies. Introdueixi'n un d'únic"
+
+msgid "IDS_ST_BODY_ALIAS_CANNOT_BE_EMPTY"
+msgstr "L'àlies no pot estar buit"
+
+msgid "IDS_ST_BODY_CERTIFICATES_FOUND"
+msgstr "Certificats trobats"
+
+msgid "IDS_ST_BODY_CERTIFICATE_DETAILS"
+msgstr "Detalls del certificat"
+
+msgid "IDS_ST_BODY_CERTIFICATE_INFORMATION"
+msgstr "Informació del certificat"
+
+msgid "IDS_ST_BODY_CERTIFICATION_AUTHORITY_C"
+msgstr "Autoritat de certificació:"
+
+msgid "IDS_ST_BODY_ENTER_KEY_ALIAS_C"
+msgstr "Introduir àlies de clau:"
+
+msgid "IDS_ST_BODY_ENTER_PASSWORD_C"
+msgstr "Introdueixi la contrasenya:"
+
+msgid "IDS_ST_BODY_EXTERNAL_CERTIFICATES"
+msgstr "Certificats externs"
+
+msgid "IDS_ST_BODY_FALSE"
+msgstr "Fals"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATE"
+msgstr "Instal·lar certificat"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATES_FROM_SD_CARD_Q"
+msgstr "Instal·lar certificats de la targeta SD?"
+
+msgid "IDS_ST_BODY_KEY_USAGE_C"
+msgstr "Ús de clau:"
+
+msgid "IDS_ST_BODY_ORGANISATION_C"
+msgstr "Organització:"
+
+msgid "IDS_ST_BODY_OWNER_C"
+msgstr "Propietari:"
+
+msgid "IDS_ST_BODY_PUBLIC_KEY_C"
+msgstr "Clau pública:"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE"
+msgstr "Seleccioni el certificat"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE_TO_INSTALL"
+msgstr "Seleccioni el certificat per instal·lar"
+
+msgid "IDS_ST_BODY_SERIAL_NUMBER_C"
+msgstr "Número de sèrie:"
+
+msgid "IDS_ST_BODY_SIGNATURE_ALGORITHM_C"
+msgstr "Algorisme de signatura:"
+
+msgid "IDS_ST_BODY_TRUE"
+msgstr "Veritat"
+
+msgid "IDS_ST_BODY_TRUSTED_ROOT_CERTIFICATES"
+msgstr "Certificats arrel de confiança"
+
+msgid "IDS_ST_BODY_USER_CERTIFICATES"
+msgstr "Certificats d'usuari"
+
+msgid "IDS_ST_BODY_VALID_FROM_C"
+msgstr "Vàlid des de:"
+
+msgid "IDS_ST_BODY_VALID_TO_C"
+msgstr "Vàlid fins a:"
+
+msgid "IDS_ST_BUTTON_OPEN"
+msgstr "Obrir"
+
+msgid "IDS_ST_BODY_COMMON_NAME_C"
+msgstr "Nom comú:"
+
+msgid "IDS_ST_BODY_INCORRECT_PASSWORD"
+msgstr "Contrasenya incorrecta"
+
+msgid "IDS_ST_BODY_NO_CONTENT"
+msgstr "No hi ha continguts"
+
+msgid "IDS_ST_BODY_NO_DATA"
+msgstr "Sense dades"
+
+msgid "IDS_ST_BUTTON_NO"
+msgstr "No"
+
+msgid "IDS_ST_BUTTON_YES"
+msgstr "Sí"
+
+msgid "IDS_ST_SK2_CANCEL"
+msgstr "Cancelar"
+
+msgid "IDS_ST_SK2_OK"
+msgstr "Acceptar"
+
--- /dev/null
+msgid "IDS_ST_BODY_CERTIFICATES"
+msgstr "Certifikáty"
+
+msgid "IDS_ST_BODY_VERSION_C"
+msgstr "Verze:"
+
+msgid "IDS_ST_BUTTON_UNINSTALL"
+msgstr "Odinstalovat"
+
+msgid "IDS_ST_BODY_MANUFACTURER"
+msgstr "Výrobce"
+
+msgid "IDS_ST_BODY_SELECT_ALL"
+msgstr "Vybrat vše"
+
+msgid "IDS_ST_BODY_ISSUER_COLON"
+msgstr "Vydavatel:"
+
+msgid "IDS_ST_BUTTON_INSTALL"
+msgstr "Instalovat"
+
+msgid "IDS_ST_BODY_ALIAS_ALREADY_EXISTS_ENTER_A_UNIQUE_ALIAS"
+msgstr "Alias již existuje. Zadejte jedinečný alias"
+
+msgid "IDS_ST_BODY_ALIAS_CANNOT_BE_EMPTY"
+msgstr "Alias nesmí být prázdný"
+
+msgid "IDS_ST_BODY_CERTIFICATES_FOUND"
+msgstr "Nalezeny certifikáty"
+
+msgid "IDS_ST_BODY_CERTIFICATE_DETAILS"
+msgstr "Detaily certifikátu"
+
+msgid "IDS_ST_BODY_CERTIFICATE_INFORMATION"
+msgstr "Informace o certifikátu"
+
+msgid "IDS_ST_BODY_CERTIFICATION_AUTHORITY_C"
+msgstr "Certifikační autorita:"
+
+msgid "IDS_ST_BODY_ENTER_KEY_ALIAS_C"
+msgstr "Zadejte klíčový alias:"
+
+msgid "IDS_ST_BODY_ENTER_PASSWORD_C"
+msgstr "Zadejte heslo:"
+
+msgid "IDS_ST_BODY_EXTERNAL_CERTIFICATES"
+msgstr "Externí certifikáty"
+
+msgid "IDS_ST_BODY_FALSE"
+msgstr "Nepravda"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATE"
+msgstr "Instalovat certifikát"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATES_FROM_SD_CARD_Q"
+msgstr "Instalovat certifikáty z SD karty?"
+
+msgid "IDS_ST_BODY_KEY_USAGE_C"
+msgstr "Použití klíče:"
+
+msgid "IDS_ST_BODY_ORGANISATION_C"
+msgstr "Organizace:"
+
+msgid "IDS_ST_BODY_OWNER_C"
+msgstr "Vlastník:"
+
+msgid "IDS_ST_BODY_PUBLIC_KEY_C"
+msgstr "Veřejný klíč:"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE"
+msgstr "Vyberte certifikát"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE_TO_INSTALL"
+msgstr "Vyberte certifikát k instalaci"
+
+msgid "IDS_ST_BODY_SERIAL_NUMBER_C"
+msgstr "Sériové číslo:"
+
+msgid "IDS_ST_BODY_SIGNATURE_ALGORITHM_C"
+msgstr "Algoritmus podpisu:"
+
+msgid "IDS_ST_BODY_TRUE"
+msgstr "Ano"
+
+msgid "IDS_ST_BODY_TRUSTED_ROOT_CERTIFICATES"
+msgstr "Důvěryhodné kořenové certifikáty"
+
+msgid "IDS_ST_BODY_USER_CERTIFICATES"
+msgstr "Uživatelské certifikáty"
+
+msgid "IDS_ST_BODY_VALID_FROM_C"
+msgstr "Platí od:"
+
+msgid "IDS_ST_BODY_VALID_TO_C"
+msgstr "Platí do:"
+
+msgid "IDS_ST_BUTTON_OPEN"
+msgstr "Otevřít"
+
+msgid "IDS_ST_BODY_COMMON_NAME_C"
+msgstr "Běžný název:"
+
+msgid "IDS_ST_BODY_INCORRECT_PASSWORD"
+msgstr "Nesprávné heslo"
+
+msgid "IDS_ST_BODY_NO_CONTENT"
+msgstr "Žádný obsah"
+
+msgid "IDS_ST_BODY_NO_DATA"
+msgstr "Žádná data"
+
+msgid "IDS_ST_BUTTON_NO"
+msgstr "Ne"
+
+msgid "IDS_ST_BUTTON_YES"
+msgstr "Ano"
+
+msgid "IDS_ST_SK2_CANCEL"
+msgstr "Zrušit"
+
+msgid "IDS_ST_SK2_OK"
+msgstr "OK"
+
--- /dev/null
+msgid "IDS_ST_BODY_CERTIFICATES"
+msgstr "Certifikater"
+
+msgid "IDS_ST_BODY_VERSION_C"
+msgstr "Version:"
+
+msgid "IDS_ST_BUTTON_UNINSTALL"
+msgstr "Afinstallér"
+
+msgid "IDS_ST_BODY_MANUFACTURER"
+msgstr "Producent"
+
+msgid "IDS_ST_BODY_SELECT_ALL"
+msgstr "Vælg alle"
+
+msgid "IDS_ST_BODY_ISSUER_COLON"
+msgstr "Udsteder:"
+
+msgid "IDS_ST_BUTTON_INSTALL"
+msgstr "Installér"
+
+msgid "IDS_ST_BODY_ALIAS_ALREADY_EXISTS_ENTER_A_UNIQUE_ALIAS"
+msgstr "Alias findes allerede. Indtast et unikt alias"
+
+msgid "IDS_ST_BODY_ALIAS_CANNOT_BE_EMPTY"
+msgstr "Alias kan ikke være tomt"
+
+msgid "IDS_ST_BODY_CERTIFICATES_FOUND"
+msgstr "Certifikater fundet"
+
+msgid "IDS_ST_BODY_CERTIFICATE_DETAILS"
+msgstr "Certifikatoplysninger"
+
+msgid "IDS_ST_BODY_CERTIFICATE_INFORMATION"
+msgstr "Certifikatinformationer"
+
+msgid "IDS_ST_BODY_CERTIFICATION_AUTHORITY_C"
+msgstr "Certificeringsmyndighed:"
+
+msgid "IDS_ST_BODY_ENTER_KEY_ALIAS_C"
+msgstr "Indtast nøglealias:"
+
+msgid "IDS_ST_BODY_ENTER_PASSWORD_C"
+msgstr "Indtast adgangskode:"
+
+msgid "IDS_ST_BODY_EXTERNAL_CERTIFICATES"
+msgstr "Eksterne certifikater"
+
+msgid "IDS_ST_BODY_FALSE"
+msgstr "Falsk"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATE"
+msgstr "Installér certifikat"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATES_FROM_SD_CARD_Q"
+msgstr "Installer certifikater fra SD-kort?"
+
+msgid "IDS_ST_BODY_KEY_USAGE_C"
+msgstr "Nøglebrug:"
+
+msgid "IDS_ST_BODY_ORGANISATION_C"
+msgstr "Organisation:"
+
+msgid "IDS_ST_BODY_OWNER_C"
+msgstr "Ejer:"
+
+msgid "IDS_ST_BODY_PUBLIC_KEY_C"
+msgstr "Offentlig nøgle:"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE"
+msgstr "Vælg certifikat"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE_TO_INSTALL"
+msgstr "Vælg certifikat at installere"
+
+msgid "IDS_ST_BODY_SERIAL_NUMBER_C"
+msgstr "Serienummer:"
+
+msgid "IDS_ST_BODY_SIGNATURE_ALGORITHM_C"
+msgstr "Signaturalgoritme:"
+
+msgid "IDS_ST_BODY_TRUE"
+msgstr "Sandt"
+
+msgid "IDS_ST_BODY_TRUSTED_ROOT_CERTIFICATES"
+msgstr "Betroede rodcertifikater"
+
+msgid "IDS_ST_BODY_USER_CERTIFICATES"
+msgstr "Brugercertifikater"
+
+msgid "IDS_ST_BODY_VALID_FROM_C"
+msgstr "Gyldig fra:"
+
+msgid "IDS_ST_BODY_VALID_TO_C"
+msgstr "Gyldig til:"
+
+msgid "IDS_ST_BUTTON_OPEN"
+msgstr "Åben"
+
+msgid "IDS_ST_BODY_COMMON_NAME_C"
+msgstr "Fælles navn:"
+
+msgid "IDS_ST_BODY_INCORRECT_PASSWORD"
+msgstr "Forkert adgangskode"
+
+msgid "IDS_ST_BODY_NO_CONTENT"
+msgstr "Intet indhold"
+
+msgid "IDS_ST_BODY_NO_DATA"
+msgstr "Ingen data"
+
+msgid "IDS_ST_BUTTON_NO"
+msgstr "Nej"
+
+msgid "IDS_ST_BUTTON_YES"
+msgstr "Ja"
+
+msgid "IDS_ST_SK2_CANCEL"
+msgstr "Annullér"
+
+msgid "IDS_ST_SK2_OK"
+msgstr "OK"
+
--- /dev/null
+msgid "IDS_ST_BODY_CERTIFICATES"
+msgstr "Zertifikate"
+
+msgid "IDS_ST_BODY_VERSION_C"
+msgstr "Version:"
+
+msgid "IDS_ST_BUTTON_UNINSTALL"
+msgstr "Deinstallieren"
+
+msgid "IDS_ST_BODY_MANUFACTURER"
+msgstr "Hersteller"
+
+msgid "IDS_ST_BODY_SELECT_ALL"
+msgstr "Alle auswählen"
+
+msgid "IDS_ST_BODY_ISSUER_COLON"
+msgstr "Aussteller:"
+
+msgid "IDS_ST_BUTTON_INSTALL"
+msgstr "Installieren"
+
+msgid "IDS_ST_BODY_ALIAS_ALREADY_EXISTS_ENTER_A_UNIQUE_ALIAS"
+msgstr "Alias bereits vorhanden. Eindeutigen Alias eingeben."
+
+msgid "IDS_ST_BODY_ALIAS_CANNOT_BE_EMPTY"
+msgstr "Alias darf nicht leer sein."
+
+msgid "IDS_ST_BODY_CERTIFICATES_FOUND"
+msgstr "Zertifikate gefunden"
+
+msgid "IDS_ST_BODY_CERTIFICATE_DETAILS"
+msgstr "Zertifikatsdetails"
+
+msgid "IDS_ST_BODY_CERTIFICATE_INFORMATION"
+msgstr "Zertifikatsinformationen"
+
+msgid "IDS_ST_BODY_CERTIFICATION_AUTHORITY_C"
+msgstr "Zertifizierungsstelle:"
+
+msgid "IDS_ST_BODY_ENTER_KEY_ALIAS_C"
+msgstr "Schlüsselalias eingeben:"
+
+msgid "IDS_ST_BODY_ENTER_PASSWORD_C"
+msgstr "Passwort eingeben:"
+
+msgid "IDS_ST_BODY_EXTERNAL_CERTIFICATES"
+msgstr "Externe Zertifikate"
+
+msgid "IDS_ST_BODY_FALSE"
+msgstr "Falsch"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATE"
+msgstr "Zertifikat installieren"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATES_FROM_SD_CARD_Q"
+msgstr "Zertifikate von SD-Karte installieren?"
+
+msgid "IDS_ST_BODY_KEY_USAGE_C"
+msgstr "Schlüsselverwendung:"
+
+msgid "IDS_ST_BODY_ORGANISATION_C"
+msgstr "Organisation:"
+
+msgid "IDS_ST_BODY_OWNER_C"
+msgstr "Besitzer:"
+
+msgid "IDS_ST_BODY_PUBLIC_KEY_C"
+msgstr "Öffentlicher Schlüssel:"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE"
+msgstr "Zertifikat wählen"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE_TO_INSTALL"
+msgstr "Zertifikat für Installation auswählen"
+
+msgid "IDS_ST_BODY_SERIAL_NUMBER_C"
+msgstr "Seriennummer:"
+
+msgid "IDS_ST_BODY_SIGNATURE_ALGORITHM_C"
+msgstr "Signatur-Algorithmus:"
+
+msgid "IDS_ST_BODY_TRUE"
+msgstr "Wahr"
+
+msgid "IDS_ST_BODY_TRUSTED_ROOT_CERTIFICATES"
+msgstr "Vertrauenswürdige Root-Zertifikate"
+
+msgid "IDS_ST_BODY_USER_CERTIFICATES"
+msgstr "Benutzerzertifikat"
+
+msgid "IDS_ST_BODY_VALID_FROM_C"
+msgstr "Gültig ab:"
+
+msgid "IDS_ST_BODY_VALID_TO_C"
+msgstr "Gültig bis:"
+
+msgid "IDS_ST_BUTTON_OPEN"
+msgstr "Offen"
+
+msgid "IDS_ST_BODY_COMMON_NAME_C"
+msgstr "Allgemeiner Name:"
+
+msgid "IDS_ST_BODY_INCORRECT_PASSWORD"
+msgstr "Falsches Passwort"
+
+msgid "IDS_ST_BODY_NO_CONTENT"
+msgstr "Kein Inhalt"
+
+msgid "IDS_ST_BODY_NO_DATA"
+msgstr "Keine Daten"
+
+msgid "IDS_ST_BUTTON_NO"
+msgstr "Nein"
+
+msgid "IDS_ST_BUTTON_YES"
+msgstr "Ja"
+
+msgid "IDS_ST_SK2_CANCEL"
+msgstr "Abbrechen"
+
+msgid "IDS_ST_SK2_OK"
+msgstr "OK"
+
--- /dev/null
+msgid "IDS_ST_BODY_CERTIFICATES"
+msgstr "Πιστοποιητικά"
+
+msgid "IDS_ST_BODY_VERSION_C"
+msgstr "Έκδοση:"
+
+msgid "IDS_ST_BUTTON_UNINSTALL"
+msgstr "Κατάργ. εγκατ."
+
+msgid "IDS_ST_BODY_MANUFACTURER"
+msgstr "Κατασκευαστής"
+
+msgid "IDS_ST_BODY_SELECT_ALL"
+msgstr "Επιλογή όλων"
+
+msgid "IDS_ST_BODY_ISSUER_COLON"
+msgstr "Εκδότης:"
+
+msgid "IDS_ST_BUTTON_INSTALL"
+msgstr "Εγκατάσταση"
+
+msgid "IDS_ST_BODY_ALIAS_ALREADY_EXISTS_ENTER_A_UNIQUE_ALIAS"
+msgstr "Το ψευδώνυμο υπάρχει ήδη. Καταχωρίστε ένα μοναδικό ψευδώνυμο"
+
+msgid "IDS_ST_BODY_ALIAS_CANNOT_BE_EMPTY"
+msgstr "Το ψευδώνυμο δεν μπορεί να είναι κενό"
+
+msgid "IDS_ST_BODY_CERTIFICATES_FOUND"
+msgstr "Βρέθηκαν πιστοποιητικά"
+
+msgid "IDS_ST_BODY_CERTIFICATE_DETAILS"
+msgstr "Λεπτομέρειες πιστοποιητικού"
+
+msgid "IDS_ST_BODY_CERTIFICATE_INFORMATION"
+msgstr "Πληροφορίες πιστοποιητικού"
+
+msgid "IDS_ST_BODY_CERTIFICATION_AUTHORITY_C"
+msgstr "Αρχή πιστοποίησης:"
+
+msgid "IDS_ST_BODY_ENTER_KEY_ALIAS_C"
+msgstr "Εισαγωγή ψευδώνυμου κλειδιού:"
+
+msgid "IDS_ST_BODY_ENTER_PASSWORD_C"
+msgstr "Εισαγωγή κωδικού πρόσβασης:"
+
+msgid "IDS_ST_BODY_EXTERNAL_CERTIFICATES"
+msgstr "Εξωτερικά πιστοποιητικά"
+
+msgid "IDS_ST_BODY_FALSE"
+msgstr "Ψευδές"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATE"
+msgstr "Εγκατάσταση πιστοποιητικού"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATES_FROM_SD_CARD_Q"
+msgstr "Εγκατάσταση πιστοποιητικών από την κάρτα SD;"
+
+msgid "IDS_ST_BODY_KEY_USAGE_C"
+msgstr "Χρήση κλειδιού:"
+
+msgid "IDS_ST_BODY_ORGANISATION_C"
+msgstr "Οργανισμός:"
+
+msgid "IDS_ST_BODY_OWNER_C"
+msgstr "Κάτοχος:"
+
+msgid "IDS_ST_BODY_PUBLIC_KEY_C"
+msgstr "Δημόσιο κλειδί:"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE"
+msgstr "Επιλέξτε πιστοποιητικό"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE_TO_INSTALL"
+msgstr "Επιλέξτε πιστοποιητικό προς εγκατάσταση"
+
+msgid "IDS_ST_BODY_SERIAL_NUMBER_C"
+msgstr "Σειριακός αριθμός:"
+
+msgid "IDS_ST_BODY_SIGNATURE_ALGORITHM_C"
+msgstr "Αλγόριθμος υπογραφής:"
+
+msgid "IDS_ST_BODY_TRUE"
+msgstr "Αλήθεια"
+
+msgid "IDS_ST_BODY_TRUSTED_ROOT_CERTIFICATES"
+msgstr "Αξιόπιστα πιστοποιητικά ρίζας"
+
+msgid "IDS_ST_BODY_USER_CERTIFICATES"
+msgstr "Πιστοποιητικά χρήστη"
+
+msgid "IDS_ST_BODY_VALID_FROM_C"
+msgstr "Έγκυρο απο:"
+
+msgid "IDS_ST_BODY_VALID_TO_C"
+msgstr "Ισχύει έως:"
+
+msgid "IDS_ST_BUTTON_OPEN"
+msgstr "Άνοιγμα"
+
+msgid "IDS_ST_BODY_COMMON_NAME_C"
+msgstr "Κοινό όνομα:"
+
+msgid "IDS_ST_BODY_INCORRECT_PASSWORD"
+msgstr "Λάθος κωδικός"
+
+msgid "IDS_ST_BODY_NO_CONTENT"
+msgstr "Κανένα περιεχόμενο"
+
+msgid "IDS_ST_BODY_NO_DATA"
+msgstr "Δεν υπάρχουν δεδομένα"
+
+msgid "IDS_ST_BUTTON_NO"
+msgstr "Όχι"
+
+msgid "IDS_ST_BUTTON_YES"
+msgstr "Ναι"
+
+msgid "IDS_ST_SK2_CANCEL"
+msgstr "Ακύρωση"
+
+msgid "IDS_ST_SK2_OK"
+msgstr "OK"
+
--- /dev/null
+msgid "IDS_ST_BODY_CERTIFICATES"
+msgstr "Certificates"
+
+msgid "IDS_ST_BODY_VERSION_C"
+msgstr "Version:"
+
+msgid "IDS_ST_BUTTON_UNINSTALL"
+msgstr "Uninstall"
+
+msgid "IDS_ST_BODY_MANUFACTURER"
+msgstr "Manufacturer"
+
+msgid "IDS_ST_BODY_SELECT_ALL"
+msgstr "Select all"
+
+msgid "IDS_ST_BODY_ISSUER_COLON"
+msgstr "Issuer:"
+
+msgid "IDS_ST_BUTTON_INSTALL"
+msgstr "Install"
+
+msgid "IDS_ST_BODY_ALIAS_ALREADY_EXISTS_ENTER_A_UNIQUE_ALIAS"
+msgstr "Alias already exists. Enter a unique alias"
+
+msgid "IDS_ST_BODY_ALIAS_CANNOT_BE_EMPTY"
+msgstr "Alias cannot be empty"
+
+msgid "IDS_ST_BODY_CERTIFICATES_FOUND"
+msgstr "Certificates found"
+
+msgid "IDS_ST_BODY_CERTIFICATE_DETAILS"
+msgstr "Certificate details"
+
+msgid "IDS_ST_BODY_CERTIFICATE_INFORMATION"
+msgstr "Certificate information"
+
+msgid "IDS_ST_BODY_CERTIFICATION_AUTHORITY_C"
+msgstr "Certification authority:"
+
+msgid "IDS_ST_BODY_ENTER_KEY_ALIAS_C"
+msgstr "Enter key alias:"
+
+msgid "IDS_ST_BODY_ENTER_PASSWORD_C"
+msgstr "Enter password:"
+
+msgid "IDS_ST_BODY_EXTERNAL_CERTIFICATES"
+msgstr "External certificates"
+
+msgid "IDS_ST_BODY_FALSE"
+msgstr "False"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATE"
+msgstr "Install certificate"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATES_FROM_SD_CARD_Q"
+msgstr "Install certificates from SD card?"
+
+msgid "IDS_ST_BODY_KEY_USAGE_C"
+msgstr "Key usage:"
+
+msgid "IDS_ST_BODY_ORGANISATION_C"
+msgstr "Organisation:"
+
+msgid "IDS_ST_BODY_OWNER_C"
+msgstr "Owner:"
+
+msgid "IDS_ST_BODY_PUBLIC_KEY_C"
+msgstr "Public key:"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE"
+msgstr "Select certificate"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE_TO_INSTALL"
+msgstr "Select certificate to install"
+
+msgid "IDS_ST_BODY_SERIAL_NUMBER_C"
+msgstr "Serial number:"
+
+msgid "IDS_ST_BODY_SIGNATURE_ALGORITHM_C"
+msgstr "Signature algorithm:"
+
+msgid "IDS_ST_BODY_TRUE"
+msgstr "True"
+
+msgid "IDS_ST_BODY_TRUSTED_ROOT_CERTIFICATES"
+msgstr "Trusted root certificates"
+
+msgid "IDS_ST_BODY_USER_CERTIFICATES"
+msgstr "User certificates"
+
+msgid "IDS_ST_BODY_VALID_FROM_C"
+msgstr "Valid from:"
+
+msgid "IDS_ST_BODY_VALID_TO_C"
+msgstr "Valid to:"
+
+msgid "IDS_ST_BUTTON_OPEN"
+msgstr "Open"
+
+msgid "IDS_ST_BODY_COMMON_NAME_C"
+msgstr "Common name:"
+
+msgid "IDS_ST_BODY_INCORRECT_PASSWORD"
+msgstr "Incorrect password"
+
+msgid "IDS_ST_BODY_NO_CONTENT"
+msgstr "No content"
+
+msgid "IDS_ST_BODY_NO_DATA"
+msgstr "No data"
+
+msgid "IDS_ST_BUTTON_NO"
+msgstr "No"
+
+msgid "IDS_ST_BUTTON_YES"
+msgstr "Yes"
+
+msgid "IDS_ST_SK2_CANCEL"
+msgstr "Cancel"
+
+msgid "IDS_ST_SK2_OK"
+msgstr "OK"
+
--- /dev/null
+msgid "IDS_ST_BODY_CERTIFICATES"
+msgstr "Certificates"
+
+msgid "IDS_ST_BODY_VERSION_C"
+msgstr "Version:"
+
+msgid "IDS_ST_BUTTON_UNINSTALL"
+msgstr "Uninstall"
+
+msgid "IDS_ST_BODY_MANUFACTURER"
+msgstr "Manufacturer"
+
+msgid "IDS_ST_BODY_SELECT_ALL"
+msgstr "Select all"
+
+msgid "IDS_ST_BODY_ISSUER_COLON"
+msgstr "Issuer:"
+
+msgid "IDS_ST_BUTTON_INSTALL"
+msgstr "Install"
+
+msgid "IDS_ST_BODY_ALIAS_ALREADY_EXISTS_ENTER_A_UNIQUE_ALIAS"
+msgstr "Alias already exists. Enter a unique alias"
+
+msgid "IDS_ST_BODY_ALIAS_CANNOT_BE_EMPTY"
+msgstr "Alias cannot be empty"
+
+msgid "IDS_ST_BODY_CERTIFICATES_FOUND"
+msgstr "Certificates found"
+
+msgid "IDS_ST_BODY_CERTIFICATE_DETAILS"
+msgstr "Certificate details"
+
+msgid "IDS_ST_BODY_CERTIFICATE_INFORMATION"
+msgstr "Certificate information"
+
+msgid "IDS_ST_BODY_CERTIFICATION_AUTHORITY_C"
+msgstr "Certification authority:"
+
+msgid "IDS_ST_BODY_ENTER_KEY_ALIAS_C"
+msgstr "Enter key alias:"
+
+msgid "IDS_ST_BODY_ENTER_PASSWORD_C"
+msgstr "Enter password:"
+
+msgid "IDS_ST_BODY_EXTERNAL_CERTIFICATES"
+msgstr "External certificates"
+
+msgid "IDS_ST_BODY_FALSE"
+msgstr "False"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATE"
+msgstr "Install certificate"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATES_FROM_SD_CARD_Q"
+msgstr "Install certificates from SD card?"
+
+msgid "IDS_ST_BODY_KEY_USAGE_C"
+msgstr "Key usage:"
+
+msgid "IDS_ST_BODY_ORGANISATION_C"
+msgstr "Organization:"
+
+msgid "IDS_ST_BODY_OWNER_C"
+msgstr "Owner:"
+
+msgid "IDS_ST_BODY_PUBLIC_KEY_C"
+msgstr "Public key:"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE"
+msgstr "Select a certificate"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE_TO_INSTALL"
+msgstr "Select certificate to install"
+
+msgid "IDS_ST_BODY_SERIAL_NUMBER_C"
+msgstr "Serial number:"
+
+msgid "IDS_ST_BODY_SIGNATURE_ALGORITHM_C"
+msgstr "Signature algorithm:"
+
+msgid "IDS_ST_BODY_TRUE"
+msgstr "True"
+
+msgid "IDS_ST_BODY_TRUSTED_ROOT_CERTIFICATES"
+msgstr "Trusted root certificates"
+
+msgid "IDS_ST_BODY_USER_CERTIFICATES"
+msgstr "User certificates"
+
+msgid "IDS_ST_BODY_VALID_FROM_C"
+msgstr "Valid from:"
+
+msgid "IDS_ST_BODY_VALID_TO_C"
+msgstr "Valid to:"
+
+msgid "IDS_ST_BUTTON_OPEN"
+msgstr "Open"
+
+msgid "IDS_ST_BODY_COMMON_NAME_C"
+msgstr "Common name:"
+
+msgid "IDS_ST_BODY_INCORRECT_PASSWORD"
+msgstr "Incorrect password"
+
+msgid "IDS_ST_BODY_NO_CONTENT"
+msgstr "No contents"
+
+msgid "IDS_ST_BODY_NO_DATA"
+msgstr "No data"
+
+msgid "IDS_ST_BUTTON_NO"
+msgstr "No"
+
+msgid "IDS_ST_BUTTON_YES"
+msgstr "Yes"
+
+msgid "IDS_ST_SK2_CANCEL"
+msgstr "Cancel"
+
+msgid "IDS_ST_SK2_OK"
+msgstr "OK"
+
--- /dev/null
+msgid "IDS_ST_BODY_CERTIFICATES"
+msgstr "Certificates"
+
+msgid "IDS_ST_BODY_VERSION_C"
+msgstr "Version:"
+
+msgid "IDS_ST_BUTTON_UNINSTALL"
+msgstr "Uninstall"
+
+msgid "IDS_ST_BODY_MANUFACTURER"
+msgstr "Manufacturer"
+
+msgid "IDS_ST_BODY_SELECT_ALL"
+msgstr "Select all"
+
+msgid "IDS_ST_BODY_ISSUER_COLON"
+msgstr "Issuer:"
+
+msgid "IDS_ST_BUTTON_INSTALL"
+msgstr "Install"
+
+msgid "IDS_ST_BODY_ALIAS_ALREADY_EXISTS_ENTER_A_UNIQUE_ALIAS"
+msgstr "Alias already exists. Enter a unique alias."
+
+msgid "IDS_ST_BODY_ALIAS_CANNOT_BE_EMPTY"
+msgstr "Alias cannot be empty"
+
+msgid "IDS_ST_BODY_CERTIFICATES_FOUND"
+msgstr "Certificates found"
+
+msgid "IDS_ST_BODY_CERTIFICATE_DETAILS"
+msgstr "Certificate details"
+
+msgid "IDS_ST_BODY_CERTIFICATE_INFORMATION"
+msgstr "Certificate information"
+
+msgid "IDS_ST_BODY_CERTIFICATION_AUTHORITY_C"
+msgstr "Certification authority:"
+
+msgid "IDS_ST_BODY_ENTER_KEY_ALIAS_C"
+msgstr "Enter key alias:"
+
+msgid "IDS_ST_BODY_ENTER_PASSWORD_C"
+msgstr "Enter password:"
+
+msgid "IDS_ST_BODY_EXTERNAL_CERTIFICATES"
+msgstr "External certificates"
+
+msgid "IDS_ST_BODY_FALSE"
+msgstr "False"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATE"
+msgstr "Install certificate"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATES_FROM_SD_CARD_Q"
+msgstr "Install certificates from SD card?"
+
+msgid "IDS_ST_BODY_KEY_USAGE_C"
+msgstr "Key usage:"
+
+msgid "IDS_ST_BODY_ORGANISATION_C"
+msgstr "Organization:"
+
+msgid "IDS_ST_BODY_OWNER_C"
+msgstr "Owner:"
+
+msgid "IDS_ST_BODY_PUBLIC_KEY_C"
+msgstr "Public key:"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE"
+msgstr "Select the certificate"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE_TO_INSTALL"
+msgstr "Select certificate to install"
+
+msgid "IDS_ST_BODY_SERIAL_NUMBER_C"
+msgstr "Serial number:"
+
+msgid "IDS_ST_BODY_SIGNATURE_ALGORITHM_C"
+msgstr "Signature algorithm:"
+
+msgid "IDS_ST_BODY_TRUE"
+msgstr "True"
+
+msgid "IDS_ST_BODY_TRUSTED_ROOT_CERTIFICATES"
+msgstr "Trusted root certificates"
+
+msgid "IDS_ST_BODY_USER_CERTIFICATES"
+msgstr "User certificates"
+
+msgid "IDS_ST_BODY_VALID_FROM_C"
+msgstr "Valid from:"
+
+msgid "IDS_ST_BODY_VALID_TO_C"
+msgstr "Valid to:"
+
+msgid "IDS_ST_BUTTON_OPEN"
+msgstr "Open"
+
+msgid "IDS_ST_BODY_COMMON_NAME_C"
+msgstr "Common name:"
+
+msgid "IDS_ST_BODY_INCORRECT_PASSWORD"
+msgstr "Incorrect password"
+
+msgid "IDS_ST_BODY_NO_CONTENT"
+msgstr "No contents"
+
+msgid "IDS_ST_BODY_NO_DATA"
+msgstr "No data"
+
+msgid "IDS_ST_BUTTON_NO"
+msgstr "No"
+
+msgid "IDS_ST_BUTTON_YES"
+msgstr "Yes"
+
+msgid "IDS_ST_SK2_CANCEL"
+msgstr "Cancel"
+
+msgid "IDS_ST_SK2_OK"
+msgstr "OK"
+
--- /dev/null
+msgid "IDS_ST_BODY_CERTIFICATES"
+msgstr "Certificados"
+
+msgid "IDS_ST_BODY_VERSION_C"
+msgstr "Versión:"
+
+msgid "IDS_ST_BUTTON_UNINSTALL"
+msgstr "Desinstalar"
+
+msgid "IDS_ST_BODY_MANUFACTURER"
+msgstr "Fabricante"
+
+msgid "IDS_ST_BODY_SELECT_ALL"
+msgstr "Seleccionar todo"
+
+msgid "IDS_ST_BODY_ISSUER_COLON"
+msgstr "Emisor:"
+
+msgid "IDS_ST_BUTTON_INSTALL"
+msgstr "Instalar"
+
+msgid "IDS_ST_BODY_ALIAS_ALREADY_EXISTS_ENTER_A_UNIQUE_ALIAS"
+msgstr "Ya existe el alias. Introduzca uno único"
+
+msgid "IDS_ST_BODY_ALIAS_CANNOT_BE_EMPTY"
+msgstr "El alias no puede estar vacío"
+
+msgid "IDS_ST_BODY_CERTIFICATES_FOUND"
+msgstr "Certificados encontrados"
+
+msgid "IDS_ST_BODY_CERTIFICATE_DETAILS"
+msgstr "Detalles de certificado"
+
+msgid "IDS_ST_BODY_CERTIFICATE_INFORMATION"
+msgstr "Información de certificado"
+
+msgid "IDS_ST_BODY_CERTIFICATION_AUTHORITY_C"
+msgstr "Autoridad de certificación:"
+
+msgid "IDS_ST_BODY_ENTER_KEY_ALIAS_C"
+msgstr "Introduzca alias de clave:"
+
+msgid "IDS_ST_BODY_ENTER_PASSWORD_C"
+msgstr "Introduzca contraseña:"
+
+msgid "IDS_ST_BODY_EXTERNAL_CERTIFICATES"
+msgstr "Certificados externos"
+
+msgid "IDS_ST_BODY_FALSE"
+msgstr "Falso"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATE"
+msgstr "Instalar certificado"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATES_FROM_SD_CARD_Q"
+msgstr "¿Instalar certificados desde tarjeta SD?"
+
+msgid "IDS_ST_BODY_KEY_USAGE_C"
+msgstr "Uso de clave:"
+
+msgid "IDS_ST_BODY_ORGANISATION_C"
+msgstr "Organización:"
+
+msgid "IDS_ST_BODY_OWNER_C"
+msgstr "Propietario:"
+
+msgid "IDS_ST_BODY_PUBLIC_KEY_C"
+msgstr "Clave pública:"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE"
+msgstr "Seleccione el certificado"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE_TO_INSTALL"
+msgstr "Seleccione el certificado que instalar"
+
+msgid "IDS_ST_BODY_SERIAL_NUMBER_C"
+msgstr "Número de serie:"
+
+msgid "IDS_ST_BODY_SIGNATURE_ALGORITHM_C"
+msgstr "Algoritmo de firma:"
+
+msgid "IDS_ST_BODY_TRUE"
+msgstr "Verdadero"
+
+msgid "IDS_ST_BODY_TRUSTED_ROOT_CERTIFICATES"
+msgstr "Certificados raíz de confianza"
+
+msgid "IDS_ST_BODY_USER_CERTIFICATES"
+msgstr "Certificados de usuario"
+
+msgid "IDS_ST_BODY_VALID_FROM_C"
+msgstr "Válido desde:"
+
+msgid "IDS_ST_BODY_VALID_TO_C"
+msgstr "Válido hasta:"
+
+msgid "IDS_ST_BUTTON_OPEN"
+msgstr "Abrir"
+
+msgid "IDS_ST_BODY_COMMON_NAME_C"
+msgstr "Nombre común:"
+
+msgid "IDS_ST_BODY_INCORRECT_PASSWORD"
+msgstr "Contraseña incorrecta"
+
+msgid "IDS_ST_BODY_NO_CONTENT"
+msgstr "No hay contenido"
+
+msgid "IDS_ST_BODY_NO_DATA"
+msgstr "No hay datos"
+
+msgid "IDS_ST_BUTTON_NO"
+msgstr "No"
+
+msgid "IDS_ST_BUTTON_YES"
+msgstr "Sí"
+
+msgid "IDS_ST_SK2_CANCEL"
+msgstr "Cancelar"
+
+msgid "IDS_ST_SK2_OK"
+msgstr "OK"
+
--- /dev/null
+msgid "IDS_ST_BODY_CERTIFICATES"
+msgstr "Certificados"
+
+msgid "IDS_ST_BODY_VERSION_C"
+msgstr "Versión:"
+
+msgid "IDS_ST_BUTTON_UNINSTALL"
+msgstr "Desinstalar"
+
+msgid "IDS_ST_BODY_MANUFACTURER"
+msgstr "Fabricante"
+
+msgid "IDS_ST_BODY_SELECT_ALL"
+msgstr "Seleccionar todo"
+
+msgid "IDS_ST_BODY_ISSUER_COLON"
+msgstr "Emisor:"
+
+msgid "IDS_ST_BUTTON_INSTALL"
+msgstr "Instalar"
+
+msgid "IDS_ST_BODY_ALIAS_ALREADY_EXISTS_ENTER_A_UNIQUE_ALIAS"
+msgstr "Este alias ya existe. Ingrese un alias único"
+
+msgid "IDS_ST_BODY_ALIAS_CANNOT_BE_EMPTY"
+msgstr "El campo alias no puede estar vacío"
+
+msgid "IDS_ST_BODY_CERTIFICATES_FOUND"
+msgstr "Certificados encontrados"
+
+msgid "IDS_ST_BODY_CERTIFICATE_DETAILS"
+msgstr "Detalles de certificado"
+
+msgid "IDS_ST_BODY_CERTIFICATE_INFORMATION"
+msgstr "Información del certificado"
+
+msgid "IDS_ST_BODY_CERTIFICATION_AUTHORITY_C"
+msgstr "Autoridad de certificación:"
+
+msgid "IDS_ST_BODY_ENTER_KEY_ALIAS_C"
+msgstr "Ingresar alias de clave:"
+
+msgid "IDS_ST_BODY_ENTER_PASSWORD_C"
+msgstr "Ingresar contraseña:"
+
+msgid "IDS_ST_BODY_EXTERNAL_CERTIFICATES"
+msgstr "Certificados externos"
+
+msgid "IDS_ST_BODY_FALSE"
+msgstr "Falso"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATE"
+msgstr "Instalar certificado"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATES_FROM_SD_CARD_Q"
+msgstr "¿Instalar certificados desde la tarjeta SD?"
+
+msgid "IDS_ST_BODY_KEY_USAGE_C"
+msgstr "Uso de la clave:"
+
+msgid "IDS_ST_BODY_ORGANISATION_C"
+msgstr "Organización:"
+
+msgid "IDS_ST_BODY_OWNER_C"
+msgstr "Propietario:"
+
+msgid "IDS_ST_BODY_PUBLIC_KEY_C"
+msgstr "Clave pública:"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE"
+msgstr "Seleccione el certificado"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE_TO_INSTALL"
+msgstr "Seleccione el certificado para instalar"
+
+msgid "IDS_ST_BODY_SERIAL_NUMBER_C"
+msgstr "Número de serie:"
+
+msgid "IDS_ST_BODY_SIGNATURE_ALGORITHM_C"
+msgstr "Algoritmo de firma:"
+
+msgid "IDS_ST_BODY_TRUE"
+msgstr "Verdadero"
+
+msgid "IDS_ST_BODY_TRUSTED_ROOT_CERTIFICATES"
+msgstr "Certificados raíz de confianza"
+
+msgid "IDS_ST_BODY_USER_CERTIFICATES"
+msgstr "Certificados de usuario"
+
+msgid "IDS_ST_BODY_VALID_FROM_C"
+msgstr "Válido desde:"
+
+msgid "IDS_ST_BODY_VALID_TO_C"
+msgstr "Válido hasta:"
+
+msgid "IDS_ST_BUTTON_OPEN"
+msgstr "Abrir"
+
+msgid "IDS_ST_BODY_COMMON_NAME_C"
+msgstr "Nombre común:"
+
+msgid "IDS_ST_BODY_INCORRECT_PASSWORD"
+msgstr "Contraseña incorrecta"
+
+msgid "IDS_ST_BODY_NO_CONTENT"
+msgstr "No hay contenido"
+
+msgid "IDS_ST_BODY_NO_DATA"
+msgstr "No hay datos"
+
+msgid "IDS_ST_BUTTON_NO"
+msgstr "No"
+
+msgid "IDS_ST_BUTTON_YES"
+msgstr "Sí"
+
+msgid "IDS_ST_SK2_CANCEL"
+msgstr "Cancelar"
+
+msgid "IDS_ST_SK2_OK"
+msgstr "Aceptar"
+
--- /dev/null
+msgid "IDS_ST_BODY_CERTIFICATES"
+msgstr "Sertifikaadid"
+
+msgid "IDS_ST_BODY_VERSION_C"
+msgstr "Versioon:"
+
+msgid "IDS_ST_BUTTON_UNINSTALL"
+msgstr "Desinstalli"
+
+msgid "IDS_ST_BODY_MANUFACTURER"
+msgstr "Tootja"
+
+msgid "IDS_ST_BODY_SELECT_ALL"
+msgstr "Vali kõik"
+
+msgid "IDS_ST_BODY_ISSUER_COLON"
+msgstr "Väljaandja:"
+
+msgid "IDS_ST_BUTTON_INSTALL"
+msgstr "Installi"
+
+msgid "IDS_ST_BODY_ALIAS_ALREADY_EXISTS_ENTER_A_UNIQUE_ALIAS"
+msgstr "Alias on juba olemas. Sisestage ainulaadne alias"
+
+msgid "IDS_ST_BODY_ALIAS_CANNOT_BE_EMPTY"
+msgstr "Alias ei tohi olla tühi"
+
+msgid "IDS_ST_BODY_CERTIFICATES_FOUND"
+msgstr "Sertifikaadid leitud"
+
+msgid "IDS_ST_BODY_CERTIFICATE_DETAILS"
+msgstr "Sertifikaadi üksikasjad"
+
+msgid "IDS_ST_BODY_CERTIFICATE_INFORMATION"
+msgstr "Sertifikaadi teave"
+
+msgid "IDS_ST_BODY_CERTIFICATION_AUTHORITY_C"
+msgstr "Sertifitseerimiskeskus:"
+
+msgid "IDS_ST_BODY_ENTER_KEY_ALIAS_C"
+msgstr "Sisestage võtme alias:"
+
+msgid "IDS_ST_BODY_ENTER_PASSWORD_C"
+msgstr "Sisestage parool:"
+
+msgid "IDS_ST_BODY_EXTERNAL_CERTIFICATES"
+msgstr "Välissertifikaadid"
+
+msgid "IDS_ST_BODY_FALSE"
+msgstr "Vale"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATE"
+msgstr "Installi sertifikaat"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATES_FROM_SD_CARD_Q"
+msgstr "Kas installida sertifikaadid SD-kaardilt?"
+
+msgid "IDS_ST_BODY_KEY_USAGE_C"
+msgstr "Võtmekasutus:"
+
+msgid "IDS_ST_BODY_ORGANISATION_C"
+msgstr "Organsatsioon:"
+
+msgid "IDS_ST_BODY_OWNER_C"
+msgstr "Omanik:"
+
+msgid "IDS_ST_BODY_PUBLIC_KEY_C"
+msgstr "Avalik võti:"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE"
+msgstr "Valige sertifikaat"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE_TO_INSTALL"
+msgstr "Valige sertifikaat, mida installida"
+
+msgid "IDS_ST_BODY_SERIAL_NUMBER_C"
+msgstr "Seerianumber:"
+
+msgid "IDS_ST_BODY_SIGNATURE_ALGORITHM_C"
+msgstr "Allkirja algoritm:"
+
+msgid "IDS_ST_BODY_TRUE"
+msgstr "Õige"
+
+msgid "IDS_ST_BODY_TRUSTED_ROOT_CERTIFICATES"
+msgstr "Usaldusväärsed juursertifikaadid"
+
+msgid "IDS_ST_BODY_USER_CERTIFICATES"
+msgstr "Kasutajasertifikaadid"
+
+msgid "IDS_ST_BODY_VALID_FROM_C"
+msgstr "Kehtiv alates:"
+
+msgid "IDS_ST_BODY_VALID_TO_C"
+msgstr "Kehtiv kuni:"
+
+msgid "IDS_ST_BUTTON_OPEN"
+msgstr "Ava"
+
+msgid "IDS_ST_BODY_COMMON_NAME_C"
+msgstr "Üldnimi:"
+
+msgid "IDS_ST_BODY_INCORRECT_PASSWORD"
+msgstr "Vale parool"
+
+msgid "IDS_ST_BODY_NO_CONTENT"
+msgstr "Sisusid ei ole"
+
+msgid "IDS_ST_BODY_NO_DATA"
+msgstr "Andmed puuduvad"
+
+msgid "IDS_ST_BUTTON_NO"
+msgstr "Ei"
+
+msgid "IDS_ST_BUTTON_YES"
+msgstr "Jah"
+
+msgid "IDS_ST_SK2_CANCEL"
+msgstr "Tühista"
+
+msgid "IDS_ST_SK2_OK"
+msgstr "OK"
+
--- /dev/null
+msgid "IDS_ST_BODY_CERTIFICATES"
+msgstr "Ziurtagiriak"
+
+msgid "IDS_ST_BODY_VERSION_C"
+msgstr "Bertsioa:"
+
+msgid "IDS_ST_BUTTON_UNINSTALL"
+msgstr "Desinstalatu"
+
+msgid "IDS_ST_BODY_MANUFACTURER"
+msgstr "Fabrikatzailea"
+
+msgid "IDS_ST_BODY_SELECT_ALL"
+msgstr "Denak aukeratu"
+
+msgid "IDS_ST_BODY_ISSUER_COLON"
+msgstr "Jaulkitzailea:"
+
+msgid "IDS_ST_BUTTON_INSTALL"
+msgstr "Instalatu"
+
+msgid "IDS_ST_BODY_ALIAS_ALREADY_EXISTS_ENTER_A_UNIQUE_ALIAS"
+msgstr "Ezizena badago. Adierazi ezizen berdin gabea"
+
+msgid "IDS_ST_BODY_ALIAS_CANNOT_BE_EMPTY"
+msgstr "Ezizena ezin da hutsik utzi"
+
+msgid "IDS_ST_BODY_CERTIFICATES_FOUND"
+msgstr "Ziurtagiriak aurkituta"
+
+msgid "IDS_ST_BODY_CERTIFICATE_DETAILS"
+msgstr "Ziurtagiriaren xehetasunak"
+
+msgid "IDS_ST_BODY_CERTIFICATE_INFORMATION"
+msgstr "Ziurtagiri informazioa"
+
+msgid "IDS_ST_BODY_CERTIFICATION_AUTHORITY_C"
+msgstr "Ziurtapen agintea:"
+
+msgid "IDS_ST_BODY_ENTER_KEY_ALIAS_C"
+msgstr "Adierazi gako ezizena:"
+
+msgid "IDS_ST_BODY_ENTER_PASSWORD_C"
+msgstr "Adierazi pasahitza:"
+
+msgid "IDS_ST_BODY_EXTERNAL_CERTIFICATES"
+msgstr "Kanpo egiaztapenak"
+
+msgid "IDS_ST_BODY_FALSE"
+msgstr "Faltsua"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATE"
+msgstr "Instalatu ziurtagiria"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATES_FROM_SD_CARD_Q"
+msgstr "Instalatu ziurtagiriak SD txarteletik?"
+
+msgid "IDS_ST_BODY_KEY_USAGE_C"
+msgstr "Gako erabilera:"
+
+msgid "IDS_ST_BODY_ORGANISATION_C"
+msgstr "Erakundea:"
+
+msgid "IDS_ST_BODY_OWNER_C"
+msgstr "Jabea:"
+
+msgid "IDS_ST_BODY_PUBLIC_KEY_C"
+msgstr "Gako publikoa:"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE"
+msgstr "Ziurtagiri bat aukeratu"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE_TO_INSTALL"
+msgstr "Hautatu ziurtagiria instalatzeko"
+
+msgid "IDS_ST_BODY_SERIAL_NUMBER_C"
+msgstr "Serie zenbakia:"
+
+msgid "IDS_ST_BODY_SIGNATURE_ALGORITHM_C"
+msgstr "Sinatzeko algoritmoa:"
+
+msgid "IDS_ST_BODY_TRUE"
+msgstr "Benetakoa"
+
+msgid "IDS_ST_BODY_TRUSTED_ROOT_CERTIFICATES"
+msgstr "Erroko ziurtagiri fidagarriak"
+
+msgid "IDS_ST_BODY_USER_CERTIFICATES"
+msgstr "Erabiltzaile ziurtagiriak"
+
+msgid "IDS_ST_BODY_VALID_FROM_C"
+msgstr "Noiztik balioduna:"
+
+msgid "IDS_ST_BODY_VALID_TO_C"
+msgstr "Noiz arte balioduna:"
+
+msgid "IDS_ST_BUTTON_OPEN"
+msgstr "Ireki"
+
+msgid "IDS_ST_BODY_COMMON_NAME_C"
+msgstr "Ohiko izena:"
+
+msgid "IDS_ST_BODY_INCORRECT_PASSWORD"
+msgstr "Pasahitz okerra"
+
+msgid "IDS_ST_BODY_NO_CONTENT"
+msgstr "Ez dago edukirik"
+
+msgid "IDS_ST_BODY_NO_DATA"
+msgstr "Daturik ez"
+
+msgid "IDS_ST_BUTTON_NO"
+msgstr "Ez"
+
+msgid "IDS_ST_BUTTON_YES"
+msgstr "Bai"
+
+msgid "IDS_ST_SK2_CANCEL"
+msgstr "Ezeztatu"
+
+msgid "IDS_ST_SK2_OK"
+msgstr "Ados"
+
--- /dev/null
+msgid "IDS_ST_BODY_CERTIFICATES"
+msgstr "Varmenteet"
+
+msgid "IDS_ST_BODY_VERSION_C"
+msgstr "Versio:"
+
+msgid "IDS_ST_BUTTON_UNINSTALL"
+msgstr "Poista asennus"
+
+msgid "IDS_ST_BODY_MANUFACTURER"
+msgstr "Valmistaja"
+
+msgid "IDS_ST_BODY_SELECT_ALL"
+msgstr "Valitse kaikki"
+
+msgid "IDS_ST_BODY_ISSUER_COLON"
+msgstr "Myöntäjä:"
+
+msgid "IDS_ST_BUTTON_INSTALL"
+msgstr "Asenna"
+
+msgid "IDS_ST_BODY_ALIAS_ALREADY_EXISTS_ENTER_A_UNIQUE_ALIAS"
+msgstr "Alias on jo olemassa. Anna yksilöllinen alias"
+
+msgid "IDS_ST_BODY_ALIAS_CANNOT_BE_EMPTY"
+msgstr "Alias ei voi olla tyhjä"
+
+msgid "IDS_ST_BODY_CERTIFICATES_FOUND"
+msgstr "Varmenteita löydetty"
+
+msgid "IDS_ST_BODY_CERTIFICATE_DETAILS"
+msgstr "Sertifikaatin lisätiedot"
+
+msgid "IDS_ST_BODY_CERTIFICATE_INFORMATION"
+msgstr "Varmenteen tiedot"
+
+msgid "IDS_ST_BODY_CERTIFICATION_AUTHORITY_C"
+msgstr "Varmenteen myöntäjä:"
+
+msgid "IDS_ST_BODY_ENTER_KEY_ALIAS_C"
+msgstr "Anna avaimen alias:"
+
+msgid "IDS_ST_BODY_ENTER_PASSWORD_C"
+msgstr "Anna salasana:"
+
+msgid "IDS_ST_BODY_EXTERNAL_CERTIFICATES"
+msgstr "Ulkoiset varmenteet"
+
+msgid "IDS_ST_BODY_FALSE"
+msgstr "Epätosi"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATE"
+msgstr "Asenna varmenne"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATES_FROM_SD_CARD_Q"
+msgstr "Asennetaanko varmenteet SD-kortilta?"
+
+msgid "IDS_ST_BODY_KEY_USAGE_C"
+msgstr "Avaimen käyttö:"
+
+msgid "IDS_ST_BODY_ORGANISATION_C"
+msgstr "Organisaatio:"
+
+msgid "IDS_ST_BODY_OWNER_C"
+msgstr "Omistaja:"
+
+msgid "IDS_ST_BODY_PUBLIC_KEY_C"
+msgstr "Julkinen avain:"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE"
+msgstr "Valitse sertifikaatti"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE_TO_INSTALL"
+msgstr "Valitse asennettava varmenne"
+
+msgid "IDS_ST_BODY_SERIAL_NUMBER_C"
+msgstr "Sarjanumero:"
+
+msgid "IDS_ST_BODY_SIGNATURE_ALGORITHM_C"
+msgstr "Allekirjoitusalgoritmi:"
+
+msgid "IDS_ST_BODY_TRUE"
+msgstr "Tosi"
+
+msgid "IDS_ST_BODY_TRUSTED_ROOT_CERTIFICATES"
+msgstr "Luotettavat päävarmenteet"
+
+msgid "IDS_ST_BODY_USER_CERTIFICATES"
+msgstr "Käyttäjävarmenteet"
+
+msgid "IDS_ST_BODY_VALID_FROM_C"
+msgstr "Voimassa alkaen:"
+
+msgid "IDS_ST_BODY_VALID_TO_C"
+msgstr "Voimassa:"
+
+msgid "IDS_ST_BUTTON_OPEN"
+msgstr "Avaa"
+
+msgid "IDS_ST_BODY_COMMON_NAME_C"
+msgstr "Yleinen nimi:"
+
+msgid "IDS_ST_BODY_INCORRECT_PASSWORD"
+msgstr "Virheellinen salasana"
+
+msgid "IDS_ST_BODY_NO_CONTENT"
+msgstr "Ei sisältöjä"
+
+msgid "IDS_ST_BODY_NO_DATA"
+msgstr "Ei tietoja"
+
+msgid "IDS_ST_BUTTON_NO"
+msgstr "Ei"
+
+msgid "IDS_ST_BUTTON_YES"
+msgstr "Kyllä"
+
+msgid "IDS_ST_SK2_CANCEL"
+msgstr "Peruuta"
+
+msgid "IDS_ST_SK2_OK"
+msgstr "OK"
+
--- /dev/null
+msgid "IDS_ST_BODY_CERTIFICATES"
+msgstr "Certificats"
+
+msgid "IDS_ST_BODY_VERSION_C"
+msgstr "Version :"
+
+msgid "IDS_ST_BUTTON_UNINSTALL"
+msgstr "Désinstaller"
+
+msgid "IDS_ST_BODY_MANUFACTURER"
+msgstr "Fabricant"
+
+msgid "IDS_ST_BODY_SELECT_ALL"
+msgstr "Sélectionner tout"
+
+msgid "IDS_ST_BODY_ISSUER_COLON"
+msgstr "Emetteur :"
+
+msgid "IDS_ST_BUTTON_INSTALL"
+msgstr "Installer"
+
+msgid "IDS_ST_BODY_ALIAS_ALREADY_EXISTS_ENTER_A_UNIQUE_ALIAS"
+msgstr "L'alias existe déjà. Saisissez un alias unique"
+
+msgid "IDS_ST_BODY_ALIAS_CANNOT_BE_EMPTY"
+msgstr "L'alias doit être indiqué"
+
+msgid "IDS_ST_BODY_CERTIFICATES_FOUND"
+msgstr "Certificats trouvés"
+
+msgid "IDS_ST_BODY_CERTIFICATE_DETAILS"
+msgstr "Détails du certificat"
+
+msgid "IDS_ST_BODY_CERTIFICATE_INFORMATION"
+msgstr "Informations sur le certificat"
+
+msgid "IDS_ST_BODY_CERTIFICATION_AUTHORITY_C"
+msgstr "Autorité de certification :"
+
+msgid "IDS_ST_BODY_ENTER_KEY_ALIAS_C"
+msgstr "Entrez l'alias de la clé :"
+
+msgid "IDS_ST_BODY_ENTER_PASSWORD_C"
+msgstr "Saisissez le mot de passe :"
+
+msgid "IDS_ST_BODY_EXTERNAL_CERTIFICATES"
+msgstr "Certificats externes"
+
+msgid "IDS_ST_BODY_FALSE"
+msgstr "Faux"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATE"
+msgstr "Installer le certificat"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATES_FROM_SD_CARD_Q"
+msgstr "Installer les certificats depuis la carte SD ?"
+
+msgid "IDS_ST_BODY_KEY_USAGE_C"
+msgstr "Utilisation de la clé :"
+
+msgid "IDS_ST_BODY_ORGANISATION_C"
+msgstr "Organisation :"
+
+msgid "IDS_ST_BODY_OWNER_C"
+msgstr "Propriétaire :"
+
+msgid "IDS_ST_BODY_PUBLIC_KEY_C"
+msgstr "Clé publique :"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE"
+msgstr "Sélectionner un certificat"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE_TO_INSTALL"
+msgstr "Sélectionnez le certificat à installer"
+
+msgid "IDS_ST_BODY_SERIAL_NUMBER_C"
+msgstr "N° de série :"
+
+msgid "IDS_ST_BODY_SIGNATURE_ALGORITHM_C"
+msgstr "Algorithme de signature :"
+
+msgid "IDS_ST_BODY_TRUE"
+msgstr "Vrai"
+
+msgid "IDS_ST_BODY_TRUSTED_ROOT_CERTIFICATES"
+msgstr "Certificats de base fiables"
+
+msgid "IDS_ST_BODY_USER_CERTIFICATES"
+msgstr "Certificats utilisateur"
+
+msgid "IDS_ST_BODY_VALID_FROM_C"
+msgstr "Valide depuis :"
+
+msgid "IDS_ST_BODY_VALID_TO_C"
+msgstr "Valide jusqu'à :"
+
+msgid "IDS_ST_BUTTON_OPEN"
+msgstr "Open"
+
+msgid "IDS_ST_BODY_COMMON_NAME_C"
+msgstr "Nom commun :"
+
+msgid "IDS_ST_BODY_INCORRECT_PASSWORD"
+msgstr "Mot de passe incorrect"
+
+msgid "IDS_ST_BODY_NO_CONTENT"
+msgstr "Aucun contenu"
+
+msgid "IDS_ST_BODY_NO_DATA"
+msgstr "Aucune donnée"
+
+msgid "IDS_ST_BUTTON_NO"
+msgstr "Non"
+
+msgid "IDS_ST_BUTTON_YES"
+msgstr "Oui"
+
+msgid "IDS_ST_SK2_CANCEL"
+msgstr "Annuler"
+
+msgid "IDS_ST_SK2_OK"
+msgstr "OK"
+
--- /dev/null
+msgid "IDS_ST_BODY_CERTIFICATES"
+msgstr "Certificats"
+
+msgid "IDS_ST_BODY_VERSION_C"
+msgstr "Version :"
+
+msgid "IDS_ST_BUTTON_UNINSTALL"
+msgstr "Désinstaller"
+
+msgid "IDS_ST_BODY_MANUFACTURER"
+msgstr "Fabricant"
+
+msgid "IDS_ST_BODY_SELECT_ALL"
+msgstr "Sélect. tout"
+
+msgid "IDS_ST_BODY_ISSUER_COLON"
+msgstr "Emetteur :"
+
+msgid "IDS_ST_BUTTON_INSTALL"
+msgstr "Installer"
+
+msgid "IDS_ST_BODY_ALIAS_ALREADY_EXISTS_ENTER_A_UNIQUE_ALIAS"
+msgstr "L'alias existe déjà. Saisissez un alias unique"
+
+msgid "IDS_ST_BODY_ALIAS_CANNOT_BE_EMPTY"
+msgstr "L'alias doit être indiqué"
+
+msgid "IDS_ST_BODY_CERTIFICATES_FOUND"
+msgstr "Certificats trouvés"
+
+msgid "IDS_ST_BODY_CERTIFICATE_DETAILS"
+msgstr "Détails du certificat"
+
+msgid "IDS_ST_BODY_CERTIFICATE_INFORMATION"
+msgstr "Informations sur le certificat"
+
+msgid "IDS_ST_BODY_CERTIFICATION_AUTHORITY_C"
+msgstr "Autorité de certification :"
+
+msgid "IDS_ST_BODY_ENTER_KEY_ALIAS_C"
+msgstr "Entrez l'alias de la clé :"
+
+msgid "IDS_ST_BODY_ENTER_PASSWORD_C"
+msgstr "Saisissez le mot de passe :"
+
+msgid "IDS_ST_BODY_EXTERNAL_CERTIFICATES"
+msgstr "Certificats externes"
+
+msgid "IDS_ST_BODY_FALSE"
+msgstr "Faux"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATE"
+msgstr "Installer le certificat"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATES_FROM_SD_CARD_Q"
+msgstr "Installer les certificats depuis la carte SD ?"
+
+msgid "IDS_ST_BODY_KEY_USAGE_C"
+msgstr "Utilisation de la clé :"
+
+msgid "IDS_ST_BODY_ORGANISATION_C"
+msgstr "Organisation :"
+
+msgid "IDS_ST_BODY_OWNER_C"
+msgstr "Propriétaire :"
+
+msgid "IDS_ST_BODY_PUBLIC_KEY_C"
+msgstr "Clé publique :"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE"
+msgstr "Sélectionner le certificat"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE_TO_INSTALL"
+msgstr "Sélectionnez le certificat à installer"
+
+msgid "IDS_ST_BODY_SERIAL_NUMBER_C"
+msgstr "N° de série :"
+
+msgid "IDS_ST_BODY_SIGNATURE_ALGORITHM_C"
+msgstr "Algorithme de signature :"
+
+msgid "IDS_ST_BODY_TRUE"
+msgstr "Vrai"
+
+msgid "IDS_ST_BODY_TRUSTED_ROOT_CERTIFICATES"
+msgstr "Certificats de base fiables"
+
+msgid "IDS_ST_BODY_USER_CERTIFICATES"
+msgstr "Certificats utilisateur"
+
+msgid "IDS_ST_BODY_VALID_FROM_C"
+msgstr "Valide depuis :"
+
+msgid "IDS_ST_BODY_VALID_TO_C"
+msgstr "Valide jusqu'à :"
+
+msgid "IDS_ST_BUTTON_OPEN"
+msgstr "Ouvrir"
+
+msgid "IDS_ST_BODY_COMMON_NAME_C"
+msgstr "Nom commun :"
+
+msgid "IDS_ST_BODY_INCORRECT_PASSWORD"
+msgstr "Mot de passe incorrect"
+
+msgid "IDS_ST_BODY_NO_CONTENT"
+msgstr "Aucun fichier"
+
+msgid "IDS_ST_BODY_NO_DATA"
+msgstr "Aucun résultat"
+
+msgid "IDS_ST_BUTTON_NO"
+msgstr "Non"
+
+msgid "IDS_ST_BUTTON_YES"
+msgstr "Oui"
+
+msgid "IDS_ST_SK2_CANCEL"
+msgstr "Annuler"
+
+msgid "IDS_ST_SK2_OK"
+msgstr "OK"
+
--- /dev/null
+msgid "IDS_ST_BODY_CERTIFICATES"
+msgstr "Deimhnithe"
+
+msgid "IDS_ST_BODY_VERSION_C"
+msgstr "Leagan:"
+
+msgid "IDS_ST_BUTTON_UNINSTALL"
+msgstr "Díshuiteáil"
+
+msgid "IDS_ST_BODY_MANUFACTURER"
+msgstr "Déantúsóir"
+
+msgid "IDS_ST_BODY_SELECT_ALL"
+msgstr "Roghnaigh gach"
+
+msgid "IDS_ST_BODY_ISSUER_COLON"
+msgstr "Eisitheoir:"
+
+msgid "IDS_ST_BUTTON_INSTALL"
+msgstr "Suiteáil"
+
+msgid "IDS_ST_BODY_ALIAS_ALREADY_EXISTS_ENTER_A_UNIQUE_ALIAS"
+msgstr "Tá an t-ailias ann cheana. Iontráil ailias uathúil"
+
+msgid "IDS_ST_BODY_ALIAS_CANNOT_BE_EMPTY"
+msgstr "Ní féidir leis an ailias a bheith folamh"
+
+msgid "IDS_ST_BODY_CERTIFICATES_FOUND"
+msgstr "Aimsíodh deimhnithe"
+
+msgid "IDS_ST_BODY_CERTIFICATE_DETAILS"
+msgstr "Sonraí deimhnithe"
+
+msgid "IDS_ST_BODY_CERTIFICATE_INFORMATION"
+msgstr "Faisnéis faoin dheimhniú"
+
+msgid "IDS_ST_BODY_CERTIFICATION_AUTHORITY_C"
+msgstr "Údarás deimhnithe:"
+
+msgid "IDS_ST_BODY_ENTER_KEY_ALIAS_C"
+msgstr "Iontráil eochair an ailias:"
+
+msgid "IDS_ST_BODY_ENTER_PASSWORD_C"
+msgstr "Iontráil pasfhocal:"
+
+msgid "IDS_ST_BODY_EXTERNAL_CERTIFICATES"
+msgstr "Deimhnithe seachtracha"
+
+msgid "IDS_ST_BODY_FALSE"
+msgstr "Bréige"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATE"
+msgstr "Suiteálaí deimhniú"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATES_FROM_SD_CARD_Q"
+msgstr "Suiteáil deimhnithe ón gcárta SD?"
+
+msgid "IDS_ST_BODY_KEY_USAGE_C"
+msgstr "Úsáid eochracha:"
+
+msgid "IDS_ST_BODY_ORGANISATION_C"
+msgstr "Eagraíocht:"
+
+msgid "IDS_ST_BODY_OWNER_C"
+msgstr "Úinéir:"
+
+msgid "IDS_ST_BODY_PUBLIC_KEY_C"
+msgstr "Eochair phoiblí:"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE"
+msgstr "Roghnaigh deimhniú amháin"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE_TO_INSTALL"
+msgstr "Roghnaigh deimhniú le suiteáil"
+
+msgid "IDS_ST_BODY_SERIAL_NUMBER_C"
+msgstr "Sraithuimhir:"
+
+msgid "IDS_ST_BODY_SIGNATURE_ALGORITHM_C"
+msgstr "Algartam sínithe:"
+
+msgid "IDS_ST_BODY_TRUE"
+msgstr "Fíor"
+
+msgid "IDS_ST_BODY_TRUSTED_ROOT_CERTIFICATES"
+msgstr "Deimhnithe fréimhe iontaofa"
+
+msgid "IDS_ST_BODY_USER_CERTIFICATES"
+msgstr "Deimhnithe úsáideora"
+
+msgid "IDS_ST_BODY_VALID_FROM_C"
+msgstr "Bailí ó:"
+
+msgid "IDS_ST_BODY_VALID_TO_C"
+msgstr "Bailí go dtí:"
+
+msgid "IDS_ST_BUTTON_OPEN"
+msgstr "Oscail"
+
+msgid "IDS_ST_BODY_COMMON_NAME_C"
+msgstr "Ainm coitianta:"
+
+msgid "IDS_ST_BODY_INCORRECT_PASSWORD"
+msgstr "Pasfhocal mícheart"
+
+msgid "IDS_ST_BODY_NO_CONTENT"
+msgstr "Níl inneachar ann"
+
+msgid "IDS_ST_BODY_NO_DATA"
+msgstr "Níl sonraí ann"
+
+msgid "IDS_ST_BUTTON_NO"
+msgstr "Ná déan é"
+
+msgid "IDS_ST_BUTTON_YES"
+msgstr "Déan é"
+
+msgid "IDS_ST_SK2_CANCEL"
+msgstr "Cuir ar ceal"
+
+msgid "IDS_ST_SK2_OK"
+msgstr "OK"
+
--- /dev/null
+msgid "IDS_ST_BODY_CERTIFICATES"
+msgstr "Certificados"
+
+msgid "IDS_ST_BODY_VERSION_C"
+msgstr "Versión:"
+
+msgid "IDS_ST_BUTTON_UNINSTALL"
+msgstr "Desinstalar"
+
+msgid "IDS_ST_BODY_MANUFACTURER"
+msgstr "Fabricante"
+
+msgid "IDS_ST_BODY_SELECT_ALL"
+msgstr "Seleccionar todo"
+
+msgid "IDS_ST_BODY_ISSUER_COLON"
+msgstr "Emisor:"
+
+msgid "IDS_ST_BUTTON_INSTALL"
+msgstr "Instalar"
+
+msgid "IDS_ST_BODY_ALIAS_ALREADY_EXISTS_ENTER_A_UNIQUE_ALIAS"
+msgstr "O alcume xa existe. Insire un alcume único"
+
+msgid "IDS_ST_BODY_ALIAS_CANNOT_BE_EMPTY"
+msgstr "O alcume non pode permanecer baleiro"
+
+msgid "IDS_ST_BODY_CERTIFICATES_FOUND"
+msgstr "Certificados atopados"
+
+msgid "IDS_ST_BODY_CERTIFICATE_DETAILS"
+msgstr "Detalles de certificado"
+
+msgid "IDS_ST_BODY_CERTIFICATE_INFORMATION"
+msgstr "Información do certificado"
+
+msgid "IDS_ST_BODY_CERTIFICATION_AUTHORITY_C"
+msgstr "Autoridade de certificación:"
+
+msgid "IDS_ST_BODY_ENTER_KEY_ALIAS_C"
+msgstr "Introducir alcume de clave:"
+
+msgid "IDS_ST_BODY_ENTER_PASSWORD_C"
+msgstr "Insire o contrasinal:"
+
+msgid "IDS_ST_BODY_EXTERNAL_CERTIFICATES"
+msgstr "Certificados externos"
+
+msgid "IDS_ST_BODY_FALSE"
+msgstr "Falso"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATE"
+msgstr "Instalar certificado"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATES_FROM_SD_CARD_Q"
+msgstr "Desexas instalar certificados da tarxeta SD?"
+
+msgid "IDS_ST_BODY_KEY_USAGE_C"
+msgstr "Uso da clave:"
+
+msgid "IDS_ST_BODY_ORGANISATION_C"
+msgstr "Organización:"
+
+msgid "IDS_ST_BODY_OWNER_C"
+msgstr "Propietario:"
+
+msgid "IDS_ST_BODY_PUBLIC_KEY_C"
+msgstr "Clave pública:"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE"
+msgstr "Seleccione o certificado"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE_TO_INSTALL"
+msgstr "Selecciona un certificado para instalar"
+
+msgid "IDS_ST_BODY_SERIAL_NUMBER_C"
+msgstr "Número de serie:"
+
+msgid "IDS_ST_BODY_SIGNATURE_ALGORITHM_C"
+msgstr "Algoritmo de sinatura:"
+
+msgid "IDS_ST_BODY_TRUE"
+msgstr "Verdade"
+
+msgid "IDS_ST_BODY_TRUSTED_ROOT_CERTIFICATES"
+msgstr "Certificados raíz seguros"
+
+msgid "IDS_ST_BODY_USER_CERTIFICATES"
+msgstr "Certificados de usuario"
+
+msgid "IDS_ST_BODY_VALID_FROM_C"
+msgstr "Válido desde:"
+
+msgid "IDS_ST_BODY_VALID_TO_C"
+msgstr "Válido ata:"
+
+msgid "IDS_ST_BUTTON_OPEN"
+msgstr "Abrir"
+
+msgid "IDS_ST_BODY_COMMON_NAME_C"
+msgstr "Nome común:"
+
+msgid "IDS_ST_BODY_INCORRECT_PASSWORD"
+msgstr "Contrasinal non válido"
+
+msgid "IDS_ST_BODY_NO_CONTENT"
+msgstr "Sen contidos"
+
+msgid "IDS_ST_BODY_NO_DATA"
+msgstr "Non hai datos"
+
+msgid "IDS_ST_BUTTON_NO"
+msgstr "Non"
+
+msgid "IDS_ST_BUTTON_YES"
+msgstr "Si"
+
+msgid "IDS_ST_SK2_CANCEL"
+msgstr "Cancelar"
+
+msgid "IDS_ST_SK2_OK"
+msgstr "Aceptar"
+
--- /dev/null
+msgid "IDS_COM_BODY_NO_CONTENTS"
+msgstr "אין תוכן"
--- /dev/null
+msgid "IDS_ST_BODY_CERTIFICATES"
+msgstr "प्रमाणपत्र"
+
+msgid "IDS_ST_BODY_VERSION_C"
+msgstr "संस्करण:"
+
+msgid "IDS_ST_BUTTON_UNINSTALL"
+msgstr "अनइंस्टॉल"
+
+msgid "IDS_ST_BODY_MANUFACTURER"
+msgstr "निर्माता"
+
+msgid "IDS_ST_BODY_SELECT_ALL"
+msgstr "सभी चुनें"
+
+msgid "IDS_ST_BODY_ISSUER_COLON"
+msgstr "जारीकर्ता:"
+
+msgid "IDS_ST_BUTTON_INSTALL"
+msgstr "स्थापित करें"
+
+msgid "IDS_ST_BODY_ALIAS_ALREADY_EXISTS_ENTER_A_UNIQUE_ALIAS"
+msgstr "उपनाम पहले से मौजूद है। कोई विशिष्ट उपनाम दर्ज करें"
+
+msgid "IDS_ST_BODY_ALIAS_CANNOT_BE_EMPTY"
+msgstr "उपनाम खाली नहीं छोड़ सकते हैं"
+
+msgid "IDS_ST_BODY_CERTIFICATES_FOUND"
+msgstr "प्रमाणपत्र मिले"
+
+msgid "IDS_ST_BODY_CERTIFICATE_DETAILS"
+msgstr "प्रमाणपत्र विवरण"
+
+msgid "IDS_ST_BODY_CERTIFICATE_INFORMATION"
+msgstr "प्रमाणपत्र जानकारी"
+
+msgid "IDS_ST_BODY_CERTIFICATION_AUTHORITY_C"
+msgstr "प्रमाणपत्र प्राधिकार:"
+
+msgid "IDS_ST_BODY_ENTER_KEY_ALIAS_C"
+msgstr "कुंजी उपनाम दर्ज करें:"
+
+msgid "IDS_ST_BODY_ENTER_PASSWORD_C"
+msgstr "पासवर्ड दर्ज करें:"
+
+msgid "IDS_ST_BODY_EXTERNAL_CERTIFICATES"
+msgstr "बाह्य प्रमाणपत्र"
+
+msgid "IDS_ST_BODY_FALSE"
+msgstr "ग़लत"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATE"
+msgstr "प्रमाणपत्र स्थापित करें"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATES_FROM_SD_CARD_Q"
+msgstr "SD कार्ड से प्रमाणपत्र स्थापित करें?"
+
+msgid "IDS_ST_BODY_KEY_USAGE_C"
+msgstr "कुंजी उपयोग:"
+
+msgid "IDS_ST_BODY_ORGANISATION_C"
+msgstr "संगठन:"
+
+msgid "IDS_ST_BODY_OWNER_C"
+msgstr "स्वामी:"
+
+msgid "IDS_ST_BODY_PUBLIC_KEY_C"
+msgstr "सार्वजनिक कुंजी:"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE"
+msgstr "प्रमाणपत्र चुनें"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE_TO_INSTALL"
+msgstr "स्थापित करने के लिए प्रमाणपत्र चुनें"
+
+msgid "IDS_ST_BODY_SERIAL_NUMBER_C"
+msgstr "सीरियल नंबर:"
+
+msgid "IDS_ST_BODY_SIGNATURE_ALGORITHM_C"
+msgstr "हस्ताक्षर एल्गोरिथम:"
+
+msgid "IDS_ST_BODY_TRUE"
+msgstr "सच"
+
+msgid "IDS_ST_BODY_TRUSTED_ROOT_CERTIFICATES"
+msgstr "विश्वसनीय मूल प्रमाणपत्र"
+
+msgid "IDS_ST_BODY_USER_CERTIFICATES"
+msgstr "उपभोक्ता प्रमाणपत्र"
+
+msgid "IDS_ST_BODY_VALID_FROM_C"
+msgstr "से मान्य:"
+
+msgid "IDS_ST_BODY_VALID_TO_C"
+msgstr "इस पर मान्य:"
+
+msgid "IDS_ST_BUTTON_OPEN"
+msgstr "खोलें"
+
+msgid "IDS_ST_BODY_COMMON_NAME_C"
+msgstr "सामान्य नाम:"
+
+msgid "IDS_ST_BODY_INCORRECT_PASSWORD"
+msgstr "गलत पासवर्ड"
+
+msgid "IDS_ST_BODY_NO_CONTENT"
+msgstr "कोई सामग्री नहीं"
+
+msgid "IDS_ST_BODY_NO_DATA"
+msgstr "कोई डाटा नहीं"
+
+msgid "IDS_ST_BUTTON_NO"
+msgstr "नहीं"
+
+msgid "IDS_ST_BUTTON_YES"
+msgstr "हाँ"
+
+msgid "IDS_ST_SK2_CANCEL"
+msgstr "रद्द"
+
+msgid "IDS_ST_SK2_OK"
+msgstr "ओके"
+
--- /dev/null
+msgid "IDS_ST_BODY_CERTIFICATES"
+msgstr "Certifikati"
+
+msgid "IDS_ST_BODY_VERSION_C"
+msgstr "Verzija:"
+
+msgid "IDS_ST_BUTTON_UNINSTALL"
+msgstr "Deinstaliraj"
+
+msgid "IDS_ST_BODY_MANUFACTURER"
+msgstr "Proizvođač"
+
+msgid "IDS_ST_BODY_SELECT_ALL"
+msgstr "Odaberi sve"
+
+msgid "IDS_ST_BODY_ISSUER_COLON"
+msgstr "Izdavatelj:"
+
+msgid "IDS_ST_BUTTON_INSTALL"
+msgstr "Instaliraj"
+
+msgid "IDS_ST_BODY_ALIAS_ALREADY_EXISTS_ENTER_A_UNIQUE_ALIAS"
+msgstr "Alias već postoji. Unesite jedinstveni alias"
+
+msgid "IDS_ST_BODY_ALIAS_CANNOT_BE_EMPTY"
+msgstr "Alias ne može ostati prazan"
+
+msgid "IDS_ST_BODY_CERTIFICATES_FOUND"
+msgstr "Pronađene potvrde"
+
+msgid "IDS_ST_BODY_CERTIFICATE_DETAILS"
+msgstr "Detalji o certifikatu"
+
+msgid "IDS_ST_BODY_CERTIFICATE_INFORMATION"
+msgstr "Podaci potvrde"
+
+msgid "IDS_ST_BODY_CERTIFICATION_AUTHORITY_C"
+msgstr "Odgovornost za izdavanje potvrde:"
+
+msgid "IDS_ST_BODY_ENTER_KEY_ALIAS_C"
+msgstr "Unesite alias:"
+
+msgid "IDS_ST_BODY_ENTER_PASSWORD_C"
+msgstr "Unesite lozinku:"
+
+msgid "IDS_ST_BODY_EXTERNAL_CERTIFICATES"
+msgstr "Vanjske potvrde"
+
+msgid "IDS_ST_BODY_FALSE"
+msgstr "Ne"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATE"
+msgstr "Instaliraj potvrdu"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATES_FROM_SD_CARD_Q"
+msgstr "Instalirati potvrde s SD kartice?"
+
+msgid "IDS_ST_BODY_KEY_USAGE_C"
+msgstr "Uporaba ključa:"
+
+msgid "IDS_ST_BODY_ORGANISATION_C"
+msgstr "Organizacija:"
+
+msgid "IDS_ST_BODY_OWNER_C"
+msgstr "Vlasnik:"
+
+msgid "IDS_ST_BODY_PUBLIC_KEY_C"
+msgstr "Javni ključ:"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE"
+msgstr "Odaberite certifikat"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE_TO_INSTALL"
+msgstr "Odaberi potvrdu za instaliranje"
+
+msgid "IDS_ST_BODY_SERIAL_NUMBER_C"
+msgstr "Serijski broj:"
+
+msgid "IDS_ST_BODY_SIGNATURE_ALGORITHM_C"
+msgstr "Algoritam potpisa:"
+
+msgid "IDS_ST_BODY_TRUE"
+msgstr "Istinito"
+
+msgid "IDS_ST_BODY_TRUSTED_ROOT_CERTIFICATES"
+msgstr "Pouzdane potvrde"
+
+msgid "IDS_ST_BODY_USER_CERTIFICATES"
+msgstr "Korisničke potvrde"
+
+msgid "IDS_ST_BODY_VALID_FROM_C"
+msgstr "Vrijedi od:"
+
+msgid "IDS_ST_BODY_VALID_TO_C"
+msgstr "Vrijedi do:"
+
+msgid "IDS_ST_BUTTON_OPEN"
+msgstr "Otvori"
+
+msgid "IDS_ST_BODY_COMMON_NAME_C"
+msgstr "Zajednički naziv:"
+
+msgid "IDS_ST_BODY_INCORRECT_PASSWORD"
+msgstr "Neispravna šifra"
+
+msgid "IDS_ST_BODY_NO_CONTENT"
+msgstr "Nema sadržaja"
+
+msgid "IDS_ST_BODY_NO_DATA"
+msgstr "Nema podataka"
+
+msgid "IDS_ST_BUTTON_NO"
+msgstr "Ne"
+
+msgid "IDS_ST_BUTTON_YES"
+msgstr "Da"
+
+msgid "IDS_ST_SK2_CANCEL"
+msgstr "Prekid"
+
+msgid "IDS_ST_SK2_OK"
+msgstr "U redu"
+
--- /dev/null
+msgid "IDS_ST_BODY_CERTIFICATES"
+msgstr "Tanúsítványok"
+
+msgid "IDS_ST_BODY_VERSION_C"
+msgstr "Verzió:"
+
+msgid "IDS_ST_BUTTON_UNINSTALL"
+msgstr "Eltávolítás"
+
+msgid "IDS_ST_BODY_MANUFACTURER"
+msgstr "Gyártó"
+
+msgid "IDS_ST_BODY_SELECT_ALL"
+msgstr "Összes kijelölése"
+
+msgid "IDS_ST_BODY_ISSUER_COLON"
+msgstr "Kiállító:"
+
+msgid "IDS_ST_BUTTON_INSTALL"
+msgstr "Telepít"
+
+msgid "IDS_ST_BODY_ALIAS_ALREADY_EXISTS_ENTER_A_UNIQUE_ALIAS"
+msgstr "Már van ilyen alias. Egyedi aliast adjon meg"
+
+msgid "IDS_ST_BODY_ALIAS_CANNOT_BE_EMPTY"
+msgstr "Az alias nem lehet üres"
+
+msgid "IDS_ST_BODY_CERTIFICATES_FOUND"
+msgstr "Talált tanúsítványok"
+
+msgid "IDS_ST_BODY_CERTIFICATE_DETAILS"
+msgstr "Tanúsítvány adatai"
+
+msgid "IDS_ST_BODY_CERTIFICATE_INFORMATION"
+msgstr "Tanúsítványadatok"
+
+msgid "IDS_ST_BODY_CERTIFICATION_AUTHORITY_C"
+msgstr "Hitelesítésszolgáltató:"
+
+msgid "IDS_ST_BODY_ENTER_KEY_ALIAS_C"
+msgstr "Adja meg a kulcsaliast:"
+
+msgid "IDS_ST_BODY_ENTER_PASSWORD_C"
+msgstr "Adja meg a jelszót:"
+
+msgid "IDS_ST_BODY_EXTERNAL_CERTIFICATES"
+msgstr "Külső tanúsítványok"
+
+msgid "IDS_ST_BODY_FALSE"
+msgstr "Hamis"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATE"
+msgstr "Tanúsítvány telepítése"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATES_FROM_SD_CARD_Q"
+msgstr "Telepíti a tanúsítványokat az SD-kártyáról?"
+
+msgid "IDS_ST_BODY_KEY_USAGE_C"
+msgstr "Kulcs használata:"
+
+msgid "IDS_ST_BODY_ORGANISATION_C"
+msgstr "Szervezet:"
+
+msgid "IDS_ST_BODY_OWNER_C"
+msgstr "Tulajdonos:"
+
+msgid "IDS_ST_BODY_PUBLIC_KEY_C"
+msgstr "Nyilvános kulcs:"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE"
+msgstr "Válassza ki a tanúsítványt"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE_TO_INSTALL"
+msgstr "Válassza ki a telepíteni kívánt tanúsítványt"
+
+msgid "IDS_ST_BODY_SERIAL_NUMBER_C"
+msgstr "Sorozatszám:"
+
+msgid "IDS_ST_BODY_SIGNATURE_ALGORITHM_C"
+msgstr "Aláírási algoritmus:"
+
+msgid "IDS_ST_BODY_TRUE"
+msgstr "true"
+
+msgid "IDS_ST_BODY_TRUSTED_ROOT_CERTIFICATES"
+msgstr "Megbízható főtanúsítványok"
+
+msgid "IDS_ST_BODY_USER_CERTIFICATES"
+msgstr "Felhasználó tanúsítványai"
+
+msgid "IDS_ST_BODY_VALID_FROM_C"
+msgstr "Érvényesség kezdete:"
+
+msgid "IDS_ST_BODY_VALID_TO_C"
+msgstr "Érvényesség vége:"
+
+msgid "IDS_ST_BUTTON_OPEN"
+msgstr "Megnyitás"
+
+msgid "IDS_ST_BODY_COMMON_NAME_C"
+msgstr "Köznapi név:"
+
+msgid "IDS_ST_BODY_INCORRECT_PASSWORD"
+msgstr "Téves jelszó"
+
+msgid "IDS_ST_BODY_NO_CONTENT"
+msgstr "Nincs tartalomjegyzék"
+
+msgid "IDS_ST_BODY_NO_DATA"
+msgstr "Nincsenek adatok"
+
+msgid "IDS_ST_BUTTON_NO"
+msgstr "Nem"
+
+msgid "IDS_ST_BUTTON_YES"
+msgstr "Igen"
+
+msgid "IDS_ST_SK2_CANCEL"
+msgstr "Mégse"
+
+msgid "IDS_ST_SK2_OK"
+msgstr "OK"
+
--- /dev/null
+msgid "IDS_ST_BODY_CERTIFICATES"
+msgstr "Վկայականներ"
+
+msgid "IDS_ST_BODY_VERSION_C"
+msgstr "Տարբերակ՝"
+
+msgid "IDS_ST_BUTTON_UNINSTALL"
+msgstr "Ապատեղադրել"
+
+msgid "IDS_ST_BODY_MANUFACTURER"
+msgstr "Արտադրող"
+
+msgid "IDS_ST_BODY_SELECT_ALL"
+msgstr "Ընտրել բոլորը"
+
+msgid "IDS_ST_BODY_ISSUER_COLON"
+msgstr "Թողարկող՝"
+
+msgid "IDS_ST_BUTTON_INSTALL"
+msgstr "Տեղադրել"
+
+msgid "IDS_ST_BODY_ALIAS_ALREADY_EXISTS_ENTER_A_UNIQUE_ALIAS"
+msgstr "Փոխանունն արդեն գոյություն ունի: Մուտքագրեք եզակի փոխանուն"
+
+msgid "IDS_ST_BODY_ALIAS_CANNOT_BE_EMPTY"
+msgstr "Փոխանունը չի կարող դատարկ լինել"
+
+msgid "IDS_ST_BODY_CERTIFICATES_FOUND"
+msgstr "Վկայականներ են գտնվել"
+
+msgid "IDS_ST_BODY_CERTIFICATE_DETAILS"
+msgstr "Վկայականի տվյալները"
+
+msgid "IDS_ST_BODY_CERTIFICATE_INFORMATION"
+msgstr "Վկայականի տվյալներ"
+
+msgid "IDS_ST_BODY_CERTIFICATION_AUTHORITY_C"
+msgstr "Վկայագրման կենտրոն՝"
+
+msgid "IDS_ST_BODY_ENTER_KEY_ALIAS_C"
+msgstr "Մուտքագրեք բանալու փոխանուն՝"
+
+msgid "IDS_ST_BODY_ENTER_PASSWORD_C"
+msgstr "Մուտքագրեք գաղտնաբառ՝"
+
+msgid "IDS_ST_BODY_EXTERNAL_CERTIFICATES"
+msgstr "Արտաքին վկայականներ"
+
+msgid "IDS_ST_BODY_FALSE"
+msgstr "Կեղծ"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATE"
+msgstr "Տեղադրել վկայականը"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATES_FROM_SD_CARD_Q"
+msgstr "Տեղադրե՞լ վկայականներ SD քարտից:"
+
+msgid "IDS_ST_BODY_KEY_USAGE_C"
+msgstr "Բանալու օգտագործում՝"
+
+msgid "IDS_ST_BODY_ORGANISATION_C"
+msgstr "Կազմակերպությունը՝"
+
+msgid "IDS_ST_BODY_OWNER_C"
+msgstr "Սեփականատեր՝"
+
+msgid "IDS_ST_BODY_PUBLIC_KEY_C"
+msgstr "Բաց բանալի՝"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE"
+msgstr "Ընտրեք վկայականը"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE_TO_INSTALL"
+msgstr "Ընտրել տեղադրելու վկայականը"
+
+msgid "IDS_ST_BODY_SERIAL_NUMBER_C"
+msgstr "Սերիական համար՝"
+
+msgid "IDS_ST_BODY_SIGNATURE_ALGORITHM_C"
+msgstr "Ստորագրության ալգորիթմ՝"
+
+msgid "IDS_ST_BODY_TRUE"
+msgstr "Ստույգ"
+
+msgid "IDS_ST_BODY_TRUSTED_ROOT_CERTIFICATES"
+msgstr "Վստահելի արմատային վկայականներ"
+
+msgid "IDS_ST_BODY_USER_CERTIFICATES"
+msgstr "Օգտվողի վկայականներ"
+
+msgid "IDS_ST_BODY_VALID_FROM_C"
+msgstr "Վավեր է սկասած ...-ից"
+
+msgid "IDS_ST_BODY_VALID_TO_C"
+msgstr "Վավեր է մինչև՝"
+
+msgid "IDS_ST_BUTTON_OPEN"
+msgstr "Բացել"
+
+msgid "IDS_ST_BODY_COMMON_NAME_C"
+msgstr "Հասարակ անունը՝"
+
+msgid "IDS_ST_BODY_INCORRECT_PASSWORD"
+msgstr "Սխալ գաղտնաբառ"
+
+msgid "IDS_ST_BODY_NO_CONTENT"
+msgstr "Պարունակության բացակայություն"
+
+msgid "IDS_ST_BODY_NO_DATA"
+msgstr "Տվյալներ չկան"
+
+msgid "IDS_ST_BUTTON_NO"
+msgstr "Ոչ"
+
+msgid "IDS_ST_BUTTON_YES"
+msgstr "Այո"
+
+msgid "IDS_ST_SK2_CANCEL"
+msgstr "Դադարեցնել"
+
+msgid "IDS_ST_SK2_OK"
+msgstr "OK"
+
--- /dev/null
+msgid "IDS_COM_BODY_NO_CONTENTS"
+msgstr "Tdk ada konten"
+
--- /dev/null
+msgid "IDS_ST_BODY_CERTIFICATES"
+msgstr "Skírteini"
+
+msgid "IDS_ST_BODY_VERSION_C"
+msgstr "Útgáfa:"
+
+msgid "IDS_ST_BUTTON_UNINSTALL"
+msgstr "Fjarlægja"
+
+msgid "IDS_ST_BODY_MANUFACTURER"
+msgstr "Framleiðandi"
+
+msgid "IDS_ST_BODY_SELECT_ALL"
+msgstr "Velja allt"
+
+msgid "IDS_ST_BODY_ISSUER_COLON"
+msgstr "Útgefandi:"
+
+msgid "IDS_ST_BUTTON_INSTALL"
+msgstr "Setja upp"
+
+msgid "IDS_ST_BODY_ALIAS_ALREADY_EXISTS_ENTER_A_UNIQUE_ALIAS"
+msgstr "Samnefnið er þegar í notkun. Sláðu inn einkvæmt samnefni"
+
+msgid "IDS_ST_BODY_ALIAS_CANNOT_BE_EMPTY"
+msgstr "Samnefnið getur ekki verið autt"
+
+msgid "IDS_ST_BODY_CERTIFICATES_FOUND"
+msgstr "Vottorð fundust"
+
+msgid "IDS_ST_BODY_CERTIFICATE_DETAILS"
+msgstr "Upplýsingar um skírteini"
+
+msgid "IDS_ST_BODY_CERTIFICATE_INFORMATION"
+msgstr "Upplýsingar um vottorð"
+
+msgid "IDS_ST_BODY_CERTIFICATION_AUTHORITY_C"
+msgstr "Vottunaraðili:"
+
+msgid "IDS_ST_BODY_ENTER_KEY_ALIAS_C"
+msgstr "Sláðu inn samnefni lykils:"
+
+msgid "IDS_ST_BODY_ENTER_PASSWORD_C"
+msgstr "Sláðu inn lykilorð:"
+
+msgid "IDS_ST_BODY_EXTERNAL_CERTIFICATES"
+msgstr "Ytri vottorð"
+
+msgid "IDS_ST_BODY_FALSE"
+msgstr "Ósatt"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATE"
+msgstr "Setja upp vottorð"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATES_FROM_SD_CARD_Q"
+msgstr "Setja upp vottorð af SD-korti?"
+
+msgid "IDS_ST_BODY_KEY_USAGE_C"
+msgstr "Notkun lykils:"
+
+msgid "IDS_ST_BODY_ORGANISATION_C"
+msgstr "Fyrirtæki:"
+
+msgid "IDS_ST_BODY_OWNER_C"
+msgstr "Eigandi:"
+
+msgid "IDS_ST_BODY_PUBLIC_KEY_C"
+msgstr "Almennur lykill:"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE"
+msgstr "Veldu vottorðið"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE_TO_INSTALL"
+msgstr "Veldu vottorð til að setja upp"
+
+msgid "IDS_ST_BODY_SERIAL_NUMBER_C"
+msgstr "Raðnúmer:"
+
+msgid "IDS_ST_BODY_SIGNATURE_ALGORITHM_C"
+msgstr "Algóritmi undirskriftar:"
+
+msgid "IDS_ST_BODY_TRUE"
+msgstr "Rétt"
+
+msgid "IDS_ST_BODY_TRUSTED_ROOT_CERTIFICATES"
+msgstr "Traust rótarvottorð"
+
+msgid "IDS_ST_BODY_USER_CERTIFICATES"
+msgstr "Notandavottorð"
+
+msgid "IDS_ST_BODY_VALID_FROM_C"
+msgstr "Gildir frá:"
+
+msgid "IDS_ST_BODY_VALID_TO_C"
+msgstr "Gildir til:"
+
+msgid "IDS_ST_BUTTON_OPEN"
+msgstr "Opna"
+
+msgid "IDS_ST_BODY_COMMON_NAME_C"
+msgstr "Sameiginlegt nafn:"
+
+msgid "IDS_ST_BODY_INCORRECT_PASSWORD"
+msgstr "Rangt aðgangsorð"
+
+msgid "IDS_ST_BODY_NO_CONTENT"
+msgstr "Efni vantar"
+
+msgid "IDS_ST_BODY_NO_DATA"
+msgstr "Engin gögn"
+
+msgid "IDS_ST_BUTTON_NO"
+msgstr "Nei"
+
+msgid "IDS_ST_BUTTON_YES"
+msgstr "Já"
+
+msgid "IDS_ST_SK2_CANCEL"
+msgstr "Hætta við"
+
+msgid "IDS_ST_SK2_OK"
+msgstr "Í lagi"
+
--- /dev/null
+msgid "IDS_ST_BODY_CERTIFICATES"
+msgstr "Certificati"
+
+msgid "IDS_ST_BODY_VERSION_C"
+msgstr "Versione:"
+
+msgid "IDS_ST_BUTTON_UNINSTALL"
+msgstr "Disinstalla"
+
+msgid "IDS_ST_BODY_MANUFACTURER"
+msgstr "Produttore"
+
+msgid "IDS_ST_BODY_SELECT_ALL"
+msgstr "Seleziona tutto"
+
+msgid "IDS_ST_BODY_ISSUER_COLON"
+msgstr "Emittente:"
+
+msgid "IDS_ST_BUTTON_INSTALL"
+msgstr "Installa"
+
+msgid "IDS_ST_BODY_ALIAS_ALREADY_EXISTS_ENTER_A_UNIQUE_ALIAS"
+msgstr "Alias già esistente. Immettere un alias univoco"
+
+msgid "IDS_ST_BODY_ALIAS_CANNOT_BE_EMPTY"
+msgstr "L'alias non può essere vuoto"
+
+msgid "IDS_ST_BODY_CERTIFICATES_FOUND"
+msgstr "Certificati trovati"
+
+msgid "IDS_ST_BODY_CERTIFICATE_DETAILS"
+msgstr "Dettagli certificato"
+
+msgid "IDS_ST_BODY_CERTIFICATE_INFORMATION"
+msgstr "Informazioni certificato"
+
+msgid "IDS_ST_BODY_CERTIFICATION_AUTHORITY_C"
+msgstr "Autorità di certificazione:"
+
+msgid "IDS_ST_BODY_ENTER_KEY_ALIAS_C"
+msgstr "Inserire chiave alias:"
+
+msgid "IDS_ST_BODY_ENTER_PASSWORD_C"
+msgstr "Inserire password:"
+
+msgid "IDS_ST_BODY_EXTERNAL_CERTIFICATES"
+msgstr "Certificati esterni"
+
+msgid "IDS_ST_BODY_FALSE"
+msgstr "Falso"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATE"
+msgstr "Installa certificato"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATES_FROM_SD_CARD_Q"
+msgstr "Installare certificati dalla scheda SD?"
+
+msgid "IDS_ST_BODY_KEY_USAGE_C"
+msgstr "Utilizzo chiave:"
+
+msgid "IDS_ST_BODY_ORGANISATION_C"
+msgstr "Organizzazione:"
+
+msgid "IDS_ST_BODY_OWNER_C"
+msgstr "Proprietario:"
+
+msgid "IDS_ST_BODY_PUBLIC_KEY_C"
+msgstr "Chiave pubblica:"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE"
+msgstr "Seleziona certificato"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE_TO_INSTALL"
+msgstr "Selezionare il certificato da installare"
+
+msgid "IDS_ST_BODY_SERIAL_NUMBER_C"
+msgstr "Numero di serie:"
+
+msgid "IDS_ST_BODY_SIGNATURE_ALGORITHM_C"
+msgstr "Algoritmo di firma:"
+
+msgid "IDS_ST_BODY_TRUE"
+msgstr "Vero"
+
+msgid "IDS_ST_BODY_TRUSTED_ROOT_CERTIFICATES"
+msgstr "Certificati fonte attendibile"
+
+msgid "IDS_ST_BODY_USER_CERTIFICATES"
+msgstr "Certificati utente"
+
+msgid "IDS_ST_BODY_VALID_FROM_C"
+msgstr "Valido da:"
+
+msgid "IDS_ST_BODY_VALID_TO_C"
+msgstr "Valido fino a:"
+
+msgid "IDS_ST_BUTTON_OPEN"
+msgstr "Apri"
+
+msgid "IDS_ST_BODY_COMMON_NAME_C"
+msgstr "Nome comune:"
+
+msgid "IDS_ST_BODY_INCORRECT_PASSWORD"
+msgstr "Password errata"
+
+msgid "IDS_ST_BODY_NO_CONTENT"
+msgstr "Nessun contenuto"
+
+msgid "IDS_ST_BODY_NO_DATA"
+msgstr "Nessun dato"
+
+msgid "IDS_ST_BUTTON_NO"
+msgstr "Annulla"
+
+msgid "IDS_ST_BUTTON_YES"
+msgstr "Sì"
+
+msgid "IDS_ST_SK2_CANCEL"
+msgstr "Annulla"
+
+msgid "IDS_ST_SK2_OK"
+msgstr "OK"
+
--- /dev/null
+msgid "IDS_ST_BODY_CERTIFICATES"
+msgstr "証明書"
+
+msgid "IDS_ST_BODY_VERSION_C"
+msgstr "バージョン:"
+
+msgid "IDS_ST_BUTTON_UNINSTALL"
+msgstr "削除"
+
+msgid "IDS_ST_BODY_MANUFACTURER"
+msgstr "製造社"
+
+msgid "IDS_ST_BODY_SELECT_ALL"
+msgstr "全て選択"
+
+msgid "IDS_ST_BODY_ISSUER_COLON"
+msgstr "発行者:"
+
+msgid "IDS_ST_BUTTON_INSTALL"
+msgstr "インストール"
+
+msgid "IDS_ST_BODY_ALIAS_ALREADY_EXISTS_ENTER_A_UNIQUE_ALIAS"
+msgstr "エイリアスは既に存在します。他と重複しないエイリアスを入力してください。"
+
+msgid "IDS_ST_BODY_ALIAS_CANNOT_BE_EMPTY"
+msgstr "エイリアスは空欄にできません。"
+
+msgid "IDS_ST_BODY_CERTIFICATES_FOUND"
+msgstr "証明書が見つかりました。"
+
+msgid "IDS_ST_BODY_CERTIFICATE_DETAILS"
+msgstr "証明書の詳細"
+
+msgid "IDS_ST_BODY_CERTIFICATE_INFORMATION"
+msgstr "証明書情報"
+
+msgid "IDS_ST_BODY_CERTIFICATION_AUTHORITY_C"
+msgstr "認証機関:"
+
+msgid "IDS_ST_BODY_ENTER_KEY_ALIAS_C"
+msgstr "キーエイリアスを入力:"
+
+msgid "IDS_ST_BODY_ENTER_PASSWORD_C"
+msgstr "パスワードを入力:"
+
+msgid "IDS_ST_BODY_EXTERNAL_CERTIFICATES"
+msgstr "外部証明書"
+
+msgid "IDS_ST_BODY_FALSE"
+msgstr "False"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATE"
+msgstr "証明書をインストールしてください。"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATES_FROM_SD_CARD_Q"
+msgstr "SDカードから証明書をインストールしますか?"
+
+msgid "IDS_ST_BODY_KEY_USAGE_C"
+msgstr "キー使用法:"
+
+msgid "IDS_ST_BODY_ORGANISATION_C"
+msgstr "組織:"
+
+msgid "IDS_ST_BODY_OWNER_C"
+msgstr "所有者:"
+
+msgid "IDS_ST_BODY_PUBLIC_KEY_C"
+msgstr "公開キー:"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE"
+msgstr "証明書を選択してください。"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE_TO_INSTALL"
+msgstr "インストールする証明書を選択してください。"
+
+msgid "IDS_ST_BODY_SERIAL_NUMBER_C"
+msgstr "Serial number:"
+
+msgid "IDS_ST_BODY_SIGNATURE_ALGORITHM_C"
+msgstr "署名アルゴリズム:"
+
+msgid "IDS_ST_BODY_TRUE"
+msgstr "正"
+
+msgid "IDS_ST_BODY_TRUSTED_ROOT_CERTIFICATES"
+msgstr "信頼されたルート証明書"
+
+msgid "IDS_ST_BODY_USER_CERTIFICATES"
+msgstr "ユーザー証明書"
+
+msgid "IDS_ST_BODY_VALID_FROM_C"
+msgstr "有効期限(開始):"
+
+msgid "IDS_ST_BODY_VALID_TO_C"
+msgstr "有効期限:"
+
+msgid "IDS_ST_BUTTON_OPEN"
+msgstr "開く"
+
+msgid "IDS_ST_BODY_COMMON_NAME_C"
+msgstr "共通名:"
+
+msgid "IDS_ST_BODY_INCORRECT_PASSWORD"
+msgstr "不正なパスワードです。"
+
+msgid "IDS_ST_BODY_NO_CONTENT"
+msgstr "コンテンツがありません。"
+
+msgid "IDS_ST_BODY_NO_DATA"
+msgstr "データがありません。"
+
+msgid "IDS_ST_BUTTON_NO"
+msgstr "いいえ"
+
+msgid "IDS_ST_BUTTON_YES"
+msgstr "はい"
+
+msgid "IDS_ST_SK2_CANCEL"
+msgstr "キャンセル"
+
+msgid "IDS_ST_SK2_OK"
+msgstr "OK"
+
--- /dev/null
+msgid "IDS_ST_BODY_CERTIFICATES"
+msgstr "სერთიფიკატები"
+
+msgid "IDS_ST_BODY_VERSION_C"
+msgstr "ვერსია:"
+
+msgid "IDS_ST_BUTTON_UNINSTALL"
+msgstr "დეინსტალაცია"
+
+msgid "IDS_ST_BODY_MANUFACTURER"
+msgstr "მწარმოებელი"
+
+msgid "IDS_ST_BODY_SELECT_ALL"
+msgstr "ყველას არჩევა"
+
+msgid "IDS_ST_BODY_ISSUER_COLON"
+msgstr "გამომცემელი:"
+
+msgid "IDS_ST_BUTTON_INSTALL"
+msgstr "დაინსტალირება"
+
+msgid "IDS_ST_BODY_ALIAS_ALREADY_EXISTS_ENTER_A_UNIQUE_ALIAS"
+msgstr "ალიასი უკვე არსებობს. შეიყვანეთ უნიკალური ალიასი"
+
+msgid "IDS_ST_BODY_ALIAS_CANNOT_BE_EMPTY"
+msgstr "ალიასი არ უნდა იყოს ცარიელი"
+
+msgid "IDS_ST_BODY_CERTIFICATES_FOUND"
+msgstr "ნაპოვნია სერტიფიკატები"
+
+msgid "IDS_ST_BODY_CERTIFICATE_DETAILS"
+msgstr "სერთიფიკატის დეტალები"
+
+msgid "IDS_ST_BODY_CERTIFICATE_INFORMATION"
+msgstr "სერტიფიკატის ინფორმაცია"
+
+msgid "IDS_ST_BODY_CERTIFICATION_AUTHORITY_C"
+msgstr "სერტიფიკატის გამცემი:"
+
+msgid "IDS_ST_BODY_ENTER_KEY_ALIAS_C"
+msgstr "შეიყვანეთ ძირითადი ალიასი:"
+
+msgid "IDS_ST_BODY_ENTER_PASSWORD_C"
+msgstr "აკრიფეთ პაროლი:"
+
+msgid "IDS_ST_BODY_EXTERNAL_CERTIFICATES"
+msgstr "გარე სერტიფიკატები"
+
+msgid "IDS_ST_BODY_FALSE"
+msgstr "მცდარი"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATE"
+msgstr "დააინსტალირეთ სერთიფიკატი"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATES_FROM_SD_CARD_Q"
+msgstr "დააინსტალირებთ სერტიფიკატებს SD ბარათიდან?"
+
+msgid "IDS_ST_BODY_KEY_USAGE_C"
+msgstr "კოდის გამოყენება:"
+
+msgid "IDS_ST_BODY_ORGANISATION_C"
+msgstr "ორგანიზაცია:"
+
+msgid "IDS_ST_BODY_OWNER_C"
+msgstr "მფლობელი:"
+
+msgid "IDS_ST_BODY_PUBLIC_KEY_C"
+msgstr "საჯარო კოდი:"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE"
+msgstr "აირჩიეთ სერთიფიკატი"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE_TO_INSTALL"
+msgstr "აირჩიეთ დასაინსტალირებელი სერთიფიკატი"
+
+msgid "IDS_ST_BODY_SERIAL_NUMBER_C"
+msgstr "სერიული ნომერი:"
+
+msgid "IDS_ST_BODY_SIGNATURE_ALGORITHM_C"
+msgstr "ხელმოწერის ალგორითმი:"
+
+msgid "IDS_ST_BODY_TRUE"
+msgstr "ჭეშმარიტი"
+
+msgid "IDS_ST_BODY_TRUSTED_ROOT_CERTIFICATES"
+msgstr "სანდო ძირითადი სერთიფიკატები"
+
+msgid "IDS_ST_BODY_USER_CERTIFICATES"
+msgstr "მომხმარებლის სერთიფიკატი"
+
+msgid "IDS_ST_BODY_VALID_FROM_C"
+msgstr "ძალაში შესვლის დრო:"
+
+msgid "IDS_ST_BODY_VALID_TO_C"
+msgstr "ვარგისიანობის ვადა:"
+
+msgid "IDS_ST_BUTTON_OPEN"
+msgstr "გახსნა"
+
+msgid "IDS_ST_BODY_COMMON_NAME_C"
+msgstr "საერთო სახელი:"
+
+msgid "IDS_ST_BODY_INCORRECT_PASSWORD"
+msgstr "პაროლი არასწორია"
+
+msgid "IDS_ST_BODY_NO_CONTENT"
+msgstr "შინაარსი ცარიელია"
+
+msgid "IDS_ST_BODY_NO_DATA"
+msgstr "მონაცემები არ არის"
+
+msgid "IDS_ST_BUTTON_NO"
+msgstr "არა"
+
+msgid "IDS_ST_BUTTON_YES"
+msgstr "დიახ"
+
+msgid "IDS_ST_SK2_CANCEL"
+msgstr "გაუქმება"
+
+msgid "IDS_ST_SK2_OK"
+msgstr "OK"
+
--- /dev/null
+msgid "IDS_ST_BODY_CERTIFICATES"
+msgstr "Сертификаттар"
+
+msgid "IDS_ST_BODY_VERSION_C"
+msgstr "Нұсқа:"
+
+msgid "IDS_ST_BUTTON_UNINSTALL"
+msgstr "Жою"
+
+msgid "IDS_ST_BODY_MANUFACTURER"
+msgstr "Дайындаушы"
+
+msgid "IDS_ST_BODY_SELECT_ALL"
+msgstr "Бәрін бөлектеу"
+
+msgid "IDS_ST_BODY_ISSUER_COLON"
+msgstr "Беруші:"
+
+msgid "IDS_ST_BUTTON_INSTALL"
+msgstr "Орнату"
+
+msgid "IDS_ST_BODY_ALIAS_ALREADY_EXISTS_ENTER_A_UNIQUE_ALIAS"
+msgstr "Лақап ат бұрыннан бар. Бірегей лақап атты енгізіңіз"
+
+msgid "IDS_ST_BODY_ALIAS_CANNOT_BE_EMPTY"
+msgstr "Лақап ат бос болмауы қажет"
+
+msgid "IDS_ST_BODY_CERTIFICATES_FOUND"
+msgstr "Куәліктер табылды"
+
+msgid "IDS_ST_BODY_CERTIFICATE_DETAILS"
+msgstr "Сертификат туралы мәліметтер"
+
+msgid "IDS_ST_BODY_CERTIFICATE_INFORMATION"
+msgstr "Куәлік туралы ақпарат"
+
+msgid "IDS_ST_BODY_CERTIFICATION_AUTHORITY_C"
+msgstr "Куәліктендіру орталығы:"
+
+msgid "IDS_ST_BODY_ENTER_KEY_ALIAS_C"
+msgstr "Кілт лақап атын енгізіңіз:"
+
+msgid "IDS_ST_BODY_ENTER_PASSWORD_C"
+msgstr "Құпиясөзді енгізіңіз:"
+
+msgid "IDS_ST_BODY_EXTERNAL_CERTIFICATES"
+msgstr "Сыртқы куәліктер"
+
+msgid "IDS_ST_BODY_FALSE"
+msgstr "Қате"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATE"
+msgstr "Куәлік орнату"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATES_FROM_SD_CARD_Q"
+msgstr "SD картасынан куәліктер орнату керек пе?"
+
+msgid "IDS_ST_BODY_KEY_USAGE_C"
+msgstr "Кілт қолданысы:"
+
+msgid "IDS_ST_BODY_ORGANISATION_C"
+msgstr "Ұйым:"
+
+msgid "IDS_ST_BODY_OWNER_C"
+msgstr "Иесі:"
+
+msgid "IDS_ST_BODY_PUBLIC_KEY_C"
+msgstr "Ашық кілт:"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE"
+msgstr "Сертификатты таңдау"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE_TO_INSTALL"
+msgstr "Орнатуға қажетті куәлікті таңдау"
+
+msgid "IDS_ST_BODY_SERIAL_NUMBER_C"
+msgstr "Сериялық нөмірі:"
+
+msgid "IDS_ST_BODY_SIGNATURE_ALGORITHM_C"
+msgstr "Қол қою алгоритмі:"
+
+msgid "IDS_ST_BODY_TRUE"
+msgstr "Шын"
+
+msgid "IDS_ST_BODY_TRUSTED_ROOT_CERTIFICATES"
+msgstr "Сенімді түбір куәліктер"
+
+msgid "IDS_ST_BODY_USER_CERTIFICATES"
+msgstr "Пайдаланушы куәліктері"
+
+msgid "IDS_ST_BODY_VALID_FROM_C"
+msgstr "Жарамды:"
+
+msgid "IDS_ST_BODY_VALID_TO_C"
+msgstr "Көрсетілген мерзімге дейін жарамды:"
+
+msgid "IDS_ST_BUTTON_OPEN"
+msgstr "Ашу"
+
+msgid "IDS_ST_BODY_COMMON_NAME_C"
+msgstr "Жалпы атауы:"
+
+msgid "IDS_ST_BODY_INCORRECT_PASSWORD"
+msgstr "Қате кілтсөз"
+
+msgid "IDS_ST_BODY_NO_CONTENT"
+msgstr "Мазмұн жоқ"
+
+msgid "IDS_ST_BODY_NO_DATA"
+msgstr "Деректер жоқ"
+
+msgid "IDS_ST_BUTTON_NO"
+msgstr "Жоқ"
+
+msgid "IDS_ST_BUTTON_YES"
+msgstr "Иә"
+
+msgid "IDS_ST_SK2_CANCEL"
+msgstr "Бас тарту"
+
+msgid "IDS_ST_SK2_OK"
+msgstr "OK"
+
--- /dev/null
+msgid "IDS_ST_BODY_CERTIFICATES"
+msgstr "인증서"
+
+msgid "IDS_ST_BODY_VERSION_C"
+msgstr "버전:"
+
+msgid "IDS_ST_BUTTON_UNINSTALL"
+msgstr "삭제"
+
+msgid "IDS_ST_BODY_MANUFACTURER"
+msgstr "제조사"
+
+msgid "IDS_ST_BODY_SELECT_ALL"
+msgstr "모두 선택"
+
+msgid "IDS_ST_BODY_ISSUER_COLON"
+msgstr "발급자:"
+
+msgid "IDS_ST_BUTTON_INSTALL"
+msgstr "설치"
+
+msgid "IDS_ST_BODY_ALIAS_ALREADY_EXISTS_ENTER_A_UNIQUE_ALIAS"
+msgstr "사용 중인 대체 이름입니다. 고유한 대체 이름을 입력하세요"
+
+msgid "IDS_ST_BODY_ALIAS_CANNOT_BE_EMPTY"
+msgstr "대체 이름을 입력하세요"
+
+msgid "IDS_ST_BODY_CERTIFICATES_FOUND"
+msgstr "인증서가 검색되었습니다"
+
+msgid "IDS_ST_BODY_CERTIFICATE_DETAILS"
+msgstr "인증서 상세정보"
+
+msgid "IDS_ST_BODY_CERTIFICATE_INFORMATION"
+msgstr "인증서 정보"
+
+msgid "IDS_ST_BODY_CERTIFICATION_AUTHORITY_C"
+msgstr "인증 기관:"
+
+msgid "IDS_ST_BODY_ENTER_KEY_ALIAS_C"
+msgstr "키 대체 이름 입력:"
+
+msgid "IDS_ST_BODY_ENTER_PASSWORD_C"
+msgstr "비밀번호 입력:"
+
+msgid "IDS_ST_BODY_EXTERNAL_CERTIFICATES"
+msgstr "외부 인증서"
+
+msgid "IDS_ST_BODY_FALSE"
+msgstr "거짓"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATE"
+msgstr "인증서 설치"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATES_FROM_SD_CARD_Q"
+msgstr "SD 카드에 있는 인증서를 설치할까요?"
+
+msgid "IDS_ST_BODY_KEY_USAGE_C"
+msgstr "키 용도:"
+
+msgid "IDS_ST_BODY_ORGANISATION_C"
+msgstr "기관:"
+
+msgid "IDS_ST_BODY_OWNER_C"
+msgstr "소유자:"
+
+msgid "IDS_ST_BODY_PUBLIC_KEY_C"
+msgstr "공개 키:"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE"
+msgstr "인증서를 선택하세요"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE_TO_INSTALL"
+msgstr "설치할 인증서 선택"
+
+msgid "IDS_ST_BODY_SERIAL_NUMBER_C"
+msgstr "Serial number:"
+
+msgid "IDS_ST_BODY_SIGNATURE_ALGORITHM_C"
+msgstr "서명 알고리즘:"
+
+msgid "IDS_ST_BODY_TRUE"
+msgstr "진실"
+
+msgid "IDS_ST_BODY_TRUSTED_ROOT_CERTIFICATES"
+msgstr "신뢰할 수 있는 루트 인증서"
+
+msgid "IDS_ST_BODY_USER_CERTIFICATES"
+msgstr "사용자 인증서"
+
+msgid "IDS_ST_BODY_VALID_FROM_C"
+msgstr "유효기간 시작일:"
+
+msgid "IDS_ST_BODY_VALID_TO_C"
+msgstr "유효기간 만료일:"
+
+msgid "IDS_ST_BUTTON_OPEN"
+msgstr "열기"
+
+msgid "IDS_ST_BODY_COMMON_NAME_C"
+msgstr "일반 이름:"
+
+msgid "IDS_ST_BODY_INCORRECT_PASSWORD"
+msgstr "비밀번호가 바르지 않습니다"
+
+msgid "IDS_ST_BODY_NO_CONTENT"
+msgstr "내용이 없습니다"
+
+msgid "IDS_ST_BODY_NO_DATA"
+msgstr "데이터가 없습니다"
+
+msgid "IDS_ST_BUTTON_NO"
+msgstr "아니요"
+
+msgid "IDS_ST_BUTTON_YES"
+msgstr "예"
+
+msgid "IDS_ST_SK2_CANCEL"
+msgstr "취소"
+
+msgid "IDS_ST_SK2_OK"
+msgstr "확인"
+
--- /dev/null
+msgid "IDS_ST_BODY_CERTIFICATES"
+msgstr "Sertifikatai"
+
+msgid "IDS_ST_BODY_VERSION_C"
+msgstr "Versija:"
+
+msgid "IDS_ST_BUTTON_UNINSTALL"
+msgstr "Pašalinti"
+
+msgid "IDS_ST_BODY_MANUFACTURER"
+msgstr "Gamintojas"
+
+msgid "IDS_ST_BODY_SELECT_ALL"
+msgstr "Pasirinkti viską"
+
+msgid "IDS_ST_BODY_ISSUER_COLON"
+msgstr "Leidėjas:"
+
+msgid "IDS_ST_BUTTON_INSTALL"
+msgstr "Įdiegti"
+
+msgid "IDS_ST_BODY_ALIAS_ALREADY_EXISTS_ENTER_A_UNIQUE_ALIAS"
+msgstr "Alternatyvusis vardas jau yra. Įveskite unikalų alternatyvųjį vardą"
+
+msgid "IDS_ST_BODY_ALIAS_CANNOT_BE_EMPTY"
+msgstr "Alternatyviojo vardo laukelis negali būti tuščias"
+
+msgid "IDS_ST_BODY_CERTIFICATES_FOUND"
+msgstr "Sertifikatai rasti"
+
+msgid "IDS_ST_BODY_CERTIFICATE_DETAILS"
+msgstr "Sertifikato informacija"
+
+msgid "IDS_ST_BODY_CERTIFICATE_INFORMATION"
+msgstr "Sertifikato informacija"
+
+msgid "IDS_ST_BODY_CERTIFICATION_AUTHORITY_C"
+msgstr "Sertifikavimo įstaiga:"
+
+msgid "IDS_ST_BODY_ENTER_KEY_ALIAS_C"
+msgstr "Įveskite rakto alternatyvųjį vardą:"
+
+msgid "IDS_ST_BODY_ENTER_PASSWORD_C"
+msgstr "Įveskite slaptažodį:"
+
+msgid "IDS_ST_BODY_EXTERNAL_CERTIFICATES"
+msgstr "Išoriniai sertifikatai"
+
+msgid "IDS_ST_BODY_FALSE"
+msgstr "Neteisinga"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATE"
+msgstr "Įdiegti sertifikatą"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATES_FROM_SD_CARD_Q"
+msgstr "Įdiegti sertifikatus iš SD kortelės?"
+
+msgid "IDS_ST_BODY_KEY_USAGE_C"
+msgstr "Rakto naudojimas:"
+
+msgid "IDS_ST_BODY_ORGANISATION_C"
+msgstr "Organizacija:"
+
+msgid "IDS_ST_BODY_OWNER_C"
+msgstr "Savininkas:"
+
+msgid "IDS_ST_BODY_PUBLIC_KEY_C"
+msgstr "Viešasis raktas:"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE"
+msgstr "Pasirinkite sertifikatą"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE_TO_INSTALL"
+msgstr "Pasirinkite norimą įdiegti sertifikatą"
+
+msgid "IDS_ST_BODY_SERIAL_NUMBER_C"
+msgstr "Serijos numeris:"
+
+msgid "IDS_ST_BODY_SIGNATURE_ALGORITHM_C"
+msgstr "Parašo algoritmas:"
+
+msgid "IDS_ST_BODY_TRUE"
+msgstr "Tikr."
+
+msgid "IDS_ST_BODY_TRUSTED_ROOT_CERTIFICATES"
+msgstr "Patikimi pagrindiniai sertifikatai"
+
+msgid "IDS_ST_BODY_USER_CERTIFICATES"
+msgstr "Vartotojo sertifikatai"
+
+msgid "IDS_ST_BODY_VALID_FROM_C"
+msgstr "Galioja nuo:"
+
+msgid "IDS_ST_BODY_VALID_TO_C"
+msgstr "Galioja iki:"
+
+msgid "IDS_ST_BUTTON_OPEN"
+msgstr "Atidaryti"
+
+msgid "IDS_ST_BODY_COMMON_NAME_C"
+msgstr "Bendrasis pavadinimas:"
+
+msgid "IDS_ST_BODY_INCORRECT_PASSWORD"
+msgstr "Neteisingas slaptažodis"
+
+msgid "IDS_ST_BODY_NO_CONTENT"
+msgstr "Nėra turinio"
+
+msgid "IDS_ST_BODY_NO_DATA"
+msgstr "Duomenų nėra"
+
+msgid "IDS_ST_BUTTON_NO"
+msgstr "Ne"
+
+msgid "IDS_ST_BUTTON_YES"
+msgstr "Taip"
+
+msgid "IDS_ST_SK2_CANCEL"
+msgstr "Atšaukti"
+
+msgid "IDS_ST_SK2_OK"
+msgstr "Gerai"
+
--- /dev/null
+msgid "IDS_ST_BODY_CERTIFICATES"
+msgstr "Sertifikāti"
+
+msgid "IDS_ST_BODY_VERSION_C"
+msgstr "Versija:"
+
+msgid "IDS_ST_BUTTON_UNINSTALL"
+msgstr "Atinstalēt"
+
+msgid "IDS_ST_BODY_MANUFACTURER"
+msgstr "Ražotājs"
+
+msgid "IDS_ST_BODY_SELECT_ALL"
+msgstr "Izv. visu"
+
+msgid "IDS_ST_BODY_ISSUER_COLON"
+msgstr "Izdevējs:"
+
+msgid "IDS_ST_BUTTON_INSTALL"
+msgstr "Instalēt"
+
+msgid "IDS_ST_BODY_ALIAS_ALREADY_EXISTS_ENTER_A_UNIQUE_ALIAS"
+msgstr "Aizstājvārds jau pastāv. Ievadiet unikālu aizstājvārdu"
+
+msgid "IDS_ST_BODY_ALIAS_CANNOT_BE_EMPTY"
+msgstr "Aizstājvārda lauks nevar būt tukšs"
+
+msgid "IDS_ST_BODY_CERTIFICATES_FOUND"
+msgstr "Atrastie sertifikāti"
+
+msgid "IDS_ST_BODY_CERTIFICATE_DETAILS"
+msgstr "Sertifikāta detaļas"
+
+msgid "IDS_ST_BODY_CERTIFICATE_INFORMATION"
+msgstr "Informācija par sertifikātu"
+
+msgid "IDS_ST_BODY_CERTIFICATION_AUTHORITY_C"
+msgstr "Sertificēšanas iestāde:"
+
+msgid "IDS_ST_BODY_ENTER_KEY_ALIAS_C"
+msgstr "Ievadiet atslēgas aizstājvārdu:"
+
+msgid "IDS_ST_BODY_ENTER_PASSWORD_C"
+msgstr "Ievadiet paroli:"
+
+msgid "IDS_ST_BODY_EXTERNAL_CERTIFICATES"
+msgstr "Ārējie sertifikāti"
+
+msgid "IDS_ST_BODY_FALSE"
+msgstr "Nepareizs"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATE"
+msgstr "Instalēt sertifikātu"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATES_FROM_SD_CARD_Q"
+msgstr "Vai instalēt sertifikātus no SD kartes?"
+
+msgid "IDS_ST_BODY_KEY_USAGE_C"
+msgstr "Atslēgas lietojums:"
+
+msgid "IDS_ST_BODY_ORGANISATION_C"
+msgstr "Organizācija:"
+
+msgid "IDS_ST_BODY_OWNER_C"
+msgstr "Īpašnieks:"
+
+msgid "IDS_ST_BODY_PUBLIC_KEY_C"
+msgstr "Publiskā atslēga:"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE"
+msgstr "Izvēlēties sertifikātu"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE_TO_INSTALL"
+msgstr "Izvēlieties sertifikātu, lai instalētu"
+
+msgid "IDS_ST_BODY_SERIAL_NUMBER_C"
+msgstr "Sērijas numurs:"
+
+msgid "IDS_ST_BODY_SIGNATURE_ALGORITHM_C"
+msgstr "Paraksta algoritms:"
+
+msgid "IDS_ST_BODY_TRUE"
+msgstr "Patiess"
+
+msgid "IDS_ST_BODY_TRUSTED_ROOT_CERTIFICATES"
+msgstr "Uzticami saknes sertifikāti"
+
+msgid "IDS_ST_BODY_USER_CERTIFICATES"
+msgstr "Lietotāju sertifikāti"
+
+msgid "IDS_ST_BODY_VALID_FROM_C"
+msgstr "Derīgs no:"
+
+msgid "IDS_ST_BODY_VALID_TO_C"
+msgstr "Derīgs līdz:"
+
+msgid "IDS_ST_BUTTON_OPEN"
+msgstr "Atvērt"
+
+msgid "IDS_ST_BODY_COMMON_NAME_C"
+msgstr "Vispārējais nosaukums:"
+
+msgid "IDS_ST_BODY_INCORRECT_PASSWORD"
+msgstr "Nepareiza parole"
+
+msgid "IDS_ST_BODY_NO_CONTENT"
+msgstr "Nav satura"
+
+msgid "IDS_ST_BODY_NO_DATA"
+msgstr "Nav datu"
+
+msgid "IDS_ST_BUTTON_NO"
+msgstr "Nē"
+
+msgid "IDS_ST_BUTTON_YES"
+msgstr "Jā"
+
+msgid "IDS_ST_SK2_CANCEL"
+msgstr "Atcelt"
+
+msgid "IDS_ST_SK2_OK"
+msgstr "Labi"
+
--- /dev/null
+msgid "IDS_ST_BODY_CERTIFICATES"
+msgstr "Сертификати"
+
+msgid "IDS_ST_BODY_VERSION_C"
+msgstr "Верзија:"
+
+msgid "IDS_ST_BUTTON_UNINSTALL"
+msgstr "Одинсталирај"
+
+msgid "IDS_ST_BODY_MANUFACTURER"
+msgstr "Производител"
+
+msgid "IDS_ST_BODY_SELECT_ALL"
+msgstr "Избери ги сите"
+
+msgid "IDS_ST_BODY_ISSUER_COLON"
+msgstr "Издавач:"
+
+msgid "IDS_ST_BUTTON_INSTALL"
+msgstr "Инсталирај"
+
+msgid "IDS_ST_BODY_ALIAS_ALREADY_EXISTS_ENTER_A_UNIQUE_ALIAS"
+msgstr "Прекарот веќе потои. Внесете единствен прекар"
+
+msgid "IDS_ST_BODY_ALIAS_CANNOT_BE_EMPTY"
+msgstr "Не може да биде без прекар"
+
+msgid "IDS_ST_BODY_CERTIFICATES_FOUND"
+msgstr "Најдени се сертификати"
+
+msgid "IDS_ST_BODY_CERTIFICATE_DETAILS"
+msgstr "Детали за сертификатот"
+
+msgid "IDS_ST_BODY_CERTIFICATE_INFORMATION"
+msgstr "Податоци за сертификатот"
+
+msgid "IDS_ST_BODY_CERTIFICATION_AUTHORITY_C"
+msgstr "Издавач на сертификатот:"
+
+msgid "IDS_ST_BODY_ENTER_KEY_ALIAS_C"
+msgstr "Внесете прекар за клучот:"
+
+msgid "IDS_ST_BODY_ENTER_PASSWORD_C"
+msgstr "Внесете лозинка:"
+
+msgid "IDS_ST_BODY_EXTERNAL_CERTIFICATES"
+msgstr "Надворешни сертификати"
+
+msgid "IDS_ST_BODY_FALSE"
+msgstr "Неточно"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATE"
+msgstr "Инсталирај сертификати"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATES_FROM_SD_CARD_Q"
+msgstr "Да се инсталираат сертификати од SD-картичка?"
+
+msgid "IDS_ST_BODY_KEY_USAGE_C"
+msgstr "Употреба на клучот:"
+
+msgid "IDS_ST_BODY_ORGANISATION_C"
+msgstr "Организација:"
+
+msgid "IDS_ST_BODY_OWNER_C"
+msgstr "Сопственик:"
+
+msgid "IDS_ST_BODY_PUBLIC_KEY_C"
+msgstr "Јавна шифра:"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE"
+msgstr "Одберете сертификат"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE_TO_INSTALL"
+msgstr "Изберете сертификат за инсталирање"
+
+msgid "IDS_ST_BODY_SERIAL_NUMBER_C"
+msgstr "Сериски број:"
+
+msgid "IDS_ST_BODY_SIGNATURE_ALGORITHM_C"
+msgstr "Алгоритам за потпис:"
+
+msgid "IDS_ST_BODY_TRUE"
+msgstr "Точно"
+
+msgid "IDS_ST_BODY_TRUSTED_ROOT_CERTIFICATES"
+msgstr "Доверливи основни сертификати"
+
+msgid "IDS_ST_BODY_USER_CERTIFICATES"
+msgstr "Кориснички сертификати"
+
+msgid "IDS_ST_BODY_VALID_FROM_C"
+msgstr "Важи од:"
+
+msgid "IDS_ST_BODY_VALID_TO_C"
+msgstr "Важи до:"
+
+msgid "IDS_ST_BUTTON_OPEN"
+msgstr "Отвори"
+
+msgid "IDS_ST_BODY_COMMON_NAME_C"
+msgstr "Општо име:"
+
+msgid "IDS_ST_BODY_INCORRECT_PASSWORD"
+msgstr "Погрешна лозинка"
+
+msgid "IDS_ST_BODY_NO_CONTENT"
+msgstr "Нема содржини"
+
+msgid "IDS_ST_BODY_NO_DATA"
+msgstr "Нема податоци"
+
+msgid "IDS_ST_BUTTON_NO"
+msgstr "Не"
+
+msgid "IDS_ST_BUTTON_YES"
+msgstr "Да"
+
+msgid "IDS_ST_SK2_CANCEL"
+msgstr "Откажи"
+
+msgid "IDS_ST_SK2_OK"
+msgstr "OK"
+
--- /dev/null
+msgid "IDS_COM_BODY_NO_CONTENTS"
+msgstr "Tiada kandungan"
+
--- /dev/null
+msgid "IDS_ST_BODY_CERTIFICATES"
+msgstr "Sertifikater"
+
+msgid "IDS_ST_BODY_VERSION_C"
+msgstr "Versjon:"
+
+msgid "IDS_ST_BUTTON_UNINSTALL"
+msgstr "Avinstaller"
+
+msgid "IDS_ST_BODY_MANUFACTURER"
+msgstr "Produsent"
+
+msgid "IDS_ST_BODY_SELECT_ALL"
+msgstr "Merk alt"
+
+msgid "IDS_ST_BODY_ISSUER_COLON"
+msgstr "Utgiver:"
+
+msgid "IDS_ST_BUTTON_INSTALL"
+msgstr "Installer"
+
+msgid "IDS_ST_BODY_ALIAS_ALREADY_EXISTS_ENTER_A_UNIQUE_ALIAS"
+msgstr "Aliaset finnes allerede. Angi et unikt alias"
+
+msgid "IDS_ST_BODY_ALIAS_CANNOT_BE_EMPTY"
+msgstr "Alias kan ikke stå tomt"
+
+msgid "IDS_ST_BODY_CERTIFICATES_FOUND"
+msgstr "Sertifikater funnet"
+
+msgid "IDS_ST_BODY_CERTIFICATE_DETAILS"
+msgstr "Sertifikatdetaljer"
+
+msgid "IDS_ST_BODY_CERTIFICATE_INFORMATION"
+msgstr "Sertifikatinformasjon"
+
+msgid "IDS_ST_BODY_CERTIFICATION_AUTHORITY_C"
+msgstr "Sertifiseringsautoritet:"
+
+msgid "IDS_ST_BODY_ENTER_KEY_ALIAS_C"
+msgstr "Angi nøkkelalias:"
+
+msgid "IDS_ST_BODY_ENTER_PASSWORD_C"
+msgstr "Skriv inn passord:"
+
+msgid "IDS_ST_BODY_EXTERNAL_CERTIFICATES"
+msgstr "Eksterne sertifikater"
+
+msgid "IDS_ST_BODY_FALSE"
+msgstr "Usann"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATE"
+msgstr "Installer sertifikat"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATES_FROM_SD_CARD_Q"
+msgstr "Installere sertifikater fra SD-kort?"
+
+msgid "IDS_ST_BODY_KEY_USAGE_C"
+msgstr "Nøkkelbruk:"
+
+msgid "IDS_ST_BODY_ORGANISATION_C"
+msgstr "Organisasjon:"
+
+msgid "IDS_ST_BODY_OWNER_C"
+msgstr "Eier:"
+
+msgid "IDS_ST_BODY_PUBLIC_KEY_C"
+msgstr "Offentlig nøkkel:"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE"
+msgstr "Velg sertifikatet"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE_TO_INSTALL"
+msgstr "Velg hvilket sertifikat du vil installere"
+
+msgid "IDS_ST_BODY_SERIAL_NUMBER_C"
+msgstr "Serienummer:"
+
+msgid "IDS_ST_BODY_SIGNATURE_ALGORITHM_C"
+msgstr "Signaturalgoritme:"
+
+msgid "IDS_ST_BODY_TRUE"
+msgstr "Sann"
+
+msgid "IDS_ST_BODY_TRUSTED_ROOT_CERTIFICATES"
+msgstr "Klarerte rotsertifikater"
+
+msgid "IDS_ST_BODY_USER_CERTIFICATES"
+msgstr "Brukersertifikater"
+
+msgid "IDS_ST_BODY_VALID_FROM_C"
+msgstr "Gyldig fra:"
+
+msgid "IDS_ST_BODY_VALID_TO_C"
+msgstr "Gyldig til:"
+
+msgid "IDS_ST_BUTTON_OPEN"
+msgstr "Åpne"
+
+msgid "IDS_ST_BODY_COMMON_NAME_C"
+msgstr "Felles navn:"
+
+msgid "IDS_ST_BODY_INCORRECT_PASSWORD"
+msgstr "Feil passord"
+
+msgid "IDS_ST_BODY_NO_CONTENT"
+msgstr "Ikke noe innhold"
+
+msgid "IDS_ST_BODY_NO_DATA"
+msgstr "Ingen data"
+
+msgid "IDS_ST_BUTTON_NO"
+msgstr "Nei"
+
+msgid "IDS_ST_BUTTON_YES"
+msgstr "Ja"
+
+msgid "IDS_ST_SK2_CANCEL"
+msgstr "Avbryt"
+
+msgid "IDS_ST_SK2_OK"
+msgstr "OK"
+
--- /dev/null
+msgid "IDS_ST_BODY_CERTIFICATES"
+msgstr "Certificaten"
+
+msgid "IDS_ST_BODY_VERSION_C"
+msgstr "Versie:"
+
+msgid "IDS_ST_BUTTON_UNINSTALL"
+msgstr "Verwijderen"
+
+msgid "IDS_ST_BODY_MANUFACTURER"
+msgstr "Fabrikant"
+
+msgid "IDS_ST_BODY_SELECT_ALL"
+msgstr "Alles selecteren"
+
+msgid "IDS_ST_BODY_ISSUER_COLON"
+msgstr "Uitgever:"
+
+msgid "IDS_ST_BUTTON_INSTALL"
+msgstr "Installeren"
+
+msgid "IDS_ST_BODY_ALIAS_ALREADY_EXISTS_ENTER_A_UNIQUE_ALIAS"
+msgstr "Alias bestaat al. Geef een unieke alias op"
+
+msgid "IDS_ST_BODY_ALIAS_CANNOT_BE_EMPTY"
+msgstr "Alias kan niet leeg zijn"
+
+msgid "IDS_ST_BODY_CERTIFICATES_FOUND"
+msgstr "Certificaten gevonden"
+
+msgid "IDS_ST_BODY_CERTIFICATE_DETAILS"
+msgstr "Certificaatdetails"
+
+msgid "IDS_ST_BODY_CERTIFICATE_INFORMATION"
+msgstr "Certificaatgegevens"
+
+msgid "IDS_ST_BODY_CERTIFICATION_AUTHORITY_C"
+msgstr "Certificeringsinstantie:"
+
+msgid "IDS_ST_BODY_ENTER_KEY_ALIAS_C"
+msgstr "Sleutelalias invoeren:"
+
+msgid "IDS_ST_BODY_ENTER_PASSWORD_C"
+msgstr "Wachtwoord invoeren:"
+
+msgid "IDS_ST_BODY_EXTERNAL_CERTIFICATES"
+msgstr "Externe certificaten"
+
+msgid "IDS_ST_BODY_FALSE"
+msgstr "Onwaar"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATE"
+msgstr "Certificaat installeren"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATES_FROM_SD_CARD_Q"
+msgstr "Certificaten van SD-kaart installeren?"
+
+msgid "IDS_ST_BODY_KEY_USAGE_C"
+msgstr "Sleutelgebruik:"
+
+msgid "IDS_ST_BODY_ORGANISATION_C"
+msgstr "Organisatie:"
+
+msgid "IDS_ST_BODY_OWNER_C"
+msgstr "Eigenaar:"
+
+msgid "IDS_ST_BODY_PUBLIC_KEY_C"
+msgstr "Openbare sleutel:"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE"
+msgstr "Selecteer het certificaat"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE_TO_INSTALL"
+msgstr "Selecteer certificaat om te installeren"
+
+msgid "IDS_ST_BODY_SERIAL_NUMBER_C"
+msgstr "Serienummer:"
+
+msgid "IDS_ST_BODY_SIGNATURE_ALGORITHM_C"
+msgstr "Handtekeningalgoritme:"
+
+msgid "IDS_ST_BODY_TRUE"
+msgstr "Waar"
+
+msgid "IDS_ST_BODY_TRUSTED_ROOT_CERTIFICATES"
+msgstr "Vertrouwde hoofdcertificaten"
+
+msgid "IDS_ST_BODY_USER_CERTIFICATES"
+msgstr "Gebruikerscertificaten"
+
+msgid "IDS_ST_BODY_VALID_FROM_C"
+msgstr "Geldig vanaf:"
+
+msgid "IDS_ST_BODY_VALID_TO_C"
+msgstr "Geldig tot:"
+
+msgid "IDS_ST_BUTTON_OPEN"
+msgstr "Openen"
+
+msgid "IDS_ST_BODY_COMMON_NAME_C"
+msgstr "Algemene naam:"
+
+msgid "IDS_ST_BODY_INCORRECT_PASSWORD"
+msgstr "Onjuist wachtwoord"
+
+msgid "IDS_ST_BODY_NO_CONTENT"
+msgstr "Geen inhoud"
+
+msgid "IDS_ST_BODY_NO_DATA"
+msgstr "Geen gegevens"
+
+msgid "IDS_ST_BUTTON_NO"
+msgstr "Nee"
+
+msgid "IDS_ST_BUTTON_YES"
+msgstr "Ja"
+
+msgid "IDS_ST_SK2_CANCEL"
+msgstr "Annul."
+
+msgid "IDS_ST_SK2_OK"
+msgstr "OK"
+
--- /dev/null
+msgid "IDS_COM_BODY_NO_CONTENTS"
+msgstr "Ikke noe innhold"
+
--- /dev/null
+msgid "IDS_ST_BODY_CERTIFICATES"
+msgstr "Certyfikaty"
+
+msgid "IDS_ST_BODY_VERSION_C"
+msgstr "Wersja:"
+
+msgid "IDS_ST_BUTTON_UNINSTALL"
+msgstr "Odinstaluj"
+
+msgid "IDS_ST_BODY_MANUFACTURER"
+msgstr "Producent"
+
+msgid "IDS_ST_BODY_SELECT_ALL"
+msgstr "Zaznacz wszystko"
+
+msgid "IDS_ST_BODY_ISSUER_COLON"
+msgstr "Wystawca:"
+
+msgid "IDS_ST_BUTTON_INSTALL"
+msgstr "Instaluj"
+
+msgid "IDS_ST_BODY_ALIAS_ALREADY_EXISTS_ENTER_A_UNIQUE_ALIAS"
+msgstr "Alias już istnieje. Wprowadź unikalny alias"
+
+msgid "IDS_ST_BODY_ALIAS_CANNOT_BE_EMPTY"
+msgstr "Alias nie może być pusty"
+
+msgid "IDS_ST_BODY_CERTIFICATES_FOUND"
+msgstr "Znalezione certyfikaty"
+
+msgid "IDS_ST_BODY_CERTIFICATE_DETAILS"
+msgstr "Szczegóły certyfikatu"
+
+msgid "IDS_ST_BODY_CERTIFICATE_INFORMATION"
+msgstr "Informacje o certyfikacie"
+
+msgid "IDS_ST_BODY_CERTIFICATION_AUTHORITY_C"
+msgstr "Urząd certyfikacji:"
+
+msgid "IDS_ST_BODY_ENTER_KEY_ALIAS_C"
+msgstr "Wprowadź alias klucza:"
+
+msgid "IDS_ST_BODY_ENTER_PASSWORD_C"
+msgstr "Wprowadź hasło:"
+
+msgid "IDS_ST_BODY_EXTERNAL_CERTIFICATES"
+msgstr "Certyfikaty zewnętrzne"
+
+msgid "IDS_ST_BODY_FALSE"
+msgstr "Fałsz"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATE"
+msgstr "Zainstaluj certyfikat"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATES_FROM_SD_CARD_Q"
+msgstr "Zainstalować certyfikaty z karty pamięci?"
+
+msgid "IDS_ST_BODY_KEY_USAGE_C"
+msgstr "Wykorzystanie klucza:"
+
+msgid "IDS_ST_BODY_ORGANISATION_C"
+msgstr "Organizacja:"
+
+msgid "IDS_ST_BODY_OWNER_C"
+msgstr "Właściciel:"
+
+msgid "IDS_ST_BODY_PUBLIC_KEY_C"
+msgstr "Klucz publiczny:"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE"
+msgstr "Wybierz certyfikat"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE_TO_INSTALL"
+msgstr "Wybierz certyfikat do zainstalowania"
+
+msgid "IDS_ST_BODY_SERIAL_NUMBER_C"
+msgstr "Numer seryjny:"
+
+msgid "IDS_ST_BODY_SIGNATURE_ALGORITHM_C"
+msgstr "Algorytm podpisywania:"
+
+msgid "IDS_ST_BODY_TRUE"
+msgstr "true"
+
+msgid "IDS_ST_BODY_TRUSTED_ROOT_CERTIFICATES"
+msgstr "Certyfikaty zaufanego głównego urzędu"
+
+msgid "IDS_ST_BODY_USER_CERTIFICATES"
+msgstr "Certyfikaty użytkownika"
+
+msgid "IDS_ST_BODY_VALID_FROM_C"
+msgstr "Ważny od:"
+
+msgid "IDS_ST_BODY_VALID_TO_C"
+msgstr "Ważny do:"
+
+msgid "IDS_ST_BUTTON_OPEN"
+msgstr "Otwórz"
+
+msgid "IDS_ST_BODY_COMMON_NAME_C"
+msgstr "Używana nazwa:"
+
+msgid "IDS_ST_BODY_INCORRECT_PASSWORD"
+msgstr "Błędne hasło"
+
+msgid "IDS_ST_BODY_NO_CONTENT"
+msgstr "Brak zawartości"
+
+msgid "IDS_ST_BODY_NO_DATA"
+msgstr "Brak danych"
+
+msgid "IDS_ST_BUTTON_NO"
+msgstr "Nie"
+
+msgid "IDS_ST_BUTTON_YES"
+msgstr "Tak"
+
+msgid "IDS_ST_SK2_CANCEL"
+msgstr "Anuluj"
+
+msgid "IDS_ST_SK2_OK"
+msgstr "OK"
+
--- /dev/null
+msgid "IDS_ST_BODY_CERTIFICATES"
+msgstr "Certificados"
+
+msgid "IDS_ST_BODY_VERSION_C"
+msgstr "Versão:"
+
+msgid "IDS_ST_BUTTON_UNINSTALL"
+msgstr "Desinstalar"
+
+msgid "IDS_ST_BODY_MANUFACTURER"
+msgstr "Fabricante"
+
+msgid "IDS_ST_BODY_SELECT_ALL"
+msgstr "Selecionar tudo"
+
+msgid "IDS_ST_BODY_ISSUER_COLON"
+msgstr "Emissor:"
+
+msgid "IDS_ST_BUTTON_INSTALL"
+msgstr "Instalar"
+
+msgid "IDS_ST_BODY_ALIAS_ALREADY_EXISTS_ENTER_A_UNIQUE_ALIAS"
+msgstr "O cognome já existe. Insira um cognome exclusivo"
+
+msgid "IDS_ST_BODY_ALIAS_CANNOT_BE_EMPTY"
+msgstr "O cognome não pode estar vazio"
+
+msgid "IDS_ST_BODY_CERTIFICATES_FOUND"
+msgstr "Certificados encontrados"
+
+msgid "IDS_ST_BODY_CERTIFICATE_DETAILS"
+msgstr "Detalhes do certificado"
+
+msgid "IDS_ST_BODY_CERTIFICATE_INFORMATION"
+msgstr "Informações do certificado"
+
+msgid "IDS_ST_BODY_CERTIFICATION_AUTHORITY_C"
+msgstr "Autoridade de certificação:"
+
+msgid "IDS_ST_BODY_ENTER_KEY_ALIAS_C"
+msgstr "Insira o cognome da chave:"
+
+msgid "IDS_ST_BODY_ENTER_PASSWORD_C"
+msgstr "Insira a senha:"
+
+msgid "IDS_ST_BODY_EXTERNAL_CERTIFICATES"
+msgstr "Certificados externos"
+
+msgid "IDS_ST_BODY_FALSE"
+msgstr "Falso"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATE"
+msgstr "Instalar certificado"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATES_FROM_SD_CARD_Q"
+msgstr "Instalar certificados do cartão SD?"
+
+msgid "IDS_ST_BODY_KEY_USAGE_C"
+msgstr "Uso da chave:"
+
+msgid "IDS_ST_BODY_ORGANISATION_C"
+msgstr "Organização:"
+
+msgid "IDS_ST_BODY_OWNER_C"
+msgstr "Proprietário:"
+
+msgid "IDS_ST_BODY_PUBLIC_KEY_C"
+msgstr "Chave pública:"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE"
+msgstr "Selecione o certificado"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE_TO_INSTALL"
+msgstr "Selecionar o certificado para instalação"
+
+msgid "IDS_ST_BODY_SERIAL_NUMBER_C"
+msgstr "Número de série:"
+
+msgid "IDS_ST_BODY_SIGNATURE_ALGORITHM_C"
+msgstr "Algoritmo de assinatura:"
+
+msgid "IDS_ST_BODY_TRUE"
+msgstr "Verdade"
+
+msgid "IDS_ST_BODY_TRUSTED_ROOT_CERTIFICATES"
+msgstr "Certificados de raiz confiáveis"
+
+msgid "IDS_ST_BODY_USER_CERTIFICATES"
+msgstr "Certificados do usuário"
+
+msgid "IDS_ST_BODY_VALID_FROM_C"
+msgstr "Válido de:"
+
+msgid "IDS_ST_BODY_VALID_TO_C"
+msgstr "Válido até:"
+
+msgid "IDS_ST_BUTTON_OPEN"
+msgstr "Abrir"
+
+msgid "IDS_ST_BODY_COMMON_NAME_C"
+msgstr "Nome comum:"
+
+msgid "IDS_ST_BODY_INCORRECT_PASSWORD"
+msgstr "Senha incorreta"
+
+msgid "IDS_ST_BODY_NO_CONTENT"
+msgstr "Sem conteúdo"
+
+msgid "IDS_ST_BODY_NO_DATA"
+msgstr "Nenhum Resultado"
+
+msgid "IDS_ST_BUTTON_NO"
+msgstr "Não"
+
+msgid "IDS_ST_BUTTON_YES"
+msgstr "Sim"
+
+msgid "IDS_ST_SK2_CANCEL"
+msgstr "Cancelar"
+
+msgid "IDS_ST_SK2_OK"
+msgstr "OK"
+
--- /dev/null
+msgid "IDS_ST_BODY_CERTIFICATES"
+msgstr "Certificados"
+
+msgid "IDS_ST_BODY_VERSION_C"
+msgstr "Versão:"
+
+msgid "IDS_ST_BUTTON_UNINSTALL"
+msgstr "Desinstalar"
+
+msgid "IDS_ST_BODY_MANUFACTURER"
+msgstr "Fabricante"
+
+msgid "IDS_ST_BODY_SELECT_ALL"
+msgstr "Selec. tudo"
+
+msgid "IDS_ST_BODY_ISSUER_COLON"
+msgstr "Emissor:"
+
+msgid "IDS_ST_BUTTON_INSTALL"
+msgstr "Instalar"
+
+msgid "IDS_ST_BODY_ALIAS_ALREADY_EXISTS_ENTER_A_UNIQUE_ALIAS"
+msgstr "Pseudónimo já existe. Introduza um pseudónimo único"
+
+msgid "IDS_ST_BODY_ALIAS_CANNOT_BE_EMPTY"
+msgstr "O pseudónimo não pode estar vazio"
+
+msgid "IDS_ST_BODY_CERTIFICATES_FOUND"
+msgstr "Certificados encontrados"
+
+msgid "IDS_ST_BODY_CERTIFICATE_DETAILS"
+msgstr "Detalhes do certificado"
+
+msgid "IDS_ST_BODY_CERTIFICATE_INFORMATION"
+msgstr "Informação do certificado"
+
+msgid "IDS_ST_BODY_CERTIFICATION_AUTHORITY_C"
+msgstr "Autoridade de certificação:"
+
+msgid "IDS_ST_BODY_ENTER_KEY_ALIAS_C"
+msgstr "Introduzir pseudónimo principal:"
+
+msgid "IDS_ST_BODY_ENTER_PASSWORD_C"
+msgstr "Introduzir palavra-passe:"
+
+msgid "IDS_ST_BODY_EXTERNAL_CERTIFICATES"
+msgstr "Certificados externos"
+
+msgid "IDS_ST_BODY_FALSE"
+msgstr "Falso"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATE"
+msgstr "Instalar certificado"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATES_FROM_SD_CARD_Q"
+msgstr "Instalar certificados do cartão SD?"
+
+msgid "IDS_ST_BODY_KEY_USAGE_C"
+msgstr "Utilização do código:"
+
+msgid "IDS_ST_BODY_ORGANISATION_C"
+msgstr "Organização:"
+
+msgid "IDS_ST_BODY_OWNER_C"
+msgstr "Proprietário:"
+
+msgid "IDS_ST_BODY_PUBLIC_KEY_C"
+msgstr "Código público:"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE"
+msgstr "Seleccione o certificado"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE_TO_INSTALL"
+msgstr "Seleccionar certificado para instalar"
+
+msgid "IDS_ST_BODY_SERIAL_NUMBER_C"
+msgstr "Número de série:"
+
+msgid "IDS_ST_BODY_SIGNATURE_ALGORITHM_C"
+msgstr "Algoritmo de assinatura:"
+
+msgid "IDS_ST_BODY_TRUE"
+msgstr "Verdadeiro"
+
+msgid "IDS_ST_BODY_TRUSTED_ROOT_CERTIFICATES"
+msgstr "Certificados raiz fidedignos"
+
+msgid "IDS_ST_BODY_USER_CERTIFICATES"
+msgstr "Certificados de utilizador"
+
+msgid "IDS_ST_BODY_VALID_FROM_C"
+msgstr "Válido de:"
+
+msgid "IDS_ST_BODY_VALID_TO_C"
+msgstr "Válido até:"
+
+msgid "IDS_ST_BUTTON_OPEN"
+msgstr "Aberta"
+
+msgid "IDS_ST_BODY_COMMON_NAME_C"
+msgstr "Nome comum:"
+
+msgid "IDS_ST_BODY_INCORRECT_PASSWORD"
+msgstr "Palavra-passe incorrecta"
+
+msgid "IDS_ST_BODY_NO_CONTENT"
+msgstr "Sem conteúdo"
+
+msgid "IDS_ST_BODY_NO_DATA"
+msgstr "Nenhuns dados"
+
+msgid "IDS_ST_BUTTON_NO"
+msgstr "Não"
+
+msgid "IDS_ST_BUTTON_YES"
+msgstr "Sim"
+
+msgid "IDS_ST_SK2_CANCEL"
+msgstr "Cancelar"
+
+msgid "IDS_ST_SK2_OK"
+msgstr "OK"
+
--- /dev/null
+msgid "IDS_ST_BODY_CERTIFICATES"
+msgstr "Certificate"
+
+msgid "IDS_ST_BODY_VERSION_C"
+msgstr "Versiune:"
+
+msgid "IDS_ST_BUTTON_UNINSTALL"
+msgstr "Dezinstalare"
+
+msgid "IDS_ST_BODY_MANUFACTURER"
+msgstr "Fabricant"
+
+msgid "IDS_ST_BODY_SELECT_ALL"
+msgstr "Selectare toate"
+
+msgid "IDS_ST_BODY_ISSUER_COLON"
+msgstr "Emitent:"
+
+msgid "IDS_ST_BUTTON_INSTALL"
+msgstr "Instalare"
+
+msgid "IDS_ST_BODY_ALIAS_ALREADY_EXISTS_ENTER_A_UNIQUE_ALIAS"
+msgstr "Aliasul există deja. Introduceţi un alias unic"
+
+msgid "IDS_ST_BODY_ALIAS_CANNOT_BE_EMPTY"
+msgstr "Aliasul nu poate fi necompletat"
+
+msgid "IDS_ST_BODY_CERTIFICATES_FOUND"
+msgstr "Certificate găsite"
+
+msgid "IDS_ST_BODY_CERTIFICATE_DETAILS"
+msgstr "Detalii certificat"
+
+msgid "IDS_ST_BODY_CERTIFICATE_INFORMATION"
+msgstr "Informaţii certificat"
+
+msgid "IDS_ST_BODY_CERTIFICATION_AUTHORITY_C"
+msgstr "Autoritate de certificare:"
+
+msgid "IDS_ST_BODY_ENTER_KEY_ALIAS_C"
+msgstr "Introduceţi aliasul cheie:"
+
+msgid "IDS_ST_BODY_ENTER_PASSWORD_C"
+msgstr "Introduceţi parola:"
+
+msgid "IDS_ST_BODY_EXTERNAL_CERTIFICATES"
+msgstr "Certificate externe"
+
+msgid "IDS_ST_BODY_FALSE"
+msgstr "Fals"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATE"
+msgstr "Instalare certificat"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATES_FROM_SD_CARD_Q"
+msgstr "Instalaţi certificate de pe cardul SD?"
+
+msgid "IDS_ST_BODY_KEY_USAGE_C"
+msgstr "Utilizare cheie:"
+
+msgid "IDS_ST_BODY_ORGANISATION_C"
+msgstr "Organizaţie:"
+
+msgid "IDS_ST_BODY_OWNER_C"
+msgstr "Deţinător:"
+
+msgid "IDS_ST_BODY_PUBLIC_KEY_C"
+msgstr "Cheie publică:"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE"
+msgstr "Selectaţi certificatul"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE_TO_INSTALL"
+msgstr "Selectaţi certificatul de instalat"
+
+msgid "IDS_ST_BODY_SERIAL_NUMBER_C"
+msgstr "Număr serie:"
+
+msgid "IDS_ST_BODY_SIGNATURE_ALGORITHM_C"
+msgstr "Algoritmul semnăturii:"
+
+msgid "IDS_ST_BODY_TRUE"
+msgstr "Adevărat"
+
+msgid "IDS_ST_BODY_TRUSTED_ROOT_CERTIFICATES"
+msgstr "Certificate rădăcină de încredere"
+
+msgid "IDS_ST_BODY_USER_CERTIFICATES"
+msgstr "Certificate utilizator"
+
+msgid "IDS_ST_BODY_VALID_FROM_C"
+msgstr "Valid de la:"
+
+msgid "IDS_ST_BODY_VALID_TO_C"
+msgstr "Valid pentru:"
+
+msgid "IDS_ST_BUTTON_OPEN"
+msgstr "Deschidere"
+
+msgid "IDS_ST_BODY_COMMON_NAME_C"
+msgstr "Nume comun:"
+
+msgid "IDS_ST_BODY_INCORRECT_PASSWORD"
+msgstr "Parolă incorectă"
+
+msgid "IDS_ST_BODY_NO_CONTENT"
+msgstr "Conţinuturi inexistente"
+
+msgid "IDS_ST_BODY_NO_DATA"
+msgstr "Nu există date"
+
+msgid "IDS_ST_BUTTON_NO"
+msgstr "Nu"
+
+msgid "IDS_ST_BUTTON_YES"
+msgstr "Da"
+
+msgid "IDS_ST_SK2_CANCEL"
+msgstr "Anulare"
+
+msgid "IDS_ST_SK2_OK"
+msgstr "OK"
+
--- /dev/null
+msgid "IDS_ST_BODY_CERTIFICATES"
+msgstr "Сертификаты"
+
+msgid "IDS_ST_BODY_VERSION_C"
+msgstr "Версия:"
+
+msgid "IDS_ST_BUTTON_UNINSTALL"
+msgstr "Удалить"
+
+msgid "IDS_ST_BODY_MANUFACTURER"
+msgstr "Изготовитель"
+
+msgid "IDS_ST_BODY_SELECT_ALL"
+msgstr "Выбрать все"
+
+msgid "IDS_ST_BODY_ISSUER_COLON"
+msgstr "Издатель:"
+
+msgid "IDS_ST_BUTTON_INSTALL"
+msgstr "Установить"
+
+msgid "IDS_ST_BODY_ALIAS_ALREADY_EXISTS_ENTER_A_UNIQUE_ALIAS"
+msgstr "Такой псевдоним уже существует. Введите уникальный псевдоним"
+
+msgid "IDS_ST_BODY_ALIAS_CANNOT_BE_EMPTY"
+msgstr "Поле псевдонима не может быть пустым"
+
+msgid "IDS_ST_BODY_CERTIFICATES_FOUND"
+msgstr "Обнаруженные сертификаты"
+
+msgid "IDS_ST_BODY_CERTIFICATE_DETAILS"
+msgstr "Сведения о сертификате"
+
+msgid "IDS_ST_BODY_CERTIFICATE_INFORMATION"
+msgstr "Сведения о сертификате"
+
+msgid "IDS_ST_BODY_CERTIFICATION_AUTHORITY_C"
+msgstr "Центр сертификации:"
+
+msgid "IDS_ST_BODY_ENTER_KEY_ALIAS_C"
+msgstr "Введите псевдоним ключа:"
+
+msgid "IDS_ST_BODY_ENTER_PASSWORD_C"
+msgstr "Введите пароль:"
+
+msgid "IDS_ST_BODY_EXTERNAL_CERTIFICATES"
+msgstr "Внешние сертификаты"
+
+msgid "IDS_ST_BODY_FALSE"
+msgstr "Ложь"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATE"
+msgstr "Установить сертификат"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATES_FROM_SD_CARD_Q"
+msgstr "Установить сертификаты с карты памяти SD?"
+
+msgid "IDS_ST_BODY_KEY_USAGE_C"
+msgstr "Использование ключа:"
+
+msgid "IDS_ST_BODY_ORGANISATION_C"
+msgstr "Организация:"
+
+msgid "IDS_ST_BODY_OWNER_C"
+msgstr "Владелец:"
+
+msgid "IDS_ST_BODY_PUBLIC_KEY_C"
+msgstr "Открытый ключ:"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE"
+msgstr "Выберите сертификат"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE_TO_INSTALL"
+msgstr "Выберите сертификат для установки"
+
+msgid "IDS_ST_BODY_SERIAL_NUMBER_C"
+msgstr "Серийный номер:"
+
+msgid "IDS_ST_BODY_SIGNATURE_ALGORITHM_C"
+msgstr "Алгоритм подписи:"
+
+msgid "IDS_ST_BODY_TRUE"
+msgstr "Действителен"
+
+msgid "IDS_ST_BODY_TRUSTED_ROOT_CERTIFICATES"
+msgstr "Доверенные корневые сертификаты"
+
+msgid "IDS_ST_BODY_USER_CERTIFICATES"
+msgstr "Сертификаты пользователей"
+
+msgid "IDS_ST_BODY_VALID_FROM_C"
+msgstr "Действителен с:"
+
+msgid "IDS_ST_BODY_VALID_TO_C"
+msgstr "Действителен для:"
+
+msgid "IDS_ST_BUTTON_OPEN"
+msgstr "Открыть"
+
+msgid "IDS_ST_BODY_COMMON_NAME_C"
+msgstr "Имя:"
+
+msgid "IDS_ST_BODY_INCORRECT_PASSWORD"
+msgstr "Неправильный пароль"
+
+msgid "IDS_ST_BODY_NO_CONTENT"
+msgstr "Нет содержимого"
+
+msgid "IDS_ST_BODY_NO_DATA"
+msgstr "Нет данных"
+
+msgid "IDS_ST_BUTTON_NO"
+msgstr "Нет"
+
+msgid "IDS_ST_BUTTON_YES"
+msgstr "Да"
+
+msgid "IDS_ST_SK2_CANCEL"
+msgstr "Отмена"
+
+msgid "IDS_ST_SK2_OK"
+msgstr "ОК"
+
--- /dev/null
+msgid "IDS_ST_BODY_CERTIFICATES"
+msgstr "Certifikáty"
+
+msgid "IDS_ST_BODY_VERSION_C"
+msgstr "Verzia:"
+
+msgid "IDS_ST_BUTTON_UNINSTALL"
+msgstr "Odinštalovať"
+
+msgid "IDS_ST_BODY_MANUFACTURER"
+msgstr "Výrobca"
+
+msgid "IDS_ST_BODY_SELECT_ALL"
+msgstr "Vybrať všetky"
+
+msgid "IDS_ST_BODY_ISSUER_COLON"
+msgstr "Vydavateľ:"
+
+msgid "IDS_ST_BUTTON_INSTALL"
+msgstr "Inštalovať"
+
+msgid "IDS_ST_BODY_ALIAS_ALREADY_EXISTS_ENTER_A_UNIQUE_ALIAS"
+msgstr "Pseudonym už existuje. Zadajte jedinečný pseudonym"
+
+msgid "IDS_ST_BODY_ALIAS_CANNOT_BE_EMPTY"
+msgstr "Pseudonym nemôže byť prázdny"
+
+msgid "IDS_ST_BODY_CERTIFICATES_FOUND"
+msgstr "Našli sa certifikáty"
+
+msgid "IDS_ST_BODY_CERTIFICATE_DETAILS"
+msgstr "Detaily certifikátu"
+
+msgid "IDS_ST_BODY_CERTIFICATE_INFORMATION"
+msgstr "Informácie o certifikáte"
+
+msgid "IDS_ST_BODY_CERTIFICATION_AUTHORITY_C"
+msgstr "Certifikačný úrad:"
+
+msgid "IDS_ST_BODY_ENTER_KEY_ALIAS_C"
+msgstr "Zadajte pseudonym kľúča:"
+
+msgid "IDS_ST_BODY_ENTER_PASSWORD_C"
+msgstr "Zadajte heslo:"
+
+msgid "IDS_ST_BODY_EXTERNAL_CERTIFICATES"
+msgstr "Externé certifikáty"
+
+msgid "IDS_ST_BODY_FALSE"
+msgstr "Nepravda"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATE"
+msgstr "Inštalovať certifikát"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATES_FROM_SD_CARD_Q"
+msgstr "Inštalovať certifikáty z karty SD?"
+
+msgid "IDS_ST_BODY_KEY_USAGE_C"
+msgstr "Použitie kľúča:"
+
+msgid "IDS_ST_BODY_ORGANISATION_C"
+msgstr "Organizácia:"
+
+msgid "IDS_ST_BODY_OWNER_C"
+msgstr "Vlastník:"
+
+msgid "IDS_ST_BODY_PUBLIC_KEY_C"
+msgstr "Verejný kľúč:"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE"
+msgstr "Vyberte certifikát"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE_TO_INSTALL"
+msgstr "Vyberte certifikát, ktorý chcete nainštalovať"
+
+msgid "IDS_ST_BODY_SERIAL_NUMBER_C"
+msgstr "Sériové číslo:"
+
+msgid "IDS_ST_BODY_SIGNATURE_ALGORITHM_C"
+msgstr "Algoritmus podpisu:"
+
+msgid "IDS_ST_BODY_TRUE"
+msgstr "Áno"
+
+msgid "IDS_ST_BODY_TRUSTED_ROOT_CERTIFICATES"
+msgstr "Dôveryhodné koreňové certifikáty"
+
+msgid "IDS_ST_BODY_USER_CERTIFICATES"
+msgstr "Používateľské certifikáty"
+
+msgid "IDS_ST_BODY_VALID_FROM_C"
+msgstr "Platnosť od:"
+
+msgid "IDS_ST_BODY_VALID_TO_C"
+msgstr "Platnosť do:"
+
+msgid "IDS_ST_BUTTON_OPEN"
+msgstr "Otvoriť"
+
+msgid "IDS_ST_BODY_COMMON_NAME_C"
+msgstr "Všeobecný názov:"
+
+msgid "IDS_ST_BODY_INCORRECT_PASSWORD"
+msgstr "Nesprávne heslo"
+
+msgid "IDS_ST_BODY_NO_CONTENT"
+msgstr "Žiadny obsah"
+
+msgid "IDS_ST_BODY_NO_DATA"
+msgstr "Žiadne údaje"
+
+msgid "IDS_ST_BUTTON_NO"
+msgstr "Nie"
+
+msgid "IDS_ST_BUTTON_YES"
+msgstr "Áno"
+
+msgid "IDS_ST_SK2_CANCEL"
+msgstr "Zrušiť"
+
+msgid "IDS_ST_SK2_OK"
+msgstr "OK"
+
--- /dev/null
+msgid "IDS_ST_BODY_CERTIFICATES"
+msgstr "Certifikati"
+
+msgid "IDS_ST_BODY_VERSION_C"
+msgstr "Različica:"
+
+msgid "IDS_ST_BUTTON_UNINSTALL"
+msgstr "Odstrani"
+
+msgid "IDS_ST_BODY_MANUFACTURER"
+msgstr "Proizvajalec"
+
+msgid "IDS_ST_BODY_SELECT_ALL"
+msgstr "Izberi vse"
+
+msgid "IDS_ST_BODY_ISSUER_COLON"
+msgstr "Izdajatelj:"
+
+msgid "IDS_ST_BUTTON_INSTALL"
+msgstr "Namesti"
+
+msgid "IDS_ST_BODY_ALIAS_ALREADY_EXISTS_ENTER_A_UNIQUE_ALIAS"
+msgstr "Vzdevek že obstaja. Izberite enoličen vzdevek"
+
+msgid "IDS_ST_BODY_ALIAS_CANNOT_BE_EMPTY"
+msgstr "Vzdevek ne sme biti prazen"
+
+msgid "IDS_ST_BODY_CERTIFICATES_FOUND"
+msgstr "Certifikati so najdeni"
+
+msgid "IDS_ST_BODY_CERTIFICATE_DETAILS"
+msgstr "Podrobnosti certifikata"
+
+msgid "IDS_ST_BODY_CERTIFICATE_INFORMATION"
+msgstr "Podatki o certifikatu"
+
+msgid "IDS_ST_BODY_CERTIFICATION_AUTHORITY_C"
+msgstr "Overovitelj certifikata:"
+
+msgid "IDS_ST_BODY_ENTER_KEY_ALIAS_C"
+msgstr "Vnesite ključ vzdevka:"
+
+msgid "IDS_ST_BODY_ENTER_PASSWORD_C"
+msgstr "Vnesite geslo:"
+
+msgid "IDS_ST_BODY_EXTERNAL_CERTIFICATES"
+msgstr "Zunanji certifikati"
+
+msgid "IDS_ST_BODY_FALSE"
+msgstr "Napačno"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATE"
+msgstr "Namesti certifikat"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATES_FROM_SD_CARD_Q"
+msgstr "Želite namestiti certifikate iz kartice SD?"
+
+msgid "IDS_ST_BODY_KEY_USAGE_C"
+msgstr "Uporaba ključa:"
+
+msgid "IDS_ST_BODY_ORGANISATION_C"
+msgstr "Organizacija:"
+
+msgid "IDS_ST_BODY_OWNER_C"
+msgstr "Lastnik:"
+
+msgid "IDS_ST_BODY_PUBLIC_KEY_C"
+msgstr "Javni ključ:"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE"
+msgstr "Izberite certifikat"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE_TO_INSTALL"
+msgstr "Izberite certifikat za namestitev"
+
+msgid "IDS_ST_BODY_SERIAL_NUMBER_C"
+msgstr "Serijska številka:"
+
+msgid "IDS_ST_BODY_SIGNATURE_ALGORITHM_C"
+msgstr "Algoritem podpisa:"
+
+msgid "IDS_ST_BODY_TRUE"
+msgstr "Resnično"
+
+msgid "IDS_ST_BODY_TRUSTED_ROOT_CERTIFICATES"
+msgstr "Zaupanja vredni korenski certifikati"
+
+msgid "IDS_ST_BODY_USER_CERTIFICATES"
+msgstr "Certifikati uporabnika"
+
+msgid "IDS_ST_BODY_VALID_FROM_C"
+msgstr "Veljavno od:"
+
+msgid "IDS_ST_BODY_VALID_TO_C"
+msgstr "Veljavno do:"
+
+msgid "IDS_ST_BUTTON_OPEN"
+msgstr "Odpri"
+
+msgid "IDS_ST_BODY_COMMON_NAME_C"
+msgstr "Skupno ime:"
+
+msgid "IDS_ST_BODY_INCORRECT_PASSWORD"
+msgstr "Napačno geslo"
+
+msgid "IDS_ST_BODY_NO_CONTENT"
+msgstr "Ni vsebine"
+
+msgid "IDS_ST_BODY_NO_DATA"
+msgstr "Ni podatkov"
+
+msgid "IDS_ST_BUTTON_NO"
+msgstr "Ne"
+
+msgid "IDS_ST_BUTTON_YES"
+msgstr "Da"
+
+msgid "IDS_ST_SK2_CANCEL"
+msgstr "Prekliči"
+
+msgid "IDS_ST_SK2_OK"
+msgstr "V redu"
+
--- /dev/null
+msgid "IDS_ST_BODY_CERTIFICATES"
+msgstr "Sertifikati"
+
+msgid "IDS_ST_BODY_VERSION_C"
+msgstr "Verzija:"
+
+msgid "IDS_ST_BUTTON_UNINSTALL"
+msgstr "Deinstaliraj"
+
+msgid "IDS_ST_BODY_MANUFACTURER"
+msgstr "Proizvođač"
+
+msgid "IDS_ST_BODY_SELECT_ALL"
+msgstr "Izaberi sve"
+
+msgid "IDS_ST_BODY_ISSUER_COLON"
+msgstr "Izdavač:"
+
+msgid "IDS_ST_BUTTON_INSTALL"
+msgstr "Instaliraj"
+
+msgid "IDS_ST_BODY_ALIAS_ALREADY_EXISTS_ENTER_A_UNIQUE_ALIAS"
+msgstr "Pseudonim već postoji. Unesi jedinstven pseudonim"
+
+msgid "IDS_ST_BODY_ALIAS_CANNOT_BE_EMPTY"
+msgstr "Pseudonim ne sme biti prazno polje"
+
+msgid "IDS_ST_BODY_CERTIFICATES_FOUND"
+msgstr "Pronađeni sertifikati"
+
+msgid "IDS_ST_BODY_CERTIFICATE_DETAILS"
+msgstr "Podaci o certifikatu"
+
+msgid "IDS_ST_BODY_CERTIFICATE_INFORMATION"
+msgstr "Informacije o sertifikatima"
+
+msgid "IDS_ST_BODY_CERTIFICATION_AUTHORITY_C"
+msgstr "Institucije za izdavanje sertifikata:"
+
+msgid "IDS_ST_BODY_ENTER_KEY_ALIAS_C"
+msgstr "Unesi ključni pseudonim:"
+
+msgid "IDS_ST_BODY_ENTER_PASSWORD_C"
+msgstr "Unesi lozinku:"
+
+msgid "IDS_ST_BODY_EXTERNAL_CERTIFICATES"
+msgstr "Eksterni sertifikati"
+
+msgid "IDS_ST_BODY_FALSE"
+msgstr "Pogrešno"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATE"
+msgstr "Instaliraj sertifikat"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATES_FROM_SD_CARD_Q"
+msgstr "Instalirati sertifikate sa SD kartice?"
+
+msgid "IDS_ST_BODY_KEY_USAGE_C"
+msgstr "Upotreba ključa:"
+
+msgid "IDS_ST_BODY_ORGANISATION_C"
+msgstr "Organizacija:"
+
+msgid "IDS_ST_BODY_OWNER_C"
+msgstr "Vlasnik:"
+
+msgid "IDS_ST_BODY_PUBLIC_KEY_C"
+msgstr "Javni ključ:"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE"
+msgstr "Izaberi sertifikat"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE_TO_INSTALL"
+msgstr "Izaberi sertifikat koji može da se instalira"
+
+msgid "IDS_ST_BODY_SERIAL_NUMBER_C"
+msgstr "Serijski broj:"
+
+msgid "IDS_ST_BODY_SIGNATURE_ALGORITHM_C"
+msgstr "Algoritam potpisa:"
+
+msgid "IDS_ST_BODY_TRUE"
+msgstr "Tačno"
+
+msgid "IDS_ST_BODY_TRUSTED_ROOT_CERTIFICATES"
+msgstr "Pouzdani osnovni sertifikati"
+
+msgid "IDS_ST_BODY_USER_CERTIFICATES"
+msgstr "Korisnički sertifikati"
+
+msgid "IDS_ST_BODY_VALID_FROM_C"
+msgstr "Važi od:"
+
+msgid "IDS_ST_BODY_VALID_TO_C"
+msgstr "Važi do:"
+
+msgid "IDS_ST_BUTTON_OPEN"
+msgstr "Otvori"
+
+msgid "IDS_ST_BODY_COMMON_NAME_C"
+msgstr "Zajedničko ime:"
+
+msgid "IDS_ST_BODY_INCORRECT_PASSWORD"
+msgstr "Pogrešna šifra"
+
+msgid "IDS_ST_BODY_NO_CONTENT"
+msgstr "Nema sadržaja"
+
+msgid "IDS_ST_BODY_NO_DATA"
+msgstr "Nema podataka"
+
+msgid "IDS_ST_BUTTON_NO"
+msgstr "Ne"
+
+msgid "IDS_ST_BUTTON_YES"
+msgstr "Da"
+
+msgid "IDS_ST_SK2_CANCEL"
+msgstr "Otkaži"
+
+msgid "IDS_ST_SK2_OK"
+msgstr "OK"
+
--- /dev/null
+msgid "IDS_ST_BODY_CERTIFICATES"
+msgstr "Certifikat"
+
+msgid "IDS_ST_BODY_VERSION_C"
+msgstr "Version:"
+
+msgid "IDS_ST_BUTTON_UNINSTALL"
+msgstr "Avinstallera"
+
+msgid "IDS_ST_BODY_MANUFACTURER"
+msgstr "Tillverkare"
+
+msgid "IDS_ST_BODY_SELECT_ALL"
+msgstr "Välj alla"
+
+msgid "IDS_ST_BODY_ISSUER_COLON"
+msgstr "Utfärdare:"
+
+msgid "IDS_ST_BUTTON_INSTALL"
+msgstr "Installera"
+
+msgid "IDS_ST_BODY_ALIAS_ALREADY_EXISTS_ENTER_A_UNIQUE_ALIAS"
+msgstr "Detta alias finns redan. Ange ett unikt alias"
+
+msgid "IDS_ST_BODY_ALIAS_CANNOT_BE_EMPTY"
+msgstr "Alias kan inte vara tomt"
+
+msgid "IDS_ST_BODY_CERTIFICATES_FOUND"
+msgstr "Certifikat hittades"
+
+msgid "IDS_ST_BODY_CERTIFICATE_DETAILS"
+msgstr "Certifikatinformation"
+
+msgid "IDS_ST_BODY_CERTIFICATE_INFORMATION"
+msgstr "Certifikatinformation"
+
+msgid "IDS_ST_BODY_CERTIFICATION_AUTHORITY_C"
+msgstr "Certifikatutfärdare:"
+
+msgid "IDS_ST_BODY_ENTER_KEY_ALIAS_C"
+msgstr "Ange nyckelalias:"
+
+msgid "IDS_ST_BODY_ENTER_PASSWORD_C"
+msgstr "Ange lösenord:"
+
+msgid "IDS_ST_BODY_EXTERNAL_CERTIFICATES"
+msgstr "Externa certifikat"
+
+msgid "IDS_ST_BODY_FALSE"
+msgstr "Falsk"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATE"
+msgstr "Installera certifikat"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATES_FROM_SD_CARD_Q"
+msgstr "Installera certifikat från SD-kort?"
+
+msgid "IDS_ST_BODY_KEY_USAGE_C"
+msgstr "Nyckelanvändning:"
+
+msgid "IDS_ST_BODY_ORGANISATION_C"
+msgstr "Organisation:"
+
+msgid "IDS_ST_BODY_OWNER_C"
+msgstr "Ägare:"
+
+msgid "IDS_ST_BODY_PUBLIC_KEY_C"
+msgstr "Offentlig nyckel:"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE"
+msgstr "Välj ett certifikat"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE_TO_INSTALL"
+msgstr "Välj certifikat att installera"
+
+msgid "IDS_ST_BODY_SERIAL_NUMBER_C"
+msgstr "Serienummer:"
+
+msgid "IDS_ST_BODY_SIGNATURE_ALGORITHM_C"
+msgstr "Signaturalgoritm:"
+
+msgid "IDS_ST_BODY_TRUE"
+msgstr "Rätt"
+
+msgid "IDS_ST_BODY_TRUSTED_ROOT_CERTIFICATES"
+msgstr "Tillförlitliga rotcertifikat"
+
+msgid "IDS_ST_BODY_USER_CERTIFICATES"
+msgstr "Användarcertifikat"
+
+msgid "IDS_ST_BODY_VALID_FROM_C"
+msgstr "Giltig från:"
+
+msgid "IDS_ST_BODY_VALID_TO_C"
+msgstr "Giltig för:"
+
+msgid "IDS_ST_BUTTON_OPEN"
+msgstr "Öppna"
+
+msgid "IDS_ST_BODY_COMMON_NAME_C"
+msgstr "Allmänt namn:"
+
+msgid "IDS_ST_BODY_INCORRECT_PASSWORD"
+msgstr "Fel lösenord"
+
+msgid "IDS_ST_BODY_NO_CONTENT"
+msgstr "Inget innehåll"
+
+msgid "IDS_ST_BODY_NO_DATA"
+msgstr "Inga data"
+
+msgid "IDS_ST_BUTTON_NO"
+msgstr "Nej"
+
+msgid "IDS_ST_BUTTON_YES"
+msgstr "Ja"
+
+msgid "IDS_ST_SK2_CANCEL"
+msgstr "Avbryt"
+
+msgid "IDS_ST_SK2_OK"
+msgstr "OK"
+
--- /dev/null
+msgid "IDS_COM_BODY_NO_CONTENTS"
+msgstr "ไม่มีคอนเทนท์"
+
--- /dev/null
+msgid "IDS_ST_BODY_CERTIFICATES"
+msgstr "Sertifikalar"
+
+msgid "IDS_ST_BODY_VERSION_C"
+msgstr "Sürüm:"
+
+msgid "IDS_ST_BUTTON_UNINSTALL"
+msgstr "Kaldır"
+
+msgid "IDS_ST_BODY_MANUFACTURER"
+msgstr "Üretici"
+
+msgid "IDS_ST_BODY_SELECT_ALL"
+msgstr "Hepsini seç"
+
+msgid "IDS_ST_BODY_ISSUER_COLON"
+msgstr "Düzenleyici:"
+
+msgid "IDS_ST_BUTTON_INSTALL"
+msgstr "Kur"
+
+msgid "IDS_ST_BODY_ALIAS_ALREADY_EXISTS_ENTER_A_UNIQUE_ALIAS"
+msgstr "Takma ad zaten var. Benzersiz bir takma ad seçin"
+
+msgid "IDS_ST_BODY_ALIAS_CANNOT_BE_EMPTY"
+msgstr "Takma ad boş bırakılamaz"
+
+msgid "IDS_ST_BODY_CERTIFICATES_FOUND"
+msgstr "Sertifikalar bulundu"
+
+msgid "IDS_ST_BODY_CERTIFICATE_DETAILS"
+msgstr "Sertifika detayları"
+
+msgid "IDS_ST_BODY_CERTIFICATE_INFORMATION"
+msgstr "Sertifika bilgileri"
+
+msgid "IDS_ST_BODY_CERTIFICATION_AUTHORITY_C"
+msgstr "Sertifikasyon yetkisi:"
+
+msgid "IDS_ST_BODY_ENTER_KEY_ALIAS_C"
+msgstr "Anahtar takma adını girin:"
+
+msgid "IDS_ST_BODY_ENTER_PASSWORD_C"
+msgstr "Şifreyi girin:"
+
+msgid "IDS_ST_BODY_EXTERNAL_CERTIFICATES"
+msgstr "Harici sertifikalar"
+
+msgid "IDS_ST_BODY_FALSE"
+msgstr "Yanlış"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATE"
+msgstr "Sertifika yükle"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATES_FROM_SD_CARD_Q"
+msgstr "Sertifikalar SD kartından yüklensin mi?"
+
+msgid "IDS_ST_BODY_KEY_USAGE_C"
+msgstr "Anahtar kullanımı:"
+
+msgid "IDS_ST_BODY_ORGANISATION_C"
+msgstr "Organizasyon:"
+
+msgid "IDS_ST_BODY_OWNER_C"
+msgstr "Sahibi:"
+
+msgid "IDS_ST_BODY_PUBLIC_KEY_C"
+msgstr "Genel anahtar:"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE"
+msgstr " Sertifika seç"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE_TO_INSTALL"
+msgstr "Yüklenecek sertifikayı seçin"
+
+msgid "IDS_ST_BODY_SERIAL_NUMBER_C"
+msgstr "Seri numarası:"
+
+msgid "IDS_ST_BODY_SIGNATURE_ALGORITHM_C"
+msgstr "İmza algoritması:"
+
+msgid "IDS_ST_BODY_TRUE"
+msgstr "Doğru"
+
+msgid "IDS_ST_BODY_TRUSTED_ROOT_CERTIFICATES"
+msgstr "Güvenilir kök sertifikalar"
+
+msgid "IDS_ST_BODY_USER_CERTIFICATES"
+msgstr "Kullanıcı sertifikaları"
+
+msgid "IDS_ST_BODY_VALID_FROM_C"
+msgstr "İlk geçerlilik tarihi:"
+
+msgid "IDS_ST_BODY_VALID_TO_C"
+msgstr "Son geçerlilik tarihi:"
+
+msgid "IDS_ST_BUTTON_OPEN"
+msgstr "Aç"
+
+msgid "IDS_ST_BODY_COMMON_NAME_C"
+msgstr "Ortak isim:"
+
+msgid "IDS_ST_BODY_INCORRECT_PASSWORD"
+msgstr "Yanlış şifre"
+
+msgid "IDS_ST_BODY_NO_CONTENT"
+msgstr "İçerik yok"
+
+msgid "IDS_ST_BODY_NO_DATA"
+msgstr "Bulunamadı"
+
+msgid "IDS_ST_BUTTON_NO"
+msgstr "Hayır"
+
+msgid "IDS_ST_BUTTON_YES"
+msgstr "Evet"
+
+msgid "IDS_ST_SK2_CANCEL"
+msgstr "İptal"
+
+msgid "IDS_ST_SK2_OK"
+msgstr "Tamam"
+
--- /dev/null
+msgid "IDS_ST_BODY_CERTIFICATES"
+msgstr "Сертифікати"
+
+msgid "IDS_ST_BODY_VERSION_C"
+msgstr "Версія:"
+
+msgid "IDS_ST_BUTTON_UNINSTALL"
+msgstr "Видалити"
+
+msgid "IDS_ST_BODY_MANUFACTURER"
+msgstr "Виробник"
+
+msgid "IDS_ST_BODY_SELECT_ALL"
+msgstr "Вибрати всі"
+
+msgid "IDS_ST_BODY_ISSUER_COLON"
+msgstr "Постачальник сертифікату:"
+
+msgid "IDS_ST_BUTTON_INSTALL"
+msgstr "Встановити"
+
+msgid "IDS_ST_BODY_ALIAS_ALREADY_EXISTS_ENTER_A_UNIQUE_ALIAS"
+msgstr "Коротке ім’я вже існує. Введіть унікальне вигадане ім’я"
+
+msgid "IDS_ST_BODY_ALIAS_CANNOT_BE_EMPTY"
+msgstr "Вигадане ім’я не може бути пустим"
+
+msgid "IDS_ST_BODY_CERTIFICATES_FOUND"
+msgstr "Знайдено сертифікати"
+
+msgid "IDS_ST_BODY_CERTIFICATE_DETAILS"
+msgstr "Деталі сертифіката"
+
+msgid "IDS_ST_BODY_CERTIFICATE_INFORMATION"
+msgstr "Відомості щодо сертифікату"
+
+msgid "IDS_ST_BODY_CERTIFICATION_AUTHORITY_C"
+msgstr "Орган сертифікації:"
+
+msgid "IDS_ST_BODY_ENTER_KEY_ALIAS_C"
+msgstr "Введіть ключове коротке ім'я:"
+
+msgid "IDS_ST_BODY_ENTER_PASSWORD_C"
+msgstr "Введіть пароль:"
+
+msgid "IDS_ST_BODY_EXTERNAL_CERTIFICATES"
+msgstr "Зовнішні сертифікати"
+
+msgid "IDS_ST_BODY_FALSE"
+msgstr "Хибний"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATE"
+msgstr "Інсталювати сертифікат"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATES_FROM_SD_CARD_Q"
+msgstr "Інсталювати сертифікати з карти пам’яті?"
+
+msgid "IDS_ST_BODY_KEY_USAGE_C"
+msgstr "Використання ключа:"
+
+msgid "IDS_ST_BODY_ORGANISATION_C"
+msgstr "Організація:"
+
+msgid "IDS_ST_BODY_OWNER_C"
+msgstr "Власник:"
+
+msgid "IDS_ST_BODY_PUBLIC_KEY_C"
+msgstr "Відкритий ключ:"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE"
+msgstr "Виберіть сертифікат"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE_TO_INSTALL"
+msgstr "Виберіть сертифікат для інсталяції"
+
+msgid "IDS_ST_BODY_SERIAL_NUMBER_C"
+msgstr "Серійний номер:"
+
+msgid "IDS_ST_BODY_SIGNATURE_ALGORITHM_C"
+msgstr "Алгоритм підпису:"
+
+msgid "IDS_ST_BODY_TRUE"
+msgstr "Реальний час"
+
+msgid "IDS_ST_BODY_TRUSTED_ROOT_CERTIFICATES"
+msgstr "Довірені кореневі сертифікати"
+
+msgid "IDS_ST_BODY_USER_CERTIFICATES"
+msgstr "Сертифікати користувача"
+
+msgid "IDS_ST_BODY_VALID_FROM_C"
+msgstr "Дійсно з:"
+
+msgid "IDS_ST_BODY_VALID_TO_C"
+msgstr "Дійсний до:"
+
+msgid "IDS_ST_BUTTON_OPEN"
+msgstr "Відкрити"
+
+msgid "IDS_ST_BODY_COMMON_NAME_C"
+msgstr "Загальне ім’я:"
+
+msgid "IDS_ST_BODY_INCORRECT_PASSWORD"
+msgstr "Хибний пароль"
+
+msgid "IDS_ST_BODY_NO_CONTENT"
+msgstr "Немає вмісту"
+
+msgid "IDS_ST_BODY_NO_DATA"
+msgstr "Немає даних"
+
+msgid "IDS_ST_BUTTON_NO"
+msgstr "Ні"
+
+msgid "IDS_ST_BUTTON_YES"
+msgstr "Так"
+
+msgid "IDS_ST_SK2_CANCEL"
+msgstr "Скасувати"
+
+msgid "IDS_ST_SK2_OK"
+msgstr "OK"
+
--- /dev/null
+msgid "IDS_ST_BODY_CERTIFICATES"
+msgstr "Sertifikatlar"
+
+msgid "IDS_ST_BODY_VERSION_C"
+msgstr "Versiya:"
+
+msgid "IDS_ST_BUTTON_UNINSTALL"
+msgstr "Olib tashlash"
+
+msgid "IDS_ST_BODY_MANUFACTURER"
+msgstr "Ishlab chiqaruvchi"
+
+msgid "IDS_ST_BODY_SELECT_ALL"
+msgstr "Barchasini tanlash"
+
+msgid "IDS_ST_BODY_ISSUER_COLON"
+msgstr "Emitent:"
+
+msgid "IDS_ST_BUTTON_INSTALL"
+msgstr "O‘rnatish"
+
+msgid "IDS_ST_BODY_ALIAS_ALREADY_EXISTS_ENTER_A_UNIQUE_ALIAS"
+msgstr "Taxallus oldindan mavjud. Unikal taxallus kiriting"
+
+msgid "IDS_ST_BODY_ALIAS_CANNOT_BE_EMPTY"
+msgstr "Taxallus bo‘sh bo‘lishi mumkin emas"
+
+msgid "IDS_ST_BODY_CERTIFICATES_FOUND"
+msgstr "Sertifikatlar topildi"
+
+msgid "IDS_ST_BODY_CERTIFICATE_DETAILS"
+msgstr "Sertifikat tafsilotlari"
+
+msgid "IDS_ST_BODY_CERTIFICATE_INFORMATION"
+msgstr "Sertifikat ma’lumoti"
+
+msgid "IDS_ST_BODY_CERTIFICATION_AUTHORITY_C"
+msgstr "Sertifikatlash markazi:"
+
+msgid "IDS_ST_BODY_ENTER_KEY_ALIAS_C"
+msgstr "Kalit taxallusini kiriting:"
+
+msgid "IDS_ST_BODY_ENTER_PASSWORD_C"
+msgstr "Parol kiriting:"
+
+msgid "IDS_ST_BODY_EXTERNAL_CERTIFICATES"
+msgstr "Tashqi sertifikatlar"
+
+msgid "IDS_ST_BODY_FALSE"
+msgstr "Yolg‘on"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATE"
+msgstr "Sertifikatni o‘rnatish"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATES_FROM_SD_CARD_Q"
+msgstr "SD-kartadan sertifikatlar o‘rnatilsinmi?"
+
+msgid "IDS_ST_BODY_KEY_USAGE_C"
+msgstr "Kalitdan foydalanish:"
+
+msgid "IDS_ST_BODY_ORGANISATION_C"
+msgstr "Tashkilot:"
+
+msgid "IDS_ST_BODY_OWNER_C"
+msgstr "Egasi:"
+
+msgid "IDS_ST_BODY_PUBLIC_KEY_C"
+msgstr "Umumiy kalit:"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE"
+msgstr "Sertifikat tanlang"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE_TO_INSTALL"
+msgstr "O‘rnatiladigan sertifikatni tanlang"
+
+msgid "IDS_ST_BODY_SERIAL_NUMBER_C"
+msgstr "Serial number:"
+
+msgid "IDS_ST_BODY_SIGNATURE_ALGORITHM_C"
+msgstr "Imzo algoritmi:"
+
+msgid "IDS_ST_BODY_TRUE"
+msgstr "Haqiqat"
+
+msgid "IDS_ST_BODY_TRUSTED_ROOT_CERTIFICATES"
+msgstr "Ishonchli ildiz sertifikatlari"
+
+msgid "IDS_ST_BODY_USER_CERTIFICATES"
+msgstr "Foydalanuvchi sertifikatlari"
+
+msgid "IDS_ST_BODY_VALID_FROM_C"
+msgstr "Quyidagidan foydalanish mumkin:"
+
+msgid "IDS_ST_BODY_VALID_TO_C"
+msgstr "Quyidagigacha foydalanish mumkin:"
+
+msgid "IDS_ST_BUTTON_OPEN"
+msgstr "Ochish"
+
+msgid "IDS_ST_BODY_COMMON_NAME_C"
+msgstr "Umumiy nomi:"
+
+msgid "IDS_ST_BODY_INCORRECT_PASSWORD"
+msgstr "Noto‘g‘ri parol"
+
+msgid "IDS_ST_BODY_NO_CONTENT"
+msgstr "Tarkib yo‘q"
+
+msgid "IDS_ST_BODY_NO_DATA"
+msgstr "Ma’lumotlar yo‘q"
+
+msgid "IDS_ST_BUTTON_NO"
+msgstr "Yo‘q"
+
+msgid "IDS_ST_BUTTON_YES"
+msgstr "Ha"
+
+msgid "IDS_ST_SK2_CANCEL"
+msgstr "Bekor qilish"
+
+msgid "IDS_ST_SK2_OK"
+msgstr "OK"
+
--- /dev/null
+msgid "IDS_COM_BODY_NO_CONTENTS"
+msgstr "Không nội dung"
+
--- /dev/null
+msgid "IDS_ST_BODY_CERTIFICATES"
+msgstr "证书"
+
+msgid "IDS_ST_BODY_VERSION_C"
+msgstr "版本:"
+
+msgid "IDS_ST_BUTTON_UNINSTALL"
+msgstr "卸载"
+
+msgid "IDS_ST_BODY_MANUFACTURER"
+msgstr "制造商"
+
+msgid "IDS_ST_BODY_SELECT_ALL"
+msgstr "全选"
+
+msgid "IDS_ST_BODY_ISSUER_COLON"
+msgstr "颁发者:"
+
+msgid "IDS_ST_BUTTON_INSTALL"
+msgstr "安装"
+
+msgid "IDS_ST_BODY_ALIAS_ALREADY_EXISTS_ENTER_A_UNIQUE_ALIAS"
+msgstr "别名已存在。输入唯一假名"
+
+msgid "IDS_ST_BODY_ALIAS_CANNOT_BE_EMPTY"
+msgstr "假名无法为空"
+
+msgid "IDS_ST_BODY_CERTIFICATES_FOUND"
+msgstr "已找到证书"
+
+msgid "IDS_ST_BODY_CERTIFICATE_DETAILS"
+msgstr "证书详情"
+
+msgid "IDS_ST_BODY_CERTIFICATE_INFORMATION"
+msgstr "证书信息"
+
+msgid "IDS_ST_BODY_CERTIFICATION_AUTHORITY_C"
+msgstr "认证机构:"
+
+msgid "IDS_ST_BODY_ENTER_KEY_ALIAS_C"
+msgstr "输入密钥别名:"
+
+msgid "IDS_ST_BODY_ENTER_PASSWORD_C"
+msgstr "输入密码:"
+
+msgid "IDS_ST_BODY_EXTERNAL_CERTIFICATES"
+msgstr "外部证书"
+
+msgid "IDS_ST_BODY_FALSE"
+msgstr "假"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATE"
+msgstr "安装证书"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATES_FROM_SD_CARD_Q"
+msgstr "是否从 SD 卡安装证书?"
+
+msgid "IDS_ST_BODY_KEY_USAGE_C"
+msgstr "密钥使用:"
+
+msgid "IDS_ST_BODY_ORGANISATION_C"
+msgstr "组织:"
+
+msgid "IDS_ST_BODY_OWNER_C"
+msgstr "所有者:"
+
+msgid "IDS_ST_BODY_PUBLIC_KEY_C"
+msgstr "公开密钥:"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE"
+msgstr "选择证书"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE_TO_INSTALL"
+msgstr "选择要安装的证书"
+
+msgid "IDS_ST_BODY_SERIAL_NUMBER_C"
+msgstr "Serial number:"
+
+msgid "IDS_ST_BODY_SIGNATURE_ALGORITHM_C"
+msgstr "签名算法:"
+
+msgid "IDS_ST_BODY_TRUE"
+msgstr "正确"
+
+msgid "IDS_ST_BODY_TRUSTED_ROOT_CERTIFICATES"
+msgstr "信任根证书"
+
+msgid "IDS_ST_BODY_USER_CERTIFICATES"
+msgstr "用户证书"
+
+msgid "IDS_ST_BODY_VALID_FROM_C"
+msgstr "生效日期:"
+
+msgid "IDS_ST_BODY_VALID_TO_C"
+msgstr "有效期:"
+
+msgid "IDS_ST_BUTTON_OPEN"
+msgstr "打开"
+
+msgid "IDS_ST_BODY_COMMON_NAME_C"
+msgstr "公用名:"
+
+msgid "IDS_ST_BODY_INCORRECT_PASSWORD"
+msgstr "密码错误"
+
+msgid "IDS_ST_BODY_NO_CONTENT"
+msgstr "无内容"
+
+msgid "IDS_ST_BODY_NO_DATA"
+msgstr "无数据"
+
+msgid "IDS_ST_BUTTON_NO"
+msgstr "否"
+
+msgid "IDS_ST_BUTTON_YES"
+msgstr "是"
+
+msgid "IDS_ST_SK2_CANCEL"
+msgstr "取消"
+
+msgid "IDS_ST_SK2_OK"
+msgstr "确定"
+
--- /dev/null
+msgid "IDS_ST_BODY_CERTIFICATES"
+msgstr "證書"
+
+msgid "IDS_ST_BODY_VERSION_C"
+msgstr "版本:"
+
+msgid "IDS_ST_BUTTON_UNINSTALL"
+msgstr "解除安裝"
+
+msgid "IDS_ST_BODY_MANUFACTURER"
+msgstr "製造商"
+
+msgid "IDS_ST_BODY_SELECT_ALL"
+msgstr "選擇全部"
+
+msgid "IDS_ST_BODY_ISSUER_COLON"
+msgstr "發行者:"
+
+msgid "IDS_ST_BUTTON_INSTALL"
+msgstr "安裝"
+
+msgid "IDS_ST_BODY_ALIAS_ALREADY_EXISTS_ENTER_A_UNIQUE_ALIAS"
+msgstr "別名已存在。輸入一個獨特的別名"
+
+msgid "IDS_ST_BODY_ALIAS_CANNOT_BE_EMPTY"
+msgstr "別名不可為空白"
+
+msgid "IDS_ST_BODY_CERTIFICATES_FOUND"
+msgstr "已找到證書"
+
+msgid "IDS_ST_BODY_CERTIFICATE_DETAILS"
+msgstr "證書詳情"
+
+msgid "IDS_ST_BODY_CERTIFICATE_INFORMATION"
+msgstr "證書資訊"
+
+msgid "IDS_ST_BODY_CERTIFICATION_AUTHORITY_C"
+msgstr "證書授權:"
+
+msgid "IDS_ST_BODY_ENTER_KEY_ALIAS_C"
+msgstr "輸入金鑰別名:"
+
+msgid "IDS_ST_BODY_ENTER_PASSWORD_C"
+msgstr "輸入密碼:"
+
+msgid "IDS_ST_BODY_EXTERNAL_CERTIFICATES"
+msgstr "外部證書"
+
+msgid "IDS_ST_BODY_FALSE"
+msgstr "偽"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATE"
+msgstr "安裝證書"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATES_FROM_SD_CARD_Q"
+msgstr "從 SD 卡安裝證書嗎?"
+
+msgid "IDS_ST_BODY_KEY_USAGE_C"
+msgstr "金鑰使用量:"
+
+msgid "IDS_ST_BODY_ORGANISATION_C"
+msgstr "機構:"
+
+msgid "IDS_ST_BODY_OWNER_C"
+msgstr "擁有者:"
+
+msgid "IDS_ST_BODY_PUBLIC_KEY_C"
+msgstr "公開金鑰:"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE"
+msgstr "選擇證書"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE_TO_INSTALL"
+msgstr "選擇要安裝的證書"
+
+msgid "IDS_ST_BODY_SERIAL_NUMBER_C"
+msgstr "Serial number:"
+
+msgid "IDS_ST_BODY_SIGNATURE_ALGORITHM_C"
+msgstr "簽章演算法:"
+
+msgid "IDS_ST_BODY_TRUE"
+msgstr "正確"
+
+msgid "IDS_ST_BODY_TRUSTED_ROOT_CERTIFICATES"
+msgstr "信任的根憑證"
+
+msgid "IDS_ST_BODY_USER_CERTIFICATES"
+msgstr "用戶證書"
+
+msgid "IDS_ST_BODY_VALID_FROM_C"
+msgstr "有效期由:"
+
+msgid "IDS_ST_BODY_VALID_TO_C"
+msgstr "有效期至:"
+
+msgid "IDS_ST_BUTTON_OPEN"
+msgstr "開啟"
+
+msgid "IDS_ST_BODY_COMMON_NAME_C"
+msgstr "一般名稱:"
+
+msgid "IDS_ST_BODY_INCORRECT_PASSWORD"
+msgstr "密碼不正確"
+
+msgid "IDS_ST_BODY_NO_CONTENT"
+msgstr "無內容"
+
+msgid "IDS_ST_BODY_NO_DATA"
+msgstr "無數據"
+
+msgid "IDS_ST_BUTTON_NO"
+msgstr "否"
+
+msgid "IDS_ST_BUTTON_YES"
+msgstr "是"
+
+msgid "IDS_ST_SK2_CANCEL"
+msgstr "取消"
+
+msgid "IDS_ST_SK2_OK"
+msgstr "確認"
+
--- /dev/null
+msgid "IDS_ST_BODY_CERTIFICATES"
+msgstr "证书"
+
+msgid "IDS_ST_BODY_VERSION_C"
+msgstr "版本:"
+
+msgid "IDS_ST_BUTTON_UNINSTALL"
+msgstr "卸载"
+
+msgid "IDS_ST_BODY_MANUFACTURER"
+msgstr "制造商"
+
+msgid "IDS_ST_BODY_SELECT_ALL"
+msgstr "全选"
+
+msgid "IDS_ST_BODY_ISSUER_COLON"
+msgstr "颁发者:"
+
+msgid "IDS_ST_BUTTON_INSTALL"
+msgstr "安装"
+
+msgid "IDS_ST_BODY_ALIAS_ALREADY_EXISTS_ENTER_A_UNIQUE_ALIAS"
+msgstr "别名已存在。输入唯一假名"
+
+msgid "IDS_ST_BODY_ALIAS_CANNOT_BE_EMPTY"
+msgstr "假名无法为空"
+
+msgid "IDS_ST_BODY_CERTIFICATES_FOUND"
+msgstr "已找到证书"
+
+msgid "IDS_ST_BODY_CERTIFICATE_DETAILS"
+msgstr "证书详情"
+
+msgid "IDS_ST_BODY_CERTIFICATE_INFORMATION"
+msgstr "证书信息"
+
+msgid "IDS_ST_BODY_CERTIFICATION_AUTHORITY_C"
+msgstr "认证机构:"
+
+msgid "IDS_ST_BODY_ENTER_KEY_ALIAS_C"
+msgstr "输入密钥别名:"
+
+msgid "IDS_ST_BODY_ENTER_PASSWORD_C"
+msgstr "输入密码:"
+
+msgid "IDS_ST_BODY_EXTERNAL_CERTIFICATES"
+msgstr "外部证书"
+
+msgid "IDS_ST_BODY_FALSE"
+msgstr "假"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATE"
+msgstr "安装证书"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATES_FROM_SD_CARD_Q"
+msgstr "是否从 SD 卡安装证书?"
+
+msgid "IDS_ST_BODY_KEY_USAGE_C"
+msgstr "密钥使用:"
+
+msgid "IDS_ST_BODY_ORGANISATION_C"
+msgstr "组织:"
+
+msgid "IDS_ST_BODY_OWNER_C"
+msgstr "所有者:"
+
+msgid "IDS_ST_BODY_PUBLIC_KEY_C"
+msgstr "公开密钥:"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE"
+msgstr "选择证书"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE_TO_INSTALL"
+msgstr "选择要安装的证书"
+
+msgid "IDS_ST_BODY_SERIAL_NUMBER_C"
+msgstr "Serial number:"
+
+msgid "IDS_ST_BODY_SIGNATURE_ALGORITHM_C"
+msgstr "签名算法:"
+
+msgid "IDS_ST_BODY_TRUE"
+msgstr "正确"
+
+msgid "IDS_ST_BODY_TRUSTED_ROOT_CERTIFICATES"
+msgstr "信任根证书"
+
+msgid "IDS_ST_BODY_USER_CERTIFICATES"
+msgstr "用户证书"
+
+msgid "IDS_ST_BODY_VALID_FROM_C"
+msgstr "生效日期:"
+
+msgid "IDS_ST_BODY_VALID_TO_C"
+msgstr "有效期:"
+
+msgid "IDS_ST_BUTTON_OPEN"
+msgstr "打开"
+
+msgid "IDS_ST_BODY_COMMON_NAME_C"
+msgstr "公用名:"
+
+msgid "IDS_ST_BODY_INCORRECT_PASSWORD"
+msgstr "密码不正确"
+
+msgid "IDS_ST_BODY_NO_CONTENT"
+msgstr "无内容"
+
+msgid "IDS_ST_BODY_NO_DATA"
+msgstr "无数据"
+
+msgid "IDS_ST_BUTTON_NO"
+msgstr "否"
+
+msgid "IDS_ST_BUTTON_YES"
+msgstr "是"
+
+msgid "IDS_ST_SK2_CANCEL"
+msgstr "取消"
+
+msgid "IDS_ST_SK2_OK"
+msgstr "确定"
+
--- /dev/null
+msgid "IDS_ST_BODY_CERTIFICATES"
+msgstr "憑證"
+
+msgid "IDS_ST_BODY_VERSION_C"
+msgstr "版本:"
+
+msgid "IDS_ST_BUTTON_UNINSTALL"
+msgstr "解除安裝"
+
+msgid "IDS_ST_BODY_MANUFACTURER"
+msgstr "製造商"
+
+msgid "IDS_ST_BODY_SELECT_ALL"
+msgstr "全選"
+
+msgid "IDS_ST_BODY_ISSUER_COLON"
+msgstr "發行者:"
+
+msgid "IDS_ST_BUTTON_INSTALL"
+msgstr "安裝"
+
+msgid "IDS_ST_BODY_ALIAS_ALREADY_EXISTS_ENTER_A_UNIQUE_ALIAS"
+msgstr "別名已存在。輸入一個獨特的別名"
+
+msgid "IDS_ST_BODY_ALIAS_CANNOT_BE_EMPTY"
+msgstr "別名不可為空白"
+
+msgid "IDS_ST_BODY_CERTIFICATES_FOUND"
+msgstr "已找到證書"
+
+msgid "IDS_ST_BODY_CERTIFICATE_DETAILS"
+msgstr "憑證詳細資料"
+
+msgid "IDS_ST_BODY_CERTIFICATE_INFORMATION"
+msgstr "證書資訊"
+
+msgid "IDS_ST_BODY_CERTIFICATION_AUTHORITY_C"
+msgstr "證書授權:"
+
+msgid "IDS_ST_BODY_ENTER_KEY_ALIAS_C"
+msgstr "輸入金鑰別名:"
+
+msgid "IDS_ST_BODY_ENTER_PASSWORD_C"
+msgstr "輸入密碼:"
+
+msgid "IDS_ST_BODY_EXTERNAL_CERTIFICATES"
+msgstr "外部證書"
+
+msgid "IDS_ST_BODY_FALSE"
+msgstr "假"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATE"
+msgstr "安裝憑證"
+
+msgid "IDS_ST_BODY_INSTALL_CERTIFICATES_FROM_SD_CARD_Q"
+msgstr "從 SD 卡安裝證書嗎?"
+
+msgid "IDS_ST_BODY_KEY_USAGE_C"
+msgstr "金鑰使用量:"
+
+msgid "IDS_ST_BODY_ORGANISATION_C"
+msgstr "組織:"
+
+msgid "IDS_ST_BODY_OWNER_C"
+msgstr "擁有者:"
+
+msgid "IDS_ST_BODY_PUBLIC_KEY_C"
+msgstr "公開金鑰:"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE"
+msgstr "請選擇憑證"
+
+msgid "IDS_ST_BODY_SELECT_CERTIFICATE_TO_INSTALL"
+msgstr "選擇要安裝的證書"
+
+msgid "IDS_ST_BODY_SERIAL_NUMBER_C"
+msgstr "Serial number:"
+
+msgid "IDS_ST_BODY_SIGNATURE_ALGORITHM_C"
+msgstr "簽章演算法:"
+
+msgid "IDS_ST_BODY_TRUE"
+msgstr "正確"
+
+msgid "IDS_ST_BODY_TRUSTED_ROOT_CERTIFICATES"
+msgstr "信任的根憑證"
+
+msgid "IDS_ST_BODY_USER_CERTIFICATES"
+msgstr "使用者憑證"
+
+msgid "IDS_ST_BODY_VALID_FROM_C"
+msgstr "生效時間:"
+
+msgid "IDS_ST_BODY_VALID_TO_C"
+msgstr "有效期至:"
+
+msgid "IDS_ST_BUTTON_OPEN"
+msgstr "開啟"
+
+msgid "IDS_ST_BODY_COMMON_NAME_C"
+msgstr "一般名稱:"
+
+msgid "IDS_ST_BODY_INCORRECT_PASSWORD"
+msgstr "密碼不正確"
+
+msgid "IDS_ST_BODY_NO_CONTENT"
+msgstr "無內容"
+
+msgid "IDS_ST_BODY_NO_DATA"
+msgstr "無資料"
+
+msgid "IDS_ST_BUTTON_NO"
+msgstr "否"
+
+msgid "IDS_ST_BUTTON_YES"
+msgstr "是"
+
+msgid "IDS_ST_SK2_CANCEL"
+msgstr "取消"
+
+msgid "IDS_ST_SK2_OK"
+msgstr "確認"
+
--- /dev/null
+pkg_check_modules(ug-setting-manage-certificates-efl_pkgs
+ REQUIRED
+ elementary
+ ui-gadget-1
+ evas
+ dlog
+ dpl-dbus-efl
+ cert-svc-vcore
+)
+
+SET(SRCS
+ src/mgr-app-uigadget.c
+)
+
+SET(CMAKE_INSTALL_RPATH "${PREFIX}/lib")
+
+INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/ug/include)
+INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/common/include)
+INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/view/include)
+INCLUDE_DIRECTORIES(${ug-setting-manage-certificates-efl_pkgs_INCLUDE_DIRS})
+
+ADD_DEFINITIONS(${ug-setting-manage-certificates-efl_pkgs_DEPS_CFLAGS})
+ADD_DEFINITIONS(${ug-setting-manage-certificates-efl_pkgs_DEPS_OTHER})
+
+ADD_LIBRARY(${TARGET_CERT_MANAGER_UG} SHARED ${SRCS})
+SET_TARGET_PROPERTIES(${TARGET_CERT_MANAGER_UG} PROPERTIES SOVERSION 0.1.0)
+
+TARGET_LINK_LIBRARIES(${TARGET_CERT_MANAGER_UG}
+ ${ug-setting-manage-certificates-efl_pkgs_LIBRARIES}
+ ${ug-setting-manage-certificates-efl_pkgs_LDFLAGS}
+ ${TARGET_CERT_VIEW}
+)
+
+INSTALL(TARGETS
+ ${TARGET_CERT_MANAGER_UG}
+ DESTINATION
+ ${LIBDIR}
+)
--- /dev/null
+/**
+ * Copyright (c) 2012 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * @file mgr-app-uigadget.h
+ * @author Janusz Kozerski (j.kozerski@samsung.com)
+ * @version 1.0
+ * @brief
+ */
+
+#ifndef __UG_SETTING_MANAGE_CERTIFICATES_EFL_H__
+#define __UG_SETTING_MANAGE_CERTIFICATES_EFL_H__
+
+#include <Elementary.h>
+#include <ui-gadget.h>
+#include <ui-gadget-module.h>
+#include <glib.h>
+#include <app.h>
+#include <cert-svc/cinstance.h>
+
+#ifndef PACKAGE
+#define PACKAGE "ug-setting-manage-certificates-efl"
+#endif
+
+#ifndef LOCALEDIR
+#define LOCALEDIR PREFIX "/res/locale"
+#endif
+
+// Type of screen with certificates that is displayed - it is used to refreshing list
+enum Screen {
+ NONE_SCREEN, // Screen is unknown
+ TRUSTED_ROOT_SCREEN, // Trusted root
+ USER_SCREEN, // User certificates/External
+ PKCS12_SCREEN // PKCS12/PFX
+};
+
+struct ug_data {
+ Evas_Object *win_main;
+ Evas_Object *bg;
+ Evas_Object *layout_main;
+ Evas_Object *navi_bar;
+ GList *view_list;
+ ui_gadget_h ug;
+ ui_gadget_h sub_ug;
+ void *data;
+ Evas_Object *popup;
+
+ Evas_Object *list_to_refresh;
+ enum Screen type_of_screen;
+ struct ListElement *list_element;
+ struct ListElement *list_element_install;
+
+ CertSvcInstance instance;
+ Evas_Object *genlist_pfx;
+
+ Evas_Object *indicator;
+ Ecore_Pipe *msg_pipe;
+
+};
+
+struct ug_data *get_ug_data();
+
+#ifdef LOG_TAG
+ #undef LOG_TAG
+#endif
+
+#ifndef LOG_TAG
+ #define LOG_TAG "CERT_SVC_UI"
+#endif
+
+#endif /* __UG_SETTING_MANAGE_CERTIFICATES_EFL_H__ */
--- /dev/null
+/**
+ * Copyright (c) 2012 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * @file mgr-app-uigadget.c
+ * @author Janusz Kozerski (j.kozerski@samsung.com)
+ * @version 1.0
+ * @brief
+ */
+
+#ifndef UG_MODULE_API
+#define UG_MODULE_API __attribute__ ((visibility("default")))
+#endif
+
+#include <dlog.h>
+
+#include "mgr-app-uigadget.h"
+
+#include "certificates/certificates.h"
+
+static struct ug_data *ugd = NULL;
+struct ug_data *get_ug_data() {
+ LOGD("get_ug_data()");
+ return ugd;
+}
+
+static void *on_create(ui_gadget_h ug, enum ug_mode mode, service_h service, void *priv) {
+ LOGD("on_create() BEGIN");
+
+ if (NULL == ug)
+ return NULL;
+ if (NULL == priv)
+ return NULL;
+
+ bindtextdomain(PACKAGE, LOCALEDIR);
+
+ ugd = priv;
+ ugd->ug = ug;
+
+ ugd->win_main = ug_get_parent_layout(ug);
+ if (NULL == ugd->win_main)
+ return NULL;
+ elm_win_conformant_set(ugd->win_main, EINA_TRUE);
+
+ ugd->bg = elm_bg_add(ugd->win_main);
+ if (!ugd->bg) {
+ LOGD("ugd->bg is null");
+ free(ugd->win_main);
+ return NULL;
+ }
+ evas_object_size_hint_weight_set(ugd->bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ elm_win_resize_object_add(ugd->win_main, ugd->bg);
+ evas_object_show(ugd->bg);
+
+ ugd->layout_main = elm_layout_add(ugd->win_main);
+ if (!ugd->layout_main) {
+ LOGD("ugd->layout_main is null");
+ free(ugd->win_main);
+ free(ugd->bg);
+ return NULL;
+ }
+ elm_layout_theme_set(ugd->layout_main, "layout", "application", "default");
+ evas_object_size_hint_weight_set(ugd->layout_main, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ elm_win_resize_object_add(ugd->win_main, ugd->layout_main);
+ evas_object_show(ugd->layout_main);
+
+ elm_object_part_content_set(ugd->layout_main, "elm.swallow.bg", ugd->bg);
+
+ ugd->navi_bar = elm_naviframe_add(ugd->layout_main);
+ if (!ugd->navi_bar) {
+ LOGD("ugd->navi_bar is null");
+ free(ugd->win_main);
+ free(ugd->bg);
+ free(ugd->layout_main);
+ return NULL;
+ }
+ evas_object_show(ugd->navi_bar);
+ elm_object_part_content_set(ugd->layout_main, "elm.swallow.content", ugd->navi_bar);
+
+ certificates_menu_cb((void*) ugd, NULL, NULL);
+
+ LOGD("on_create() END");
+ return ugd->layout_main;
+}
+
+static void on_start(ui_gadget_h ug, service_h service, void *priv) {
+
+}
+
+static void on_pause(ui_gadget_h ug, service_h service, void *priv) {
+
+}
+
+static void on_resume(ui_gadget_h ug, service_h service, void *priv) {
+
+}
+
+static void on_destroy(ui_gadget_h ug, service_h service, void *priv) {
+ LOGD("on_destroy() BEGIN");
+
+ if (NULL == ug) {
+ LOGD("NULL == ug; return");
+ return;
+ }
+ if (NULL == priv) {
+ LOGD("NULL == priv; return");
+ return;
+ }
+
+ ugd = priv;
+
+ evas_object_del(ugd->layout_main);
+ ugd->layout_main = NULL;
+ LOGD("on_destroy() END");
+}
+
+static void on_message(ui_gadget_h ug, service_h msg, service_h service, void *priv) {
+
+}
+
+static void on_event(ui_gadget_h ug, enum ug_event event, service_h service, void *priv) {
+ LOGD("on_event() BEGIN");
+ switch (event) {
+ case UG_EVENT_LOW_MEMORY:
+ break;
+ case UG_EVENT_LOW_BATTERY:
+ break;
+ case UG_EVENT_LANG_CHANGE:
+ break;
+ case UG_EVENT_ROTATE_PORTRAIT:
+ break;
+ case UG_EVENT_ROTATE_PORTRAIT_UPSIDEDOWN:
+ break;
+ case UG_EVENT_ROTATE_LANDSCAPE:
+ break;
+ case UG_EVENT_ROTATE_LANDSCAPE_UPSIDEDOWN:
+ break;
+ default:
+ break;
+ }
+ LOGD("on_event() END");
+}
+
+static void on_key_event(ui_gadget_h ug, enum ug_key_event event, service_h service, void *priv) {
+ LOGD("on_key_event() BEGIN");
+ if (NULL == ug) {
+ LOGD("NULL == ug; return");
+ return;
+ }
+
+ switch (event) {
+ case UG_KEY_EVENT_END:
+ ug_destroy_me(ug);
+ break;
+ default:
+ break;
+ }
+ LOGD("on_key_event() END");
+}
+
+UG_MODULE_API int UG_MODULE_INIT(struct ug_module_ops *ops) {
+ LOGD("UG_MODULE_INIT() BEGIN");
+ if (NULL == ops) {
+ LOGD("NULL == ops; return");
+ return -1;
+ }
+
+ ugd = calloc(1, sizeof(struct ug_data));
+
+ ops->create = on_create;
+ ops->start = on_start;
+ ops->pause = on_pause;
+ ops->resume = on_resume;
+ ops->destroy = on_destroy;
+ ops->message = on_message;
+ ops->event = on_event;
+ ops->key_event = on_key_event;
+ ops->priv = ugd;
+ ops->opt = UG_OPT_INDICATOR_ENABLE;
+
+ LOGD("UG_MODULE_INIT() END");
+ return 0;
+}
+
+UG_MODULE_API void UG_MODULE_EXIT(struct ug_module_ops *ops) {
+ LOGD("UG_MODULE_EXIT() BEGIN");
+ if (NULL == ops) {
+ LOGD("NULL == ops; return");
+ return;
+ }
+
+ ugd = ops->priv;
+ free(ugd);
+ LOGD("UG_MODULE_EXIT() END");
+}
+
+UG_MODULE_API int setting_plugin_reset(service_h service, void *priv) {
+ LOGD("setting_plugin_reset() BEGIN");
+ /* nothing to do for Setting>Reset */
+ LOGD("setting_plugin_reset() END");
+ return 0;
+}
--- /dev/null
+pkg_check_modules(pkgs_view
+ REQUIRED
+ appcore-efl
+ elementary
+ dlog
+ glib-2.0
+ evas
+ edje
+ aul
+ eina
+ ail
+ appsvc
+ icu-i18n
+ ui-gadget-1
+ capi-appfw-application
+ cert-svc-vcore
+)
+
+SET(SRCS
+ src/certificates/certificates_menu.c
+ src/certificates/certificate_util.c
+ src/certificates/trusted_root_ca_cert/trusted_root_ca_cert.c
+ src/certificates/user_cert/install_certificate.c
+ src/certificates/user_cert/user_cert.c
+ src/certificates/pfx_cert/pfx_cert.c
+ src/certificates/pfx_cert/pfx_cert_install.c
+ src/certificates/pfx_cert/pfx_cert_remove.c
+ src/certificates/detail_info_cert.c
+ src/certificates/put_password_certificate.c
+ src/certificates/uninstall_certificate.c
+)
+
+INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/view/include)
+INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/common/include)
+INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/ug/include)
+INCLUDE_DIRECTORIES(${pkgs_view_INCLUDE_DIRS})
+
+FIND_PROGRAM(UNAME NAMES uname)
+EXEC_PROGRAM("${UNAME}" ARGS "-m" OUTPUT_VARIABLE "ARCH")
+
+IF("${ARCH}" STREQUAL "arm")
+ ADD_DEFINITIONS("-DTARGET")
+ MESSAGE("add -DTARGET")
+ENDIF("${ARCH}" STREQUAL "arm")
+
+MESSAGE("CMAKE_INSTALL_PREFIX: ${CMAKE_INSTALL_PREFIX}")
+
+ADD_DEFINITIONS("-DSLP_DEBUG")
+
+SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed")
+
+ADD_LIBRARY(${TARGET_CERT_VIEW} SHARED ${SRCS})
+
+TARGET_LINK_LIBRARIES(${TARGET_CERT_VIEW}
+ ${pkgs_view_LIBRARIES}
+)
+
+INSTALL(TARGETS
+ ${TARGET_CERT_VIEW}
+ DESTINATION
+ ${LIBDIR}
+)
--- /dev/null
+/**
+ * Copyright (c) 2012 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * @file certificate_util.h
+ * @author Janusz Kozerski (j.kozerski@samsung.com)
+ * @version 1.0
+ * @brief
+ */
+
+#ifndef __CERT_UTIL_H__
+#define __CERT_UTIL_H_
+
+#include <Elementary.h>
+#include <assert.h>
+#include <dlog.h>
+#include <cert-svc/cstring.h>
+
+#include "certificates/certificates.h"
+
+#ifdef _cplusplus
+extern "C" {
+#endif
+
+enum TypeOfCert {
+ USER,
+ TRUSTED_ROOT,
+ PKCS12,
+ TO_INSTALL,
+ TO_UNINSTALL,
+};
+
+typedef struct ListElement {
+ struct ListElement *prev, *next;
+ char *name;
+ char *title;
+ char *path;
+ Eina_Bool isChecked;
+ Elm_Object_Item *it;
+} ListElement_t;
+
+enum PositionOfElement {
+ NONE, // This is no element of the list
+ FIRST, // First element of list - there is nothing before, but is something after
+ LAST, // Last element of the list - there is nothing after, but is something before
+ IN_THE_MIDDLE, // There are element before and after this element
+ THE_LAST_ONE, // It means that this is the only one element on the list
+};
+
+enum CountOfSelected {
+ SELECTED_NONE, // NONE element is selected
+ SELECTED_FEW, // At least one, but not all element are selected
+ SELECTED_ALL, // ALL element are selected
+};
+
+void list_clicked_cb (void *data, Evas_Object *obj, void *event_info);
+void genlist_clicked_cb (void *data, Evas_Object *obj, void *event_info);
+
+struct ListElement* initList();
+struct ListElement* nextElement (struct ListElement *listElement);
+struct ListElement* addListElement (struct ListElement* lastListElement, const char *name);
+struct ListElement* addListElementWithTitle (struct ListElement* lastListElement, const char *name, const char *title);
+struct ListElement* addListElementWithPath (struct ListElement* lastListElement, const char *name, const char *path);
+struct ListElement* addListElementWithPathAndTitle(
+ struct ListElement* lastListElement,
+ const char *name,
+ const char *path,
+ const char *title);
+struct ListElement* findLastElement (struct ListElement* listElement);
+struct ListElement* findFirstElement (struct ListElement* listElement);
+enum PositionOfElement removeListElement (struct ListElement *listElementToRemove);
+void deleteList (struct ListElement* listElement);
+void clear_pfx_genlist_data ();
+
+
+/**
+ * Path concatenation
+ * Merge two string in a correct path, e.g.:
+ *
+ * char *c1 = "/opt/shared"
+ * char *c2 = "file_1.pdf"
+ * result -> "/opt/shared/file_1.pdf"
+ *
+ * or:
+ *
+ * char *c1 = "/opt/shared/"
+ * char *c2 = "file_1.pdf"
+ * result -> "/opt/shared/file_1.pdf"
+ *
+ * (function put '/' char in the end of first string if it's needed)
+ *
+ * Result is char pointer allocated by malloc()
+ * Should be deallocated by free()
+ **/
+char *path_cat(const char *str1, char *str2);
+char *extractDataFromCert(char *path);
+const char* get_email(CertSvcString alias);
+
+void cert_selection_cb(void *data, Evas_Object *obj, void *event_info);
+void back_cb (void *data, Evas_Object *obj, void *event_info);
+void back_install_cb (void *data, Evas_Object *obj, void *event_info);
+void install_button_cb(void *data, Evas_Object *obj, void *event_info);
+
+void refresh_list (struct ug_data *ad);
+Evas_Object *create_yes_no_pop(struct ug_data *ad, const char *content, enum TypeOfCert typeOfCert);
+Evas_Object *create_ok_pop (struct ug_data *ad, const char *content);
+
+Evas_Object *create_no_content_layout (struct ug_data *ad);
+
+Eina_Bool make_list(
+ struct ug_data *ad,
+ Evas_Object *list,
+ const char *dir_path,
+ struct ListElement *lastListElement,
+ enum TypeOfCert type );
+
+#ifdef _cplusplus
+}
+#endif
+
+#ifdef LOG_TAG
+ #undef LOG_TAG
+#endif
+
+#ifndef LOG_TAG
+ #define LOG_TAG "CERT_SVC_UI"
+#endif
+
+//temporary enum definition
+#define ELM_TOOLBAR_SHRINK_EXPAND 4
+
+#define BUF256 256
+
+#endif // end of CERT_UTIL_H
--- /dev/null
+/**
+ * Copyright (c) 2012 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * @file certificates.h
+ * @author Janusz Kozerski (j.kozerski@samsung.com)
+ * @version 1.0
+ * @brief
+ */
+
+#ifndef __DEF_certificates_H_
+#define __DEF_certificates_H_
+
+#include <Elementary.h>
+#include <cert-svc/ccert.h>
+
+#include "mgr-app-uigadget.h"
+
+// Path to the certs
+//root path
+#define PATH_CERT_ROOT "/opt/share/cert-svc/certs"
+
+//mdm
+#define PATH_CERT_MDM "/opt/share/cert-svc/certs/mdm"
+#define PATH_CERT_MDM_SECURITY "/opt/share/cert-svc/certs/security"
+#define PATH_CERT_MDM_SECURITY_CERT "/opt/share/cert-svc/certs/security/cert"
+
+//ssl
+#define PATH_CERT_SSL "/opt/share/cert-svc/certs/ssl"
+#define PATH_CERT_SSL_ETC "/opt/etc/ssl/certs"
+
+//sim
+#define PATH_CERT_SIM_OPERATOR "/opt/share/cert-svc/certs/sim/operator"
+#define PATH_CERT_SIM_THIRDPARTY "/opt/share/cert-svc/certs/sim/thirdparty"
+
+//user
+#define PATH_CERT_USER "/opt/share/cert-svc/certs/user"
+#define PATH_CERT_TRUSTEDUSER "/opt/share/cert-svc/certs/trusteduser"
+
+//code-signing
+#define PATH_CERT_WAC "/opt/share/cert-svc/certs/code-signing/wac"
+
+//sd-card
+#define PATH_SDCARD "/opt/storage/sdcard"
+#define PATH_MEDIA "/opt/media"
+#define PATH_MEDIA_DOWNLOADS "/opt/media/Downloads"
+
+// certificates menu
+void certificates_menu_cb (void *data, Evas_Object *obj, void *event_info);
+void trusted_root_cert_cb (void *data, Evas_Object *obj, void *event_info);
+void user_cert_cb (void *data, Evas_Object *obj, void *event_info);
+void pfx_cert_cb (void *data, Evas_Object *obj, void *event_info);
+
+
+// trusted root certificates
+void trusted_root_cert_selection_cb (void *data, Evas_Object *obj, void *event_info);
+Eina_Bool trusted_root_cert_create_list (struct ug_data *ad);
+
+// user certificate
+void user_search_cert_cb (void *data, Evas_Object *obj, void *event_info);
+void user_cert_selection_cb (void *data, Evas_Object *obj, void *event_info);
+Eina_Bool user_cert_create_list (struct ug_data *ad);
+
+// PFX certificate
+void pfx_cert_install_cb (void *data, Evas_Object *obj, void *event_info);
+void put_pkcs12_name_cb (void *data, Evas_Object *obj, void *event_info);
+void put_pkcs12_name_and_pass_cb (void *data, Evas_Object *obj, void *event_info);
+void pfx_cert_remove_cb (void *data, Evas_Object *obj, void *event_info);
+Eina_Bool pfx_cert_create_list (struct ug_data *ad);
+
+// cert general
+void get_info_cert_from_file_cb (struct ug_data *ad);
+void get_info_cert_from_certificate_cb (CertSvcCertificate cert);
+void delete_cert_cb (void *data, Evas_Object *obj, void *event_info);
+void install_cb (void *data, Evas_Object *obj, void *event_info);
+
+//---------------------------------------------
+
+#endif /* __DEF_certificates_H__ */
--- /dev/null
+/**
+ * Copyright (c) 2012 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * @file certificate_util.c
+ * @author Janusz Kozerski (j.kozerski@samsung.com)
+ * @version 1.0
+ * @brief
+ */
+
+#define _GNU_SOURCE
+
+#include <Ecore_X.h>
+#include <E_Notify.h>
+
+#include <cert-svc/ccert.h>
+#include <cert-svc/cinstance.h>
+#include <cert-svc/ccrl.h>
+#include <cert-svc/cocsp.h>
+#include <cert-svc/cpkcs12.h>
+
+#include "mgr-app-uigadget.h"
+#include "dlog.h"
+#include "certificates/certificate_util.h"
+#include "certificates/certificates.h"
+
+#define CERT_GENLIST_1TEXT1EDIT_STYLE "dialogue/1text.1icon.5"
+#define CERT_GENLIST_TITLE_STYLE "dialogue/title"
+
+static const char* const align_begin = "<align=center>";
+static const char* const align_end = "</align>";
+
+static void _info_pop_response_no_cb(void *data, Evas_Object *obj, void *event_info) {
+
+ struct ug_data *ad = get_ug_data();
+ evas_object_del(ad->popup);
+}
+
+static void _info_pop_response_yes_cb(void *data, Evas_Object *obj, void *event_info) {
+
+ enum TypeOfCert typeOfCert = (enum TypeOfCert) data;
+ struct ug_data *ad = get_ug_data();
+ if (PKCS12 == typeOfCert){
+ pfx_cert_install_cb(ad, NULL, NULL);
+ }
+ else {
+ user_search_cert_cb(ad, NULL, NULL);
+ }
+ evas_object_del(ad->popup);
+}
+
+static void _info_pop_response_ok_cb(void *data, Evas_Object *obj, void *event_info) {
+
+ if (NULL == data) {
+ return;
+ }
+ Evas_Object *pop = (Evas_Object *) data;
+ evas_object_del(pop);
+}
+
+void list_clicked_cb(void *data, Evas_Object *obj, void *event_info) {
+ Elm_Object_Item *it = (Elm_Object_Item *) elm_list_selected_item_get(obj);
+ if (it == NULL)
+ return;
+
+ elm_list_item_selected_set(it, EINA_FALSE);
+}
+
+void genlist_clicked_cb(void *data, Evas_Object *obj, void *event_info) {
+ Elm_Object_Item *it = (Elm_Object_Item *) elm_genlist_selected_item_get(obj);
+ if (it == NULL)
+ return;
+
+ elm_genlist_item_selected_set(it, EINA_FALSE);
+}
+
+//create yes/no popup
+Evas_Object *create_yes_no_pop(struct ug_data *ad, const char *content, enum TypeOfCert typeOfCert) {
+
+ if (NULL == ad){
+ return NULL;
+ }
+
+ ad->popup = elm_popup_add(ad->navi_bar);
+ if (NULL == ad->popup){
+ return NULL;
+ }
+
+ char *text = NULL;
+ int i = 0;
+ int j = 0;
+ text = malloc ( ( strlen(content) + strlen(align_begin) + strlen(align_end) + 1 ) * sizeof(char));
+ for (i=0; i<strlen(align_begin); ++i) {
+ text[j] = align_begin[i];
+ ++j;
+ }
+ for (i=0; i<strlen(content); ++i) {
+ text[j] = content[i];
+ ++j;
+ }
+ for (i=0; i<strlen(align_end); ++i) {
+ text[j] = align_end[i];
+ ++j;
+ }
+ text[j] = 0;
+
+ evas_object_size_hint_weight_set(ad->popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+ //yes button
+ Evas_Object *btn_yes = elm_button_add(ad->popup);
+ elm_object_text_set(btn_yes, dgettext(PACKAGE, "IDS_ST_BUTTON_YES"));
+ evas_object_smart_callback_add(btn_yes, "clicked", _info_pop_response_yes_cb, (void *) typeOfCert);
+
+ //no button
+ Evas_Object *btn_no = elm_button_add(ad->popup);
+ elm_object_text_set(btn_no, dgettext(PACKAGE, "IDS_ST_BUTTON_NO"));
+ evas_object_smart_callback_add(btn_no, "clicked", _info_pop_response_no_cb, NULL);
+
+ elm_object_text_set(ad->popup, text);
+ free(text);
+
+ elm_object_part_content_set(ad->popup, "button1", btn_yes);
+ elm_object_part_content_set(ad->popup, "button2", btn_no);
+
+ evas_object_show(ad->popup);
+
+ return ad->popup;
+}
+
+void install_button_cb(void *data, Evas_Object *obj, void *event_info) {
+ LOGD("install_button_cb()");
+ enum TypeOfCert typeOfCert = (enum TypeOfCert) data;
+ struct ug_data *ad = get_ug_data();
+ create_yes_no_pop(ad, dgettext(PACKAGE, "IDS_ST_BODY_INSTALL_CERTIFICATES_FROM_SD_CARD_Q"), typeOfCert);
+}
+
+Evas_Object *create_ok_pop(struct ug_data *ad, const char *content) {
+
+ if (NULL == ad) {
+ return NULL;
+ }
+
+ ad->popup = elm_popup_add(ad->navi_bar);
+ if (NULL == ad->popup) {
+ return NULL;
+ }
+
+ char *text = NULL;
+ int i = 0;
+ int j = 0;
+ text = malloc((strlen(content) + strlen(align_begin) + strlen(align_end) + 1) * sizeof(char));
+ for (i = 0; i < strlen(align_begin); ++i) {
+ text[j] = align_begin[i];
+ ++j;
+ }
+ for (i = 0; i < strlen(content); ++i) {
+ text[j] = content[i];
+ ++j;
+ }
+ for (i = 0; i < strlen(align_end); ++i) {
+ text[j] = align_end[i];
+ ++j;
+ }
+ text[j] = 0;
+
+ evas_object_size_hint_weight_set(ad->popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+ //ok button
+ Evas_Object *btn_ok = elm_button_add(ad->popup);
+ elm_object_text_set(btn_ok, dgettext(PACKAGE, "IDS_ST_SK2_OK"));
+ evas_object_smart_callback_add(btn_ok, "clicked", _info_pop_response_ok_cb, ad->popup);
+
+ elm_object_text_set(ad->popup, text);
+ free(text);
+
+ elm_object_part_content_set(ad->popup, "button1", btn_ok);
+
+ evas_object_show(ad->popup);
+
+ return ad->popup;
+}
+
+char *path_cat(const char *str1, char *str2) {
+ size_t str1_len = strlen(str1);
+ char *result = NULL;
+ int as_result;
+ if (str1[str1_len - 1] != '/') {
+ as_result = asprintf(&result, "%s/%s", str1, str2);
+ } else {
+ as_result = asprintf(&result, "%s%s", str1, str2);
+ }
+
+ if (as_result >= 0)
+ return result;
+ else
+ return NULL;
+}
+
+// extract title from certificate ------------------
+char *extractDataFromCert(char *path) {
+
+ struct ug_data *ad = get_ug_data();
+
+ CertSvcCertificate cert;
+ CertSvcString buffer;
+ char *char_buffer;
+
+ if (CERTSVC_SUCCESS != certsvc_certificate_new_from_file(ad->instance, path, &cert)) {
+ LOGD("certsvc_certificate_new_from_file returned not CERTSVC_SUCCESS");
+ return NULL;
+ }
+
+ if (CERTSVC_SUCCESS != certsvc_certificate_get_string_field(cert, CERTSVC_SUBJECT_COMMON_NAME, &buffer)) {
+ LOGD("certsvc_certificate_get_string_field returned not CERTSVC_SUCCESS");
+ return NULL;
+ }
+ char_buffer = strndup(buffer.privateHandler, buffer.privateLength);
+ LOGD("char_buffer : %s", char_buffer);
+
+ certsvc_string_free(buffer);
+ certsvc_certificate_free(cert);
+
+ return char_buffer;
+}
+
+// List --------------------------------------------------------
+
+struct ListElement* nextElement(struct ListElement *listElement) {
+ if (listElement == NULL)
+ return NULL;
+
+ return listElement->next;
+}
+
+struct ListElement * initList() {
+
+ LOGD("initList()");
+ struct ListElement *firstListElement = (struct ListElement*) malloc(sizeof(struct ListElement));
+ if (firstListElement == NULL)
+ return NULL;
+
+ firstListElement->prev = NULL;
+ firstListElement->next = NULL;
+
+ firstListElement->name = NULL;
+ firstListElement->title = NULL;
+ firstListElement->path = NULL;
+
+ firstListElement->it = NULL;
+ firstListElement->isChecked = EINA_FALSE;
+
+ return firstListElement;
+}
+
+struct ListElement* addListElement(struct ListElement* lastListElement, const char *name) {
+
+ if (NULL == lastListElement) {
+ return NULL;
+ }
+ struct ListElement *newListElement = (struct ListElement*) malloc(sizeof(struct ListElement));
+ if (newListElement == NULL)
+ return NULL;
+
+ LOGD("name %s", name);
+ newListElement->name = malloc((strlen(name) + 1) * sizeof(char));
+ if (NULL == newListElement->name) {
+ free(newListElement);
+ return NULL;
+ }
+ strncpy(newListElement->name, name, strlen(name) + 1);
+ LOGD("name %s", newListElement->name);
+
+ newListElement->title = NULL;
+ newListElement->path = NULL;
+
+ lastListElement->next = newListElement;
+ newListElement->prev = lastListElement;
+ newListElement->next = NULL;
+
+ newListElement->it = NULL;
+ newListElement->isChecked = EINA_FALSE;
+
+ return newListElement;
+}
+
+struct ListElement* addListElementWithTitle(struct ListElement* lastListElement, const char *name, const char *title) {
+
+ struct ListElement *newListElement = addListElement(lastListElement, name);
+ if(NULL == newListElement){
+ return NULL;
+ }
+
+ newListElement->title = malloc((strlen(title)+1) * sizeof(char));
+ if(NULL == newListElement->title){
+ free(newListElement->name);
+ free(newListElement);
+ return NULL;
+ }
+
+ strncpy(newListElement->title, title, strlen(title)+1);
+
+ lastListElement->next = newListElement;
+ newListElement->prev = lastListElement;
+ newListElement->next = NULL;
+
+ newListElement->it = NULL;
+ newListElement->isChecked = EINA_FALSE;
+
+ return newListElement;
+}
+
+struct ListElement* addListElementWithPath(struct ListElement* lastListElement, const char *name, const char *path) {
+
+ struct ListElement *newListElement = addListElement(lastListElement, name);
+ if (NULL == newListElement) {
+ return NULL;
+ }
+
+ newListElement->path = malloc((strlen(path)+1) * sizeof(char));
+ if (NULL == newListElement->path) {
+ free(newListElement->name);
+ free(newListElement);
+ return NULL;
+ }
+
+ strncpy(newListElement->path, path, strlen(path)+1);
+
+ lastListElement->next = newListElement;
+ newListElement->prev = lastListElement;
+ newListElement->next = NULL;
+
+ newListElement->it = NULL;
+ newListElement->isChecked = EINA_FALSE;
+
+ return newListElement;
+}
+
+struct ListElement* addListElementWithPathAndTitle(struct ListElement* lastListElement, const char *name, const char *path, const char *title) {
+
+ struct ListElement *newListElement = addListElementWithPath(lastListElement, name, path);
+ if (NULL == newListElement) {
+ return NULL;
+ }
+
+ newListElement->title = malloc((strlen(title)+1) * sizeof(char));
+ if (NULL == newListElement->title) {
+ free(newListElement->name);
+ free(newListElement->path);
+ free(newListElement);
+ return NULL;
+ }
+
+ strncpy(newListElement->title, title, strlen(title)+1);
+
+ lastListElement->next = newListElement;
+ newListElement->prev = lastListElement;
+ newListElement->next = NULL;
+
+ newListElement->it = NULL;
+ newListElement->isChecked = EINA_FALSE;
+
+ return newListElement;
+}
+
+void freeListElement(struct ListElement *listElementToRemove){
+
+ if(NULL == listElementToRemove){
+ return;
+ }
+
+ if (NULL != listElementToRemove->name) {
+ free(listElementToRemove->name);
+ }
+
+ if (NULL != listElementToRemove->path) {
+ free(listElementToRemove->path);
+ }
+
+ if (NULL != listElementToRemove->title) {
+ free(listElementToRemove->title);
+ }
+}
+
+/*
+ * Function returns position of removed element.
+ */
+enum PositionOfElement removeListElement(struct ListElement *listElementToRemove) {
+
+ if (listElementToRemove == NULL)
+ return NONE;
+
+ struct ListElement* prev;
+ struct ListElement* next;
+
+ if (listElementToRemove->prev != NULL && listElementToRemove->next != NULL) {
+ prev = listElementToRemove->prev;
+ next = listElementToRemove->next;
+ prev->next = next;
+ next->prev = prev;
+ freeListElement(listElementToRemove);
+ return IN_THE_MIDDLE;
+ } else if (listElementToRemove->prev != NULL && listElementToRemove->next == NULL) {
+ prev = listElementToRemove->prev;
+ prev->next = NULL;
+ freeListElement(listElementToRemove);
+ return LAST;
+ } else if (listElementToRemove->prev == NULL && listElementToRemove->next != NULL) {
+ next = listElementToRemove->next;
+ next->prev = NULL;
+ freeListElement(listElementToRemove);
+ return FIRST;
+ } else if (listElementToRemove->prev == NULL && listElementToRemove->next == NULL) {
+ freeListElement(listElementToRemove);
+ return THE_LAST_ONE;
+ }
+
+ return NONE;
+}
+
+/*
+ * To find last element of the list put as a parameter any element of this list
+ */
+struct ListElement * findLastElement(struct ListElement* listElement) {
+ struct ListElement *lastListElement = listElement;
+ while (lastListElement->next != NULL) {
+ lastListElement = lastListElement->next;
+ }
+ return lastListElement;
+}
+
+/*
+ * To find first element of the list put as a parameter any element of this list
+ */
+struct ListElement * findFirstElement(struct ListElement* listElement) {
+ LOGD("findFirstElement");
+ struct ListElement *firsListElement = listElement;
+ while (firsListElement->prev != NULL) {
+ firsListElement = firsListElement->prev;
+ }
+ return firsListElement;
+}
+
+/*
+ * After this is done you have to call initList(...) to use the list again;
+ */
+void deleteList(struct ListElement* listElement) {
+ LOGD("deleteList");
+ if (listElement == NULL)
+ return;
+ listElement = findFirstElement(listElement);
+ struct ListElement *current, *tmp;
+ current = listElement;
+ int count = 0;
+ while (current != NULL) {
+ tmp = current->next;
+ freeListElement(current);
+ current = tmp;
+ count++;
+ }
+ LOGD("Removed %d elements", count);
+}
+// ------------------------------------------------
+
+void back_cb(void *data, Evas_Object *obj, void *event_info) {
+ LOGD("back_cb");
+ struct ug_data *ad = (struct ug_data *) data;
+
+ deleteList(ad->list_element);
+ ad->list_element = NULL;
+}
+
+void back_install_cb(void *data, Evas_Object *obj, void *event_info) {
+ LOGD("back_install_cb");
+ struct ug_data *ad = (struct ug_data *) data;
+
+ deleteList(ad->list_element_install);
+ ad->list_element_install = NULL;
+}
+
+Eina_Bool make_list(struct ug_data *ad, Evas_Object *list, const char *dir_path, struct ListElement *lastListElement, enum TypeOfCert type) {
+
+ LOGD("make_list()");
+ DIR *dir;
+ struct dirent *dp;
+ struct ListElement *current;
+ Elm_Object_Item *it;
+ char *title = NULL;
+ Eina_Bool no_content_bool = EINA_TRUE;
+
+ /* ---------------------------------------------------
+ * Checking for files (certificates) in dir_path
+ */
+ dir = opendir(dir_path);
+ if (dir == NULL) {
+ LOGE("There's no such directory: %s", dir_path);
+ return no_content_bool;
+ }
+ LOGD("Scanning dir (%s) - looking for certs", dir_path);
+ while ((dp = readdir(dir)) != NULL) {
+ char *tmp = NULL;
+ tmp = path_cat(dir_path, dp->d_name);
+ if (strncmp(dp->d_name, "..", 2) != 0 && strncmp(dp->d_name, ".", 1) != 0 && !(dp->d_type == DT_DIR)) {
+
+ title = extractDataFromCert(tmp);
+ if (!title) {
+ free(tmp);
+ tmp = NULL;
+ LOGD("Extract data returned NULL pointer");
+ continue;
+ } else {
+ LOGD("title = \"%s\"", title);
+ LOGD("name = %s", dp->d_name);
+ no_content_bool = EINA_FALSE;
+
+ current = addListElementWithPathAndTitle(lastListElement, dp->d_name, dir_path, title);
+ lastListElement = current;
+
+ switch (type) {
+
+ case TO_INSTALL:
+ if (strlen(title) < 1){
+ // if Common name of cert is empty print the name of file instead.
+ it = elm_list_item_append(list, dp->d_name, NULL, NULL, install_cb, current);
+ if (!it){
+ LOGE("Error in elm_list_item_append");
+ }
+ }
+ else {
+ it = elm_list_item_append(list, title, NULL, NULL, install_cb, current);
+ if (!it){
+ LOGE("Error in elm_list_item_append");
+ }
+ }
+ break;
+
+ case TO_UNINSTALL: // in this case item isn't append to the list, because "uninstall" use-case uses more complex genlist
+ break;
+
+ default:
+ LOGD("strlen(title) = %d", strlen(title));
+ if (strlen(title) < 1){
+ // if Common name of cert is empty print the name of file instead.
+ it = elm_list_item_append(list, dp->d_name, NULL, NULL, cert_selection_cb, current);
+ if (!it){
+ LOGE("Error in elm_list_item_append");
+ }
+ } else {
+ it = elm_list_item_append(list, title, NULL, NULL, cert_selection_cb, current);
+ if (!it){
+ LOGE("Error in elm_list_item_append");
+ }
+ }
+ break;
+ }
+ LOGD("elm list append = %s", current->name);
+
+ free(title);
+ title = NULL;
+ }
+ }
+ if (tmp)
+ free(tmp);
+ }
+ closedir(dir);
+ dir = NULL;
+
+ return no_content_bool;
+}
+
+Evas_Object *create_no_content_layout (struct ug_data *ad) {
+
+ if(NULL == ad){
+ return NULL;
+ }
+ Evas_Object *no_content = elm_layout_add(ad->win_main);
+ if(NULL == no_content){
+ return NULL;
+ }
+ elm_layout_theme_set(no_content, "layout", "nocontents", "text");
+ elm_object_part_text_set(no_content, "elm.text", dgettext(PACKAGE, "IDS_ST_BODY_NO_CONTENT"));
+ evas_object_size_hint_weight_set(no_content, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_show(no_content);
+ return no_content;
+}
+
+void cert_selection_cb(void *data, Evas_Object *obj, void *event_info) {
+
+ LOGD("cert_selection_cb ()");
+ if (NULL == data){
+ return;
+ }
+ struct ListElement *current = (struct ListElement *) data;
+ char *path = path_cat(current->path, current->name);
+ LOGD("cert_path = %s", path);
+
+ Elm_Object_Item *it = (Elm_Object_Item *) elm_list_selected_item_get(obj);
+ if (it == NULL){
+ free(path);
+ return;
+ }
+ elm_list_item_selected_set(it, EINA_FALSE);
+
+ struct ug_data *ad = get_ug_data();
+ ad->data = (void *) strdup(path);
+
+ get_info_cert_from_file_cb(ad);
+
+ free(path);
+}
+
+void refresh_list(struct ug_data *ad) {
+
+ LOGD("refresh_list");
+
+ switch (ad->type_of_screen) {
+
+ case TRUSTED_ROOT_SCREEN:
+ trusted_root_cert_create_list(ad);
+ break;
+
+ case USER_SCREEN:
+ user_cert_create_list(ad);
+ break;
+
+ default:
+ break;
+ }
+
+ return;
+}
+
+const char* get_email(CertSvcString alias) {
+ LOGD("get_email()");
+
+ struct ug_data *ad = get_ug_data();
+
+ const char *char_buffer;
+
+ CertSvcCertificateList certificateList;
+ CertSvcCertificate certificate;
+ CertSvcString email_buffer;
+ if (CERTSVC_SUCCESS != certsvc_pkcs12_load_certificate_list(
+ ad->instance,
+ alias,
+ &certificateList)) {
+ return dgettext(PACKAGE, "IDS_ST_BODY_NO_DATA");
+ }
+ if (CERTSVC_SUCCESS != certsvc_certificate_list_get_one(
+ certificateList,
+ 0,
+ &certificate)) {
+ return dgettext(PACKAGE, "IDS_ST_BODY_NO_DATA");
+ }
+ if (CERTSVC_SUCCESS != certsvc_certificate_get_string_field(
+ certificate,
+ CERTSVC_SUBJECT_EMAIL_ADDRESS,
+ &email_buffer)) {
+ return dgettext(PACKAGE, "IDS_ST_BODY_NO_DATA");
+ }
+ certsvc_string_to_cstring(email_buffer, &char_buffer, NULL);
+ LOGD("get_email - return %s", char_buffer);
+ if(NULL == char_buffer){
+ LOGD("email is NULL; return NO_DATA");
+ return dgettext(PACKAGE, "IDS_ST_BODY_NO_DATA");
+ }
+ return char_buffer;
+}
--- /dev/null
+/**
+ * Copyright (c) 2012 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * @file certificates_menu.c
+ * @author Janusz Kozerski (j.kozerski@samsung.com)
+ * @version 1.0
+ * @brief
+ */
+
+#include <cert-svc/cinstance.h>
+#include <dlog.h>
+
+#include "certificates/certificate_util.h"
+#include "certificates/certificates.h"
+
+static void _quit_cb(void *data, Evas_Object* obj, void* event_info) {
+ //---------------------------
+ struct ug_data *ad = (struct ug_data*) data;
+
+ certsvc_instance_free(ad->instance);
+
+ /* bg must delete before starting on_destroy */
+ evas_object_del(ad->bg);
+ ad->bg = NULL;
+ ug_destroy_me(ad->ug);
+ //---------------------------
+}
+
+void certificates_menu_cb(void *data, Evas_Object *obj, void *event_info) {
+ struct ug_data *ad = (struct ug_data*) data;
+
+ Evas_Object *list = NULL;
+ Evas_Object *layout = NULL;
+ Evas_Object *back = NULL;
+
+ layout = elm_layout_add(ad->win_main);
+ if (!layout)
+ return;
+
+ if (certsvc_instance_new(&(ad->instance)) == CERTSVC_FAIL) {
+ LOGD("certsvc_instance_new returned CERTSVC_FAIL");
+ return;
+ }
+ ad->list_element = NULL;
+ ad->type_of_screen = NONE_SCREEN;
+
+ list = elm_list_add(layout);
+ elm_list_mode_set(list, ELM_LIST_COMPRESS);
+
+ evas_object_smart_callback_add(list, "selected", list_clicked_cb, NULL);
+
+ elm_list_item_append(list, dgettext(PACKAGE, "IDS_ST_BODY_TRUSTED_ROOT_CERTIFICATES"), NULL, NULL, trusted_root_cert_cb, ad);
+ elm_list_item_append(list, dgettext(PACKAGE, "IDS_ST_BODY_EXTERNAL_CERTIFICATES"), NULL, NULL, user_cert_cb, ad);
+ elm_list_item_append(list, dgettext(PACKAGE, "IDS_ST_BODY_USER_CERTIFICATES"), NULL, NULL, pfx_cert_cb, ad);
+
+ elm_naviframe_item_push(ad->navi_bar, dgettext(PACKAGE, "IDS_ST_BODY_CERTIFICATES"), NULL, NULL, list, NULL);
+
+ Elm_Object_Item *navi_it = NULL;
+ navi_it = elm_naviframe_item_push(ad->navi_bar, dgettext(PACKAGE, "IDS_ST_BODY_CERTIFICATES"), NULL, NULL, list,
+ NULL);
+
+ back = elm_object_item_part_content_get(navi_it, "prev_btn");
+ evas_object_smart_callback_add(back, "clicked", _quit_cb, ad);
+}
--- /dev/null
+/**
+ * Copyright (c) 2012 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * @file detail_info_cert.c
+ * @author Janusz Kozerski (j.kozerski@samsung.com)
+ * @version 1.0
+ * @brief
+ */
+
+#include <dlog.h>
+
+#include <cert-svc/ccert.h>
+#include <cert-svc/cinstance.h>
+#include <cert-svc/cstring.h>
+#include <cert-svc/ccrl.h>
+#include <cert-svc/cocsp.h>
+
+#include "certificates/certificate_util.h"
+#include "certificates/certificates.h"
+
+static char* format_key (char *key);
+static void _back_cb(void *data, Evas_Object* obj, void* event_info);
+
+static char *Cert_Data_Field[12];
+static char *Cert_Data[12];
+
+/*
+ * This function fill Cert_Data_Field with proper text.
+ * These texts are labels to certificate details
+ */
+static void fillCertDataField() {
+ int i = 0;
+ while (i < 12) {
+ switch (i) {
+ case 0:
+ Cert_Data_Field[i] = dgettext(PACKAGE, "IDS_ST_BODY_COMMON_NAME_C");
+ break;
+
+ case 1:
+ Cert_Data_Field[i] = dgettext(PACKAGE, "IDS_ST_BODY_ORGANISATION_C");
+ break;
+
+ case 2:
+ Cert_Data_Field[i] = dgettext(PACKAGE, "IDS_ST_BODY_COMMON_NAME_C");
+ break;
+
+ case 3:
+ Cert_Data_Field[i] = dgettext(PACKAGE, "IDS_ST_BODY_ORGANISATION_C");
+ break;
+
+ case 4:
+ Cert_Data_Field[i] = dgettext(PACKAGE, "IDS_ST_BODY_VERSION_C");
+ break;
+
+ case 5:
+ Cert_Data_Field[i] = dgettext(PACKAGE, "IDS_ST_BODY_VALID_FROM_C");
+ break;
+
+ case 6:
+ Cert_Data_Field[i] = dgettext(PACKAGE, "IDS_ST_BODY_VALID_TO_C");
+ break;
+
+ case 7:
+ Cert_Data_Field[i] = dgettext(PACKAGE, "IDS_ST_BODY_SERIAL_NUMBER_C");
+ break;
+
+ case 8:
+ Cert_Data_Field[i] = dgettext(PACKAGE, "IDS_ST_BODY_SIGNATURE_ALGORITHM_C");
+ break;
+
+ case 9:
+ Cert_Data_Field[i] = dgettext(PACKAGE, "IDS_ST_BODY_KEY_USAGE_C");
+ break;
+
+ case 10:
+ Cert_Data_Field[i] = dgettext(PACKAGE, "IDS_ST_BODY_CERTIFICATION_AUTHORITY_C");
+ break;
+
+ case 11:
+ Cert_Data_Field[i] = dgettext(PACKAGE, "IDS_ST_BODY_PUBLIC_KEY_C");
+ break;
+ }
+ i++;
+ }
+}
+
+static void put_no_data_text_if_empty(char **text){
+ if ( NULL == text )
+ return;
+ if ( NULL == *text )
+ return;
+ if ( strlen(*text)<1 ){
+ free(*text);
+ *text = strdup(dgettext(PACKAGE, "IDS_ST_BODY_NO_DATA"));
+ }
+}
+
+static char *getInfoFromCert(CertSvcCertificate cert, CertSvcCertificateField field, char **buffer){
+
+ CertSvcString certSvcString_buffer;
+ const char* certSvc_buffer;
+ int len;
+
+ certsvc_certificate_get_string_field(cert, field, &certSvcString_buffer);
+ certsvc_string_to_cstring(certSvcString_buffer, &certSvc_buffer, &len);
+ *buffer = strndup(certSvc_buffer, len);
+ certsvc_string_free(certSvcString_buffer);
+ LOGD("Cert string field: %s", *buffer);
+
+ return *buffer;
+}
+
+static int fillCertData(CertSvcCertificate cert) {
+ LOGD("fillCertData");
+
+ char *empty = dgettext(PACKAGE, "IDS_ST_BODY_NO_DATA");
+ time_t time;
+ int status;
+ CertSvcString buffer;
+ char *char_buffer;
+
+ //---- SUBJECT COMMON NAME ----
+ if (!getInfoFromCert(cert, CERTSVC_SUBJECT_COMMON_NAME, &Cert_Data[0])) {
+ certsvc_certificate_free(cert);
+ return -1;
+ }
+ put_no_data_text_if_empty(&Cert_Data[0]);
+
+ //---- SUBJECT ORGANIZATION NAME ----
+ if (!getInfoFromCert(cert, CERTSVC_SUBJECT_ORGANIZATION_NAME, &Cert_Data[1])) {
+ certsvc_certificate_free(cert);
+ return -1;
+ }
+ put_no_data_text_if_empty(&Cert_Data[1]);
+
+ //---- ISSUER COMMON NAME ----
+ if (!getInfoFromCert(cert, CERTSVC_ISSUER_COMMON_NAME, &Cert_Data[2])) {
+ certsvc_certificate_free(cert);
+ return -1;
+ }
+ put_no_data_text_if_empty(&Cert_Data[2]);
+
+ //---- ISSUER ORGANIZATION NAME ----
+ if (!getInfoFromCert(cert, CERTSVC_ISSUER_ORGANIZATION_NAME, &Cert_Data[3])) {
+ certsvc_certificate_free(cert);
+ return -1;
+ }
+ put_no_data_text_if_empty(&Cert_Data[3]);
+
+ //---- VERSION ----
+ if (!getInfoFromCert(cert, CERTSVC_VERSION, &Cert_Data[4])) {
+ certsvc_certificate_free(cert);
+ return -1;
+ }
+ put_no_data_text_if_empty(&Cert_Data[4]);
+
+ //---- VALID_FROM ----
+ certsvc_certificate_get_not_before(cert, &time);
+ Cert_Data[5] = strndup(ctime(&time), strlen(ctime(&time)) - 1);
+ if (!Cert_Data[5]) {
+ certsvc_certificate_free(cert);
+ return -1;
+ }
+ LOGD("Valid from: %s", ctime(&time));
+
+ //---- VALID_TO ----
+ certsvc_certificate_get_not_after(cert, &time);
+ Cert_Data[6] = strndup(ctime(&time), strlen(ctime(&time)) - 1);
+ if (!Cert_Data[6]) {
+ certsvc_certificate_free(cert);
+ return -1;
+ }
+ LOGD("Valid to: %s", Cert_Data[6]);
+
+ //---- SERIAL NUMBER ----
+ if (!getInfoFromCert(cert, CERTSVC_SERIAL_NUMBER, &Cert_Data[7])) {
+ return -1;
+ }
+ put_no_data_text_if_empty(&Cert_Data[7]);
+
+ //---- SIGNATURE ALGORITHM ----
+ if (!getInfoFromCert(cert, CERTSVC_SIGNATURE_ALGORITHM, &Cert_Data[8])) {
+ return -1;
+ }
+
+ //---- KEY USAGE ----
+ if (!getInfoFromCert(cert, CERTSVC_KEY_USAGE, &Cert_Data[9])) {
+ return -1;
+ }
+ put_no_data_text_if_empty(&Cert_Data[9]);
+
+ //---- CA ----
+ certsvc_certificate_is_root_ca(cert, &status);
+ if (status == CERTSVC_TRUE) {
+ Cert_Data[10] = strdup(dgettext(PACKAGE, "IDS_ST_BODY_TRUE"));
+ if (!Cert_Data[10]) {
+ certsvc_certificate_free(cert);
+ return -1;
+ }
+ } else if (status == CERTSVC_FALSE) {
+ Cert_Data[10] = strdup(dgettext(PACKAGE, "IDS_ST_BODY_FALSE"));
+ if (!Cert_Data[10]) {
+ certsvc_certificate_free(cert);
+ return -1;
+ }
+ } else {
+ Cert_Data[10] = strdup(empty);
+ if (!Cert_Data[10]) {
+ certsvc_certificate_free(cert);
+ return -1;
+ }
+ }
+
+ //---- PUBLIC KEY ----
+ certsvc_certificate_get_string_field(cert, CERTSVC_KEY, &buffer);
+ char_buffer = strndup(buffer.privateHandler, buffer.privateLength);
+ LOGD("char_buffer : %s", char_buffer);
+ Cert_Data[11] = format_key(char_buffer);
+
+ certsvc_string_free(buffer);
+ free(char_buffer);
+ certsvc_certificate_free(cert);
+
+ if (!Cert_Data[11]) {
+ return -1;
+ }
+ LOGD("Public Key: %s", Cert_Data[11]);
+
+ return 0;
+}
+
+static int fillCertDataFromFile(char *path_to_cert) {
+ LOGD("fillCertDataFromFile");
+
+ struct ug_data *ad = get_ug_data();
+
+ CertSvcCertificate cert;
+ if (CERTSVC_SUCCESS != certsvc_certificate_new_from_file(ad->instance, path_to_cert, &cert)) {
+ return -1;
+ }
+
+ return fillCertData(cert);
+}
+
+static void clearCertData() {
+ int i = 0;
+ while (i < 12) {
+ if (Cert_Data[i] != NULL)
+ free(Cert_Data[i]);
+ i++;
+ }
+}
+
+static char* format_key(char *key) {
+
+ LOGD("format_key");
+ int i = 0;
+ int j = 0;
+ int len = strlen(key);
+ const char *public_key_label = "Public-Key: ";
+ char *result;
+ char *formated_key = malloc(sizeof(char) * len);
+
+ // remove whitespaces at the beginning
+ while ((i < len - 1) && (' ' == key[i])){
+ i++;
+ }
+
+ // remove the "Public-key: " string at the beginning
+ if( 0 == strncmp(public_key_label, &(key[i]), strlen(public_key_label)) ){
+ i += strlen(public_key_label);
+ }
+
+ while (i < len - 1) {
+ if (key[i] == ':' && key[i + 1] == '\n') {
+ formated_key[j] = key[i];
+ i += 2;
+ j += 1;
+ } else if (key[i] == ' ' && key[i + 1] == ' ') {
+ i += 2;
+ } else {
+ formated_key[j] = key[i];
+ i++;
+ j++;
+ }
+ if (key[i] == 'E' || key[i] == 'M') {
+ formated_key[j] = '<';
+ j++;
+ formated_key[j] = 'b';
+ j++;
+ formated_key[j] = 'r';
+ j++;
+ formated_key[j] = '>';
+ j++;
+ }
+ }
+ if (i < len && key[i] != '\n') {
+ formated_key[j] = key[i];
+ i++;
+ j++;
+ }
+ result = strndup(formated_key, j);
+ free(formated_key);
+ return result;
+}
+
+static char* _gl_get_text(void *data, Evas_Object *obj, const char *part) {
+
+ int index = (int) data;
+ if (index > 11 || index < 0) {
+ LOGD("Wrong *index - return NULL");
+ return NULL;
+ }
+ if (!strcmp(part, "elm.text.1") || !strcmp(part, "elm.text")) {
+ LOGD("%s", Cert_Data[index]);
+ return strdup(Cert_Data_Field[index]);
+
+ } else if (!strcmp(part, "elm.text.2")) {
+ LOGD("%s", Cert_Data_Field[index]);
+ return strdup(Cert_Data[index]);
+ }
+ return NULL;
+}
+
+static char* _gl_get_text_multiline(void *data, Evas_Object *obj, const char *part) {
+
+ int index = (int) data;
+ if (index > 11 || index < 0) {
+ LOGD("Wrong *index - return NULL");
+ return NULL;
+ }
+
+ if (!strcmp(part, "elm.text.1") || !strcmp(part, "elm.text")) {
+ return strdup(Cert_Data_Field[index]);
+ }
+ else if (!strcmp(part, "elm.text.2")){
+ LOGD("%s", Cert_Data[index]);
+ return strdup(Cert_Data[index]);
+ }
+ return NULL;
+}
+
+static char* _gl_get_text_group(void *data, Evas_Object *obj, const char *part) {
+
+ int index = (int) data;
+ if (index == 0) {
+ LOGD("OWNER");
+ return strdup(dgettext(PACKAGE, "IDS_ST_BODY_OWNER_C"));
+ }
+ if (index == 1) {
+ LOGD("ISSUER");
+ return strdup(dgettext(PACKAGE, "IDS_ST_BODY_ISSUER_COLON"));
+ }
+ if (index == 2) {
+ LOGD("DATA");
+ return strdup(dgettext(PACKAGE, "IDS_ST_BODY_CERTIFICATE_INFORMATION"));
+ }
+
+ else
+ LOGD("Wrong *index - return NULL");
+
+ return NULL;
+}
+
+static Elm_Genlist_Item_Class itc_group = {
+ .item_style = "dialogue/grouptitle",
+ .func.text_get = _gl_get_text_group,
+ .func.content_get = NULL,
+ .func.state_get = NULL,
+ .func.del = NULL
+};
+
+static Elm_Genlist_Item_Class itc_2text = {
+ .item_style = "multiline/2text",
+ .func.text_get = _gl_get_text,
+ .func.content_get = NULL,
+ .func.state_get = NULL,
+ .func.del = NULL
+};
+
+static Elm_Genlist_Item_Class itc_2text_multiline = {
+ .item_style = "multiline/2text",
+ .func.text_get = _gl_get_text_multiline,
+ .func.content_get = NULL,
+ .func.state_get = NULL,
+ .func.del = NULL
+};
+
+void show_detail_info() {
+
+ LOGD("show_detail_info()");
+ struct ug_data *ad = get_ug_data();
+
+ Evas_Object *genlist = NULL;
+ Evas_Object *back = NULL;
+
+ genlist = elm_genlist_add(ad->win_main);
+ elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
+ evas_object_smart_callback_add(genlist, "selected", genlist_clicked_cb, NULL);
+
+ Elm_Object_Item * it;
+ int i = 0;
+ while (i < 12) {
+ if (i == 0) { // Adding label "Owner"
+ it = elm_genlist_item_append(genlist, &itc_group, (void *) 0, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
+ elm_genlist_item_select_mode_set(it, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+ }
+ if (i == 2) { // Adding label "Issuer"
+ it = elm_genlist_item_append(genlist, &itc_group, (void *) 1, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
+ elm_genlist_item_select_mode_set(it, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+ }
+ if (i == 4) { // Adding label "Certificate data"
+ it = elm_genlist_item_append(genlist, &itc_group, (void *) 2, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
+ elm_genlist_item_select_mode_set(it, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+ }
+
+ LOGD("Try to append %d genlist item...", i);
+
+ if (i == 11) {
+ it = elm_genlist_item_append(genlist, &itc_2text_multiline, (void*) i, NULL, ELM_GENLIST_ITEM_NONE, NULL,
+ NULL);
+ } else {
+ it = elm_genlist_item_append(genlist, &itc_2text, (void*) i, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
+ }
+ elm_genlist_item_select_mode_set(it, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+ LOGD("Succesful append %d genlist", i);
+ i += 1;
+ }
+
+ LOGD("Push genlist");
+ Elm_Object_Item *navi_it = NULL;
+ navi_it = elm_naviframe_item_push(ad->navi_bar, dgettext(PACKAGE, "IDS_ST_BODY_CERTIFICATE_DETAILS"), NULL, NULL, genlist,
+ NULL);
+
+ LOGD("Setup callback for back button");
+ back = elm_object_item_part_content_get(navi_it, "prev_btn");
+ evas_object_smart_callback_add(back, "clicked", _back_cb, ad);
+}
+
+void get_info_cert_from_file_cb(struct ug_data *ad) {
+
+ LOGD("get_info_cert_from_file_cb()");
+
+ if (ad->data == NULL) {
+ LOGD("ad->data is NULL; return");
+ return;
+ }
+ fillCertDataField();
+ if(NULL == ad->data){
+ return;
+ }
+ char *cert_path = (char *) ad->data;
+ LOGD("cert_path = %s", cert_path);
+
+ LOGD("filling cert data...");
+ if (fillCertDataFromFile(cert_path)) {
+ LOGD("Error in fillCertDataFromFile( %s )", cert_path);
+ LOGD("EXIT");
+ return;
+ }
+
+ show_detail_info();
+
+ free(ad->data);
+ ad->data = NULL;
+}
+
+void get_info_cert_from_certificate_cb(CertSvcCertificate cert) {
+
+ LOGD("get_info_cert_from_certificate_cb()");
+
+ fillCertDataField();
+
+ LOGD("filling cert data...");
+ if (fillCertData(cert)) {
+ LOGD("Error in fillCertData");
+ LOGD("EXIT");
+ return;
+ }
+
+ show_detail_info();
+}
+
+static void _back_cb(void *data, Evas_Object* obj, void* event_info) {
+
+ clearCertData();
+}
--- /dev/null
+/**
+ * Copyright (c) 2012 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * @file pfx_cert.c
+ * @author Janusz Kozerski (j.kozerski@samsung.com)
+ * @version 1.0
+ * @brief
+ */
+
+#include <dlog.h>
+
+#include <cert-svc/ccert.h>
+#include <cert-svc/cinstance.h>
+#include <cert-svc/ccrl.h>
+#include <cert-svc/cocsp.h>
+#include <cert-svc/cpkcs12.h>
+#include <cert-svc/cstring.h>
+
+#include "certificates/certificate_util.h"
+#include "certificates/certificates.h"
+
+#include <dirent.h>
+
+static CertSvcStringList stringList;
+static char **alias_list = NULL;
+static char **email_list = NULL;
+static int max_length = 0;
+
+static char *_gl_text_get(void *data, Evas_Object *obj, const char *part);
+
+void clear_pfx_genlist_data(){
+
+ LOGD("clear_pfx_genlist_data()");
+ int i;
+ if(1 > max_length){
+ alias_list = NULL;
+ email_list = NULL;
+ return;
+ }
+ if (NULL != alias_list) {
+ for (i = 0; i < max_length; ++i) {
+ free (alias_list[i]);
+ }
+ free(alias_list);
+ alias_list = NULL;
+ }
+
+ if (NULL != email_list) {
+ for (i = 0; i < max_length; ++i) {
+ free (email_list[i]);
+ }
+ free(email_list);
+ email_list = NULL;
+ }
+ max_length = 0;
+}
+
+static Elm_Genlist_Item_Class itc_2text = {
+ .item_style = "2text.2",
+ .func.text_get = _gl_text_get,
+ .func.del = NULL
+};
+
+static char *_gl_text_get(void *data, Evas_Object *obj, const char *part) {
+
+ int index = (int) data;
+ if(max_length <= index || 0 > index){
+ return NULL;
+ }
+ if (!strcmp(part, "elm.text.1") || !strcmp(part, "elm.text")) {
+ return strdup(alias_list[index]);
+ } else if (!strcmp(part, "elm.text.2")) {
+ return strdup(email_list[index]);
+ }
+ return NULL;
+}
+
+static void back_pfx_cb(void *data, Evas_Object *obj, void *event_info){
+ clear_pfx_genlist_data();
+}
+
+static void pfx_selection_cb(void *data, Evas_Object *obj, void *event_info) {
+
+ LOGD("pfx_selection_cb()");
+
+ int index = (int) data;
+ struct ug_data *ad = get_ug_data();
+
+ Elm_Object_Item *it = (Elm_Object_Item *) elm_genlist_selected_item_get(obj);
+ if (NULL == it){
+ LOGD("it is NULL; return;");
+ return;
+ }
+ elm_genlist_item_selected_set(it, EINA_FALSE);
+
+ int certListlength = 0;
+ int returned;
+ CertSvcCertificateList certList;
+ CertSvcCertificate cert;
+ CertSvcString buffer;
+
+ if (CERTSVC_SUCCESS != certsvc_string_list_get_one(stringList, index, &buffer)) {
+ LOGD("certsvc_string_list_get_one returned not CERTSVC_SUCCESS");
+ return;
+ }
+ LOGD("alias == %s", buffer);
+
+ returned = certsvc_pkcs12_load_certificate_list(ad->instance, buffer, &certList);
+ if(CERTSVC_SUCCESS == returned) {
+ LOGD("certsvc_pkcs12_load_certificate_list returned CERTSVC_SUCCESS");
+ }
+ if (CERTSVC_BAD_ALLOC == returned) {
+ LOGD("certsvc_pkcs12_load_certificate_list returned CERTSVC_BAD_ALLOC");
+ return;
+ }
+ if (CERTSVC_FAIL == returned) {
+ LOGD("certsvc_pkcs12_load_certificate_list returned CERTSVC_FAIL");
+ return;
+ }
+ if (CERTSVC_IO_ERROR == returned) {
+ LOGD("certsvc_pkcs12_load_certificate_list returned CERTSVC_IO_ERROR");
+ return;
+ }
+
+ returned = certsvc_certificate_list_get_length(certList, &certListlength);
+ if(CERTSVC_SUCCESS == returned) {
+ LOGD("certsvc_certificate_list_get_length returned CERTSVC_SUCCESS");
+ }
+ if(CERTSVC_WRONG_ARGUMENT == returned) {
+ LOGD("certsvc_certificate_list_get_length returned CERTSVC_WRONG_ARGUMENT");
+ return;
+ }
+
+ LOGD("Certificate List Length = %d", certListlength);
+ if(certListlength<1){
+ return;
+ }
+
+ if(CERTSVC_SUCCESS != certsvc_certificate_list_get_one(certList, 0, &cert)) {
+ LOGD("certsvc_certificate_list_get_one returned not CERTSVC_SUCCESS");
+ return;
+ }
+
+ get_info_cert_from_certificate_cb(cert);
+}
+
+Eina_Bool pfx_cert_create_list(struct ug_data *ad){
+ LOGD("pfx_cert_create_list()");
+
+ int result;
+ Eina_Bool no_content = EINA_TRUE;
+
+ result = certsvc_pkcs12_get_id_list(ad->instance, &stringList);
+ if (CERTSVC_FAIL == result){
+ LOGD("certsvc_pkcs12_get_id_list returned CERTSVC_FAIL!!!");
+ return no_content;
+ }
+ else if (CERTSVC_BAD_ALLOC == result){
+ LOGD("certsvc_pkcs12_get_id_list returned CERTSVC_BAD_ALLOC!!!");
+ return no_content;
+ }
+ else if (CERTSVC_IO_ERROR == result){
+ LOGD("certsvc_pkcs12_get_id_list returned CERTSVC_IO_ERROR!!!");
+ return no_content;
+ }
+ else if (CERTSVC_SUCCESS == result){
+ LOGD("certsvc_pkcs12_get_id_list returned CERTSVC_SUCCESS");
+ }
+ else {
+ LOGD("certsvc_pkcs12_get_id_list returned %d", result);
+ }
+
+ elm_genlist_clear(ad->genlist_pfx);
+ clear_pfx_genlist_data();
+
+ int i;
+ int list_length;
+ result = certsvc_string_list_get_length(stringList, &list_length);
+ if(CERTSVC_WRONG_ARGUMENT == result){
+ LOGD("certsvc_string_list_get_length returned CERTSVC_WRONG_ARGUMENT!!!");
+ return no_content;
+ }
+ else if (CERTSVC_SUCCESS == result){
+ LOGD("certsvc_string_list_get_length returned CERTSVC_SUCCESS");
+ }
+
+ max_length = list_length;
+ if(list_length > 0 ){
+ no_content = EINA_FALSE;
+ alias_list = malloc(list_length * sizeof(char *));
+ email_list = malloc(list_length * sizeof(char *));
+ }
+
+ CertSvcString buffer;
+ const char *char_buffer;
+ for(i = 0; i < list_length; i++) {
+ if (CERTSVC_SUCCESS != certsvc_string_list_get_one(stringList, i, &buffer)) {
+ alias_list[i] = strdup("ERROR WHILE LOADING STRING");
+ email_list[i] = strdup("");
+ continue;
+ }
+ certsvc_string_to_cstring(buffer, &char_buffer, NULL);
+ alias_list[i] = strdup(char_buffer);
+ email_list[i] = strdup(get_email(buffer));
+ LOGD("%s, %s", alias_list[i], email_list[i]);
+ }
+
+ for (i = 0; i < list_length; i++) {
+ LOGD("elm_genlist_item_append: %d: %s, %s", i, alias_list[i], email_list[i]);
+ elm_genlist_item_append(ad->genlist_pfx, &itc_2text, (void*) i, NULL, ELM_GENLIST_ITEM_NONE, pfx_selection_cb, (void*) i);
+ }
+ return no_content;
+}
+
+void pfx_cert_cb(void *data, Evas_Object *obj, void *event_info) {
+ LOGD("pfx_cert_cb()");
+
+ Evas_Object *install_button;
+ Evas_Object *uninstall_button;
+
+ if(NULL == data){
+ return;
+ }
+ struct ug_data *ad = (struct ug_data *) data;
+
+ install_button = elm_button_add(ad->navi_bar);
+ if (!install_button)
+ return;
+ elm_object_text_set(install_button, dgettext(PACKAGE, "IDS_ST_BUTTON_INSTALL"));
+ elm_object_style_set(install_button, "naviframe/toolbar/left");
+ evas_object_smart_callback_add(install_button, "clicked", install_button_cb, (void *) PKCS12);
+
+ uninstall_button = elm_button_add(ad->navi_bar);
+ if (!uninstall_button)
+ return;
+ elm_object_text_set(uninstall_button, dgettext(PACKAGE, "IDS_ST_BUTTON_UNINSTALL"));
+ elm_object_style_set(uninstall_button, "naviframe/toolbar/right");
+ evas_object_smart_callback_add(uninstall_button, "clicked", pfx_cert_remove_cb, ad);
+
+ ad->genlist_pfx = elm_genlist_add(ad->win_main);
+
+ Elm_Object_Item *itm = NULL;
+ if(!pfx_cert_create_list(ad)){
+ itm = elm_naviframe_item_push(
+ ad->navi_bar,
+ dgettext(PACKAGE, "IDS_ST_BODY_USER_CERTIFICATES"),
+ NULL,
+ NULL,
+ ad->genlist_pfx,
+ NULL);
+
+ elm_object_disabled_set(uninstall_button, EINA_FALSE);
+ }
+ else { // No content
+ Evas_Object *no_content = create_no_content_layout(ad);
+
+ if(!no_content){
+ LOGD("Cannot create no_content layout (NULL); return");
+ return;
+ }
+ itm = elm_naviframe_item_push(
+ ad->navi_bar,
+ dgettext(PACKAGE, "IDS_ST_BODY_USER_CERTIFICATES"),
+ NULL,
+ NULL,
+ no_content,
+ NULL);
+
+ elm_object_disabled_set(uninstall_button, EINA_TRUE);
+ }
+
+ elm_object_item_part_content_set(itm, "toolbar_button1", install_button);
+ elm_object_item_part_content_set(itm, "toolbar_button2", uninstall_button);
+
+ Evas_Object *back = NULL;
+ back = elm_object_item_part_content_get(itm, "prev_btn");
+ evas_object_smart_callback_add(back, "clicked", back_pfx_cb, NULL);
+}
--- /dev/null
+/**
+ * Copyright (c) 2012 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * @file pfx_cert_install.c
+ * @author Janusz Kozerski (j.kozerski@samsung.com)
+ * @version 1.0
+ * @brief
+ */
+
+#include <dirent.h>
+#include <dlog.h>
+
+#include <cert-svc/cpkcs12.h>
+
+#include "certificates/certificate_util.h"
+#include "certificates/certificates.h"
+
+static void install_pfx_button_cb (void *data, Evas_Object *obj, void *event_info);
+
+static void _clear_list (struct ListElement *listElement){
+ deleteList(listElement);
+}
+
+static void _back_cb (void *data, Evas_Object *obj, void *event_info){
+
+ if(NULL == data)
+ return;
+ _clear_list((struct ListElement *) data);
+}
+
+static struct ListElement* scan_dir(const char * dir_path, Evas_Object *list, struct ListElement *lastListElement){
+
+ DIR *dir;
+ struct dirent *dp;
+ Elm_Object_Item *it;
+ struct ListElement *current;
+
+ dir = opendir(dir_path);
+ if (dir == NULL) {
+ LOGE("There's no such directory: %s", dir_path);
+ return lastListElement;
+ }
+ LOGD("Scanning dir (%s) - looking for certs", dir_path);
+ while ((dp = readdir(dir)) != NULL) {
+ char *tmp = NULL;
+ tmp = path_cat(dir_path, dp->d_name);
+ char *dot = strrchr(dp->d_name, '.');
+
+ if (dot != NULL && strlen(dot) > 3
+ && (strncmp(dot, ".pfx", 4) == 0 || strncmp(dot, ".PFX", 4) == 0 || strncmp(dot, ".p12", 4) == 0
+ || strncmp(dot, ".P12", 4) == 0)) {
+ if (!(dp->d_type == DT_DIR)) {
+ current = addListElementWithPath(lastListElement, dp->d_name, dir_path);
+ lastListElement = current;
+ it = elm_list_item_append(list, dp->d_name, NULL, NULL, install_pfx_button_cb, current);
+ if (!it){
+ LOGE("Error in elm_list_item_append");
+ }
+
+ LOGD("elm list append = %s", current->name);
+ LOGD("elm list append dir = %s", current->path);
+ }
+
+ }
+ if (tmp) {
+ free(tmp);
+ tmp = NULL;
+ }
+ }
+ closedir(dir);
+ dir = NULL;
+
+ return lastListElement;
+}
+
+void pfx_cert_install_cb(void *data, Evas_Object *obj, void *event_info) {
+ LOGD("pfx_cert_cb");
+
+ if(NULL == data){
+ return;
+ }
+ struct ug_data *ad = (struct ug_data *) data;
+ Evas_Object *list = NULL;
+
+ struct ListElement *firstListElement = initList();
+ struct ListElement *lastListElement = firstListElement;
+
+ list = elm_list_add(ad->win_main);
+ elm_list_mode_set(list, ELM_LIST_COMPRESS);
+
+ lastListElement = scan_dir(PATH_SDCARD, list, lastListElement);
+ lastListElement = scan_dir(PATH_MEDIA, list, lastListElement);
+ scan_dir(PATH_MEDIA_DOWNLOADS, list, lastListElement);
+
+ Elm_Object_Item *navi_it = NULL;
+ if(firstListElement->next) {
+ navi_it = elm_naviframe_item_push(
+ ad->navi_bar,
+ dgettext(PACKAGE, "IDS_ST_BODY_SELECT_CERTIFICATE_TO_INSTALL"),
+ NULL,
+ NULL,
+ list,
+ NULL);
+ }
+ else { //No content
+ Evas_Object *no_content = create_no_content_layout(ad);
+
+ if(!no_content){
+ LOGD("Cannot create no_content layout (NULL); return");
+ return;
+ }
+ navi_it = elm_naviframe_item_push(
+ ad->navi_bar,
+ dgettext(PACKAGE, "IDS_ST_BODY_SELECT_CERTIFICATE_TO_INSTALL"),
+ NULL,
+ NULL,
+ no_content,
+ NULL);
+ }
+
+ Evas_Object *back = elm_object_item_part_content_get(navi_it, "prev_btn");
+ evas_object_smart_callback_add(back, "clicked", _back_cb, firstListElement);
+}
+
+static void install_pfx_button_cb(void *data, Evas_Object *obj, void *event_info) {
+ LOGD("install_pfx_button_cb()");
+
+ struct ListElement *current = (struct ListElement *) data;
+ struct ug_data *ad = get_ug_data();
+ Elm_Object_Item *it = (Elm_Object_Item *) elm_list_selected_item_get(obj);
+ if (it){
+ elm_list_item_selected_set(it, EINA_FALSE);
+ }
+
+ char *path = NULL;
+ CertSvcString certSvcString_path;
+
+ path = path_cat(current->path, current->name);
+ if(!path){
+ LOGD("path_cat returned NULL; return");
+ return;
+ }
+
+ certsvc_string_new(ad->instance, path, strlen(path), &certSvcString_path);
+
+ int returned_value;
+ if(certsvc_pkcs12_has_password(ad->instance, certSvcString_path, &returned_value)
+ != CERTSVC_SUCCESS){
+ LOGD("Wrong PKCS12 or PFX file.");
+ elm_naviframe_item_pop(ad->navi_bar);
+ _clear_list(current);
+ free(path);
+ return;
+ }
+
+ switch (returned_value){
+ case CERTSVC_TRUE:
+ LOGD("%s/%s is passwod protected", current->path, current->name);
+ put_pkcs12_name_and_pass_cb(current, NULL, NULL);
+ free(path);
+ return;
+
+ case CERTSVC_FALSE:
+ LOGD("%s/%s is NOT passwod protected", current->path, current->name);
+ put_pkcs12_name_cb(current, NULL, NULL);
+ free(path);
+ return;
+ }
+ free(path);
+}
--- /dev/null
+/**
+ * Copyright (c) 2012 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * @file pfx_cert_remove.c
+ * @author Janusz Kozerski (j.kozerski@samsung.com)
+ * @version 1.0
+ * @brief
+ */
+
+#include <dlog.h>
+
+#include <cert-svc/ccert.h>
+#include <cert-svc/cinstance.h>
+#include <cert-svc/ccrl.h>
+#include <cert-svc/cocsp.h>
+#include <cert-svc/cpkcs12.h>
+#include <cert-svc/cstring.h>
+
+#include "certificates/certificate_util.h"
+#include "certificates/certificates.h"
+
+#include <dirent.h>
+
+static CertSvcStringList stringList;
+static Eina_Bool *state_pointer; //check states
+static int list_length = 0;
+static Elm_Object_Item *select_all_item = NULL;
+static Evas_Object *uninstallButton = NULL;
+
+static void uninstall_button_set () {
+
+ int i;
+ for (i = 1; i <= list_length; ++i) {
+ if (EINA_TRUE == state_pointer[i]){
+ elm_object_disabled_set(uninstallButton, EINA_FALSE);
+ return;
+ }
+ }
+ elm_object_disabled_set(uninstallButton, EINA_TRUE);
+}
+
+static void _gl_sel(void *data, Evas_Object *obj, void *event_info){
+
+ int index;
+ Elm_Object_Item *item = (Elm_Object_Item *) event_info;
+ if (item != NULL) {
+ int i;
+ index = (int) elm_object_item_data_get(item);
+ elm_genlist_item_selected_set(item, EINA_FALSE);
+ state_pointer[index] = !state_pointer[index];
+ elm_genlist_item_update(item);
+
+ // check/uncheck all check-boxes when SELECT ALL is checked
+ if (0 == index){
+ for (i = 1; i <= list_length; ++i) {
+ state_pointer[i] = state_pointer[0];
+ item = elm_genlist_item_next_get(item);
+ elm_genlist_item_update(item);
+ }
+ }
+
+ // setup UNINSTALL button
+ uninstall_button_set ();
+
+ // Uncheck SELECT ALL when at least one check-box is unselected
+ if ((state_pointer[index] == EINA_FALSE) && (state_pointer[0] == EINA_TRUE)) {
+ state_pointer[0] = EINA_FALSE;
+ elm_genlist_item_update(select_all_item);
+ }
+
+ // Check SELECT ALL when all check-boxes are selected
+ if ((state_pointer[index] == EINA_TRUE) && (state_pointer[0] == EINA_FALSE)) {
+ Eina_Bool should_select_all = EINA_TRUE;
+ for(i = 1; i <= list_length; ++i){
+ if (EINA_FALSE == state_pointer[i]){
+ should_select_all = EINA_FALSE;
+ }
+ }
+ state_pointer[0] = should_select_all;
+ elm_genlist_item_update(select_all_item);
+ }
+ }
+}
+
+static Eina_Bool _gl_state_get(void *data, Evas_Object *obj, const char *part) {
+
+ return EINA_FALSE;
+}
+
+static Evas_Object *_gl_content_get(void *data, Evas_Object *obj, const char *part) {
+ int index = (int) data;
+ Evas_Object *check;
+
+ if (!strcmp(part, "elm.icon") || !strcmp(part, "elm.swallow.icon")) {
+ check = elm_check_add(obj);
+ //set the State pointer to keep the current UI state of Checkbox.
+ elm_check_state_pointer_set(check, &(state_pointer[index]));
+
+ evas_object_size_hint_weight_set(check, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(check, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+ return check;
+ }
+
+ return NULL;
+}
+
+static char* _gl_get_text_sa(void *data, Evas_Object *obj, const char *part) {
+
+ return strdup(dgettext(PACKAGE, "IDS_ST_BODY_SELECT_ALL"));
+}
+
+static char *_gl_text_get(void *data, Evas_Object *obj, const char *part) {
+
+ int index = (int) data;
+
+ CertSvcString buffer;
+ if (certsvc_string_list_get_one(stringList, index-1, &buffer) != CERTSVC_SUCCESS) {
+ return strdup("ERROR WHILE LOADING STRING");
+ }
+ const char *char_buffer;
+ certsvc_string_to_cstring(buffer, &char_buffer, NULL);
+
+ if (!strcmp(part, "elm.text.1") || !strcmp(part, "elm.text")) {
+ return strdup(char_buffer);
+ } else if (!strcmp(part, "elm.text.2")) {
+ return strdup(get_email(buffer));
+ }
+
+ return NULL;
+}
+
+static Elm_Genlist_Item_Class itc_sa = {
+ .item_style = "1text.1icon",
+ .func.text_get = _gl_get_text_sa,
+ .func.content_get = _gl_content_get,
+ .func.state_get = NULL,
+ .func.del = NULL
+};
+
+static Elm_Genlist_Item_Class itc_2text = {
+ .item_style = "2text.1icon.2",
+ .func.text_get = _gl_text_get,
+ .func.content_get = _gl_content_get,
+ .func.state_get = _gl_state_get,
+ .func.del = NULL
+};
+
+static void genlist_pfx_delete_cb(void *data, Evas_Object *obj, void *event_info) {
+
+ LOGD("genlist_pfx_remove_cb");
+ (void)obj;
+ (void)event_info;
+
+ if(NULL == data){
+ return;
+ }
+ struct ug_data *ad = (struct ug_data *) data;
+ CertSvcString buffer;
+
+ int i;
+ if (EINA_TRUE == state_pointer[0]) {
+ for (i = 0; i < list_length; i++) {
+ if (certsvc_string_list_get_one(stringList, i, &buffer) == CERTSVC_SUCCESS) {
+ certsvc_pkcs12_delete(ad->instance, buffer);
+ LOGD("%s --- removed", buffer);
+ }
+ certsvc_string_free(buffer);
+ }
+ } else {;
+ for (i = 0; i < list_length; i++) {
+ if (EINA_TRUE == state_pointer[i+1] &&
+ certsvc_string_list_get_one(stringList, i, &buffer) == CERTSVC_SUCCESS) {
+ certsvc_pkcs12_delete(ad->instance, buffer);
+ LOGD("%s --- removed", buffer);
+ certsvc_string_free(buffer);
+ }
+ }
+ }
+ free(state_pointer);
+ elm_genlist_clear(ad->genlist_pfx);
+ clear_pfx_genlist_data();
+ elm_naviframe_item_pop(ad->navi_bar);
+ elm_naviframe_item_pop(ad->navi_bar);
+ pfx_cert_cb(ad, NULL, NULL); //TODO: This may not be the optimal solution
+ // Refactoring may be needed
+}
+
+static void genlist_pfx_cancel_cb(void *data, Evas_Object *obj, void *event_info) {
+
+ LOGD("genlist_pfx_cancel_cb");
+ (void)obj;
+ (void)event_info;
+
+ if(NULL == data){
+ return;
+ }
+ struct ug_data *ad = (struct ug_data *) data;
+
+ free(state_pointer);
+ pfx_cert_create_list(ad);
+ elm_naviframe_item_pop(ad->navi_bar);
+}
+
+void pfx_cert_remove_cb(void *data, Evas_Object *obj, void *event_info) {
+ LOGD("pfx_cert_remove_cb");
+
+ struct ug_data *ad = (struct ug_data *) data;
+ Evas_Object *genlist = NULL;
+ Evas_Object *cancel_button;
+
+ certsvc_pkcs12_get_id_list(ad->instance, &stringList);
+
+ uninstallButton = elm_button_add(ad->navi_bar);
+ if (!uninstallButton)
+ return;
+ elm_object_text_set(uninstallButton, dgettext(PACKAGE, "IDS_ST_BUTTON_UNINSTALL"));
+ elm_object_style_set(uninstallButton, "naviframe/toolbar/left");
+ evas_object_smart_callback_add(uninstallButton, "clicked", genlist_pfx_delete_cb, ad);
+ elm_object_disabled_set(uninstallButton, EINA_TRUE);
+
+ cancel_button = elm_button_add(ad->navi_bar);
+ if (!cancel_button)
+ return;
+ elm_object_text_set(cancel_button, dgettext(PACKAGE, "IDS_ST_SK2_CANCEL"));
+ elm_object_style_set(cancel_button, "naviframe/toolbar/right");
+ evas_object_smart_callback_add(cancel_button, "clicked", genlist_pfx_cancel_cb, ad);
+
+ genlist = elm_genlist_add(ad->navi_bar);
+
+ select_all_item = elm_genlist_item_append(genlist, &itc_sa, (void *) 0, NULL, ELM_GENLIST_ITEM_NONE, _gl_sel, NULL);
+
+ int i;
+ certsvc_string_list_get_length(stringList, &list_length);
+ state_pointer = malloc((list_length+1) * sizeof(Eina_Bool));
+ state_pointer[0] = EINA_FALSE;
+ for (i = 1; i < list_length + 1; i++) {
+ state_pointer[i] = EINA_FALSE;
+ elm_genlist_item_append( genlist, &itc_2text, (void *) i, NULL, ELM_GENLIST_ITEM_NONE, _gl_sel, NULL);
+
+ }
+ Elm_Object_Item *itm = elm_naviframe_item_push(
+ ad->navi_bar,
+ dgettext(PACKAGE, "IDS_ST_BUTTON_UNINSTALL"),
+ NULL,
+ NULL,
+ genlist,
+ NULL);
+ elm_object_item_part_content_set(itm, "toolbar_button1", uninstallButton);
+ elm_object_item_part_content_set(itm, "toolbar_button2", cancel_button);
+ elm_object_item_part_content_unset(itm, "prev_btn");
+}
--- /dev/null
+/**
+ * Copyright (c) 2012 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * @file put_password_certificate.c
+ * @author Janusz Kozerski (j.kozerski@samsung.com)
+ * @version 1.0
+ * @brief
+ */
+
+#include <dlog.h>
+#include <cert-svc/cpkcs12.h>
+
+#include "certificates/certificate_util.h"
+#include "certificates/certificates.h"
+
+static const char * const dir_path = PATH_SDCARD;
+
+static Elm_Genlist_Item_Class itc_btn;
+static Elm_Genlist_Item_Class itc_group;
+static Elm_Genlist_Item_Class itc_entry;
+static Elm_Genlist_Item_Class itc_entry_passwd;
+static struct ListElement *current_file;
+
+static void _install_button_cb(void *data, Evas_Object *obj, void *event_info);
+static void _cancel_button_cb(void *data, Evas_Object *obj, void *event_info);
+
+static Elm_Object_Item *passwd_entry, *passwd_entry_label, *name_entry, *name_entry_label;
+Evas_Object *_entry = NULL;
+Evas_Object *_entry_pass = NULL;
+
+static Evas_Object *_singleline_editfield_add(Evas_Object *parent) {
+ LOGD("_singleline_editfield_add");
+ Evas_Object *layout;
+
+ layout = elm_layout_add(parent);
+ elm_layout_theme_set(layout, "layout", "editfield", "default"); // Default editfield layout style without top title.
+
+ _entry = elm_entry_add(parent);
+ elm_entry_scrollable_set(_entry, EINA_TRUE); // Make entry as scrollable single line.
+ elm_entry_single_line_set(_entry, EINA_TRUE);
+
+ elm_object_part_content_set(layout, "elm.swallow.content", _entry);
+ return layout;
+}
+
+static Evas_Object *_singleline_passfield_add(Evas_Object *parent) {
+ LOGD("_singleline_passfield_add");
+ Evas_Object *layout;
+
+ layout = elm_layout_add(parent);
+ elm_layout_theme_set(layout, "layout", "editfield", "default"); // Default editfield layout style without top title.
+
+ _entry_pass = elm_entry_add(parent);
+ elm_entry_scrollable_set(_entry_pass, EINA_TRUE); // Make entry as scrollable single line password.
+ elm_entry_single_line_set(_entry_pass, EINA_TRUE);
+ elm_entry_password_set(_entry_pass, EINA_TRUE);
+
+ elm_object_part_content_set(layout, "elm.swallow.content", _entry_pass);
+ return layout;
+}
+
+static Evas_Object *_gl_content_edit_get(void *data, Evas_Object *obj, const char *part) {
+ if (!strcmp(part, "elm.icon")) {
+ return _singleline_editfield_add(obj);
+ }
+ return NULL;
+}
+
+static Evas_Object *_gl_content_pass_get(void *data, Evas_Object *obj, const char *part) {
+ if (!strcmp(part, "elm.icon")) {
+ return _singleline_passfield_add(obj);
+ }
+ return NULL;
+}
+
+static void _gl_sel(void *data, Evas_Object *obj, void *event_info)
+{
+ if (event_info)
+ elm_genlist_item_selected_set(event_info, EINA_FALSE);
+}
+
+static Evas_Object *_gl_button_get(void *data, Evas_Object *obj, const char *part) {
+
+ if (0 == (int) data) {
+ Evas_Object *btn = elm_button_add(obj);
+ elm_object_text_set(btn, dgettext(PACKAGE, "IDS_ST_BUTTON_INSTALL"));
+ evas_object_propagate_events_set(btn, EINA_FALSE);
+ evas_object_smart_callback_add(btn, "clicked", _install_button_cb, NULL);
+ return btn;
+ }
+ else if (1 == (int) data) {
+ Evas_Object *btn = elm_button_add(obj);
+ elm_object_text_set(btn, dgettext(PACKAGE, "IDS_ST_SK2_CANCEL"));
+ evas_object_propagate_events_set(btn, EINA_FALSE);
+ evas_object_smart_callback_add(btn, "clicked", _cancel_button_cb, NULL);
+ return btn;
+ }
+
+ return NULL;
+}
+
+static char* _gl_get_text_group(void *data, Evas_Object *obj, const char *part) {
+
+ int index = (int) data;
+ if (0 == index) {
+ LOGD("IDS_ST_BODY_ENTER_PASSWORD_C");
+ return strdup(dgettext(PACKAGE, "IDS_ST_BODY_ENTER_PASSWORD_C"));
+ }
+ else if (1 == index) {
+ LOGD("IDS_ST_BODY_ENTER_KEY_ALIAS_C");
+ return strdup(dgettext(PACKAGE, "IDS_ST_BODY_ENTER_KEY_ALIAS_C"));
+ }
+ else
+ LOGD("Wrong index - return NULL");
+
+ return NULL;
+}
+
+static void _set_itc_classes(void) {
+ itc_btn.item_style = "dialogue/1icon";
+ itc_btn.func.content_get = _gl_button_get;
+ itc_entry.func.state_get = NULL;
+ itc_entry.func.del = NULL;
+
+ itc_group.item_style = "dialogue/grouptitle";
+ itc_group.func.text_get = _gl_get_text_group;
+ itc_entry.func.state_get = NULL;
+ itc_entry.func.del = NULL;
+
+ itc_entry.item_style = "dialogue/1icon";
+ itc_entry.func.text_get = NULL;
+ itc_entry.func.content_get = _gl_content_edit_get;
+ itc_entry.func.state_get = NULL;
+ itc_entry.func.del = NULL;
+
+ itc_entry_passwd.item_style = "dialogue/1icon";
+ itc_entry_passwd.func.text_get = NULL;
+ itc_entry_passwd.func.content_get = _gl_content_pass_get;
+ itc_entry_passwd.func.state_get = NULL;
+ itc_entry_passwd.func.del = NULL;
+
+}
+
+static void _cancel_button_cb(void *data, Evas_Object *obj, void *event_info) {
+
+ struct ug_data *ad = get_ug_data();
+
+ elm_naviframe_item_pop(ad->navi_bar);
+ elm_naviframe_item_pop(ad->navi_bar);
+}
+
+static void _install_button_cb(void *data, Evas_Object *obj, void *event_info) {
+
+ LOGD("_install_button_cb");
+
+ struct ug_data *ad = get_ug_data();
+
+ char *alias, *password, *path;
+ CertSvcString Alias, Path, Password;
+ int returned_value;
+ int is_unique = CERTSVC_FALSE;
+ CertSvcString pkcs_alias;
+ LOGD("alias: %s", elm_entry_entry_get(_entry));
+
+ if(NULL == elm_entry_entry_get(_entry_pass))
+ password = NULL;
+ else {
+ password = strdup(elm_entry_entry_get(_entry_pass));
+ if (0 == strlen(password)){
+ free(password);
+ password = NULL;
+ }
+ }
+ alias = strdup(elm_entry_entry_get(_entry));
+ path = path_cat(current_file->path, current_file->name);
+ if (NULL == path) {
+ LOGD("patch_cat failed; return");
+ goto exit;
+ }
+
+ // Empty alias
+ if (NULL == alias || 1 > strlen(alias)) {
+ LOGD("alias is empty");
+ create_ok_pop(ad, dgettext(PACKAGE, "IDS_ST_BODY_ALIAS_CANNOT_BE_EMPTY"));
+ free(path);
+ goto exit;
+ }
+
+ certsvc_string_new(ad->instance, alias, strlen(alias), &pkcs_alias);
+ certsvc_pkcs12_alias_exists(ad->instance, pkcs_alias, &is_unique);
+ // Alias already exists
+ if (CERTSVC_FALSE == is_unique || 1 > strlen(alias)) {
+ LOGD("alias %s already exist", alias);
+ create_ok_pop(ad, dgettext(PACKAGE, "IDS_ST_BODY_ALIAS_ALREADY_EXISTS_ENTER_A_UNIQUE_ALIAS"));
+ free(path);
+ goto exit;
+ }
+ LOGD("certsvc_pkcs12_import_from_file( %s, %s, %s)", path, password, alias);
+ certsvc_string_new(ad->instance, alias, strlen(alias), &Alias);
+ certsvc_string_new(ad->instance, path, strlen(path), &Path);
+ certsvc_string_new(ad->instance, (password) ? password : "", (password) ? strlen(password) : 1, &Password);
+ returned_value = certsvc_pkcs12_import_from_file(ad->instance, Path, Password, Alias);
+ LOGD("certsvc_pkcs12_import_from_file -- result:");
+ free(path);
+
+ switch (returned_value) {
+ case CERTSVC_SUCCESS:
+ LOGD("Certificate %s import success", current_file->name);
+ elm_naviframe_item_pop(ad->navi_bar);
+ elm_naviframe_item_pop(ad->navi_bar);
+ elm_genlist_clear(ad->genlist_pfx); // TODO: This may not be the optimal solution
+ clear_pfx_genlist_data(); // Refactoring may be needed
+ elm_naviframe_item_pop(ad->navi_bar);
+ pfx_cert_cb(ad, NULL, NULL);
+ break;
+
+ case CERTSVC_INVALID_PASSWORD:
+ LOGD("Invalid password to %s", current_file->name);
+ break;
+
+ case CERTSVC_IO_ERROR:
+ LOGD("There's no such file!");
+ elm_naviframe_item_pop(ad->navi_bar);
+ elm_naviframe_item_pop(ad->navi_bar);
+ break;
+
+ case CERTSVC_WRONG_ARGUMENT:
+ LOGD("Wrong PKCS12 or PFX file.");
+ elm_naviframe_item_pop(ad->navi_bar);
+ elm_naviframe_item_pop(ad->navi_bar);
+ break;
+
+ case CERTSVC_DUPLICATED_ALIAS:
+ // This case should not happened - alias was already checked
+ LOGD("Failed. Such alias already exist. This should not happen");
+ break;
+
+ case CERTSVC_FAIL:
+ LOGD("Failed. Wrong password probably.");
+ create_ok_pop(ad, dgettext(PACKAGE, "IDS_ST_BODY_INCORRECT_PASSWORD"));
+ // Do NOT delete list in this case!!!
+ goto exit;
+
+ default:
+ LOGD("DEFAULT");
+ break;
+ }
+
+ deleteList(current_file);
+
+exit:
+ free(password);
+ free(alias);
+ return;
+}
+
+void put_pkcs12_name_and_pass_cb(void *data, Evas_Object *obj, void *event_info) {
+
+ LOGD("put_pkcs12_name_and_pass_cb");
+ struct ug_data *ad = get_ug_data();
+ current_file = (struct ListElement *) data;
+
+ _set_itc_classes();
+ Evas_Object *genlist = elm_genlist_add(ad->win_main);
+
+ passwd_entry_label = elm_genlist_item_append(
+ genlist,
+ &itc_group,
+ (void *) 0,
+ NULL,
+ ELM_GENLIST_ITEM_NONE,
+ _gl_sel,
+ NULL );
+
+ passwd_entry = elm_genlist_item_append(
+ genlist,
+ &itc_entry_passwd,
+ NULL,
+ NULL,
+ ELM_GENLIST_ITEM_NONE,
+ _gl_sel,
+ NULL );
+
+ name_entry_label = elm_genlist_item_append(
+ genlist,
+ &itc_group,
+ (void *) 1,
+ NULL,
+ ELM_GENLIST_ITEM_NONE,
+ _gl_sel,
+ NULL );
+
+ name_entry = elm_genlist_item_append(
+ genlist,
+ &itc_entry,
+ NULL,
+ NULL,
+ ELM_GENLIST_ITEM_NONE,
+ _gl_sel,
+ NULL );
+
+ elm_genlist_item_append(
+ genlist,
+ &itc_btn,
+ (void *) 0,
+ NULL,
+ ELM_GENLIST_ITEM_NONE,
+ _gl_sel,
+ NULL );
+
+ elm_genlist_item_append(
+ genlist,
+ &itc_btn,
+ (void *) 1,
+ NULL,
+ ELM_GENLIST_ITEM_NONE,
+ _gl_sel,
+ NULL );
+
+ Elm_Object_Item *navi_it = NULL;
+ navi_it = elm_naviframe_item_push(ad->navi_bar, dgettext(PACKAGE, "IDS_ST_BODY_INSTALL_CERTIFICATE"), NULL, NULL, genlist, NULL);
+ if (!navi_it){
+ LOGE("Error in elm_naviframe_item_push");
+ }
+}
+
+void put_pkcs12_name_cb(void *data, Evas_Object *obj, void *event_info) {
+
+ LOGD("put_pkcs12_name_cb");
+
+ struct ug_data *ad = get_ug_data();
+ current_file = (struct ListElement *) data;
+
+ _set_itc_classes();
+ Evas_Object *genlist = elm_genlist_add(ad->win_main);
+
+ name_entry_label = elm_genlist_item_append(
+ genlist,
+ &itc_group,
+ (void *) 1,
+ NULL,
+ ELM_GENLIST_ITEM_NONE,
+ _gl_sel,
+ NULL );
+
+ name_entry = elm_genlist_item_append(
+ genlist,
+ &itc_entry,
+ NULL,
+ NULL,
+ ELM_GENLIST_ITEM_NONE,
+ _gl_sel,
+ NULL );
+
+ elm_genlist_item_append(
+ genlist,
+ &itc_btn,
+ (void *) 0,
+ NULL,
+ ELM_GENLIST_ITEM_NONE,
+ _gl_sel,
+ NULL );
+
+ elm_genlist_item_append(
+ genlist,
+ &itc_btn,
+ (void *) 1,
+ NULL,
+ ELM_GENLIST_ITEM_NONE,
+ _gl_sel,
+ NULL );
+
+ Elm_Object_Item *navi_it = NULL;
+ elm_naviframe_item_push(ad->navi_bar, dgettext(PACKAGE, "IDS_ST_BODY_INSTALL_CERTIFICATE"), NULL, NULL, genlist, NULL);
+ if (!navi_it){
+ LOGE("Error in elm_naviframe_item_push");
+ }
+}
--- /dev/null
+/**
+ * Copyright (c) 2012 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * @file trusted_root_ca_cert.c
+ * @author Janusz Kozerski (j.kozerski@samsung.com)
+ * @version 1.0
+ * @brief
+ */
+
+#include <dlog.h>
+
+#include "certificates/certificate_util.h"
+#include "certificates/certificates.h"
+
+#include <dirent.h>
+
+Eina_Bool trusted_root_cert_create_list(struct ug_data *ad){
+ LOGD("trusted_root_cert_create_list()");
+
+ if(NULL == ad) {
+ return EINA_TRUE;
+ }
+ elm_list_clear(ad->list_to_refresh);
+
+ Eina_Bool no_content_bool = EINA_TRUE;
+ if(!make_list(ad, ad->list_to_refresh, PATH_CERT_TRUSTEDUSER, ad->list_element, TRUSTED_ROOT)){
+ no_content_bool = EINA_FALSE;
+ }
+ ad->list_element = findLastElement(ad->list_element);
+ if(!make_list(ad, ad->list_to_refresh, PATH_CERT_SSL_ETC, ad->list_element, TRUSTED_ROOT)){
+ no_content_bool = EINA_FALSE;
+ }
+
+ return no_content_bool;
+}
+
+void trusted_root_cert_cb(void *data, Evas_Object *obj, void *event_info) {
+
+ LOGD("trusted_root_cert_cb()");
+
+ if(NULL == data) {
+ return;
+ }
+ struct ug_data *ad = (struct ug_data *) data;
+ ad->type_of_screen = TRUSTED_ROOT_SCREEN;
+
+ struct ListElement *firstListElement = NULL;
+ struct ListElement *lastListElement = NULL;
+ firstListElement = initList();
+ lastListElement = firstListElement;
+ ad->list_element = firstListElement;
+
+ Evas_Object *toolbar = elm_toolbar_add(ad->navi_bar);
+ if (!toolbar)
+ return;
+ elm_toolbar_shrink_mode_set(toolbar, ELM_TOOLBAR_SHRINK_EXPAND);
+
+ ad->list_to_refresh = NULL;
+ ad->list_to_refresh = elm_list_add(ad->win_main);
+ elm_list_mode_set(ad->list_to_refresh, ELM_LIST_COMPRESS);
+
+ Elm_Object_Item *itm;
+ if (!trusted_root_cert_create_list(ad)) { // There is some content
+
+ itm = elm_naviframe_item_push(
+ ad->navi_bar,
+ dgettext(PACKAGE, "IDS_ST_BODY_TRUSTED_ROOT_CERTIFICATES"),
+ NULL,
+ NULL,
+ ad->list_to_refresh,
+ NULL);
+
+
+ } else {
+ // No content
+ Evas_Object *no_content = create_no_content_layout(ad);
+
+ if(!no_content){
+ LOGD("Cannot create no_content layout (NULL); return");
+ return;
+ }
+ itm = elm_naviframe_item_push(
+ ad->navi_bar,
+ dgettext(PACKAGE, "IDS_ST_BODY_TRUSTED_ROOT_CERTIFICATES"),
+ NULL,
+ NULL,
+ no_content,
+ NULL);
+ }
+
+ Evas_Object *back = NULL;
+ back = elm_object_item_part_content_get(itm, "prev_btn");
+ evas_object_smart_callback_add(back, "clicked", back_cb, ad);
+}
--- /dev/null
+/**
+ * Copyright (c) 2012 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * @file uninstall_certificate.c
+ * @author Janusz Kozerski (j.kozerski@samsung.com)
+ * @version 1.0
+ * @brief
+ */
+
+#include "certificates/certificate_util.h"
+#include "certificates/certificates.h"
+
+static char *__get_text_check (void *data, Evas_Object *obj, const char *part);
+static Evas_Object *__get_content_check (void *data, Evas_Object *eo, const char *part);
+static char *__get_text_select_all (void *data, Evas_Object *obj, const char *part);
+static Evas_Object *__get_content_select_all (void *data, Evas_Object *eo, const char *part);
+static void select_all_fn();
+static void deselect_all_fn();
+static void uninstall_cb (void *data, Evas_Object *obj, void *event_info);
+static void cancel_cb (void *data, Evas_Object *obj, void *event_info);
+
+static char *dir_path;
+
+static Eina_Bool select_all = EINA_FALSE;
+static struct ListElement *firstListElement = NULL;
+static struct ListElement *lastListElement = NULL;
+static Elm_Object_Item *select_all_item = NULL;
+static Evas_Object *uninstallButton = NULL;
+
+static Elm_Genlist_Item_Class itc_check = {
+ .item_style = "dialogue/1text.1icon",
+ .func.content_get = __get_content_check,
+ .func.text_get = __get_text_check
+};
+
+static enum CountOfSelected get_count_of_selected(struct ListElement *current){
+ LOGD("get_count_of_selected");
+
+ Eina_Bool all = EINA_TRUE;
+ Eina_Bool none = EINA_TRUE;
+
+ if(NULL == current){
+ return SELECTED_NONE;
+ }
+
+ struct ListElement *listElement = nextElement(findFirstElement(current));
+ // first element is not a real element of list.
+ // so if there's only one list element it's means that the list is empty.
+ while(NULL != listElement){
+ if(none && listElement->isChecked){
+ none = EINA_FALSE;
+ }
+ if(all && !(listElement->isChecked)){
+ all = EINA_FALSE;
+ }
+ listElement = nextElement(listElement);
+ }
+
+ if(none){
+ LOGD("SELECTED_NONE");
+ return SELECTED_NONE;
+ }
+ else if(all){
+ LOGD("SELECTED_ALL");
+ return SELECTED_ALL;
+ }
+ // else
+ LOGD("SELECTED_FEW");
+ return SELECTED_FEW;
+}
+
+static char* __get_text_check(void *data, Evas_Object *obj, const char *part) {
+ struct ListElement *current = (struct ListElement*) data;
+ LOGD("__get_text_check --- uninstall");
+
+ if (strlen(current->title) < 1) {
+ return strdup(current->name);
+ }
+ return strdup(current->title);
+}
+
+static Evas_Object *__get_content_check(void *data, Evas_Object *eo, const char *part) {
+ struct ListElement *current = (struct ListElement*) data;
+
+ Evas_Object *toggle = elm_check_add(eo);
+
+ elm_check_state_pointer_set(toggle, &(current->isChecked));
+ LOGD("toggle <---> %s.isChecked", current->name);
+
+ return toggle;
+}
+
+static void __toggle(void *data, Evas_Object *obj, void *event_info) {
+
+ struct ListElement *current = (struct ListElement*) data;
+ if (current->isChecked) {
+ current->isChecked = EINA_FALSE;
+ LOGD("isChecked should be changed to FASLE --- %s", current->name);
+ } else {
+ current->isChecked = EINA_TRUE;
+ LOGD("isChecked should be changed to TRUE --- %s", current->name);
+ }
+
+ Eina_Bool count_of_selected;
+ count_of_selected = get_count_of_selected(current);
+ if(SELECTED_ALL == count_of_selected){
+ select_all = EINA_TRUE;
+ elm_object_disabled_set(uninstallButton, EINA_FALSE);
+ }
+ else{
+ select_all = EINA_FALSE;
+ if(SELECTED_NONE == count_of_selected){
+ elm_object_disabled_set(uninstallButton, EINA_TRUE);
+ }
+ else if(SELECTED_FEW == count_of_selected){
+ elm_object_disabled_set(uninstallButton, EINA_FALSE);
+ }
+ }
+
+ elm_genlist_item_update(event_info);
+ elm_genlist_item_update(select_all_item);
+ elm_genlist_item_selected_set(event_info, EINA_FALSE);
+}
+
+//----------------------------------
+
+static Elm_Genlist_Item_Class itc_select_all = {
+ .item_style = "dialogue/1text.1icon",
+ .func.content_get = __get_content_select_all,
+ .func.text_get = __get_text_select_all
+};
+
+static char* __get_text_select_all(void *data, Evas_Object *obj, const char *part) {
+ return strdup(dgettext(PACKAGE, "IDS_ST_BODY_SELECT_ALL"));
+}
+
+static Evas_Object *__get_content_select_all(void *data, Evas_Object *eo, const char *part) {
+
+ Evas_Object *toggle = elm_check_add(eo);
+ elm_check_state_pointer_set(toggle, &select_all);
+ evas_object_pass_events_set(toggle, EINA_TRUE);
+
+ return toggle;
+}
+
+static void __toggle_select_all(void *data, Evas_Object *obj, void *event_info) {
+
+ if (!select_all) {
+ select_all = EINA_TRUE;
+ select_all_fn();
+ elm_object_disabled_set(uninstallButton, EINA_FALSE);
+ LOGD("select_all should be changed to TURE");
+ } else {
+ select_all = EINA_FALSE;
+ deselect_all_fn();
+ elm_object_disabled_set(uninstallButton, EINA_TRUE);
+ LOGD("select_all should be changed to FALSE");
+ }
+
+ elm_genlist_item_update(event_info);
+ elm_genlist_item_selected_set(event_info, EINA_FALSE);
+}
+
+static void select_all_fn() {
+ LOGD("select_all_fn");
+ struct ListElement* current = firstListElement->next;
+ while (current != NULL) {
+ current->isChecked = EINA_TRUE;
+ elm_genlist_item_update(current->it);
+ current = current->next;
+ }
+}
+
+static void deselect_all_fn() {
+ LOGD("deselect_all_fn");
+ struct ListElement* current = firstListElement->next;
+ while (current != NULL) {
+ current->isChecked = EINA_FALSE;
+ elm_genlist_item_update(current->it);
+ current = current->next;
+ }
+}
+
+static void back_uninstall_cb() {
+ LOGD("back_uninstall_cb()");
+ struct ug_data *ad = get_ug_data();
+
+ deleteList(ad->list_element_install);
+ ad->list_element_install = NULL;
+
+ elm_naviframe_item_pop(ad->navi_bar);
+ //TODO: This may not be the optimal solution
+ // Refactoring may be needed
+ switch (ad->type_of_screen) {
+ case TRUSTED_ROOT_SCREEN:
+ LOGD("back to TRUSTED_ROOT_SCREEN");
+ trusted_root_cert_cb(ad, NULL, NULL);
+ break;
+ case USER_SCREEN:
+ LOGD("back to USER_SCREEN");
+ user_cert_cb(ad, NULL, NULL);
+ break;
+ default:
+ break;
+ }
+
+}
+
+static void cancel_cb(void *data, Evas_Object *obj, void *event_info) {
+ struct ug_data *ad = (struct ug_data *) data;
+
+ elm_naviframe_item_pop(ad->navi_bar);
+ back_uninstall_cb();
+}
+
+//----------------------------------
+
+void delete_cert_cb(void *data, Evas_Object *obj, void *event_info) {
+
+ LOGD("delete_cert_cb ()");
+
+ if(NULL == data){
+ return;
+ }
+ struct ug_data *ad = get_ug_data();
+
+ //*uninstall_button;
+ Evas_Object *cancel_button;
+ Evas_Object *genlist = NULL;
+ Eina_Bool onlyOnce = EINA_TRUE;
+ firstListElement = initList();
+ lastListElement = firstListElement;
+ ad->list_element_install = firstListElement;
+
+ dir_path = (char *) data;
+
+ uninstallButton = elm_button_add(ad->navi_bar);
+ if (!uninstallButton)
+ return;
+ elm_object_text_set(uninstallButton, dgettext(PACKAGE, "IDS_ST_BUTTON_UNINSTALL"));
+ elm_object_style_set(uninstallButton, "naviframe/toolbar/left");
+ evas_object_smart_callback_add(uninstallButton, "clicked", uninstall_cb, ad);
+ elm_object_disabled_set(uninstallButton, EINA_TRUE);
+
+ cancel_button = elm_button_add(ad->navi_bar);
+ if (!cancel_button)
+ return;
+ elm_object_text_set(cancel_button, dgettext(PACKAGE, "IDS_ST_SK2_CANCEL"));
+ elm_object_style_set(cancel_button, "naviframe/toolbar/right");
+ evas_object_smart_callback_add(cancel_button, "clicked", cancel_cb, ad);
+
+ genlist = elm_genlist_add(ad->win_main);
+
+ if (!make_list(ad, genlist, dir_path, lastListElement, TO_UNINSTALL)) {
+ struct ListElement *current = findFirstElement(firstListElement);
+ current = nextElement(current);
+ if (onlyOnce) {
+ onlyOnce = EINA_FALSE;
+ select_all_item = elm_genlist_item_append(genlist, &itc_select_all, NULL, NULL, ELM_GENLIST_ITEM_NONE, __toggle_select_all,
+ NULL);
+ select_all = EINA_FALSE;
+ LOGD("Select All field added");
+ }
+ while (current) {
+ LOGD("current->title: %s", current->title);
+ Elm_Object_Item * it;
+ it = elm_genlist_item_append(genlist, &itc_check, current, NULL, ELM_GENLIST_ITEM_NONE, __toggle, current);
+ current->it = it;
+ LOGD("state pointer set to: %s", current->name);
+ current = nextElement(current);
+ }
+ }
+
+ Elm_Object_Item *itm = elm_naviframe_item_push(
+ ad->navi_bar,
+ dgettext(PACKAGE, "IDS_ST_BUTTON_UNINSTALL"),
+ NULL,
+ NULL,
+ genlist,
+ NULL);
+ elm_object_item_part_content_set(itm, "toolbar_button1", uninstallButton);
+ elm_object_item_part_content_set(itm, "toolbar_button2", cancel_button);
+
+ elm_object_item_part_content_unset(itm, "prev_btn");
+}
+
+static void uninstall_cb(void *data, Evas_Object *obj, void *event_info) {
+
+ LOGD("uninstall_cb");
+
+ struct ug_data *ad = (struct ug_data *) data;
+
+ struct ListElement* current = firstListElement->next;
+ Eina_Bool nothingToUninstall = EINA_TRUE;
+
+ struct ListElement* tmpListElement;
+
+ char *buf = NULL;
+
+ while (current != NULL) {
+ if (current->isChecked) {
+ buf = path_cat(current->path, current->name);
+ LOGD("remove ( %s )", buf);
+ if (remove(buf)){
+ LOGE("Fail in removing path.");
+ }
+ LOGD("Uninstalled succesful -- %s!", current->name);
+ nothingToUninstall = EINA_FALSE;
+ }
+ tmpListElement = current;
+ current = current->next;
+ removeListElement(tmpListElement);
+ }
+ if (nothingToUninstall)
+ LOGD("Nothing to uninstall");
+
+ refresh_list(ad);
+ elm_naviframe_item_pop(ad->navi_bar);
+ back_uninstall_cb();
+}
--- /dev/null
+/**
+ * Copyright (c) 2012 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * @file install_certificate.c
+ * @author Janusz Kozerski (j.kozerski@samsung.com)
+ * @version 1.0
+ * @brief
+ */
+
+#define _GNU_SOURCE
+
+#include <dlog.h>
+#include <stdlib.h>
+#include <time.h>
+
+#include "certificates/certificate_util.h"
+#include "certificates/certificates.h"
+
+// add current date on the end of destination filename
+static void copy_add_date(char *source, char *dest);
+
+void user_search_cert_cb(void *data, Evas_Object *obj, void *event_info) {
+
+ LOGD("user_search_cert_cb()");
+ if(NULL == data){
+ return;
+ }
+ struct ug_data *ad = (struct ug_data *) data;
+ Evas_Object *list = NULL;
+ Eina_Bool is_content = EINA_FALSE;
+
+ struct ListElement *firstListElement = initList();
+ struct ListElement *lastListElement = firstListElement;
+ ad->list_element_install = lastListElement;
+
+ list = elm_list_add(ad->win_main);
+ elm_list_mode_set(list, ELM_LIST_COMPRESS);
+ evas_object_smart_callback_add(list, "selected", list_clicked_cb, NULL);
+
+ if(!make_list(ad, list, PATH_SDCARD, lastListElement, TO_INSTALL)){
+ is_content = EINA_TRUE;
+ }
+ lastListElement = findLastElement(lastListElement);
+
+ if(!make_list(ad, list, PATH_MEDIA, lastListElement, TO_INSTALL)){
+ is_content = EINA_TRUE;
+ }
+ lastListElement = findLastElement(lastListElement);
+
+ if(!make_list(ad, list, PATH_MEDIA_DOWNLOADS, lastListElement, TO_INSTALL)){
+ is_content = EINA_TRUE;
+ }
+
+ Elm_Object_Item *itm = NULL;
+ if(is_content) {
+ itm = elm_naviframe_item_push(
+ ad->navi_bar,
+ dgettext(PACKAGE, "IDS_ST_BODY_SELECT_CERTIFICATE_TO_INSTALL"),
+ NULL,
+ NULL,
+ list,
+ NULL);
+ }
+ else { // No content
+ Evas_Object *no_content = create_no_content_layout(ad);
+
+ if(!no_content){
+ LOGD("Cannot create no_content layout (NULL); return");
+ return;
+ }
+ itm = elm_naviframe_item_push(
+ ad->navi_bar,
+ dgettext(PACKAGE, "IDS_ST_BODY_SELECT_CERTIFICATE_TO_INSTALL"),
+ NULL,
+ NULL,
+ no_content,
+ NULL);
+ }
+
+ Evas_Object *back = NULL;
+ back = elm_object_item_part_content_get(itm, "prev_btn");
+ evas_object_smart_callback_add(back, "clicked", back_install_cb, ad);
+}
+
+void install_cb(void *data, Evas_Object *obj, void *event_info) {
+ LOGD("install_cb");
+ struct ug_data *ad = get_ug_data();
+ if (NULL == data)
+ return;
+ struct ListElement *listElement = (struct ListElement *) data;
+ char *file_name = listElement->name;
+ LOGD("%s", file_name);
+ char *src = NULL;
+ char *dst = NULL;
+ src = path_cat(listElement->path, listElement->name);
+ if (!src)
+ return;
+ dst = path_cat(PATH_CERT_USER, listElement->name);
+ if (!dst){
+ free(src);
+ return;
+ }
+ LOGD("Start copying");
+ copy_add_date(src, dst);
+ free(src);
+ free(dst);
+ LOGD("End copying");
+
+ user_cert_create_list(ad);
+
+ elm_naviframe_item_pop(ad->navi_bar);
+ deleteList(ad->list_element_install);
+ ad->list_element_install = NULL;
+
+ elm_naviframe_item_pop(ad->navi_bar);
+ user_cert_cb(ad, NULL, NULL); //TODO: This may not be the optimal solution
+ // Refactoring may be needed
+}
+
+static void copy_add_date(char *source, char *dest) {
+ LOGD("copy_add_date()");
+ if (!source || !dest) {
+ LOGD("Null pointer to files");
+ return;
+ }
+ char *command;
+ int result;
+ char *dest_with_date;
+ char *dot;
+
+ dot = strrchr(dest, '.');
+ if (NULL != dot) {
+ dot[0] = 0;
+ result = asprintf(&dest_with_date, "%s_%ld.%s", dest, time(NULL), &dot[1]);
+ }
+ else {
+ result = asprintf(&dest_with_date, "%s_%ld", dest, time(NULL));
+ }
+ if (result < 0) {
+ LOGE("Error while allocating memory");
+ return;
+ }
+
+ result = asprintf(&command, "cp %s %s", source, dest_with_date);
+ free(dest_with_date);
+ if (command == NULL && result < 0) {
+ LOGD("Error while allocating memory");
+ return; //Error while allocating memory
+ }
+
+ LOGD("%s", command);
+ result = system(command);
+ LOGD("%s --- return %d", command, result);
+
+ free(command);
+ LOGD("copy() - done");
+}
--- /dev/null
+/**
+ * Copyright (c) 2012 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * @file user_cert.c
+ * @author Janusz Kozerski (j.kozerski@samsung.com)
+ * @version 1.0
+ * @brief
+ */
+#include <dlog.h>
+
+#include "certificates/certificate_util.h"
+#include "certificates/certificates.h"
+
+#include <dirent.h>
+
+Eina_Bool user_cert_create_list(struct ug_data *ad) {
+ LOGD("user_cert_create_list()");
+ elm_list_clear(ad->list_to_refresh);
+ return make_list(ad, ad->list_to_refresh, PATH_CERT_USER, ad->list_element, USER);
+}
+
+void user_cert_cb(void *data, Evas_Object *obj, void *event_info) {
+ LOGD("user_cert_cb()");
+
+ if(NULL == data){
+ return;
+ }
+ struct ug_data *ad = (struct ug_data *) data;
+ ad->type_of_screen = USER_SCREEN;
+
+ Evas_Object *install_button;
+ Evas_Object *uninstall_button;
+
+ struct ListElement *firstListElement = NULL;
+ struct ListElement *lastListElement = NULL;
+ firstListElement = initList();
+ lastListElement = firstListElement;
+ ad->list_element = firstListElement;
+
+ install_button = elm_button_add(ad->navi_bar);
+ if (!install_button)
+ return;
+ elm_object_text_set(install_button, dgettext(PACKAGE, "IDS_ST_BUTTON_INSTALL"));
+ elm_object_style_set(install_button, "naviframe/toolbar/left");
+ evas_object_smart_callback_add(install_button, "clicked", install_button_cb, USER);
+
+ uninstall_button = elm_button_add(ad->navi_bar);
+ if (!uninstall_button)
+ return;
+ elm_object_text_set(uninstall_button, dgettext(PACKAGE, "IDS_ST_BUTTON_UNINSTALL"));
+ elm_object_style_set(uninstall_button, "naviframe/toolbar/right");
+ evas_object_smart_callback_add(uninstall_button, "clicked", delete_cert_cb, PATH_CERT_USER);
+
+ ad->list_to_refresh = NULL;
+ ad->list_to_refresh = elm_list_add(ad->win_main);
+ elm_list_mode_set(ad->list_to_refresh, ELM_LIST_COMPRESS);
+
+ Elm_Object_Item *itm = NULL;
+ if (!user_cert_create_list(ad)) { // There is some content
+
+
+ itm = elm_naviframe_item_push(
+ ad->navi_bar,
+ dgettext(PACKAGE, "IDS_ST_BODY_EXTERNAL_CERTIFICATES"),
+ NULL,
+ NULL,
+ ad->list_to_refresh,
+ NULL);
+
+ elm_object_disabled_set(uninstall_button, EINA_FALSE);
+
+
+ } else { // No content
+ Evas_Object *no_content = create_no_content_layout(ad);
+
+ if(!no_content){
+ LOGD("Cannot create no_content layout (NULL); return");
+ return;
+ }
+ itm = elm_naviframe_item_push(
+ ad->navi_bar,
+ dgettext(PACKAGE, "IDS_ST_BODY_EXTERNAL_CERTIFICATES"),
+ NULL,
+ NULL,
+ no_content,
+ NULL);
+
+ elm_object_disabled_set(uninstall_button, EINA_TRUE);
+ }
+
+ elm_object_item_part_content_set(itm, "toolbar_button1", install_button);
+ elm_object_item_part_content_set(itm, "toolbar_button2", uninstall_button);
+
+ Evas_Object *back = NULL;
+ back = elm_object_item_part_content_get(itm, "prev_btn");
+ evas_object_smart_callback_add(back, "clicked", back_cb, ad);
+}