{"id":74173,"date":"2020-03-14T20:43:35","date_gmt":"2020-03-14T17:43:35","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/kriptograficheskij-arm-na-baze-standartov-s-otkrytym-klyuchom-dlya-platformy-android"},"modified":"2020-03-14T20:43:35","modified_gmt":"2020-03-14T17:43:35","slug":"kriptograficheskij-arm-na-baze-standartov-s-otkrytym-klyuchom-dlya-platformy-android","status":"publish","type":"post","link":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/kriptograficheskij-arm-na-baze-standartov-s-otkrytym-klyuchom-dlya-platformy-android","title":{"rendered":"Kryptografische ARM basierend auf Standards mit \u00f6ffentlichem Schl\u00fcssel f\u00fcr die Android-Plattform","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"\u041a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0410\u0420\u041c \u043d\u0430 \u0431\u0430\u0437\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043e\u0432 \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u043a\u043b\u044e\u0447\u043e\u043c \u0434\u043b\u044f \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b Android\" src=\"\/wp-content\/uploads\/2020\/03\/a51adf208b4713d2f0ce6e9a45ed5068.jpg\" style=\"display:block;margin: 0 auto;\" \/>\u041f\u0440\u0438\u0448\u043b\u043e \u0432\u0440\u0435\u043c\u044f \u043f\u0440\u043e\u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u043a \u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0410\u0420\u041c \u043d\u0430 \u0431\u0430\u0437\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043e\u0432 \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u043a\u043b\u044e\u0447\u043e\u043c <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/476210\/\">cryptoarmpkcs<\/a><\/noindex> \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u0430 \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0445 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c, \u0430 \u0438\u043c\u0435\u043d\u043d\u043e Android.<\/p>\n<p>\u041a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0437\u0430\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u043b\u0430\u0441\u044c \u043f\u0440\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0443\u0442\u0438\u043b\u0438\u0442\u044b cryptoarmpkcs, \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0434\u043e\u043b\u0436\u0435\u043d \u0438\u0441\u043f\u044b\u0442\u044b\u0432\u0430\u0442\u044c \u043c\u0438\u043d\u0438\u043c\u0443\u043c \u043d\u0435\u0443\u0434\u043e\u0431\u0441\u0442\u0432 \u043f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0435 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0439 \u043f\u043e\u0434\u043f\u0438\u0441\u0438. \u0418\u043c\u0435\u043d\u043d\u043e \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u044b \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u043c \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0433\u043e \u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044f \u0434\u043b\u044f \u043b\u0438\u0447\u043d\u043e\u0433\u043e \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0442\u043e\u043a\u0435\u043d\u044b <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/400943\/\">PKCS#11<\/a><\/noindex> \u0438\/\u0438\u043b\u0438 \u0437\u0430\u0449\u0438\u0449\u0435\u043d\u043d\u044b\u0435 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/460205\/\">PKCS#12<\/a><\/noindex>. \u041d\u0430\u0434\u043e \u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 PKCS#12 \u0432\u043e \u043c\u043d\u043e\u0433\u0438\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0447\u0443\u0442\u044c \u043b\u0438 \u043d\u0435 \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u043c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043a\u043e\u0433\u0434\u0430 \u0443 \u0442\u0435\u0445 \u0436\u0435 \u0442\u043e\u043a\u0435\u043d\u043e\u0432 PKCS#11 \u043d\u0435 \u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 \u0434\u043b\u044f \u0442\u0435\u0445 \u0438\u043b\u0438 \u0438\u043d\u044b\u0445 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430\u0445. <noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex>\u0412\u043e\u0442 \u0438 \u043c\u044b \u0440\u0435\u0448\u0438\u043b\u0438 \u043d\u0430\u0447\u0430\u0442\u044c \u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0443\u0442\u0438\u043b\u0438\u0442\u044b cryptoarmpkcs \u043d\u0430 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0443 Android \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 \u0437\u0430\u0449\u0438\u0449\u0435\u043d\u043d\u044b\u0445 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432 PKCS#12. <\/p>\n<p>\u0421\u0440\u0430\u0437\u0443 \u043e\u0442\u043c\u0435\u0442\u0438\u043c, \u0447\u0442\u043e \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043f\u0440\u043e\u0435\u043a\u0442 \u0434\u0435\u043b\u0430\u043b\u0441\u044f \u043d\u0430 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435 C \u0438 Tcl\/Tk, \u0442\u043e \u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043d\u0435 \u0432\u044b\u0437\u0432\u0430\u043b\u043e \u043a\u0430\u043a\u0438\u0445-\u043b\u0438\u0431\u043e \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0438\u0430\u043b\u044c\u043d\u044b\u0445 \u0442\u0440\u0443\u0434\u043d\u043e\u0441\u0442\u0435\u0439. \u042d\u0442\u043e \u0441\u0442\u0430\u043b\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u043c \u0435\u0449\u0435 \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438 <noindex><a rel=\"nofollow\" href=\"https:\/\/www.androwish.org\/home\/home\" rel=\"nofollow\">Androwish<\/a><\/noindex>. \u0421 \u0440\u0430\u0437\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u0435\u043c \u0438 <noindex><a rel=\"nofollow\" href=\"https:\/\/www.androwish.org\/home\/wiki?name=AndroWish+SDK\" rel=\"nofollow\">\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u043e\u0439 \u0441\u0440\u0435\u0434\u044b<\/a><\/noindex> \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u043d\u0435 \u0432\u043e\u0437\u043d\u0438\u043a\u043b\u043e (\u043c\u043e\u044f \u0440\u0430\u0431\u043e\u0447\u0430\u044f \u0441\u0440\u0435\u0434\u0430 \u044d\u0442\u043e Linux \u2014 Mageia-7.0). \u041f\u0440\u0438\u0432\u0435\u0434\u0443 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d \u0441\u043a\u0440\u0438\u043f\u0442, \u0434\u043b\u044f \u0440\u0430\u0437\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u044f Android Command Line Tools (sdk-tools-linux-xxxx.zip):<\/p>\n<pre><code class=\"plaintext\">#!\/bin\/sh\nif [ $# -ne 1   ]\n    then \n\techo \".\/InstallAndroidSDK.sh &lt;sdk-tools-linux-xxxxxxxx.zip&gt;\"\n\techo \"\u041d\u0435 \u0443\u043a\u0430\u0437\u0430\u043d \u0430\u0440\u0445\u0438\u0432 \u0438\u043b\u0438 \u0447\u0438\u0441\u043b\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0431\u043e\u043b\u044c\u0448\u0435 1\"\n\texit 1\nfi\nif [ ! -f $1 ]\n    then \n\techo \".\/InstallAndroidSDK.sh &lt;sdk-tools-linux-xxxxxxxx.zip&gt;\"\n\techo \"\u0430\u0440\u0445\u0438\u0432 $1 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442\"\n\texit 1\nfi\n#\u0420\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u044b\u0432\u0430\u0435\u043c SDK-TOOLS \u0432 \u043f\u0430\u043f\u043a\u0443 tools\n#unzip sdk-tools-linux-4333796.zip\nunzip $1\n#\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043f\u0430\u043f\u043a\u0443 android-sdk-linux\nmkdir android-sdk-linux\n#\u041f\u0435\u0440\u0435\u043c\u0435\u0449\u0432\u0435\u043c \u043f\u0430\u043f\u043a\u0443 tools \u0432 android-sdk-linux\nmv tools android-sdk-linux\ncd android-sdk-linux\/tools\/bin\n.\/sdkmanager \"platform-tools\" \"platforms;android-29\"  <\/code><\/pre>\n<p>\n\u0421\u0430\u043c\u043e\u0435 \u0437\u0430\u043c\u0435\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0442\u043e, \u0447\u0442\u043e \u0432 \u0441\u0440\u0435\u0434\u0443 Androwish \u0432\u0445\u043e\u0434\u0438\u0442 \u0434\u0432\u0430 \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0442\u043e\u0440\u0430 undrowish-xxx \u0438 vanillawish-xxx \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u044b\u0445 \u043f\u043e \u0441\u043e\u0441\u0442\u0430\u0432\u0443 \u00ab\u0431\u0430\u043b\u0430\u043b\u0430\u0435\u043a\u00bb (\u043f\u0430\u043a\u0435\u0442\u043e\u0432), \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0445 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0432 \u0441\u043e\u0441\u0442\u0430\u0432 Androwish. \u0420\u0430\u0437\u043b\u0438\u0447\u0438\u0435 \u043c\u0435\u0436\u0434\u0443 undrowish \u0438 vanillawish \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0432 vanillawish \u0431\u044d\u043a\u044d\u043d\u0434 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 SDL \/ AGG \/ freetype:<\/p>\n<p><img decoding=\"async\" alt=\"\u041a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0410\u0420\u041c \u043d\u0430 \u0431\u0430\u0437\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043e\u0432 \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u043a\u043b\u044e\u0447\u043e\u043c \u0434\u043b\u044f \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b Android\" src=\"\/wp-content\/uploads\/2020\/03\/aa75e0a21a6e9208e3842f1a76ed1ca8.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u041d\u0430\u043b\u0438\u0447\u0438\u0435 \u044d\u0442\u0438\u0445 \u0434\u0432\u0443\u0445 \u0443\u0442\u0438\u043b\u0438\u0442 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0431\u0435\u0437 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u0430\u043c\u043e\u0433\u043e Android-\u0430 \u0438 \u0435\u0433\u043e \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430 \u0441 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u043c \u043f\u0440\u0438\u0431\u043b\u0438\u0436\u0435\u043d\u0438\u0435\u043c \u043a \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c\u0443 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0443. \u0412 \u043f\u0435\u0440\u0432\u0443\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u044d\u0442\u043e, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, undroidwish-xxx. <\/p>\n<p>\u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 \u043f\u0430\u043a\u0435\u0442 \u0434\u043b\u044f Android \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u0432 \u0441\u0440\u0435\u0434\u0435 AWSDK. \u0414\u0435\u0440\u0435\u0432\u043e \u0432\u0430\u0448\u0435\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0434\u043e\u043b\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u043d\u0435\u0441\u0435\u043d\u043e \u0430 \u043f\u0430\u043f\u043a\u0443 ~\/AWSDK\/assets\/app. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0433\u043b\u0430\u0432\u043d\u044b\u0439 \u043c\u043e\u0434\u0443\u043b\u044c \u0432\u0430\u0448\u0435\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d \u0432 main.tcl. \u0415\u0441\u043b\u0438 \u0432\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0431\u0430\u043b\u0430\u043b\u0430\u0439\u043a\u0438 \u0441 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u043c\u0438, \u0442\u043e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u044c \u0432 \u043f\u0430\u043f\u043a\u0438 ~\/AWSDK\/libs\/x86 \u0434\u043b\u044f \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430 \u0438 ~\/AWSDK\/libs\/armeabi \u0434\u043b\u044f \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430.<\/p>\n<p>\u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u0443:<\/p>\n<pre><code class=\"bash\">$wish ~\/AWSDK\/tools\/bones<\/code><\/pre>\n<p>\n\u0438 \u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u044c \u0435\u0435 \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u044f\u043c:<\/p>\n<p><img decoding=\"async\" alt=\"\u041a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0410\u0420\u041c \u043d\u0430 \u0431\u0430\u0437\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043e\u0432 \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u043a\u043b\u044e\u0447\u043e\u043c \u0434\u043b\u044f \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b Android\" src=\"\/wp-content\/uploads\/2020\/03\/c3cefb4b82f700752fd3d425adb84488.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u0421\u043e\u0431\u0440\u0430\u043d\u043d\u044b\u0439 apk-\u043f\u0430\u043a\u0435\u0442 \u0431\u0443\u0434\u0435\u0442 \u043b\u0435\u0436\u0430\u0442\u044c \u0432 \u043f\u0430\u043f\u043a\u0435 ~\/AWSDK\/build\/outputs\/apk.<\/p>\n<p>\u0415\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u043e \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0438\u043b\u0438 \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440, \u0442\u043e \u043f\u0430\u043a\u0435\u0442 \u043c\u043e\u0436\u043d\u043e \u0441\u0440\u0430\u0437\u0443 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c.<br \/>\n\u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0434\u043e\u043b\u0436\u043d\u043e \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u044c\u0441\u044f \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u043e\u0442\u043b\u0430\u0434\u043a\u0438. <\/p>\n<p>\u041d\u043e \u0432\u0435\u0440\u043d\u0435\u043c\u0441\u044f \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043a \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044e. \u0427\u0442\u043e \u0436\u0435 \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0432 \u043d\u0435\u043c \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c.<\/p>\n<p>\u0415\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0432 \u043f\u0435\u0440\u0432\u0443\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0441\u0432\u044f\u0437\u0430\u043d\u044b \u0441 \u0440\u0430\u0437\u043c\u0435\u0440\u0430\u043c\u0438 \u044d\u043a\u0440\u0430\u043d\u0430. \u041f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u043f\u0435\u0440\u0435\u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0433\u043b\u0430\u0432\u043d\u043e\u0435 (\u0441\u0442\u0430\u0440\u0442\u043e\u0432\u043e\u0435 \u043e\u043a\u043d\u043e). \u0412 \u0438\u0442\u043e\u0433\u0435, \u0432\u043c\u0435\u0441\u0442\u043e \u043e\u0434\u043d\u043e\u0433\u043e \u043e\u043a\u043d\u0430 \u043d\u0430 \u043e\u0431\u044b\u0447\u043d\u043e\u043c \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0435:<\/p>\n<p><img decoding=\"async\" alt=\"\u041a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0410\u0420\u041c \u043d\u0430 \u0431\u0430\u0437\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043e\u0432 \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u043a\u043b\u044e\u0447\u043e\u043c \u0434\u043b\u044f \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b Android\" src=\"\/wp-content\/uploads\/2020\/03\/acf1af7eee18da54dc508b7383594c32.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u041f\u043e\u044f\u0432\u0438\u043b\u043e\u0441\u044c \u0442\u0440\u0438 \u043e\u043a\u043d\u0430 \u043d\u0430 Android: <\/p>\n<p><img decoding=\"async\" alt=\"\u041a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0410\u0420\u041c \u043d\u0430 \u0431\u0430\u0437\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043e\u0432 \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u043a\u043b\u044e\u0447\u043e\u043c \u0434\u043b\u044f \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b Android\" src=\"\/wp-content\/uploads\/2020\/03\/3c92a3e3e80c700f147374fef13e5d3a.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u041f\u0435\u0440\u0432\u043e\u0435 \u043e\u043a\u043d\u043e \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u043c. \u0423\u0441\u043b\u043e\u0432\u043d\u043e \u043e\u043d\u043e \u0440\u0430\u0437\u0431\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0447\u0430\u0441\u0442\u0435\u0439. \u041f\u0435\u0440\u0432\u0430\u044f \u0447\u0430\u0441\u0442\u044c, \u043d\u0430\u0445\u043e\u0434\u044f\u0449\u0430\u044f\u0441\u044f \u0432\u0432\u0435\u0440\u0445\u0443, \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0443\u0442\u0438\u043b\u0438\u0442\u044b \u0438 \u0435\u0435 \u043b\u043e\u0433\u043e\u0442\u0438\u043f.<\/p>\n<p>\u0414\u0430\u043b\u0435\u0435 \u0438\u0434\u0435\u0442 \u043b\u043e\u0433\u043e\u0442\u0438\u043f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044f, \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u043e\u043d\u043d\u0430\u044f \u0441\u043f\u0440\u0430\u0432\u043a\u0430 \u0438 \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u044e\u0442 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u0442\u0440\u0438 \u043a\u043d\u043e\u043f\u043a\u0438.<br \/>\n\u0421\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0430 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 canvas (\u0445\u043e\u043b\u0441\u0442\u0430). \u041d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u043a\u043d\u043e\u043f\u043a\u0438 \u0434\u0432\u0443\u0445 \u0432\u0438\u0434\u043e\u0432: \u043e\u0434\u043d\u0430 \u0432 \u0432\u0438\u0434\u0435 \u043f\u043e\u043b\u0443\u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0433\u043e \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430 (\u0441\u0440\u0435\u0434\u043d\u044f\u044f), \u0430 \u0434\u0432\u0435 \u0434\u0440\u0443\u0433\u0438\u0435 \u0432 \u0432\u0438\u0434\u0435 \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430 \u0441 \u0437\u0430\u043a\u0440\u0443\u0433\u043b\u0435\u043d\u043d\u044b\u043c\u0438 \u0443\u0433\u043b\u0430\u043c\u0438. \u0414\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043a\u043d\u043e\u043f\u043e\u043a \u0441 \u0437\u0430\u043a\u0440\u0443\u0433\u043b\u0435\u043d\u043d\u044b\u043c\u0438 \u0443\u0433\u043b\u0430\u043c\u0438 \u0431\u044b\u043b\u0430 \u0437\u0430\u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0430 \u00ab\u0431\u0430\u043b\u0430\u043b\u0430\u0439\u043a\u0430\u00bb <noindex><a rel=\"nofollow\" href=\"http:\/\/tclbitprint.sourceforge.net\/\" rel=\"nofollow\">tkpath<\/a><\/noindex>. \u041b\u0438\u0447\u043d\u043e \u043d\u0430 \u043c\u0435\u043d\u044f \u044d\u0442\u0430 \u0431\u0430\u043b\u0430\u043b\u0430\u0439\u043a\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u043b\u0430 \u043e\u0447\u0435\u043d\u044c \u0445\u043e\u0440\u043e\u0448\u0435\u0435 \u0432\u043f\u0435\u0447\u0430\u0442\u043b\u0435\u043d\u0438\u0435. \u0415\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 \u0445\u043e\u043b\u0441\u0442\u043e\u043c (canvas) \u043b\u044c\u0432\u0438\u043d\u0443\u044e \u0434\u043e\u043b\u044e \u043a\u043e\u0434\u0430 \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u044f. \u041d\u0438\u0436\u0435 \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u0441\u043a\u0440\u0438\u043f\u0442 create_titul_page.tcl \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043f\u0435\u0440\u0432\u043e\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f. \u041a\u0430\u0436\u0434\u044b\u0439 \u0436\u0435\u043b\u0430\u044e\u0449\u0438\u0439 \u043c\u043e\u0436\u0435\u0442 \u0435\u0433\u043e \u043f\u043e\u0434\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0434 \u0441\u0432\u043e\u0435 \u0432\u0438\u0434\u0435\u043d\u0438\u0435. <\/p>\n<p><b class=\"spoiler_title\">\u0421\u043a\u0440\u0438\u043f\u0442 create_titul_page.tcl<\/b><\/p>\n<pre><code class=\"bash\">package require Tk\npackage require tkpath 0.3.0\n\nglobal mydir\nset mydir [file dirname [info script]]\n#\u0413\u0440\u0443\u0437\u0438\u043c \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438\n#\u041b\u043e\u0433\u043e\u0442\u0438\u043f \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430\nimage create photo logo_product -file [file join $mydir \"imageme\" \"validcertkey_51x24.png\"] \n#\u041b\u043e\u0433\u043e\u0442\u0438\u043f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044f\nimage create photo logo_orel -file [file join $mydir \"imageme\" \"\u044f_\u043e\u0440\u0435\u043b_425x200.png\"] -format \"png -alpha 1.0\"\n#\u0410\u043d\u0434\u0440\u043e\u0438\u0434\u0430 \u0441 tcl\/tk\nimage create photo logo_and -file [file join $mydir \"imageme\" \"AndTk_inv_147x173.png\"] -format \"png -alpha 1.0\"\n#\u0421\u0432\u0438\u0442\u043e\u043a \u043e\u043f\u0435\u0447\u0430\u0442\u0430\u043d\u043d\u044b\u0439\nimage create photo svitok -file [file join $mydir \"imageme\" \"blue_svitok.png\"] -format \"png -alpha 1.0\"\n#\u041f\u043b\u0438\u0442\u043a\u0430\nimage create photo tileand -file [file join $mydir \"imageme\" \"tile_green_and_32x32.png\"] -format \"png -alpha 1.0\"\n#\u0423\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c\/\u0443\u043c\u0435\u043d\u044c\u0448\u0438\u0442\u044c (\u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 - \u0443\u043c\u0435\u043d\u044c\u0448\u0435\u043d\u0438\u0435)\nproc scaleImage {im xfactor {yfactor 0}} {\n   set mode -subsample\n   if {$xfactor&gt;=0 &amp;&amp; $yfactor&gt;=0} {\n       set mode -zoom\n   } else {\n\tset xfactor [expr $xfactor * -1]\n   }\n   if {$yfactor == 0} {set yfactor $xfactor}\n   set t [image create photo]\n   $t copy $im\n   $im blank\n   $im copy $t -shrink $mode $xfactor $yfactor\n   image delete $t\n}\n\nproc createtile {w  backg} {\n    image create photo tiled\n    tiled copy $backg -to 0 0 $::scrwidth $::scrheight -shrink\n    $backg copy tiled\n    image delete tiled\n# \u041c\u043e\u0441\u0442\u0438\u043c \u0445\u043e\u043b\u0441\u0442\n    $w create image 0 0  \n      -image $backg  \n      -anchor nw\n}\n\nproc create_rectangle  {canv img x1 y1 x2 y2 color alfa {wbd 0} {colorline black} } {\n    image create photo $img -format \"default -colorformat  rgb\"\n    set rgb1 [winfo rgb $canv $color]\n    set cr  [lindex $rgb1 0]\n    set cg  [lindex $rgb1 1]\n    set cb  [lindex $rgb1 2]\n    set fill [format \"#%04x%04x%04x\" $cr $cg $cb ]\n#\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0446\u0432\u0435\u0442\u043d\u043e\u0439 \u043f\u0440\u0430\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\n    $img put $fill -to 0 0 [expr {$x2 - $x1}] [expr {$y2 -$y1}]\n#\u0421\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0443\n    set dimg [$img data -format png]\n#\u0421\u043e\u0437\u0434\u0430\u0435\u043c image \u0441 \u0443\u0447\u0435\u0442\u043e\u043c alpha \u043a\u0430\u043d\u0430\u043b\u0430\n    image create photo $img -data $dimg -format \"png -alpha $alfa\"\n#    $img put [list $rgb1] -to 0 0 [expr {$x2 - $x1}] [expr {$y2 -$y1}]\n#\u041e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u043c \u0446\u0432\u0435\u0442\u043d\u043e\u0439 \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\n    set imgr [$canv create image $x1 $y1 -image $img -anchor nw] \n    set cc [subst {butImg $img}]\n    $canv bind $imgr &lt;ButtonPress-1&gt; $cc\n#\u041e\u043a\u043e\u043d\u0442\u043e\u0432\u043a\u0430 \u0432\u043e\u043a\u0440\u0443\u0433 \u0446\u0432\u0435\u0442\u043d\u043e\u0433\u043e \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430\n    if {$wbd &gt; 0 } {\n\tset item [$canv create rect $x1 $y1 $x2 $y2 -outline $colorline -width $wbd ]\n\t$canv bind $item &lt;ButtonPress-1&gt; $cc\n    }\n   return $imgr\n}\n\nproc butImg {img} {\n    tk_messageBox -title \"\u041a\u043d\u043e\u043f\u043a\u0430\" -icon info -message \"\u041d\u0430\u0436\u0430\u043b\u0438 \u043a\u043d\u043e\u043f\u043a\u0443=$img\" -detail \"::screenwidth=$::scrwidthn::screenheight=$::scrheight\" -parent .\n    if {$img == \"exit\"} {\n\tset answer [tk_dialog .dialog2 \"\u041a\u043e\u043d\u0435\u0446 \u0440\u0430\u0431\u043e\u0442\u044b\" \"\u0412\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043en\u0445\u043e\u0442\u0438\u0442\u0435 \u0432\u044b\u0439\u0442\u0438?\" question 0 \"\u0414\u0430\" \"\u041d\u0435\u0442\" ]\n\tif {$answer == 0} {\n    \t    exit\n\t}\t\n    }\n}\n\nproc page_titul {fr  logo_manufacturer} {\n    global mydir\n#\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0445\u043e\u043b\u0441\u0442 \u043d\u0430 \u0432\u0435\u0441\u044c \u044d\u043a\u0440\u0430\u043d\n    tkp::canvas $fr.can -borderwidth 0 -height [winfo screenheight .] -width [winfo screenwidth .] -relief flat\n#\u041c\u043e\u0441\u0442\u0438\u043c \u0445\u043e\u043b\u0441\u0442 \u043f\u043b\u0438\u0442\u043a\u043e\u0439 \n    createtile \"$fr.can\"  \"tileand\"\n    pack $fr.can  -anchor center -expand 1 -fill both -side top  -padx 0 -pady 0\n#\u0412\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u043c \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0434\u043b\u044f \u043b\u043e\u0433\u043e\u0442\u0438\u043f\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044f\n#update \u0447\u0442\u043e\u0431\u044b \u043e\u0431\u043d\u043e\u0432\u0438\u043b\u0430\u0441\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0432 \u0411\u0414 \u043e\u0431 \u043e\u043a\u043d\u0430\u0445\n    update\n#    set aa [winfo height $fr.labtitul]\n    set aa $::padly\n#\u0426\u0435\u043d\u0442\u0440\u0438\u0440\u0443\u0435\u043c \u043b\u043e\u0433\u043e\u0442\u0438\u043f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\n    set ha [image width $logo_manufacturer]\n    set xman [expr {($::scrwidth - $ha) \/ 2 }]\n    $fr.can create image $xman $aa -image $logo_manufacturer -anchor nw -tag tag_logo\n\n    set blogo [$fr.can bbox tag_logo]\n    set wexit [lindex $blogo 3]\n    if {$::typetlf } {\n\tset dlx [expr {$::padlx \/ 1}]\n\t$fr.can create text [expr $dlx + 6] [expr {$wexit + $::padly + 6}] -anchor nw -text \"\u042d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u0430\u044f \u043f\u043e\u0434\u043f\u0438\u0441\u044c\" -fill black -font {{Roboto Condensed Medium} 15 }\n\t$fr.can create text $dlx [expr {$wexit + $::padly}] -anchor nw -text \"\u042d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u0430\u044f \u043f\u043e\u0434\u043f\u0438\u0441\u044c\" -fill white -font {{Roboto Condensed Medium} 15 } -tag id_text0\n\tupdate\n\tset blogo [$fr.can bbox id_text0]\n\tset wexit [lindex $blogo 3]\n\t$fr.can create text [expr $dlx + 4] [expr {$wexit + $::padly + 4 - 80}] -anchor nw -text \"\u0434\u043b\u044f \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b Android\" -fill black -font {{Roboto Condensed Medium} 13}\n\t$fr.can create text $dlx [expr {$wexit + $::padly - 80}] -anchor nw -text \"\u0434\u043b\u044f \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b Android\" -fill white -font {{Roboto Condensed Medium} 13} -tag id_text1\n\tset blogo [$fr.can bbox id_text1]\n\tset wexit [lindex $blogo 3]\n\t$fr.can create text [expr $dlx + 3] [expr {$wexit + $::padly + 3 - 50}] -anchor nw -text \"\u2116 63 \u0424\u0417 \"\u041e\u0431 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0439n\u043f\u043e\u0434\u043f\u0438\u0441\u0438 \u043e\u0442 6 \u0430\u043f\u0440\u0435\u043b\u044f 2011 \u0433\u043e\u0434\u0430\"\" -fill black -font {{Roboto} 10}\n\t$fr.can create text $dlx [expr {$wexit + $::padly - 50}] -anchor nw -text \"\u2116 63 \u0424\u0417 \"\u041e\u0431 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0439n\u043f\u043e\u0434\u043f\u0438\u0441\u0438 \u043e\u0442 6 \u0430\u043f\u0440\u0435\u043b\u044f 2011 \u0433\u043e\u0434\u0430\"\" -fill white -font {{Roboto} 10} -tag id_text2\n\tset blogo [$fr.can bbox id_text2]\n\tset wexit [lindex $blogo 3]\n\t$fr.can create text [expr $dlx + 2] [expr {$wexit + $::padly + 2 - 40}] -text \"\u0410\u0432\u0442\u043e\u0440\u044b: \u0412.\u041d. \u041e\u0440\u043b\u043e\u0432nhttp:\/\/soft.lissi.ru, http:\/\/www.lissi.run+7(495)589-99-53ne-mail: support@lissi.runn\" \n\t-anchor nw -fill black  -font {{Roboto} 9}\n\t$fr.can create text $dlx [expr {$wexit + $::padly - 40}] -text \"\u0410\u0432\u0442\u043e\u0440\u044b: \u0412.\u041d. \u041e\u0440\u043b\u043e\u0432nhttp:\/\/soft.lissi.ru, http:\/\/www.lissi.run+7(495)589-99-53ne-mail: support@lissi.runn\" \n\t-anchor nw -fill white -tag id_text3  -font {{Roboto} 9}\n    } else {\n\t$fr.can create text [expr $::padlx + 2] [expr {$wexit + $::padly + 2}] -anchor nw -text \"\u042d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u0430\u044f \u043f\u043e\u0434\u043f\u0438\u0441\u044c\" -fill black -font {{Nimbus Sans Narrow} 20}\n\t$fr.can create text $::padlx [expr {$wexit + $::padly}] -anchor nw -text \"\u042d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u0430\u044f \u043f\u043e\u0434\u043f\u0438\u0441\u044c\" -fill white -font {{Nimbus Sans Narrow} 20} -tag id_text0\n\tset blogo [$fr.can bbox id_text0]\n\tset wexit [lindex $blogo 3]\n\t$fr.can create text [expr $::padlx + 2] [expr {$wexit + $::padly + 2 - 20}] -anchor nw -text \"\u0434\u043b\u044f \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b Android\" -fill black -font {{Nimbus Sans Narrow} 18}\n\t$fr.can create text $::padlx [expr {$wexit + $::padly - 20}] -anchor nw -text \"\u0434\u043b\u044f \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b Android\" -fill white -font {{Nimbus Sans Narrow} 18} -tag id_text1\n\tset blogo [$fr.can bbox id_text1]\n\tset wexit [lindex $blogo 3]\n\t$fr.can create text [expr $::padlx + 2] [expr {$wexit + $::padly + 2}] -anchor nw -text \"\u2116 63 \u0424\u0417 \"\u041e\u0431 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0439n\u043f\u043e\u0434\u043f\u0438\u0441\u0438 \u043e\u0442 6 \u0430\u043f\u0440\u0435\u043b\u044f 2011 \u0433\u043e\u0434\u0430\"\" -fill black -font {{Nimbus Sans Narrow} 14}\n\t$fr.can create text $::padlx [expr {$wexit + $::padly}] -anchor nw -text \"\u2116 63 \u0424\u0417 \"\u041e\u0431 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0439n\u043f\u043e\u0434\u043f\u0438\u0441\u0438 \u043e\u0442 6 \u0430\u043f\u0440\u0435\u043b\u044f 2011 \u0433\u043e\u0434\u0430\"\" -fill white -font {{Nimbus Sans Narrow} 14} -tag id_text2\n\tset blogo [$fr.can bbox id_text2]\n\tset wexit [lindex $blogo 3]\n\t$fr.can create text [expr $::padlx + 1] [expr {$wexit + $::padly + 1}] -text \"\u0410\u0432\u0442\u043e\u0440\u044b: \u0412.\u041d. \u041e\u0440\u043b\u043e\u0432nhttp:\/\/soft.lissi.ru, http:\/\/www.lissi.run+7(495)589-99-53ne-mail: support@lissi.runn\" \n\t-anchor nw -fill black  -font {{Nimbus Sans Narrow} 12}\n\t$fr.can create text $::padlx [expr {$wexit + $::padly}] -text \"\u0410\u0432\u0442\u043e\u0440\u044b: \u0412.\u041d. \u041e\u0440\u043b\u043e\u0432nhttp:\/\/soft.lissi.ru, http:\/\/www.lissi.run+7(495)589-99-53ne-mail: support@lissi.runn\" \n\t-anchor nw -fill white -tag id_text3  -font {{Nimbus Sans Narrow} 12} -tag id_text3\n\tset blogo [$fr.can bbox id_text2]\n    }\n    set blogo [$fr.can bbox id_text3]\n    set wland [lindex $blogo 3]\n    $fr.can create image $::padlx $wland -image logo_and -anchor nw -tag tag_land\n    set ha [image height logo_and]\n    set wa [image width logo_and]\n    set ha1 [expr {$ha - ($ha \/ 2 ) }]\n    $fr.can create image [expr {$wa - 80 }] [expr {$wland + $ha1}] -image svitok -anchor nw -tag tag_land\n    if {$::typetlf} {\n\tset x1 [expr {$::padlx \/ 2}]\n\tset y1 [expr {$wland + 120}]\n\tset x2 [expr {$::::scrwidth - $x1}]\n\tset y2 [expr {$y1 + 120}]\n\tset wd 8\n\tset rr 18\n    } else {\n\tset x1 [expr {$::padlx \/ 2}]\n\tset y1 [expr {$wland + 40}]\n\tset x2 [expr {$::::scrwidth - $x1}]\n\tset y2 [expr {$y1 + 40}]\n\tset wd 4\n\tset rr 6\n    }\n\n    set g5 [$fr.can gradient create linear -stops {{0 lightgreen} {1 green}}] \n    set S3 [$fr.can style create -stroke \"skyblue\" -fill  $g5 -strokewidth $wd  -fillopacity 0.6]\n    set im1 [$fr.can create prect $x1 $y1 $x2 $y2 -rx $rr -style $S3]\n    $fr.can bind $im1 &lt;ButtonPress-1&gt; {butImg \"img1\"}\n#\u041f\u0435\u0447\u0430\u0442\u0430\u0435\u043c \u0442\u0435\u0445\u0442\n    set blogo [$fr.can bbox $im1]\n    set by2 [lindex $blogo 3]\n    set by1 [lindex $blogo 1]\n    set bb [expr {($by2 - $by1) \/ 2}]\n    set bx2 [lindex $blogo 2]\n    set bx1 [lindex $blogo 0]\n    set bbx [expr {($bx2 - $bx1) \/ 2}]\n    set txt1 [$fr.can create text [expr {$x1 + $::padlx * 2}] [expr {$y1 + 1 }] -anchor nw -text \"\u0421\u0430\u0439\u0442 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\" -fill black -font {{Arial} 10 normal}] \n#\u0426\u0435\u043d\u0442\u0440\u0438\u0440\u0443\u0435\u043c \u0442\u0435\u0445\u0442\n    set btxt1 [$fr.can bbox $txt1]\n#\u0421\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u043f\u043e \u043e\u0441\u0438 Y\n    set ty2 [lindex $btxt1 3]\n    set ty1 [lindex $btxt1 1]\n    set tt [expr {$ty2 - $ty1}]\n    set tt [expr {$tt \/ 2}]\n    set offsy [expr {($by1 + $bb) - ($ty1 + $tt)}]\n#\u0421\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u043f\u043e \u043e\u0441\u0438 X\n    set tx2 [lindex $btxt1 2]\n    set tx1 [lindex $btxt1 0]\n    set ttx [expr {$tx2 - $tx1}]\n    set ttx [expr {$ttx \/ 2}]\n    set offsx [expr {($bx1 + $bbx) - ($tx1 + $ttx)}]\n    $fr.can move $txt1 $offsx $offsy\n    $fr.can bind $txt1 &lt;ButtonPress-1&gt; {butImg \"img1\"}\n\n    if {$::typetlf} {\n\tset y1 [expr $y2 + 40]\n\tset x2 [expr {$::::scrwidth - $x1}]\n\tset y2 [expr {$y1 + 120}]\n    } else {\n\tset y1 [expr {$y1 + 60}]\n\tset x2 [expr {$::::scrwidth - $x1}]\n\tset y2 [expr {$y1 + 40}]\n    }\n    set im1 [create_rectangle $fr.can \"but2\" $x1 $y1 $x2 $y2 \"#2b972d\" 0.6 $wd \"skyblue\"]\n#\u041f\u0435\u0447\u0430\u0442\u0430\u0435\u043c \u0442\u0435\u0445\u0442\n    set blogo [$fr.can bbox $im1]\n    set by2 [lindex $blogo 3]\n    set by1 [lindex $blogo 1]\n    set bb [expr {($by2 - $by1) \/ 2}]\n    set bx2 [lindex $blogo 2]\n    set bx1 [lindex $blogo 0]\n    set bbx [expr {($bx2 - $bx1) \/ 2}]\n    set txt1 [$fr.can create text [expr {$x1 + $::padlx * 2}] [expr {$y1 + 1 }] -anchor nw -text \"\u041f\u0435\u0440\u0435\u0445\u043e\u0434 \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0435 \u043c\u0435\u043d\u044e\" -fill black -font {{Roboto Condensed Medium} 12}] \n#\u0426\u0435\u043d\u0442\u0440\u0438\u0440\u0443\u0435\u043c \u0442\u0435\u043a\u0441\u0442\n    set btxt1 [$fr.can bbox $txt1]\n#\u0421\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u043f\u043e \u043e\u0441\u0438 Y\n    set ty2 [lindex $btxt1 3]\n    set ty1 [lindex $btxt1 1]\n    set tt [expr {$ty2 - $ty1}]\n    set tt [expr {$tt \/ 2}]\n    set offsy [expr {($by1 + $bb) - ($ty1 + $tt)}]\n#\u0421\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u043f\u043e \u043e\u0441\u0438 X\n    set tx2 [lindex $btxt1 2]\n    set tx1 [lindex $btxt1 0]\n    set ttx [expr {$tx2 - $tx1}]\n    set ttx [expr {$ttx \/ 2}]\n    set offsx [expr {($bx1 + $bbx) - ($tx1 + $ttx)}]\n    $fr.can move $txt1 $offsx $offsy\n    $fr.can bind $txt1 &lt;ButtonPress-1&gt; {butImg \"but2\"}\n    if {$::typetlf} {\n\tset x1 [expr {$::padlx \/ 2}]\n\tset y1 [expr $y2 + 40]\n\tset x2 [expr {$::::scrwidth - $x1}]\n\tset y2 [expr {$y1 + 120}]\n    } else {\n\tset x1 [expr {$::padlx \/ 2}]\n\tset y1 [expr {$y1 + 60}]\n\tset x2 [expr {$::::scrwidth - $x1}]\n\tset y2 [expr {$y1 + 40}]\n    }\n    set S3 [$fr.can style create -stroke skyblue -fill  $g5 -strokewidth $wd  -fillopacity 0.6]\n    set im1 [$fr.can create prect $x1 $y1 $x2 $y2 -rx $rr -style $S3]\n    set blogo [$fr.can bbox $im1]\n    $fr.can bind $im1 &lt;ButtonPress-1&gt; {butImg \"exit\"}\n    set by2 [lindex $blogo 3]\n    set by1 [lindex $blogo 1]\n    set bb [expr {($by2 - $by1) \/ 2}]\n    set bx2 [lindex $blogo 2]\n    set bx1 [lindex $blogo 0]\n    set bbx [expr {($bx2 - $bx1) \/ 2}]\n    set txt1 [$fr.can create text [expr {$x1 + $::padlx * 2}] [expr {$y1 + 1 }] -anchor nw -text \"\u041a\u043e\u043d\u0435\u0446 \u0440\u0430\u0431\u043e\u0442\u044b\" -fill black  -font {Arial 10 normal}]\n    $fr.can bind $txt1 &lt;ButtonPress-1&gt; {butImg \"exit\"}\n    set btxt1 [$fr.can bbox $txt1]\n#\u0421\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u043f\u043e \u043e\u0441\u0438 Y\n    set ty2 [lindex $btxt1 3]\n    set ty1 [lindex $btxt1 1]\n    set tt [expr {$ty2 - $ty1}]\n    set tt [expr {$tt \/ 2}]\n    set offsy [expr {($by1 + $bb) - ($ty1 + $tt)}]\n#\u0421\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u043f\u043e \u043e\u0441\u0438 X\n    set tx2 [lindex $btxt1 2]\n    set tx1 [lindex $btxt1 0]\n    set ttx [expr {$tx2 - $tx1}]\n    set ttx [expr {$ttx \/ 2}]\n    set offsx [expr {($bx1 + $bbx) - ($tx1 + $ttx)}]\n    $fr.can move $txt1 $offsx $offsy\n}\n#\u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0441\u043a\u0440\u0438\u043f\u0442\n#\u0421\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u043c \u0440\u0430\u0437\u043c\u0435\u0440\u044b \u044d\u043a\u0440\u0430\u043d\u0430\nset ::scrwidth [winfo screenwidth .]\nset ::scrheight [winfo screenheight .]\nset ::typetlf 0\n#\u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c, \u0447\u0442\u043e \u044d\u0442\u043e \u0442\u0435\u043b\u0435\u0444\u043e\u043d\nif {$::scrwidth &lt; $::scrheight} {\n    set ::typetlf 1\n}\nset ::padls 20\nset ::padlx 15\nset ::padly 15\nif {$::typetlf} {\n\twm attributes . -fullscreen 1\n\tscaleImage icon_openfile_18x16 3\n\tscaleImage ::img::view_18x16 3\n#\u041b\u043e\u0433\u043e\u0442\u0438\u043f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044f\n\tscaleImage logo_orel 2\n#\u041b\u043e\u0433\u043e\u0442\u0438\u043f \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0432\n\tscaleImage logo_product 2\n#\u0410\u043d\u0434\u0440\u043e\u0438\u0434\u0430 tcl\/tk\n\tscaleImage logo_and 3\n#\u0421\u0432\u0438\u0442\u043e\u043a \u043e\u043f\u0435\u0447\u0430\u0442\u0430\u043d\u043d\u044b\u0439\n\tscaleImage svitok 4\n\tset ::padls 50\n\tset ::padlx 75\n\tset ::padly 50\n} else {\n#\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0432\u0438\u0434\u0436\u0435\u0442\u0430 \u043f\u043e\u0434 \u0441\u043c\u0430\u0440\u0442\u0444\u043e\u043d\n    scaleImage logo_orel -2\n    set ::scrwidth 370\n    set ::scrheight 700\n    wm minsize . $::scrwidth $::scrheight\n    set geometr $::scrwidth\n    append geometr \"x\"\n    append geometr $::scrheight\n    append geometr \"+0+0\"\n    wm geometry . $geometr\n}\n#\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430\nset name_product \"CryptoArmPKCS-A\" \nlabel .labtitul -image logo_product -compound left -fg snow -text $name_product -font {Arial 10 bold} -anchor w  -width [winfo screenwidth .] -pady $::padls -padx 10 -bg #222222 \npack .labtitul -anchor nw -expand 0 -fill x -side top  -padx 1 -pady 0\n#\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0441\u0442\u0430\u0440\u0442\u043e\u0432\u0443\u044e \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443\nset i 0\nttk::frame .fr$i -pad 0 -padding 0\npage_titul \".fr$i\"  \"logo_orel\"\npack .fr$i -side top -anchor center -expand 1 -fill both -side top  -padx 0 -pady 0 \nupdate<\/code><\/pre>\n<p>\u0414\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0441\u043a\u0440\u0438\u043f\u0442\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u043e\u0434\u043d\u0443 \u0438\u0437 \u0443\u0442\u0438\u043b\u0438\u0442 undroidwish \u0438\u043b\u0438 vanillawish:<\/p>\n<pre><code class=\"bash\">$ \/usr\/local\/bin64\/undroidwish-e5dc71ed9d-linux64   create_titul_page.tcl <\/code><\/pre>\n<p>\n\u0438\u043b\u0438 <\/p>\n<pre><code class=\"bash\">$\/usr\/local\/bin64\/vanillawish-e5dc71ed9d-linux64  create_titul_page.tcl <\/code><\/pre>\n<p>\n\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u043d\u0430 \u043f\u0435\u0440\u0432\u043e\u043c \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u0435.<\/p>\n<p>\u041d\u0430 \u0432\u0442\u043e\u0440\u043e\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u0439 \u0443\u0442\u0438\u043b\u0438\u0442\u043e\u0439 cryptoarmpkcs-A \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b. \u041a\u0430\u0436\u0434\u0430\u044f \u0441\u0442\u0440\u043e\u0447\u043a\u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u043d\u043e\u043f\u043a\u043e\u0439, \u043f\u0440\u0438 \u043d\u0430\u0436\u0430\u0442\u0438\u0438 \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u0430\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430. \u0413\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u044f \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u043a\u043d\u043e\u043f\u043e\u043a \u043d\u0430 \u044d\u0442\u043e\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u0448\u0440\u0438\u0444\u0442\u043e\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f. \u041d\u0438\u0436\u0435 \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u0441\u043a\u0440\u0438\u043f\u0442 create_page_functions.tcl \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0432\u0442\u043e\u0440\u043e\u0439\/\u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f. \u041a\u0430\u0436\u0434\u044b\u0439 \u0436\u0435\u043b\u0430\u044e\u0449\u0438\u0439 \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u0435\u0442 \u0435\u0433\u043e \u043f\u043e\u0434\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0434 \u0441\u0432\u043e\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438. <\/p>\n<p><b class=\"spoiler_title\">\u0421\u043a\u0440\u0438\u043f\u0442 create_page_functions.tcl<\/b><\/p>\n<pre><code class=\"plaintext\">package require Tk\npackage require tkpath 0.3.0\nglobal mydir\nset mydir [file dirname [info script]]\n#\u0423\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c\/\u0443\u043c\u0435\u043d\u044c\u0448\u0438\u0442\u044c (\u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 - \u0443\u043c\u0435\u043d\u044c\u0448\u0435\u043d\u0438\u0435)\nproc scaleImage {im xfactor {yfactor 0}} {\n   set mode -subsample\n   if {$xfactor&gt;=0 &amp;&amp; $yfactor&gt;=0} {\n       set mode -zoom\n   } else {\n\tset xfactor [expr $xfactor * -1]\n   }\n\n   if {$yfactor == 0} {set yfactor $xfactor}\n   set t [image create photo]\n   $t copy $im\n   $im blank\n   $im copy $t -shrink $mode $xfactor $yfactor\n   image delete $t\n}\n\nproc createtile {w  backg} {\n    image create photo tiled\n    tiled copy $backg -to 0 0 $::scrwidth $::scrheight -shrink\n    $backg copy tiled\n    image delete tiled\n# \u041c\u043e\u0441\u0442\u0438\u043c \u0445\u043e\u043b\u0441\u0442\n    $w create image 0 0  \n      -image $backg  \n      -anchor nw\n}\n\nproc butCliked {num fr} {\n    pack forget  .fr1\n    set ::tekFrfunc $fr\n    pack $fr -side top -anchor center -expand 1 -fill both -side top  -padx 0 -pady 0 \n    tk_dialog .dialog1 \"Dear user:\" \"Button $num was clickednFr=$fr\" info 0 OK \n}\n\nproc butImg {img} {\n    tk_messageBox -title \"\u041a\u043d\u043e\u043f\u043a\u0430\" -icon info -message \"\u041d\u0430\u0436\u0430\u043b\u0438 \u043a\u043d\u043e\u043f\u043a\u0443=$img\" -detail \"::screenwidth=$::scrwidthn::screenheight=$::scrheight\" -parent .\n    if {$img == \"exit\"} {\n\tset answer [tk_dialog .dialog2 \"\u041a\u043e\u043d\u0435\u0446 \u0440\u0430\u0431\u043e\u0442\u044b\" \"\u0412\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043en\u0445\u043e\u0442\u0438\u0442\u0435 \u0432\u044b\u0439\u0442\u0438?\" question 0 \"\u0414\u0430\" \"\u041d\u0435\u0442\" ]\n\tif {$answer == 0} {\n    \t    exit\n\t}\t\n    }\n}\n\nproc butReturn {} {\n    pack forget  $::tekFrfunc\n    pack .fr1 -side top -anchor center -expand 1 -fill both -side top  -padx 0 -pady 0 \n#    tk_dialog .dialog1 \"Dear user:\" \"Button $num was clickednFr=$fr\" info 0 OK \n}\n\nproc page_func {fr tile titul functions} {\n#\u041a\u043d\u043e\u043f\u043a\u0438  \u043c\u0435\u043d\u044e\n    upvar $functions but\n#\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0448\u0440\u0438\u0444\u0442 \u0434\u043b\u044f \u043a\u043d\u043e\u043f\u043e\u043a\n    if {$::typetlf} {\n\tset feFONT_button \"-family {Roboto} -size 9 -weight bold -slant roman\"\n\tset widl 10\n    } else {\n\tset feFONT_button \"-family {Arial} -size 12 -weight bold -slant roman\"\n\tset widl 5\n    }\n    catch {font delete fontTEMP_drawer}\n    eval font create fontTEMP_drawer  $feFONT_button\n#\u0412\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u043c \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u044e \u0434\u043b\u0438\u043d\u0443 \u0442\u0435\u043a\u0441\u0442\u0430\n    set drawerCNT 0\n    set strMaxWidthPx 15\n    set Ndrawers [expr {[array size but] - 1}]\n    while { $drawerCNT &lt;= $Ndrawers } {\n\tset strWidthPx [font measure fontTEMP_drawer \"$but($drawerCNT)\"]\n\tif { $strWidthPx &gt; $strMaxWidthPx } {\n    \t    set strMaxWidthPx $strWidthPx\n\t}\n\tincr drawerCNT\n    }\n    set drawerWidthPx [expr $strMaxWidthPx + 10]\n    set xxx [expr {($::::scrwidth - $drawerWidthPx) \/ 2}]\n\n    if {$fr != \".fr1\"} {\n\tset hret [expr $::scrheight \/ 4]\n    } else {\n\tset hret $::scrheight\n    }\n\tset hret [expr $::scrheight \/ 4]\n    tkp::canvas $fr.can -borderwidth 0 -height $hret -width $::scrwidth -relief flat\n#\u041c\u043e\u0441\u0442\u0438\u043c \u0445\u043e\u043b\u0441\u0442 \u043f\u043b\u0438\u0442\u043a\u043e\u0439 \n    createtile \"$fr.can\"  $tile\n    pack $fr.can  -anchor center -expand 1 -fill both -side top  -padx 0 -pady 0\n    if {$titul != \"\" } {\n\tset allfunc $titul\n\tcatch {font delete fontTEMP_titul}\n\tset font_titul \"-family {Roboto Condensed Medium} -size 15\"\n        eval font create fontTEMP_titul  $font_titul\n\tset funcWidthPx [font measure fontTEMP_titul \"$allfunc\"]\n\tset dlx [expr {($::::scrwidth - $funcWidthPx) \/ 2}]\n\n\t$fr.can create text [expr $dlx + 6] [expr {6 + 6}] -anchor nw -text \"$allfunc\" -fill black -font fontTEMP_titul\n\t$fr.can create text $dlx 6 -anchor nw -text \"$allfunc\" -fill white -font fontTEMP_titul -tag id_text0\n\tset blogo [$fr.can bbox id_text0]\n\tset boxbut [expr ([lindex $blogo 3] + 6 + 6)]\n    } else {\n\tset boxbut [expr 6 + 6]\n    }\n#\u0412\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u043c \u0441\u0430\u043c\u044b\u0439 \u0448\u0438\u0440\u043e\u043a\u0438\u0439 \u0442\u0435\u043a\u0441\u0442 \u0443 \u043a\u043d\u043e\u043f\u043e\u043a\n#\u0421\u043c. \u0432\u044b\u0448\u0435\n#\u0420\u0430\u0437\u043c\u0435\u0449\u0430\u0435\u043c \u043a\u043d\u043e\u043f\u043a\u0438\n    set BDwidth_canvas 0\n\n    set maxTextHeightPx [font metrics fontTEMP_drawer -linespace] \n\n    set maxTextHeightPx [expr {$maxTextHeightPx + ( $maxTextHeightPx \/ 2)}]\n\n    set drawerHeightPx $maxTextHeightPx\n\n    set xLocTextPx [expr {($::::scrwidth - $drawerWidthPx) \/ 2}]\n\n    set yLocTextPx [expr $BDwidth_canvas + ($drawerHeightPx \/ 2) + $boxbut]\n    set canvasHeightPx [expr $Ndrawers * $drawerHeightPx]\n\n    set drawerCNT 0\n    set Ndrawers [expr {[array size but] - 1}]\n    while { $drawerCNT &lt;= $Ndrawers } {\n      set yLineLocPx [ expr (( $drawerCNT ) * $drawerHeightPx + $boxbut)]\n#\u041b\u0438\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u0434 \u0442\u0435\u043a\u0441\u0442\u043e\u043c\n      $fr.can create line \n         $xLocTextPx $yLineLocPx \n         [expr $drawerWidthPx + $xLocTextPx] $yLineLocPx \n         -fill \"#a0a0a0\" -width $widl\n\n      $fr.can create text [expr $xLocTextPx + 5] $yLocTextPx \n\t-anchor w \n        -font fontTEMP_drawer \n        -text \"$but($drawerCNT)\" \n        -tag textlineTag($drawerCNT)\n\n      if {$drawerCNT == 0} {\n\t    if {$fr == \".fr1\"} {\n\t\t$fr.can bind textlineTag($drawerCNT)  &lt;ButtonRelease-1&gt;   {butImg \"but1\"}\n\t    } else {\n\t\t$fr.can bind textlineTag($drawerCNT)  &lt;ButtonRelease-1&gt;   {butReturn}\n\t    }\n\t} else {\n\t    frame .fn$drawerCNT -background white -relief flat -pady 0 -padx 0\n\t    set titul $but($drawerCNT)\n\t    set cmd \"$fr.can bind textlineTag($drawerCNT)  &lt;ButtonRelease-1&gt;   {butCliked $drawerCNT .fn$drawerCNT}\"\n\t    set cmd [subst \"$cmd\"]\n\t    eval $cmd \n\t    set but1(0) \"\u0412\u043e\u0437\u0432\u0440\u0430\u0442 \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0435 \u043c\u0435\u043d\u044e\"\n\t    page_func \".fn$drawerCNT\" voda \"$titul\" \"but1\"\n\t}\n\n\tincr drawerCNT\n\n\tset yLocTextPx [ expr $yLocTextPx + $drawerHeightPx]\n#\u0417\u0430\u0432\u0435\u0440\u0448\u0430\u044e\u0448\u0430\u044f \u043b\u0438\u043d\u0438\u044f\n\tif { $drawerCNT &gt; $Ndrawers } {\n    \t    set yLineLocPx [ expr (( $drawerCNT ) * $drawerHeightPx + $boxbut)]\n    \t    $fr.can create line $xLocTextPx $yLineLocPx \n            [expr $drawerWidthPx + $xLocTextPx] $yLineLocPx \n            -fill \"#a0a0a0\" -width $widl\n\t}\n    }\n}\n#\u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0441\u043a\u0440\u0438\u043f\u0442\n#\u0421\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u043c \u0440\u0430\u0437\u043c\u0435\u0440\u044b \u044d\u043a\u0440\u0430\u043d\u0430\nset ::scrwidth [winfo screenwidth .]\nset ::scrheight [winfo screenheight .]\nset ::typetlf 0\n#\u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c, \u0447\u0442\u043e \u044d\u0442\u043e \u0442\u0435\u043b\u0435\u0444\u043e\u043d\nif {$::scrwidth &lt; $::scrheight} {\n    set ::typetlf 1\n}\nset ::padls 20\nset ::padlx 15\nset ::padly 15\nif {$::typetlf} {\n\twm attributes . -fullscreen 1\n#\u041b\u043e\u0433\u043e\u0442\u0438\u043f \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0432\n\tscaleImage logo_product 2\n\tset ::padls 50\n\tset ::padlx 75\n\tset ::padly 50\n} else {\n#\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0432\u0438\u0434\u0436\u0435\u0442\u0430 \u043f\u043e\u0434 \u0441\u043c\u0430\u0440\u0442\u0444\u043e\u043d\n    set ::scrwidth 370\n    set ::scrheight 700\n    wm minsize . $::scrwidth $::scrheight\n    set geometr $::scrwidth\n    append geometr \"x\"\n    append geometr $::scrheight\n    append geometr \"+0+0\"\n    wm geometry . $geometr\n}\n\n#\u0413\u0440\u0443\u0437\u0438\u043c \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438\nimage create photo voda -file [file join $mydir \"imageme\" \"voda_400x800.png\"]\n#\u041b\u043e\u0433\u043e\u0442\u0438\u043f \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430\nimage create photo logo_product -file [file join $mydir \"imageme\" \"validcertkey_51x24.png\"] \n#\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430\nset name_product \"CryptoArmPKCS-A\" \nlabel .labtitul -image logo_product -compound left -fg snow -text $name_product -font {Arial 10 bold} -anchor w  -width [winfo screenwidth .] -pady $::padls -padx 10 -bg #222222 \npack .labtitul -anchor nw -expand 0 -fill x -side top  -padx 1 -pady 0\n#\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0441 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u043e\u043c\nset i 1\nttk::frame .fr$i -pad 0 -padding 0\n#\u041a\u043d\u043e\u043f\u043a\u0438 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e \u043c\u0435\u043d\u044e\nset but(0) \"\u0421\u0442\u0430\u0440\u0442\u043e\u0432\u0430\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430\" \nset but(1) \"\u041f\u043e\u0434\u043f\u0438\u0441\u0430\u0442\u044c \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\"\nset but(2) \"\u0420\u0430\u0431\u043e\u0442\u0430\u0435\u043c \u0441 \u042d\u041f (PKCS7)\" \nset but(3) \"\u0417\u0430\u043f\u0440\u043e\u0441 \u043d\u0430 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\" \nset but(4) \"\u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440 \u0437\u0430\u043f\u0440\u043e\u0441\u0430\/\u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430\" \nset but(5) \"\u0421\u043f\u0438\u0441\u043e\u043a \u043a\u0440\u0438\u043f\u0442\u043e\u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u043e\u0432\"\nset but(6) \"\u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440 ASN1-\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b\" \nset but(7) \"\u041e\u0431\u044a\u0435\u043a\u0442\u044b \u0442\u043e\u043a\u0435\u043d\u0430\" \nset but(8) \"\u0420\u0430\u0431\u043e\u0442\u0430\u0435\u043c \u0441 PKCS12\/PFX\" \nset but(9) \"\u0421\u0430\u043c\u043e\u043f\u043e\u0434\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\"\nset but(10) \"\u041e\u0431 \u0423\u0442\u0438\u043b\u0438\u0442\u0435\/\u0414\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432\u044b\" \nset but(11) \"\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0422\u043e\u043a\u0435\u043d\u044b\"\nset but(12) \"\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043e\u0432\u043d\u0438\u0435 \u0442\u043e\u043a\u0435\u043d\u0430\"\nif {$::typetlf} {\n    scaleImage voda 3 2\n}\n#\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u0441 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u043e\u043c\npage_func \".fr$i\" voda \"\u0424\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\" \"but\"\n#\u041e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u043c \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u0441 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u043e\u043c\npack .fr$i -side top -anchor center -expand 1 -fill both -side top  -padx 0 -pady 0 <\/code><\/pre>\n<p>\u042d\u0442\u043e\u0442 \u0441\u043a\u0440\u0438\u043f\u0442 \u0442\u0430\u043a\u0436\u0435 \u0433\u043e\u0442\u043e\u0432\u0438\u0442 \u0431\u043e\u043b\u0432\u0430\u043d\u043a\u0438 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0439 \u043a\u043d\u043e\u043f\u043a\u0438:<\/p>\n<p><img decoding=\"async\" alt=\"\u041a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0410\u0420\u041c \u043d\u0430 \u0431\u0430\u0437\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043e\u0432 \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u043a\u043b\u044e\u0447\u043e\u043c \u0434\u043b\u044f \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b Android\" src=\"\/wp-content\/uploads\/2020\/03\/a864be76ba7ac07c6f351cc479144818.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u041d\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0431\u043e\u043b\u0432\u0430\u043d\u043e\u043a \u0432\u0435\u0434\u0435\u0442\u0441\u044f \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438 \u0438 \u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438 \u0432\u0438\u0434\u0436\u0435\u0442\u0430\u043c\u0438 (labelframe, button \u0438 \u0442.\u0434.). \u041e\u0434\u043d\u0443 \u0438\u0437 \u0442\u0430\u043a\u0438\u0445 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u043d\u044b\u0445 \u0431\u0430\u043b\u0432\u0430\u043d\u043e\u043a \u043c\u043e\u0436\u043d\u043e \u0432\u0438\u0434\u0435\u0442\u044c \u043d\u0430 \u043f\u0435\u0440\u0432\u043e\u043c \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u0435 \u0441\u043f\u0440\u0430\u0432\u0430. \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u043f\u0435\u0440\u0432\u043e\u043c \u044d\u0442\u0430\u043f\u0435 \u043c\u044b \u0441\u043e\u0441\u0440\u0435\u0434\u043e\u0442\u043e\u0447\u0438\u043b\u0438\u0441\u044c \u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u043c PKCS#12, \u0442\u043e \u043a\u043e\u0434 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0431\u0435\u0437 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0431\u044b\u043b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d \u0438 \u0434\u043b\u044f cryptoarmpkcs-A. \u041d\u0430 \u0434\u0430\u043d\u043d\u043e\u043c \u044d\u0442\u0430\u043f\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u044b \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438:<\/p>\n<ul>\n<li>\u043f\u043e\u0434\u043f\u0438\u0441\u0430\u0442\u044c \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 (Cades-BES, CAdes-T, CAdes-XLT1);<\/li>\n<li>\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u043c \u0441 \u042d\u041f (PKCS7), \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u043e\u0434\u043f\u0438\u0441\u0430\u043d\u0442\u0430;<\/li>\n<li>\u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0432\/\u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u043d\u0430 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b:\n<p><img decoding=\"async\" alt=\"\u041a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0410\u0420\u041c \u043d\u0430 \u0431\u0430\u0437\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043e\u0432 \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u043a\u043b\u044e\u0447\u043e\u043c \u0434\u043b\u044f \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b Android\" src=\"\/wp-content\/uploads\/2020\/03\/10e7f8c8a6fa707ef067f78b9952b113.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/li>\n<li>\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u043c \u0441 PKCS12\/PFX;<\/li>\n<li>\u043e\u0431 \u0443\u0442\u0438\u043b\u0438\u0442\u0435\/\u0414\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432\u044b:\n<p><img decoding=\"async\" alt=\"\u041a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0410\u0420\u041c \u043d\u0430 \u0431\u0430\u0437\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043e\u0432 \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u043a\u043b\u044e\u0447\u043e\u043c \u0434\u043b\u044f \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b Android\" src=\"\/wp-content\/uploads\/2020\/03\/95a703663c1fdc95e3c9ac6e58248922.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/li>\n<\/ul>\n<p>\n\u041e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0431\u043e\u043b\u044c\u0448\u0435 \u0441\u0432\u044f\u0437\u0430\u043d\u044b \u0441 \u0442\u043e\u043a\u0435\u043d\u0430\u043c\u0438 PKCS#11. \u0418\u0445 \u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043e\u0442\u043b\u043e\u0436\u0435\u043d\u043e \u043d\u0430 \u041d\u043e\u0432\u044b\u0439 \u0413\u043e\u0434. \u041f\u043b\u0430\u043d\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0433\u043e \u0442\u043e\u043a\u0435\u043d\u0430 \u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043a <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/403563\/\">\u043e\u0431\u043b\u0430\u043a\u0443 \u0442\u043e\u043a\u0435\u043d\u043e\u0432<\/a><\/noindex>.<\/p>\n<p>\u0421 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u0441\u0435 \u0430\u043d\u0430\u043b\u043e\u0447\u0438\u0447\u043d\u043e \u0443\u0442\u0438\u043b\u0438\u0442\u0435 cryptoarmpkcs. \u041d\u043e \u0435\u0441\u0442\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u043e\u0442\u043b\u0438\u0447\u0438\u044f. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u043e\u0441\u043b\u0435 \u043f\u043e\u0434\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430, \u0443\u0442\u0438\u043b\u0438\u0442\u0430 \u0441\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u0442 \u0431\u0443\u0434\u0435\u0442 \u043b\u0438 \u043f\u043e\u0434\u043f\u0438\u0441\u044c \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c\u0441\u044f \u043d\u0430 \u0441\u0430\u0439\u0442\u0435 \u0413\u043e\u0441\u0443\u0441\u043b\u0443\u0433:<\/p>\n<p><img decoding=\"async\" alt=\"\u041a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0410\u0420\u041c \u043d\u0430 \u0431\u0430\u0437\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043e\u0432 \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u043a\u043b\u044e\u0447\u043e\u043c \u0434\u043b\u044f \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b Android\" src=\"\/wp-content\/uploads\/2020\/03\/842eac2acaebd623f73e9b7ebbfc59dd.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n\u041f\u0440\u0438 \u043d\u0430\u0436\u0430\u0442\u0438\u0438 \u043a\u043d\u043e\u043f\u043a\u0438 \u00ab\u0414\u0430\u00bb \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d \u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u0441\u043e \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435\u0439 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043f\u043e\u0434\u043f\u0438\u0441\u0438 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0438 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0432. \u0421\u0440\u0430\u0437\u0443 \u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c\u0441\u044f, \u0447\u0442\u043e \u044d\u0442\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u043d\u0430 \u043d\u0430 \u044d\u043a\u0440\u0430\u043d \u0441\u043c\u0430\u0440\u0442\u0444\u043e\u043d\u0430. \u042d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u043c\u0435\u0442\u043d\u043e \u043f\u0440\u0438 \u0432\u044b\u0431\u043e\u0440\u0435 \u043f\u043e\u0434\u043f\u0438\u0441\u0438 \u0438, \u0435\u0441\u043b\u0438 \u043f\u043e\u0434\u043f\u0438\u0441\u044c \u043e\u0442\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u043d\u0430\u044f, \u0444\u0430\u0439\u043b\u0430 \u0441 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u043c. \u041d\u043e \u0435\u0441\u043b\u0438 \u0432\u0441\u0435 \u0445\u043e\u0440\u043e\u0448\u043e, \u0442\u043e \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442:<\/p>\n<p><img decoding=\"async\" alt=\"\u041a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0410\u0420\u041c \u043d\u0430 \u0431\u0430\u0437\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043e\u0432 \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u043a\u043b\u044e\u0447\u043e\u043c \u0434\u043b\u044f \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b Android\" src=\"\/wp-content\/uploads\/2020\/03\/f0d8cdf851ede500ca2f8f9b7cf0d352.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u0421\u043b\u0435\u0434\u0443\u0435\u0442 \u0438\u043c\u0435\u0442\u044c \u0432\u0432\u0438\u0434\u0443, \u0447\u0442\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043a\u0430\u043a \u043f\u043e\u0434\u043f\u0438\u0441\u0438, \u0442\u0430\u043a \u0438 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430 \u043d\u0430 \u0441\u0430\u0439\u0442\u0435 \u0413\u043e\u0441\u0443\u0441\u043b\u0443\u0433 \u0438\u043c\u0435\u0435\u0442 \u0441\u043c\u044b\u043b \u0442\u043e\u043b\u044c\u043a\u043e \u0435\u0441\u043b\u0438 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u0431\u044b\u043b \u043f\u043e\u043b\u0443\u0447\u0435\u043d \u0432 \u0430\u043a\u043a\u0440\u0435\u0434\u0438\u0442\u043e\u0432\u0430\u043d\u043d\u043e\u043c \u0443\u0434\u043e\u0441\u0442\u043e\u0432\u0435\u0440\u044f\u044e\u0449\u0435\u043c \u0446\u0435\u043d\u0442\u0440\u0435 (<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/357668\/\">\u0423\u0426<\/a><\/noindex>). \u0412 \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043f\u043e\u0434\u043f\u0438\u0441\u044c \u0432\u0441\u0435\u0433\u0434\u0430 \u0431\u0443\u0434\u0435\u0442 \u043d\u0435\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439.<\/p>\n<p>\u0414\u043b\u044f \u0432\u044b\u0437\u043e\u0432\u0430 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430 \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043f\u0430\u0440\u0443 \u0441\u0442\u0440\u043e\u043a \u0432 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0443 openUrl:<\/p>\n<pre><code class=\"plaintext\">proc openURL {url} {\n  global typesys\n  global macos\n  #  global windowsOS\n#\u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430, \u0447\u0442\u043e \u0443\u0442\u0438\u043b\u0438\u0442\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043d\u0430 \u0441\u043c\u0430\u0440\u0442\u0444\u043e\u043d\u0435 Android\n  if {$::typetlf} {\n#\u0417\u0430\u043f\u0443\u0441\u043a \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430\n \tborg activity android.intent.action.VIEW $url text\/html\n \treturn\n  }\n. . .\n}<\/code><\/pre>\n<p>\n\u0411\u0440\u0430\u0443\u0437\u0435\u0440 \u043d\u0430 Android \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<pre><code class=\"plaintext\">borg activity android.intent.action.VIEW &lt;URL&gt; text\/html\n<\/code><\/pre>\n<p>\n\u041d\u0435\u0431\u043e\u043b\u044c\u0448\u0430\u044f \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u0435\u0441\u0442\u044c \u043f\u0440\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0438 \u043d\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u0434\u043f\u0438\u0441\u0430\u043d\u0442\u0430 \u043a \u0440\u0430\u043d\u0435\u0435 \u043f\u043e\u0434\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u043c\u0443 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0443. \u0421\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u043d\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u0434\u043f\u0438\u0441\u0430\u043d\u0442\u0430 (\u0432\u0435\u0440\u043d\u0435\u0435 \u0434\u0430\u0436\u0435 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 PKCS#12 \u0441 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u043c \u0438 \u0437\u0430\u043a\u0440\u044b\u0442\u044b\u043c \u043a\u043b\u044e\u0447\u043e\u043c) \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0437\u0430\u0440\u0430\u043d\u0435\u0435 \u0432\u044b\u0431\u0440\u0430\u043d \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 \u00ab\u041f\u043e\u0434\u043f\u0438\u0441\u0430\u0442\u044c \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u00bb \u0438\u043b\u0438 \u00ab\u0420\u0430\u0431\u043e\u0442\u0430\u0435\u043c \u0441 PKCS12\/PFX\u00bb, \u043e \u0447\u0435\u043c \u0443\u0442\u0438\u043b\u0438\u0442\u0430 \u043d\u0430\u043f\u043e\u043c\u043d\u0438\u0442:<\/p>\n<p><img decoding=\"async\" alt=\"\u041a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0410\u0420\u041c \u043d\u0430 \u0431\u0430\u0437\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043e\u0432 \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u043a\u043b\u044e\u0447\u043e\u043c \u0434\u043b\u044f \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b Android\" src=\"\/wp-content\/uploads\/2020\/03\/63ab6969fb3c2c15d30e07aa0b0b1eab.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n\u041f\u0440\u0438 \u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f\u0445 \u043a\u0430\u043a \u0438 \u043f\u0440\u0435\u0436\u0434\u0435 \u0431\u0443\u0434\u0443\u0442 \u0438\u0434\u0442\u0438 \u0447\u0430\u0441\u044b:<\/p>\n<p><img decoding=\"async\" alt=\"\u041a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0410\u0420\u041c \u043d\u0430 \u0431\u0430\u0437\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043e\u0432 \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u043a\u043b\u044e\u0447\u043e\u043c \u0434\u043b\u044f \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b Android\" src=\"\/wp-content\/uploads\/2020\/03\/93738b64f007f4da3644b2c00c65d400.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n\u041e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043e\u0442\u043a\u0443\u0434\u0430 \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432\u044b \u0438 \u041f\u043e\u0437\u0434\u0440\u0430\u0432\u0438\u0442\u044c \u0441 \u043d\u0430\u0441\u0442\u0443\u043f\u0430\u044e\u0449\u0438\u043c \u041d\u043e\u0432\u044b\u043c \u0413\u043e\u0434\u043e\u043c \u0438 \u043f\u043e\u0436\u0435\u043b\u0430\u0442\u044c \u0432\u0441\u0435\u043c \u0432\u0441\u0435\u0433\u043e \u043d\u0430\u0438\u043b\u0443\u0447\u0448\u0435\u0433\u043e \u0432 2020 \u0413\u043e\u0434\u0443!<\/p>\n<p><img decoding=\"async\" alt=\"\u041a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0410\u0420\u041c \u043d\u0430 \u0431\u0430\u0437\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043e\u0432 \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u043a\u043b\u044e\u0447\u043e\u043c \u0434\u043b\u044f \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b Android\" src=\"\/wp-content\/uploads\/2020\/03\/c3d789fdac89030050da0dadd63e18ff.jpg\" style=\"display:block;margin: 0 auto;\" \/>\u0418\u0442\u0430\u043a, \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432\u044b \u0434\u043b\u044f Linux, OS X, Windows \u0438 Android:<\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/a513\/CryptoArmPKCS\/raw\/master\/distr\/cryptoarmpkcs_linux32.tar.bz2\" rel=\"nofollow\">Linux32<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/a513\/CryptoArmPKCS\/raw\/master\/distr\/cryptoarmpkcs_linux64.tar.bz2\" rel=\"nofollow\">Linux64<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/a513\/CryptoArmPKCS\/raw\/master\/distr\/cryptoarmpkcs_mac.tar.bz2\" rel=\"nofollow\">OS X<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/a513\/CryptoArmPKCS\/raw\/master\/distr\/cryptoarmpkcs_setup_win32.exe\" rel=\"nofollow\">WIN32<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/a513\/CryptoArmPKCS\/raw\/master\/distr\/cryptoarmpkcs_setup_win64.exe\" rel=\"nofollow\">WIN64<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/a513\/CryptoArmPKCS\/raw\/master\/distr\/AndroWishApp-debug.apk\" rel=\"nofollow\">AndroWishApp-debug.apk<\/a><\/noindex><\/li>\n<\/ul>\n<p>\u0418\u0441\u0442\u043e\u0447\u043d\u0438\u043a: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/482574\/\">habr.com<\/a> <\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0438\u0448\u043b\u043e \u0432\u0440\u0435\u043c\u044f \u043f\u0440\u043e\u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u043a \u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0410\u0420\u041c \u043d\u0430 \u0431\u0430\u0437\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043e\u0432 \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u043a\u043b\u044e\u0447\u043e\u043c cryptoarmpkcs \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u0430 \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0445 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c, \u0430 \u0438\u043c\u0435\u043d\u043d\u043e Android. \u041a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0437\u0430\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u043b\u0430\u0441\u044c \u043f\u0440\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0443\u0442\u0438\u043b\u0438\u0442\u044b cryptoarmpkcs, \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0434\u043e\u043b\u0436\u0435\u043d \u0438\u0441\u043f\u044b\u0442\u044b\u0432\u0430\u0442\u044c \u043c\u0438\u043d\u0438\u043c\u0443\u043c \u043d\u0435\u0443\u0434\u043e\u0431\u0441\u0442\u0432 \u043f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0435 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0439 \u043f\u043e\u0434\u043f\u0438\u0441\u0438. \u0418\u043c\u0435\u043d\u043d\u043e \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u044b \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u043c \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0433\u043e \u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044f \u0434\u043b\u044f \u043b\u0438\u0447\u043d\u043e\u0433\u043e \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":74174,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-74173","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0440\u0438\u0448\u043b\u043e \u0432\u0440\u0435\u043c\u044f \u043f\u0440\u043e\u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u043a \u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0410\u0420\u041c \u043d\u0430 \u0431\u0430\u0437\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043e\u0432 \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u043a\u043b\u044e\u0447\u043e\u043c cryptoarmpkcs \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u0430 \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0445 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c, \u0430 \u0438\u043c\u0435\u043d\u043d\u043e Android. \u041a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0437\u0430\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u043b\u0430\u0441\u044c \u043f\u0440\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0443\u0442\u0438\u043b\u0438\u0442\u044b cryptoarmpkcs, \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0434\u043e\u043b\u0436\u0435\u043d \u0438\u0441\u043f\u044b\u0442\u044b\u0432\u0430\u0442\u044c \u043c\u0438\u043d\u0438\u043c\u0443\u043c \u043d\u0435\u0443\u0434\u043e\u0431\u0441\u0442\u0432 \u043f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0435 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0439 \u043f\u043e\u0434\u043f\u0438\u0441\u0438. \u0418\u043c\u0435\u043d\u043d\u043e \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u044b \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u043c \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0433\u043e \u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044f \u0434\u043b\u044f \u043b\u0438\u0447\u043d\u043e\u0433\u043e \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/kriptograficheskij-arm-na-baze-standartov-s-otkrytym-klyuchom-dlya-platformy-android\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"de_DE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0410\u0420\u041c \u043d\u0430 \u0431\u0430\u0437\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043e\u0432 \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u043a\u043b\u044e\u0447\u043e\u043c \u0434\u043b\u044f \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b Android | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0438\u0448\u043b\u043e \u0432\u0440\u0435\u043c\u044f \u043f\u0440\u043e\u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u043a \u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0410\u0420\u041c \u043d\u0430 \u0431\u0430\u0437\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043e\u0432 \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u043a\u043b\u044e\u0447\u043e\u043c cryptoarmpkcs \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u0430 \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0445 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c, \u0430 \u0438\u043c\u0435\u043d\u043d\u043e Android. \u041a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0437\u0430\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u043b\u0430\u0441\u044c \u043f\u0440\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0443\u0442\u0438\u043b\u0438\u0442\u044b cryptoarmpkcs, \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0434\u043e\u043b\u0436\u0435\u043d \u0438\u0441\u043f\u044b\u0442\u044b\u0432\u0430\u0442\u044c \u043c\u0438\u043d\u0438\u043c\u0443\u043c \u043d\u0435\u0443\u0434\u043e\u0431\u0441\u0442\u0432 \u043f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0435 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0439 \u043f\u043e\u0434\u043f\u0438\u0441\u0438. \u0418\u043c\u0435\u043d\u043d\u043e \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u044b \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u043c \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0433\u043e \u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044f \u0434\u043b\u044f \u043b\u0438\u0447\u043d\u043e\u0433\u043e \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/kriptograficheskij-arm-na-baze-standartov-s-otkrytym-klyuchom-dlya-platformy-android\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-03-14T17:43:35+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-03-14T17:43:35+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Kryptografisches ARM auf Basis von Public-Key-Standards f\u00fcr die Android-Plattform | ProHoster","description":"Es ist an der Zeit zu zeigen, wie das kryptografische ARM auf Basis von Public-Key-Standards, cryptoarmpkcs, auf einer der mobilen Plattformen, n\u00e4mlich Android, funktioniert. Das Konzept, das bei der Entwicklung des Tools cryptoarmpkcs zugrunde gelegt wurde, besteht darin, dass der Benutzer beim Erstellen und \u00dcberpr\u00fcfen einer elektronischen Unterschrift so wenig Unannehmlichkeiten wie m\u00f6glich hat. Aus diesem Grund schlagen wir vor, das Schl\u00fcsselmedium f\u00fcr das pers\u00f6nliche Zertifikat zu verwenden.","canonical_url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/kriptograficheskij-arm-na-baze-standartov-s-otkrytym-klyuchom-dlya-platformy-android","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"de_DE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0410\u0420\u041c \u043d\u0430 \u0431\u0430\u0437\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043e\u0432 \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u043a\u043b\u044e\u0447\u043e\u043c \u0434\u043b\u044f \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b Android | ProHoster","og:description":"\u041f\u0440\u0438\u0448\u043b\u043e \u0432\u0440\u0435\u043c\u044f \u043f\u0440\u043e\u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u043a \u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0410\u0420\u041c \u043d\u0430 \u0431\u0430\u0437\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043e\u0432 \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u043a\u043b\u044e\u0447\u043e\u043c cryptoarmpkcs \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u0430 \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0445 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c, \u0430 \u0438\u043c\u0435\u043d\u043d\u043e Android. \u041a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0437\u0430\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u043b\u0430\u0441\u044c \u043f\u0440\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0443\u0442\u0438\u043b\u0438\u0442\u044b cryptoarmpkcs, \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0434\u043e\u043b\u0436\u0435\u043d \u0438\u0441\u043f\u044b\u0442\u044b\u0432\u0430\u0442\u044c \u043c\u0438\u043d\u0438\u043c\u0443\u043c \u043d\u0435\u0443\u0434\u043e\u0431\u0441\u0442\u0432 \u043f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0435 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0439 \u043f\u043e\u0434\u043f\u0438\u0441\u0438. \u0418\u043c\u0435\u043d\u043d\u043e \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u044b \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u043c \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0433\u043e \u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044f \u0434\u043b\u044f \u043b\u0438\u0447\u043d\u043e\u0433\u043e \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430","og:url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/kriptograficheskij-arm-na-baze-standartov-s-otkrytym-klyuchom-dlya-platformy-android","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-03-14T17:43:35+00:00","article:modified_time":"2020-03-14T17:43:35+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"74173","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 18:19:30","updated":"2022-09-30 17:42:36"},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/74173","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/comments?post=74173"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/74173\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media\/74174"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=74173"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=74173"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=74173"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}