diff --git a/0001-fix-translate-add-some-translation.patch b/0001-fix-translate-add-some-translation.patch new file mode 100644 index 0000000..8ab4b0e --- /dev/null +++ b/0001-fix-translate-add-some-translation.patch @@ -0,0 +1,741 @@ +From 8d62a492cfa437845dddff9be3c3927346b86dc0 Mon Sep 17 00:00:00 2001 +From: wangyucheng +Date: Thu, 23 Mar 2023 20:46:41 +0800 +Subject: [PATCH] fix(translate):add some translation +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +- 添加一些翻译 + +Relates #67661 +--- + src/daemon/CMakeLists.txt | 3 +- + src/pam/CMakeLists.txt | 3 +- + .../kiran-authentication-daemon.bo_CN.ts | 105 ++++++++++++++++++ + .../kiran-authentication-daemon.kk_KZ.ts | 105 ++++++++++++++++++ + .../kiran-authentication-daemon.ky_KG.ts | 105 ++++++++++++++++++ + .../kiran-authentication-daemon.mn_MN.ts | 105 ++++++++++++++++++ + .../kiran-authentication-daemon.ug_CN.ts | 105 ++++++++++++++++++ + .../pam_kiran_authentication.bo_CN.ts | 17 +++ + .../pam_kiran_authentication.kk_KZ.ts | 17 +++ + .../pam_kiran_authentication.ky_KG.ts | 17 +++ + .../pam_kiran_authentication.mn_MN.ts | 17 +++ + .../pam_kiran_authentication.ug_CN.ts | 17 +++ + 12 files changed, 614 insertions(+), 2 deletions(-) + create mode 100644 translations/kiran-authentication-daemon.bo_CN.ts + create mode 100644 translations/kiran-authentication-daemon.kk_KZ.ts + create mode 100644 translations/kiran-authentication-daemon.ky_KG.ts + create mode 100644 translations/kiran-authentication-daemon.mn_MN.ts + create mode 100644 translations/kiran-authentication-daemon.ug_CN.ts + create mode 100644 translations/pam_kiran_authentication.bo_CN.ts + create mode 100644 translations/pam_kiran_authentication.kk_KZ.ts + create mode 100644 translations/pam_kiran_authentication.ky_KG.ts + create mode 100644 translations/pam_kiran_authentication.mn_MN.ts + create mode 100644 translations/pam_kiran_authentication.ug_CN.ts + +diff --git a/src/daemon/CMakeLists.txt b/src/daemon/CMakeLists.txt +index 454ba11..2bf4984 100644 +--- a/src/daemon/CMakeLists.txt ++++ b/src/daemon/CMakeLists.txt +@@ -61,9 +61,10 @@ set(TARGET_NAME kiran-authentication-daemon) + + configure_file(config-daemon.h.in ${CMAKE_CURRENT_BINARY_DIR}/config-daemon.h) + ++file(GLOB TS_FILES "${PROJECT_SOURCE_DIR}/translations/${TARGET_NAME}.*.ts") + qt_create_translation(DAEMON_QM_FILES + ${CMAKE_CURRENT_SOURCE_DIR} ../utils +- ${PROJECT_SOURCE_DIR}/translations/${TARGET_NAME}.zh_CN.ts ++ ${TS_FILES} + OPTIONS -I ${PROJECT_SOURCE_DIR} -I ${PROJECT_BINARY_DIR} -no-obsolete) + + add_executable( +diff --git a/src/pam/CMakeLists.txt b/src/pam/CMakeLists.txt +index 9689281..8a89321 100644 +--- a/src/pam/CMakeLists.txt ++++ b/src/pam/CMakeLists.txt +@@ -32,9 +32,10 @@ set(TARGET_NAME pam_kiran_authentication) + + configure_file(config-pam.h.in ${CMAKE_CURRENT_BINARY_DIR}/config-pam.h) + ++file(GLOB TS_FILES "${PROJECT_SOURCE_DIR}/translations/${TARGET_NAME}.*.ts") + qt_create_translation(PAM_QM_FILES + ${CMAKE_CURRENT_SOURCE_DIR} ../utils +- ${PROJECT_SOURCE_DIR}/translations/${TARGET_NAME}.zh_CN.ts ++ ${TS_FILES} + OPTIONS -I ${PROJECT_SOURCE_DIR} -I ${PROJECT_BINARY_DIR} -no-obsolete) + + add_library( +diff --git a/translations/kiran-authentication-daemon.bo_CN.ts b/translations/kiran-authentication-daemon.bo_CN.ts +new file mode 100644 +index 0000000..46b3f35 +--- /dev/null ++++ b/translations/kiran-authentication-daemon.bo_CN.ts +@@ -0,0 +1,105 @@ ++ ++ ++ ++ ++ PolkitProxy ++ ++ ++ Authorization failed. ++ དབང་བསྐུར་ཕམ་པ། ++ ++ ++ ++ QObject ++ ++ ++ Authentication ID already exists. ++ ཐོབ་ཐང་ར་སྤྲོདIDད་ལྟ་ཡོད། ++ ++ ++ ++ The user is enrolling. ++ བཀོལ་མཁན་ཐོ་འགོད་བྱེད་བཞིན་ཡོད། ++ ++ ++ ++ Too many sessions. ++ སྐད་ཆ་བཤད་རེས་མང་དྲག་སོང་། ++ ++ ++ ++ The session is in authentication. ++ སྐད་ཆ་བཤད་རེས་ནི་ཐོབ་ཐང་ར་སྤྲོད་བྱེད་པའི་ཁྲོད་དུ་གནས་ཡོད། ++ ++ ++ ++ Internel error. ++ ནང་ཁུལ་གྱི་ནོར་འཁྲུལ། ++ ++ ++ ++ Unknown error. ++ མི་ཤེས་པའི་ནོར་འཁྲུལ། ++ ++ ++ ++ (error code: 0x%x) ++ (ཚབ་ཨང་ནོར་འཁྲུལ་ཅན།0x%ཡིན།) ++ ++ ++ ++ Enrollment completed successfully. ++ ཐོ་འགོད་ལེགས་འགྲུབ་བྱུང་། ++ ++ ++ ++ Enrollment failed. ++ ཐོ་འགོད་ཕམ་པ། ++ ++ ++ ++ Enroll stage passed. ++ ཐོ་འགོད་དུས་རིམ་ལ་གྲོས་འཆམ་བྱུང་ཡོད་། ++ ++ ++ ++ The enrollment scan did not succeed, please retry it. ++ ཐོ་འགོད་བྱེད་པར་ལེགས་འགྲུབ་མ་བྱུང་།ཡང་བསྐྱར་ཚོད་ལྟ་ཞིག་བྱེད་རོགས། ++ ++ ++ ++ The finger swipe was too short, please retry it. ++ མཛུབ་མོ་ཤུད་འགུལ་ཧ་ཅང་ཐུང་བས་ཡང་བསྐྱར་ཚོད་ལྟ་ཞིག་བྱེད་རོགས། ++ ++ ++ ++ The finger was not centered on the scanner, please retry it. ++ མཛུབ་མོ་བཤར་འབེབས་ཆས་ཀྱི་ལྟེ་བར་མེད་པས།ཡང་བསྐྱར་ཚོད་ལྟ་བྱོས། ++ ++ ++ ++ Unknown enrollment error. ++ ཤེས་མེད་པའི་ཐོ་འགོད་ནོར་འཁྲུལ་རེད་། ++ ++ ++ ++ Feature not match. ++ ནུས་པ་དོ་མི་མཉམ། ++ ++ ++ ++ Feature matching successed. ++ ཁྱད་ཆོས་སྙོམས་སྒྲིག་ལེགས་གྲུབ་བྱུང་ཡོད་། ++ ++ ++ ++ Feature not match, please retry it. ++ ནུས་པ་དོ་མི་མཉམ།ཡང་བསྐྱར་ཚོད་ལྟ་བྱོས། ++ ++ ++ ++ Unknown verfication error. ++ ཤེས་མེད་པའི་ཚོད་ལྟས་ར་སྤྲོད་ནོར་འཁྲུལ་རེད་། ++ ++ ++ +diff --git a/translations/kiran-authentication-daemon.kk_KZ.ts b/translations/kiran-authentication-daemon.kk_KZ.ts +new file mode 100644 +index 0000000..648dccc +--- /dev/null ++++ b/translations/kiran-authentication-daemon.kk_KZ.ts +@@ -0,0 +1,105 @@ ++ ++ ++ ++ ++ PolkitProxy ++ ++ ++ Authorization failed. ++ Авторизация жаңылысы. ++ ++ ++ ++ QObject ++ ++ ++ Authentication ID already exists. ++ Аутентификация идентификаторы бұрыннан бар. ++ ++ ++ ++ The user is enrolling. ++ Пайдаланушы тіркелуде. ++ ++ ++ ++ Too many sessions. ++ Тым көп әңгімелер. ++ ++ ++ ++ The session is in authentication. ++ Сеанс аутентификациялануда. ++ ++ ++ ++ Internel error. ++ Ішкі қате. ++ ++ ++ ++ Unknown error. ++ Беймәлім қате. ++ ++ ++ ++ (error code: 0x%x) ++ 0x% қате коды. ++ ++ ++ ++ Enrollment completed successfully. ++ Тіркеу сәтті аяқталды. ++ ++ ++ ++ Enrollment failed. ++ Тіркеу сәтсіз аяқталды ++ ++ ++ ++ Enroll stage passed. ++ Тіркеу кезеңі өтті ++ ++ ++ ++ The enrollment scan did not succeed, please retry it. ++ Тіркеуді қарап шығу сәтсіз аяқталды, әрекетті қайталаңыз ++ ++ ++ ++ The finger swipe was too short, please retry it. ++ Саусақтың сырғуы тым қысқа, әрекетті қайталаңыз ++ ++ ++ ++ The finger was not centered on the scanner, please retry it. ++ Саусағыңыз сканердің ортасында емес, әрекетті қайталаңыз ++ ++ ++ ++ Unknown enrollment error. ++ Беймәлім тіркеу қатесі ++ ++ ++ ++ Feature not match. ++ Функция сәйкес келмейді ++ ++ ++ ++ Feature matching successed. ++ Сәтті сәйкестік ++ ++ ++ ++ Feature not match, please retry it. ++ Функциялар сәйкес келмейді, әрекетті қайталаңыз ++ ++ ++ ++ Unknown verfication error. ++ Беймәлім тексеру қатесі ++ ++ ++ +diff --git a/translations/kiran-authentication-daemon.ky_KG.ts b/translations/kiran-authentication-daemon.ky_KG.ts +new file mode 100644 +index 0000000..9fae909 +--- /dev/null ++++ b/translations/kiran-authentication-daemon.ky_KG.ts +@@ -0,0 +1,105 @@ ++ ++ ++ ++ ++ PolkitProxy ++ ++ ++ Authorization failed. ++ Kuloledwa kulephera ++ ++ ++ ++ QObject ++ ++ ++ Authentication ID already exists. ++ ID бар ++ ++ ++ ++ The user is enrolling. ++ Ogwiritsa ntchito akulembetsa ++ ++ ++ ++ Too many sessions. ++ Өтө көп сүйлөшүү ++ ++ ++ ++ The session is in authentication. ++ текшерүү менен сүйлөшүү ++ ++ ++ ++ Internel error. ++ Ички каталар ++ ++ ++ ++ Unknown error. ++ Zolakwitsa zosadziwika ++ ++ ++ ++ (error code: 0x%x) ++ Right Code 0x% ++ ++ ++ ++ Enrollment completed successfully. ++ Kulembetsa kwatha ++ ++ ++ ++ Enrollment failed. ++ Kulembetsa kulephera ++ ++ ++ ++ Enroll stage passed. ++ Gawo lolembetsa ladutsa ++ ++ ++ ++ The enrollment scan did not succeed, please retry it. ++ Kulembetsa kulembetsa sikupambana, chonde yesani ++ ++ ++ ++ The finger swipe was too short, please retry it. ++ Kujambula zala kumakhala kochepa kwambiri, chonde yesani kachiwiri ++ ++ ++ ++ The finger was not centered on the scanner, please retry it. ++ Mwala suli pakati pa scanner Chonde yesani kachiwiri ++ ++ ++ ++ Unknown enrollment error. ++ Zolakwitsa zosadziwika ++ ++ ++ ++ Feature not match. ++ Function дал келбейт ++ ++ ++ ++ Feature matching successed. ++ Zogwirizana ndi zochitika ++ ++ ++ ++ Feature not match, please retry it. ++ Function сураныч, кайра аракет дал келбейт ++ ++ ++ ++ Unknown verfication error. ++ Cholakwika chosadziwika ++ ++ ++ +diff --git a/translations/kiran-authentication-daemon.mn_MN.ts b/translations/kiran-authentication-daemon.mn_MN.ts +new file mode 100644 +index 0000000..ea38ce5 +--- /dev/null ++++ b/translations/kiran-authentication-daemon.mn_MN.ts +@@ -0,0 +1,105 @@ ++ ++ ++ ++ ++ PolkitProxy ++ ++ ++ Authorization failed. ++ Зөвшөөрөл амжилтгүй болсон ++ ++ ++ ++ QObject ++ ++ ++ Authentication ID already exists. ++ Гэрчлэх ID аль хэдийн байна ++ ++ ++ ++ The user is enrolling. ++ Хэрэглэгч бүртгүүлж байна ++ ++ ++ ++ Too many sessions. ++ Хэт олон яриа ++ ++ ++ ++ The session is in authentication. ++ Сешн нь гэрчлэгдсэн байна ++ ++ ++ ++ Internel error. ++ Дотоод алдаа ++ ++ ++ ++ Unknown error. ++ Үл мэдэгдэх алдаа ++ ++ ++ ++ (error code: 0x%x) ++ Алдааны код 0x% ++ ++ ++ ++ Enrollment completed successfully. ++ Бүртгэл амжилттай дууссан ++ ++ ++ ++ Enrollment failed. ++ Бүртгэл амжилтгүй болсон ++ ++ ++ ++ Enroll stage passed. ++ Бүртгэлийн үе шат өнгөрсөн ++ ++ ++ ++ The enrollment scan did not succeed, please retry it. ++ Бүртгэлийн скан амжилтгүй болсон тул дахин оролдоно уу ++ ++ ++ ++ The finger swipe was too short, please retry it. ++ Хуруу хэт богино байна, дахин оролдоно уу ++ ++ ++ ++ The finger was not centered on the scanner, please retry it. ++ Хуруу нь сканнерын төвд байхгүй байна, дахин оролдоно уу ++ ++ ++ ++ Unknown enrollment error. ++ Бүртгэлийн алдаа тодорхойгүй байна ++ ++ ++ ++ Feature not match. ++ Функц таарахгүй байна ++ ++ ++ ++ Feature matching successed. ++ Онцлог шинж чанар амжилттай таарч байна ++ ++ ++ ++ Feature not match, please retry it. ++ Функц таарахгүй байна уу, дахин оролдоно уу ++ ++ ++ ++ Unknown verfication error. ++ Баталгаажуулалтын алдаа тодорхойгүй байна ++ ++ ++ +diff --git a/translations/kiran-authentication-daemon.ug_CN.ts b/translations/kiran-authentication-daemon.ug_CN.ts +new file mode 100644 +index 0000000..e3bd46c +--- /dev/null ++++ b/translations/kiran-authentication-daemon.ug_CN.ts +@@ -0,0 +1,105 @@ ++ ++ ++ ++ ++ PolkitProxy ++ ++ ++ Authorization failed. ++ ھوقۇق بېرىش مەغلۇپ بولدى. ++ ++ ++ ++ QObject ++ ++ ++ Authentication ID already exists. ++ سالاھىيەت تەكشۈرۈش ID مەۋجۇت. ++ ++ ++ ++ The user is enrolling. ++ ئابونت تىزىمغا ئالدۇرىۋاتىدۇ. ++ ++ ++ ++ Too many sessions. ++ بەك كۆپ سۆزلىشىش. ++ ++ ++ ++ The session is in authentication. ++ سۆزلىشىش سالاھىيەت تەكشۈرۈش باسقۇچىدا. ++ ++ ++ ++ Internel error. ++ ئىچكى خاتالىق. ++ ++ ++ ++ Unknown error. ++ نامەلۇم خاتالىق. ++ ++ ++ ++ (error code: 0x%x) ++ ( خاتا كود : %0x ) ++ ++ ++ ++ Enrollment completed successfully. ++ تىزىملىتىش مۇۋەپپەقىيەتلىك تاماملاندى. ++ ++ ++ ++ Enrollment failed. ++ تىزىملىتىش مەغلۇپ بولدى. ++ ++ ++ ++ Enroll stage passed. ++ تىزىملىتىش باسقۇچىدىن ئۆتتى. ++ ++ ++ ++ The enrollment scan did not succeed, please retry it. ++ رويخەتكە ئالدۇرغان تەسۋىر كۆچۈرۈش مۇۋەپپەقىيەتلىك بولمىدى، قايتا سىناڭ. ++ ++ ++ ++ The finger swipe was too short, please retry it. ++ بارماقنىڭ سىيرىلىشى بەك قىسقا، قايتا سىناڭ. ++ ++ ++ ++ The finger was not centered on the scanner, please retry it. ++ بارماق سكاننېرنىڭ مەركىزىدە ئەمەس، قايتا سىناڭ. ++ ++ ++ ++ Unknown enrollment error. ++ نامەلۇم تىزىملاش خاتالىقى ++ ++ ++ ++ Feature not match. ++ ئىقتىدارى ماس كەلمىدى. ++ ++ ++ ++ Feature matching successed. ++ ئالاھىدىلىكى ماسلاشتۇرۇش مۇۋەپپەقىيەتلىك بولدى. ++ ++ ++ ++ Feature not match, please retry it. ++ ئىقتىدارى ماس كەلمىدى، قايتا سىناڭ. ++ ++ ++ ++ Unknown verfication error. ++ نامەلۇم دەلىللەش خاتالىقى. ++ ++ ++ +diff --git a/translations/pam_kiran_authentication.bo_CN.ts b/translations/pam_kiran_authentication.bo_CN.ts +new file mode 100644 +index 0000000..826ab9f +--- /dev/null ++++ b/translations/pam_kiran_authentication.bo_CN.ts +@@ -0,0 +1,17 @@ ++ ++ ++ ++ ++ QObject ++ ++ ++ Select Authentication type (%1 default, %2 password, %3 fingerprint): ++ ཐོབ་ཐང་ཞིབ་བཤེར་གྱི་རིགས(1%ཡི་ཁས་ལེན།2%ཡི་གསང་བའི་ཨང་གྲངས།3%གྱི་མཛུབ་རིས་གདམ་དགོས།) ++ ++ ++ ++ Too many authentication failures, so the authentication mode is locked. ++ ཐོབ་ཐང་ཞིབ་བཤེར་གྱི་ཕམ་ཁ་མང་བས།ཐོབ་ཐང་ཞིབ་བཤེར་གྱི་རྣམ་པ་གཏན་འཁེལ་བྱས། ++ ++ ++ +diff --git a/translations/pam_kiran_authentication.kk_KZ.ts b/translations/pam_kiran_authentication.kk_KZ.ts +new file mode 100644 +index 0000000..8e73c39 +--- /dev/null ++++ b/translations/pam_kiran_authentication.kk_KZ.ts +@@ -0,0 +1,17 @@ ++ ++ ++ ++ ++ QObject ++ ++ ++ Select Authentication type (%1 default, %2 password, %3 fingerprint): ++ % 1 түпнұсқалық растама түрі% 1 әдепкі мәні% 2 паролі% 3 саусақ ізін таңдаңыз ++ ++ ++ ++ Too many authentication failures, so the authentication mode is locked. ++ Аутентификация тым көп сәтсіз аяқталды, сондықтан аутентификация режимі құлыпталған ++ ++ ++ +diff --git a/translations/pam_kiran_authentication.ky_KG.ts b/translations/pam_kiran_authentication.ky_KG.ts +new file mode 100644 +index 0000000..d73b620 +--- /dev/null ++++ b/translations/pam_kiran_authentication.ky_KG.ts +@@ -0,0 +1,17 @@ ++ ++ ++ ++ ++ QObject ++ ++ ++ Select Authentication type (%1 default, %2 password, %3 fingerprint): ++ Sankhani mtundu wotsimikizirika wa mtundu 1 1 Mverani mtengo wa 2% password 3 zolemba zala ++ ++ ++ ++ Too many authentication failures, so the authentication mode is locked. ++ Инсандык текшерүү өтө көп ката Ошондуктан текшерүү режими кулпуланган ++ ++ ++ +diff --git a/translations/pam_kiran_authentication.mn_MN.ts b/translations/pam_kiran_authentication.mn_MN.ts +new file mode 100644 +index 0000000..f9ed721 +--- /dev/null ++++ b/translations/pam_kiran_authentication.mn_MN.ts +@@ -0,0 +1,17 @@ ++ ++ ++ ++ ++ QObject ++ ++ ++ Select Authentication type (%1 default, %2 password, %3 fingerprint): ++ Гэрчлэлийн төрөл% 1 анхдагч% 2 нууц үг% 3 хурууны хээг сонгоно уу ++ ++ ++ ++ Too many authentication failures, so the authentication mode is locked. ++ Хэт олон баталгаажуулалт амжилтгүй болсон тул гэрчлэх горим түгжигдсэн байна ++ ++ ++ +diff --git a/translations/pam_kiran_authentication.ug_CN.ts b/translations/pam_kiran_authentication.ug_CN.ts +new file mode 100644 +index 0000000..b4d32f7 +--- /dev/null ++++ b/translations/pam_kiran_authentication.ug_CN.ts +@@ -0,0 +1,17 @@ ++ ++ ++ ++ ++ QObject ++ ++ ++ Select Authentication type (%1 default, %2 password, %3 fingerprint): ++ سالاھىيەت تەكشۈرۈش تۈرىنى تاللاش ( %1 كۆڭۈلدىكى قىممەت، %2 مەخپىي نومۇر، %3 بارماق ئىزى) : ++ ++ ++ ++ Too many authentication failures, so the authentication mode is locked. ++ سالاھىيەت تەكشۈرۈشتە مەغلۇپ بولۇش بەك كۆپ، شۇڭا سالاھىيەت تەكشۈرۈش ئەندىزىسى قۇلۇپلىنىپ قالدى. ++ ++ ++ +-- +2.33.0 + diff --git a/kiran-authentication-service.spec b/kiran-authentication-service.spec index 4047c88..b6fdfd6 100644 --- a/kiran-authentication-service.spec +++ b/kiran-authentication-service.spec @@ -1,12 +1,14 @@ Name: kiran-authentication-service Version: 2.5.0 -Release: 1 +Release: 2 Summary: Kiran Desktop kiran authentication service License: MulanPSL-2.0 URL: http://www.kylinsec.com.cn Source0: %{name}-%{version}.tar.gz +Patch: 0001-fix-translate-add-some-translation.patch + BuildRequires: systemd BuildRequires: systemd-devel BuildRequires: gcc @@ -56,14 +58,27 @@ make %{?_smp_mflags} V=1 %{_prefix}/lib/systemd/system/kiran-authentication-daemon.service %{_sysconfdir}/kiran-authentication-service/kad.ini %{_datadir}/kiran-authentication-service/translations/kiran-authentication-daemon.zh_CN.qm +%{_datadir}/kiran-authentication-service/translations/kiran-authentication-daemon.bo_CN.qm +%{_datadir}/kiran-authentication-service/translations/kiran-authentication-daemon.kk_KZ.qm +%{_datadir}/kiran-authentication-service/translations/kiran-authentication-daemon.ky_KG.qm +%{_datadir}/kiran-authentication-service/translations/kiran-authentication-daemon.mn_MN.qm +%{_datadir}/kiran-authentication-service/translations/kiran-authentication-daemon.ug_CN.qm %{_bindir}/kiran-authentication-daemon %{_datadir}/kiran-authentication-service/translations/pam_kiran_authentication.zh_CN.qm +%{_datadir}/kiran-authentication-service/translations/pam_kiran_authentication.bo_CN.qm +%{_datadir}/kiran-authentication-service/translations/pam_kiran_authentication.kk_KZ.qm +%{_datadir}/kiran-authentication-service/translations/pam_kiran_authentication.ky_KG.qm +%{_datadir}/kiran-authentication-service/translations/pam_kiran_authentication.mn_MN.qm +%{_datadir}/kiran-authentication-service/translations/pam_kiran_authentication.ug_CN.qm %{_libdir}/security/pam_kiran_authentication.so %files devel %{_includedir}/kiran-authentication-service/kas-authentication-i.h %changelog +* Sat Apr 08 2023 wangyucheng - 2.5.0-2 +- KYOS-T: add some translation + * Tue Apr 04 2023 liuxinhao - 2.5.0-1 - KYOS-F: New version authentication service