рдПрдВрдбреНрд░реЙрдЗрдб рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХреЗ рд▓рд┐рдП рдорд╛рдирдХреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ-рдХреБрдВрдЬреА рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлрд╝рд┐рдХ рд╡рд░реНрдХрд╕реНрдЯреЗрд╢рди

рдЫрд╡рд┐ рдпрд╣ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИ рдХрд┐ рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлрд╝рд┐рдХ рд╡рд░реНрдХрд╕реНрдЯреЗрд╢рди рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ-рдХреБрдВрдЬреА рдорд╛рдирдХреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХреНрд░рд┐рдкреНрдЯреЛрдХрд░рдВрд╕реА рдХреЗ рдПрдХ рдореЛрдмрд╛рдЗрд▓ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо, рдЕрд░реНрдерд╛рддреН рдПрдВрдбреНрд░реЙрдЗрдб рдкрд░ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

Cryptoarmpkcs рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рджреМрд░рд╛рди рдЬреЛ рдЕрд╡рдзрд╛рд░рдгрд╛ рд░рдЦреА рдЧрдИ рдереА, рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЗрд▓реЗрдХреНрдЯреНрд░реЙрдирд┐рдХ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдмрдирд╛рддреЗ рдФрд░ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рддреЗ рд╕рдордп рдХрдо рд╕реЗ рдХрдо рдЕрд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЕрдиреБрднрд╡ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рд╣рдо PKCS # 11 рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлрд┐рдХ рдЯреЛрдХрди рдФрд░ / рдпрд╛ PKCS # 12 рд╕реБрд░рдХреНрд╖рд┐рдд рдХрдВрдЯреЗрдирд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдПрдХ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдкреНрд░рдорд╛рдг рдкрддреНрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдорд╛рдзреНрдпрдо рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдореБрдЭреЗ рдХрд╣рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдХрдИ рдорд╛рдорд▓реЛрдВ рдореЗрдВ PKCS # 12 рдХрд╛ рдЙрдкрдпреЛрдЧ рд▓рдЧрднрдЧ рдПрдХрдорд╛рддреНрд░ рд╕рдВрднрд╡ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрдм PKCS # 11 рдЯреЛрдХрди рдХреБрдЫ рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП рд╣рдордиреЗ PKCS # 12 рд╕реБрд░рдХреНрд╖рд┐рдд рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЗ рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рдПрдВрдбреНрд░реЙрдЗрдб рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдкрд░ рдХреНрд░рд┐рдкреНрдЯреЛрдХрд░рдВрд╕реА рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЛ рдкреЛрд░реНрдЯ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред

рддреБрд░рдВрдд, рд╣рдо рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЪреВрдВрдХрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛ C рдФрд░ Tcl / Tk рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдкрд░ рдХреА рдЧрдИ рдереА, рдЗрд╕рд▓рд┐рдП рдкреЛрд░реНрдЯрд┐рдВрдЧ рдореЗрдВ рдХреЛрдИ рдореМрд▓рд┐рдХ рдХрдард┐рдирд╛рдЗрдпреЛрдВ рдХрд╛ рдХрд╛рд░рдг рдирд╣реАрдВ рдерд╛ред рдпрд╣ рдПрдВрдбреНрд░реЛрд╡рд┐рд╢ рддрдХрдиреАрдХ рдХреЗ рд▓рд┐рдП рд╕рдВрднрд╡ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдФрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рдереА (рдореЗрд░рд╛ рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рд╡рд╛рддрд╛рд╡рд░рдг рд▓рд┐рдирдХреНрд╕ рд╣реИ - рдордЧреЗрдпрд╛-7.0)ред рдореИрдВ рдЖрдкрдХреЛ Android рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЯреВрд▓реНрд╕ (sdk-tools-linux-xxxx.zip) рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рджреЗрддрд╛ рд╣реВрдВ:

#!/bin/sh if [ $# -ne 1 ] then echo "./InstallAndroidSDK.sh <sdk-tools-linux-xxxxxxxx.zip>" echo "       1" exit 1 fi if [ ! -f $1 ] then echo "./InstallAndroidSDK.sh <sdk-tools-linux-xxxxxxxx.zip>" echo " $1 " exit 1 fi # SDK-TOOLS   tools #unzip sdk-tools-linux-4333796.zip unzip $1 #  android-sdk-linux mkdir android-sdk-linux #  tools  android-sdk-linux mv tools android-sdk-linux cd android-sdk-linux/tools/bin ./sdkmanager "platform-tools" "platforms;android-29" 

рд╕рдмрд╕реЗ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдПрдВрдбреНрд░реЛрд╡рд┐рд╢ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рджреЛ рджреБрднрд╛рд╖рд┐рдП, рдЕрдирдбреНрд░реЛрд╡рд┐рд╢-рдПрдХреНрд╕рдПрдХреНрд╕рдПрдХреНрд╕ рдФрд░ рд╡рд╛рдиреАрд▓рд╡рд┐рд╢-рдПрдХреНрд╕рдПрдХреНрд╕рдПрдХреНрд╕ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдЬреЛ рдХрд┐ рдкреВрд░реА рддрд░рд╣ рд╕реЗ "рдмрд╛рд▓рд┐рдХрд╛" (рд╕рдВрдХреБрд▓) рдХреЗ рд╕рдорд╛рди рд╣реИрдВ рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдВрдбреНрд░реЛрд╡рд┐рд╢ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИрдВред рдЕрдирдбреНрд░реЛрд╡рд┐рд╢ рдФрд░ рд╡рд╛рдиреАрд▓рд╡рд┐рд╢ рдХреЗ рдмреАрдЪ рдХрд╛ рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐ рд╡рд╛рдиреАрд▓рд╡рд┐рд╢ рдореЗрдВ рдмреИрдХрдПрдВрдб рдПрд╕рдбреАрдПрд▓ / рдПрдЬреАрдЬреА / рд╕реНрдЯреНрд░реАрдкрд╛рдЗрдк рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ:



рдЗрди рджреЛ рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдЖрдкрдХреЛ рдПрдВрдбреНрд░реЙрдЗрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИ рдФрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдЕрдзрд┐рдХрддрдо рд╕рдиреНрдирд┐рдХрдЯрди рдХреЗ рд╕рд╛рде рдЗрд╕рдХреЗ рдПрдореБрд▓реЗрдЯрд░ред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, undroidwish-xxxред

рдХрд╕реНрдЯрдо Android рдкреИрдХреЗрдЬ рд╕реНрд╡рдпрдВ AWSDK рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЖрдкрдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдкреЗрдбрд╝ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдлрд╝реЛрд▓реНрдбрд░ ~ / AWSDK / рд╕рдВрдкрддреНрддрд┐ / рдРрдкред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЖрдкрдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдореБрдЦреНрдп рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ main.tcl рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдЖрдк рдбрд╛рдпрдирд╛рдорд┐рдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд╕рд╛рде рдЕрддрд┐рд░рд┐рдХреНрдд рдмрд╛рд▓рд╛рд▓рд┐рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдПрдореБрд▓реЗрдЯрд░ рдХреЗ рд▓рд┐рдП ~ / AWSDK / libs / x86 рдореЗрдВ рдФрд░ рдЕрд╕рд▓реА рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд▓рд┐рдП ~ / AWSDK / libs / armeabi рдореЗрдВ рдбрд╛рд▓рдирд╛ рд╣реЛрдЧрд╛ред

рдЙрд╕рдХреЗ рдмрд╛рдж, рдмрд╕ рдХрдорд╛рдВрдб рдЪрд▓рд╛рдПрдБ:

 $wish ~/AWSDK/tools/bones 

рдФрд░ рдЙрд╕рдХреЗ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВ:



рдПрдХрддреНрд░ рдХрд┐рдП рдЧрдП apk рдкреИрдХреЗрдЬ ~ / AWSDK / рдмрд┐рд▓реНрдб / рдЖрдЙрдЯрдкреБрдЯ / рдПрдкреАрдХреЗ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╣реЛрдЧрд╛ред

рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрдкрдХрд░рдг рдпрд╛ рдПрдореБрд▓реЗрдЯрд░ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ, рддреЛ рдкреИрдХреЗрдЬ рддреБрд░рдВрдд рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЕрд╕рд▓реА рдбрд┐рд╡рд╛рдЗрд╕ рдбреАрдмрдЧ рдореЛрдб рдореЗрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рд▓реЗрдХрд┐рди рд╡рд╛рдкрд╕ рдЖрд╡реЗрджрди рдХреЗ рд▓рд┐рдП рд╣реАред рдЗрд╕рдореЗрдВ рдХреНрдпрд╛ рдмрджрд▓рд╛рд╡ рдХрд░рдирд╛ рдерд╛ред

рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдкрд░рд┐рд╡рд░реНрддрди рд╕реНрдХреНрд░реАрди рдЖрдХрд╛рд░ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВред рдореБрдЭреЗ рдореБрдЦреНрдп (рдЖрд░рдВрдн рд╡рд┐рдВрдбреЛ) рдХреЛ рдирдпрд╛ рд╕реНрд╡рд░реВрдк рджреЗрдирд╛ рдерд╛ред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдирд┐рдпрдорд┐рдд рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдПрдХрд▓ рд╡рд┐рдВрдбреЛ рдХреЗ рдмрдЬрд╛рдп:



Android рдкрд░ рддреАрди рд╡рд┐рдВрдбреЛ рджрд┐рдЦрд╛рдИ рджреАрдВ:



рдкрд╣рд▓реА рдЦрд┐рдбрд╝рдХреА рд╕реВрдЪрдирд╛рддреНрдордХ рд╣реИред рдкрд░рдВрдкрд░рд╛рдЧрдд рд░реВрдк рд╕реЗ, рдЗрд╕реЗ рдХрдИ рднрд╛рдЧреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдкрд╣рд▓реЗ рднрд╛рдЧ рдореЗрдВ, рд╢реАрд░реНрд╖ рдкрд░ рд╕реНрдерд┐рдд рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдФрд░ рдЙрд╕рдХреЗ рд▓реЛрдЧреЛ рдХрд╛ рдирд╛рдо рд╢рд╛рдорд┐рд▓ рд╣реИред

рдЗрд╕рдХреЗ рдмрд╛рдж рдирд┐рд░реНрдорд╛рддрд╛ рдХрд╛ рд▓реЛрдЧреЛ, рд╕реВрдЪрдирд╛ рд╕рд╣рд╛рдпрддрд╛ рдФрд░ рдкреЗрдЬ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреАрди рдмрдЯрди рдЖрддреЗ рд╣реИрдВред
рдкреГрд╖реНрда рдХреИрдирд╡рд╛рд╕ рдШрдЯрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред рдкреГрд╖реНрда рджреЛ рдкреНрд░рдХрд╛рд░ рдХреЗ рдмрдЯрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ: рдПрдХ рдкрд╛рд░рднрд╛рд╕реА рдЖрдпрдд (рдордзреНрдп) рдХреЗ рд░реВрдк рдореЗрдВ, рдФрд░ рдЕрдиреНрдп рджреЛ рдПрдХ рдЧреЛрд▓ рдЖрдпрдд рдХреЗ рд░реВрдк рдореЗрдВред рдЧреЛрд▓ рдХреЛрдиреЛрдВ рдХреЗ рд╕рд╛рде рдмрдЯрди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, "рдмрд╛рд▓рд┐рдХрд╛" tkpath рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ ред рдирд┐рдЬреА рддреМрд░ рдкрд░, рдЗрд╕ рдмрд╛рд▓рд┐рдХрд╛ рдиреЗ рдореБрдЭ рдкрд░ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдкреНрд░рднрд╛рд╡ рдбрд╛рд▓рд╛ред рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, рдЬрдм рдХреИрдирд╡рд╛рд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдХреЛрдб рдХрд╛ рд╢реЗрд░ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдЬреНрдпрд╛рдорд┐рддрд┐ рд╣реЛрддрд╛ рд╣реИред рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдкрд╣рд▓рд╛ рдкреГрд╖реНрда рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП create_titul_page.tcl рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд┐рдореНрди рд╣реИред рд╣рд░ рдХреЛрдИ рдЕрдкрдиреА рджреГрд╖реНрдЯрд┐ рдХреЛ рдлрд┐рдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рд╕реНрдХреНрд░рд┐рдкреНрдЯ create_titul_page.tcl
 package require Tk package require tkpath 0.3.0 global mydir set mydir [file dirname [info script]] #  #  image create photo logo_product -file [file join $mydir "imageme" "validcertkey_51x24.png"] #  image create photo logo_orel -file [file join $mydir "imageme" "__425x200.png"] -format "png -alpha 1.0" #  tcl/tk image create photo logo_and -file [file join $mydir "imageme" "AndTk_inv_147x173.png"] -format "png -alpha 1.0" #  image create photo svitok -file [file join $mydir "imageme" "blue_svitok.png"] -format "png -alpha 1.0" # image create photo tileand -file [file join $mydir "imageme" "tile_green_and_32x32.png"] -format "png -alpha 1.0" #/ (  - ) proc scaleImage {im xfactor {yfactor 0}} { set mode -subsample if {$xfactor>=0 && $yfactor>=0} { set mode -zoom } else { set xfactor [expr $xfactor * -1] } if {$yfactor == 0} {set yfactor $xfactor} set t [image create photo] $t copy $im $im blank $im copy $t -shrink $mode $xfactor $yfactor image delete $t } proc createtile {w backg} { image create photo tiled tiled copy $backg -to 0 0 $::scrwidth $::scrheight -shrink $backg copy tiled image delete tiled #   $w create image 0 0 \ -image $backg \ -anchor nw } proc create_rectangle {canv img x1 y1 x2 y2 color alfa {wbd 0} {colorline black} } { image create photo $img -format "default -colorformat rgb" set rgb1 [winfo rgb $canv $color] set cr [lindex $rgb1 0] set cg [lindex $rgb1 1] set cb [lindex $rgb1 2] set fill [format "#%04x%04x%04x" $cr $cg $cb ] #   $img put $fill -to 0 0 [expr {$x2 - $x1}] [expr {$y2 -$y1}] #  set dimg [$img data -format png] # image   alpha  image create photo $img -data $dimg -format "png -alpha $alfa" # $img put [list $rgb1] -to 0 0 [expr {$x2 - $x1}] [expr {$y2 -$y1}] #   set imgr [$canv create image $x1 $y1 -image $img -anchor nw] set cc [subst {butImg $img}] $canv bind $imgr <ButtonPress-1> $cc #    if {$wbd > 0 } { set item [$canv create rect $x1 $y1 $x2 $y2 -outline $colorline -width $wbd ] $canv bind $item <ButtonPress-1> $cc } return $imgr } proc butImg {img} { tk_messageBox -title "" -icon info -message " =$img" -detail "::screenwidth=$::scrwidth\n::screenheight=$::scrheight" -parent . if {$img == "exit"} { set answer [tk_dialog .dialog2 " " " \n ?" question 0 "" "" ] if {$answer == 0} { exit } } } proc page_titul {fr logo_manufacturer} { global mydir #     tkp::canvas $fr.can -borderwidth 0 -height [winfo screenheight .] -width [winfo screenwidth .] -relief flat #   createtile "$fr.can" "tileand" pack $fr.can -anchor center -expand 1 -fill both -side top -padx 0 -pady 0 #     #update        update # set aa [winfo height $fr.labtitul] set aa $::padly #   set ha [image width $logo_manufacturer] set xman [expr {($::scrwidth - $ha) / 2 }] $fr.can create image $xman $aa -image $logo_manufacturer -anchor nw -tag tag_logo set blogo [$fr.can bbox tag_logo] set wexit [lindex $blogo 3] if {$::typetlf } { set dlx [expr {$::padlx / 1}] $fr.can create text [expr $dlx + 6] [expr {$wexit + $::padly + 6}] -anchor nw -text " " -fill black -font {{Roboto Condensed Medium} 15 } $fr.can create text $dlx [expr {$wexit + $::padly}] -anchor nw -text " " -fill white -font {{Roboto Condensed Medium} 15 } -tag id_text0 update set blogo [$fr.can bbox id_text0] set wexit [lindex $blogo 3] $fr.can create text [expr $dlx + 4] [expr {$wexit + $::padly + 4 - 80}] -anchor nw -text "  Android" -fill black -font {{Roboto Condensed Medium} 13} $fr.can create text $dlx [expr {$wexit + $::padly - 80}] -anchor nw -text "  Android" -fill white -font {{Roboto Condensed Medium} 13} -tag id_text1 set blogo [$fr.can bbox id_text1] set wexit [lindex $blogo 3] $fr.can create text [expr $dlx + 3] [expr {$wexit + $::padly + 3 - 50}] -anchor nw -text "тДЦ 63  \" \n  6  2011 \"" -fill black -font {{Roboto} 10} $fr.can create text $dlx [expr {$wexit + $::padly - 50}] -anchor nw -text "тДЦ 63  \" \n  6  2011 \"" -fill white -font {{Roboto} 10} -tag id_text2 set blogo [$fr.can bbox id_text2] set wexit [lindex $blogo 3] $fr.can create text [expr $dlx + 2] [expr {$wexit + $::padly + 2 - 40}] -text ": .. \nhttp://soft.lissi.ru, http://www.lissi.ru\n+7(495)589-99-53\ne-mail: support@lissi.ru\n\n" \ -anchor nw -fill black -font {{Roboto} 9} $fr.can create text $dlx [expr {$wexit + $::padly - 40}] -text ": .. \nhttp://soft.lissi.ru, http://www.lissi.ru\n+7(495)589-99-53\ne-mail: support@lissi.ru\n\n" \ -anchor nw -fill white -tag id_text3 -font {{Roboto} 9} } else { $fr.can create text [expr $::padlx + 2] [expr {$wexit + $::padly + 2}] -anchor nw -text " " -fill black -font {{Nimbus Sans Narrow} 20} $fr.can create text $::padlx [expr {$wexit + $::padly}] -anchor nw -text " " -fill white -font {{Nimbus Sans Narrow} 20} -tag id_text0 set blogo [$fr.can bbox id_text0] set wexit [lindex $blogo 3] $fr.can create text [expr $::padlx + 2] [expr {$wexit + $::padly + 2 - 20}] -anchor nw -text "  Android" -fill black -font {{Nimbus Sans Narrow} 18} $fr.can create text $::padlx [expr {$wexit + $::padly - 20}] -anchor nw -text "  Android" -fill white -font {{Nimbus Sans Narrow} 18} -tag id_text1 set blogo [$fr.can bbox id_text1] set wexit [lindex $blogo 3] $fr.can create text [expr $::padlx + 2] [expr {$wexit + $::padly + 2}] -anchor nw -text "тДЦ 63  \" \n  6  2011 \"" -fill black -font {{Nimbus Sans Narrow} 14} $fr.can create text $::padlx [expr {$wexit + $::padly}] -anchor nw -text "тДЦ 63  \" \n  6  2011 \"" -fill white -font {{Nimbus Sans Narrow} 14} -tag id_text2 set blogo [$fr.can bbox id_text2] set wexit [lindex $blogo 3] $fr.can create text [expr $::padlx + 1] [expr {$wexit + $::padly + 1}] -text ": .. \nhttp://soft.lissi.ru, http://www.lissi.ru\n+7(495)589-99-53\ne-mail: support@lissi.ru\n\n" \ -anchor nw -fill black -font {{Nimbus Sans Narrow} 12} $fr.can create text $::padlx [expr {$wexit + $::padly}] -text ": .. \nhttp://soft.lissi.ru, http://www.lissi.ru\n+7(495)589-99-53\ne-mail: support@lissi.ru\n\n" \ -anchor nw -fill white -tag id_text3 -font {{Nimbus Sans Narrow} 12} -tag id_text3 set blogo [$fr.can bbox id_text2] } set blogo [$fr.can bbox id_text3] set wland [lindex $blogo 3] $fr.can create image $::padlx $wland -image logo_and -anchor nw -tag tag_land set ha [image height logo_and] set wa [image width logo_and] set ha1 [expr {$ha - ($ha / 2 ) }] $fr.can create image [expr {$wa - 80 }] [expr {$wland + $ha1}] -image svitok -anchor nw -tag tag_land if {$::typetlf} { set x1 [expr {$::padlx / 2}] set y1 [expr {$wland + 120}] set x2 [expr {$::::scrwidth - $x1}] set y2 [expr {$y1 + 120}] set wd 8 set rr 18 } else { set x1 [expr {$::padlx / 2}] set y1 [expr {$wland + 40}] set x2 [expr {$::::scrwidth - $x1}] set y2 [expr {$y1 + 40}] set wd 4 set rr 6 } set g5 [$fr.can gradient create linear -stops {{0 lightgreen} {1 green}}] set S3 [$fr.can style create -stroke "skyblue" -fill $g5 -strokewidth $wd -fillopacity 0.6] set im1 [$fr.can create prect $x1 $y1 $x2 $y2 -rx $rr -style $S3] $fr.can bind $im1 <ButtonPress-1> {butImg "img1"} #  set blogo [$fr.can bbox $im1] set by2 [lindex $blogo 3] set by1 [lindex $blogo 1] set bb [expr {($by2 - $by1) / 2}] set bx2 [lindex $blogo 2] set bx1 [lindex $blogo 0] set bbx [expr {($bx2 - $bx1) / 2}] set txt1 [$fr.can create text [expr {$x1 + $::padlx * 2}] [expr {$y1 + 1 }] -anchor nw -text " " -fill black -font {{Arial} 10 normal}] #  set btxt1 [$fr.can bbox $txt1] #   Y set ty2 [lindex $btxt1 3] set ty1 [lindex $btxt1 1] set tt [expr {$ty2 - $ty1}] set tt [expr {$tt / 2}] set offsy [expr {($by1 + $bb) - ($ty1 + $tt)}] #   X set tx2 [lindex $btxt1 2] set tx1 [lindex $btxt1 0] set ttx [expr {$tx2 - $tx1}] set ttx [expr {$ttx / 2}] set offsx [expr {($bx1 + $bbx) - ($tx1 + $ttx)}] $fr.can move $txt1 $offsx $offsy $fr.can bind $txt1 <ButtonPress-1> {butImg "img1"} if {$::typetlf} { set y1 [expr $y2 + 40] set x2 [expr {$::::scrwidth - $x1}] set y2 [expr {$y1 + 120}] } else { set y1 [expr {$y1 + 60}] set x2 [expr {$::::scrwidth - $x1}] set y2 [expr {$y1 + 40}] } set im1 [create_rectangle $fr.can "but2" $x1 $y1 $x2 $y2 "#2b972d" 0.6 $wd "skyblue"] #  set blogo [$fr.can bbox $im1] set by2 [lindex $blogo 3] set by1 [lindex $blogo 1] set bb [expr {($by2 - $by1) / 2}] set bx2 [lindex $blogo 2] set bx1 [lindex $blogo 0] set bbx [expr {($bx2 - $bx1) / 2}] set txt1 [$fr.can create text [expr {$x1 + $::padlx * 2}] [expr {$y1 + 1 }] -anchor nw -text "   " -fill black -font {{Roboto Condensed Medium} 12}] #  set btxt1 [$fr.can bbox $txt1] #   Y set ty2 [lindex $btxt1 3] set ty1 [lindex $btxt1 1] set tt [expr {$ty2 - $ty1}] set tt [expr {$tt / 2}] set offsy [expr {($by1 + $bb) - ($ty1 + $tt)}] #   X set tx2 [lindex $btxt1 2] set tx1 [lindex $btxt1 0] set ttx [expr {$tx2 - $tx1}] set ttx [expr {$ttx / 2}] set offsx [expr {($bx1 + $bbx) - ($tx1 + $ttx)}] $fr.can move $txt1 $offsx $offsy $fr.can bind $txt1 <ButtonPress-1> {butImg "but2"} if {$::typetlf} { set x1 [expr {$::padlx / 2}] set y1 [expr $y2 + 40] set x2 [expr {$::::scrwidth - $x1}] set y2 [expr {$y1 + 120}] } else { set x1 [expr {$::padlx / 2}] set y1 [expr {$y1 + 60}] set x2 [expr {$::::scrwidth - $x1}] set y2 [expr {$y1 + 40}] } set S3 [$fr.can style create -stroke skyblue -fill $g5 -strokewidth $wd -fillopacity 0.6] set im1 [$fr.can create prect $x1 $y1 $x2 $y2 -rx $rr -style $S3] set blogo [$fr.can bbox $im1] $fr.can bind $im1 <ButtonPress-1> {butImg "exit"} set by2 [lindex $blogo 3] set by1 [lindex $blogo 1] set bb [expr {($by2 - $by1) / 2}] set bx2 [lindex $blogo 2] set bx1 [lindex $blogo 0] set bbx [expr {($bx2 - $bx1) / 2}] set txt1 [$fr.can create text [expr {$x1 + $::padlx * 2}] [expr {$y1 + 1 }] -anchor nw -text " " -fill black -font {Arial 10 normal}] $fr.can bind $txt1 <ButtonPress-1> {butImg "exit"} set btxt1 [$fr.can bbox $txt1] #   Y set ty2 [lindex $btxt1 3] set ty1 [lindex $btxt1 1] set tt [expr {$ty2 - $ty1}] set tt [expr {$tt / 2}] set offsy [expr {($by1 + $bb) - ($ty1 + $tt)}] #   X set tx2 [lindex $btxt1 2] set tx1 [lindex $btxt1 0] set ttx [expr {$tx2 - $tx1}] set ttx [expr {$ttx / 2}] set offsx [expr {($bx1 + $bbx) - ($tx1 + $ttx)}] $fr.can move $txt1 $offsx $offsy } #  #   set ::scrwidth [winfo screenwidth .] set ::scrheight [winfo screenheight .] set ::typetlf 0 #,    if {$::scrwidth < $::scrheight} { set ::typetlf 1 } set ::padls 20 set ::padlx 15 set ::padly 15 if {$::typetlf} { wm attributes . -fullscreen 1 scaleImage icon_openfile_18x16 3 scaleImage ::img::view_18x16 3 #  scaleImage logo_orel 2 #  scaleImage logo_product 2 # tcl/tk scaleImage logo_and 3 #  scaleImage svitok 4 set ::padls 50 set ::padlx 75 set ::padly 50 } else { #    scaleImage logo_orel -2 set ::scrwidth 370 set ::scrheight 700 wm minsize . $::scrwidth $::scrheight set geometr $::scrwidth append geometr "x" append geometr $::scrheight append geometr "+0+0" wm geometry . $geometr } #   set name_product "CryptoArmPKCS-A" label .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 pack .labtitul -anchor nw -expand 0 -fill x -side top -padx 1 -pady 0 #   set i 0 ttk::frame .fr$i -pad 0 -padding 0 page_titul ".fr$i" "logo_orel" pack .fr$i -side top -anchor center -expand 1 -fill both -side top -padx 0 -pady 0 update 


рдЗрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ undroidwish рдпрд╛ vanillawish:

 $ /usr/local/bin64/undroidwish-e5dc71ed9d-linux64 create_titul_page.tcl 

рдпрд╛

 $/usr/local/bin64/vanillawish-e5dc71ed9d-linux64 create_titul_page.tcl 

рдкрд░рд┐рдгрд╛рдо рдкрд╣рд▓реЗ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред

рджреВрд╕рд░рд╛ рдкреГрд╖реНрда рдХреНрд░рд┐рдкреНрдЯреЛрдХрд░рдВрд╕реА-рдП рдЙрдкрдпреЛрдЧрд┐рддрд╛ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдПрдХ рдмрдЯрди рд╣реИ, рдЬрдм рдХреНрд▓рд┐рдХ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдПрдХ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдкреГрд╖реНрда рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕ рдкреГрд╖реНрда рдкрд░ рдмрдЯрди рдХреА рдЬреНрдпрд╛рдорд┐рддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдлрд╝реЙрдиреНрдЯ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рджреВрд╕рд░рд╛ / рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдкреГрд╖реНрда рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП create_page_functions.tcl рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд┐рдореНрди рд╣реИред рд╣рд░ рдХреЛрдИ рдЗрд╕реЗ рдЕрдкрдиреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдВрдкрд╛рджрд┐рдд рднреА рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рд╕реНрдХреНрд░рд┐рдкреНрдЯ create_page_functions.tcl
 package require Tk package require tkpath 0.3.0 global mydir set mydir [file dirname [info script]] #/ (  - ) proc scaleImage {im xfactor {yfactor 0}} { set mode -subsample if {$xfactor>=0 && $yfactor>=0} { set mode -zoom } else { set xfactor [expr $xfactor * -1] } if {$yfactor == 0} {set yfactor $xfactor} set t [image create photo] $t copy $im $im blank $im copy $t -shrink $mode $xfactor $yfactor image delete $t } proc createtile {w backg} { image create photo tiled tiled copy $backg -to 0 0 $::scrwidth $::scrheight -shrink $backg copy tiled image delete tiled #   $w create image 0 0 \ -image $backg \ -anchor nw } proc butCliked {num fr} { pack forget .fr1 set ::tekFrfunc $fr pack $fr -side top -anchor center -expand 1 -fill both -side top -padx 0 -pady 0 tk_dialog .dialog1 "Dear user:" "Button $num was clicked\nFr=$fr" info 0 OK } proc butImg {img} { tk_messageBox -title "" -icon info -message " =$img" -detail "::screenwidth=$::scrwidth\n::screenheight=$::scrheight" -parent . if {$img == "exit"} { set answer [tk_dialog .dialog2 " " " \n ?" question 0 "" "" ] if {$answer == 0} { exit } } } proc butReturn {} { pack forget $::tekFrfunc pack .fr1 -side top -anchor center -expand 1 -fill both -side top -padx 0 -pady 0 # tk_dialog .dialog1 "Dear user:" "Button $num was clicked\nFr=$fr" info 0 OK } proc page_func {fr tile titul functions} { #  upvar $functions but #    if {$::typetlf} { set feFONT_button "-family {Roboto} -size 9 -weight bold -slant roman" set widl 10 } else { set feFONT_button "-family {Arial} -size 12 -weight bold -slant roman" set widl 5 } catch {font delete fontTEMP_drawer} eval font create fontTEMP_drawer $feFONT_button #    set drawerCNT 0 set strMaxWidthPx 15 set Ndrawers [expr {[array size but] - 1}] while { $drawerCNT <= $Ndrawers } { set strWidthPx [font measure fontTEMP_drawer "$but($drawerCNT)"] if { $strWidthPx > $strMaxWidthPx } { set strMaxWidthPx $strWidthPx } incr drawerCNT } set drawerWidthPx [expr $strMaxWidthPx + 10] set xxx [expr {($::::scrwidth - $drawerWidthPx) / 2}] if {$fr != ".fr1"} { set hret [expr $::scrheight / 4] } else { set hret $::scrheight } set hret [expr $::scrheight / 4] tkp::canvas $fr.can -borderwidth 0 -height $hret -width $::scrwidth -relief flat #   createtile "$fr.can" $tile pack $fr.can -anchor center -expand 1 -fill both -side top -padx 0 -pady 0 if {$titul != "" } { set allfunc $titul catch {font delete fontTEMP_titul} set font_titul "-family {Roboto Condensed Medium} -size 15" eval font create fontTEMP_titul $font_titul set funcWidthPx [font measure fontTEMP_titul "$allfunc"] set dlx [expr {($::::scrwidth - $funcWidthPx) / 2}] $fr.can create text [expr $dlx + 6] [expr {6 + 6}] -anchor nw -text "$allfunc" -fill black -font fontTEMP_titul $fr.can create text $dlx 6 -anchor nw -text "$allfunc" -fill white -font fontTEMP_titul -tag id_text0 set blogo [$fr.can bbox id_text0] set boxbut [expr ([lindex $blogo 3] + 6 + 6)] } else { set boxbut [expr 6 + 6] } #      #.  #  set BDwidth_canvas 0 set maxTextHeightPx [font metrics fontTEMP_drawer -linespace] set maxTextHeightPx [expr {$maxTextHeightPx + ( $maxTextHeightPx / 2)}] set drawerHeightPx $maxTextHeightPx set xLocTextPx [expr {($::::scrwidth - $drawerWidthPx) / 2}] set yLocTextPx [expr $BDwidth_canvas + ($drawerHeightPx / 2) + $boxbut] set canvasHeightPx [expr $Ndrawers * $drawerHeightPx] set drawerCNT 0 set Ndrawers [expr {[array size but] - 1}] while { $drawerCNT <= $Ndrawers } { set yLineLocPx [ expr (( $drawerCNT ) * $drawerHeightPx + $boxbut)] #   $fr.can create line \ $xLocTextPx $yLineLocPx \ [expr $drawerWidthPx + $xLocTextPx] $yLineLocPx \ -fill "#a0a0a0" -width $widl $fr.can create text [expr $xLocTextPx + 5] $yLocTextPx \ -anchor w \ -font fontTEMP_drawer \ -text "$but($drawerCNT)" \ -tag textlineTag($drawerCNT) if {$drawerCNT == 0} { if {$fr == ".fr1"} { $fr.can bind textlineTag($drawerCNT) <ButtonRelease-1> {butImg "but1"} } else { $fr.can bind textlineTag($drawerCNT) <ButtonRelease-1> {butReturn} } } else { frame .fn$drawerCNT -background white -relief flat -pady 0 -padx 0 set titul $but($drawerCNT) set cmd "$fr.can bind textlineTag($drawerCNT) <ButtonRelease-1> {butCliked $drawerCNT .fn$drawerCNT}" set cmd [subst "$cmd"] eval $cmd set but1(0) "   " page_func ".fn$drawerCNT" voda "$titul" "but1" } incr drawerCNT set yLocTextPx [ expr $yLocTextPx + $drawerHeightPx] #  if { $drawerCNT > $Ndrawers } { set yLineLocPx [ expr (( $drawerCNT ) * $drawerHeightPx + $boxbut)] $fr.can create line $xLocTextPx $yLineLocPx \ [expr $drawerWidthPx + $xLocTextPx] $yLineLocPx \ -fill "#a0a0a0" -width $widl } } } #  #   set ::scrwidth [winfo screenwidth .] set ::scrheight [winfo screenheight .] set ::typetlf 0 #,    if {$::scrwidth < $::scrheight} { set ::typetlf 1 } set ::padls 20 set ::padlx 15 set ::padly 15 if {$::typetlf} { wm attributes . -fullscreen 1 #  scaleImage logo_product 2 set ::padls 50 set ::padlx 75 set ::padly 50 } else { #    set ::scrwidth 370 set ::scrheight 700 wm minsize . $::scrwidth $::scrheight set geometr $::scrwidth append geometr "x" append geometr $::scrheight append geometr "+0+0" wm geometry . $geometr } #  image create photo voda -file [file join $mydir "imageme" "voda_400x800.png"] #  image create photo logo_product -file [file join $mydir "imageme" "validcertkey_51x24.png"] #   set name_product "CryptoArmPKCS-A" label .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 pack .labtitul -anchor nw -expand 0 -fill x -side top -padx 1 -pady 0 #    set i 1 ttk::frame .fr$i -pad 0 -padding 0 #   set but(0) " " set but(1) " " set but(2) "   (PKCS7)" set but(3) "  " set but(4) " /" set but(5) " " set but(6) " ASN1-" set but(7) " " set but(8) "  PKCS12/PFX" set but(9) " " set but(10) " /" set but(11) " " set but(12) " " if {$::typetlf} { scaleImage voda 3 2 } #    page_func ".fr$i" voda "" "but" #    pack .fr$i -side top -anchor center -expand 1 -fill both -side top -padx 0 -pady 0 


рдпрд╣ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рдВрдХреНрд╢рди рдмрдЯрди рдХреЗ рд▓рд┐рдП рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рднреА рддреИрдпрд╛рд░ рдХрд░рддреА рд╣реИ:



рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреНрд▓рд╛рд╕рд┐рдХ рдФрд░ рд╡рд┐рд╖рдпрдЧрдд рд╡рд┐рдЧреЗрдЯреНрд╕ (labelframe, рдмрдЯрди, рдЖрджрд┐) рд╕реЗ рднрд░реЗ рд╣реБрдП рд╣реИрдВред рдЗрди рднрд░реЗ рд╣реБрдП рдХреИрдирд╡рд╕ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рдкрд╣рд▓реЗ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдореЗрдВ рджрд╛рдИрдВ рдУрд░ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЪреВрдВрдХрд┐ рд╣рдордиреЗ рдкрд╣рд▓реЗ рдЪрд░рдг рдореЗрдВ PKCS # 12 рдХрдВрдЯреЗрдирд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд┐рдпрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдХреЛрдб рдХреЛ рдХреНрд░рд┐рдкреНрдЯреЛрдХрд░рдВрд╕реА-рдП рдХреЗ рд▓рд┐рдП рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рдмрд┐рдирд╛ рд▓рдЧрднрдЧ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕ рд╕реНрддрд░ рдкрд░, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдп рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ:

  • рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдкрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд░реЗрдВ (Cades-BES, CAdes-T, CAdes-XLT1);
  • рд╣рдо рдИрдПрд╕ (рдкреАрдХреЗрд╕реАрдПрд╕ 7) рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рдПрдХ рд╣рд╕реНрддрд╛рдХреНрд╖рд░рдХрд░реНрддрд╛ рд╢рд╛рдорд┐рд▓ рд╣реИ;
  • рдкреНрд░рдорд╛рдгрдкрддреНрд░ / рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдЕрдиреБрд░реЛрдз рджреЗрдЦреЗрдВ:

  • рд╣рдо PKCS12 / PFX рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ;
  • рдЙрдкрдпреЛрдЧрд┐рддрд╛ / рд╡рд┐рддрд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ:


рдЕрдиреНрдп рдХрд╛рд░реНрдп PKCS # 11 рдЯреЛрдХрди рд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВред рдЙрдирдХрд╛ рдкреЛрд░реНрдЯрд┐рдВрдЧ рдирдП рд╕рд╛рд▓ рдХреЗ рд▓рд┐рдП рд╕реНрдердЧрд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рдПрдХ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдЯреЛрдХрди рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдФрд░ рдЯреЛрдХрди рдХреЗ рдПрдХ рдХреНрд▓рд╛рдЙрдб рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рд╣реИред

рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рд▓рдЧрднрдЧ рд╕рдм рдХреБрдЫ рдХреНрд░рд┐рдкреНрдЯреЛрдХрд░рдВрд╕реА рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЗ рд╕рдорд╛рди рд╣реИред рд▓реЗрдХрд┐рди рдХреБрдЫ рдЕрдВрддрд░ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рджрд╕реНрддрд╛рд╡реЗрдЬ рдкрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдкреВрдЫрддреА рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд░рд╛рдЬреНрдп рд╕реЗрд╡рд╛рдУрдВ рдХреА рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдЬрд╛рдВрдЪреЗ рдЬрд╛рдПрдВрдЧреЗ:


рдЬрдм рдЖрдк рд╣рд╛рдБ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдФрд░ рдкреНрд░рдорд╛рдгрдкрддреНрд░реЛрдВ рдкрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд░рдиреЗ рдХреЗ рд╕рддреНрдпрд╛рдкрди рдХреЗ рд▓рд┐рдП рдПрдХ рдкреГрд╖реНрда рдХреЗ рд╕рд╛рде рдПрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рддреБрд░рдВрдд рдПрдХ рдЖрд░рдХреНрд╖рдг рдХрд░реЗрдВ рдХрд┐ рдпрд╣ рдкреГрд╖реНрда рд╕реНрдорд╛рд░реНрдЯрдлреЛрди рдХреА рд╕реНрдХреНрд░реАрди рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдбрд┐рдЬрд╝рд╛рдЗрди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдЪреБрдирддреЗ рд╕рдордп рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реЛрдЧрд╛ рдФрд░, рдпрджрд┐ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд╛рдЯ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЗ рд╕рд╛рде рдлрд╝рд╛рдЗрд▓ред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рд╕рдм рдареАрдХ рд╣реИ, рддреЛ рд╣рдореЗрдВ рдПрдХ рд╕рдХрд╛рд░рд╛рддреНрдордХ рдкрд░рд┐рдгрд╛рдо рдорд┐рд▓реЗрдЧрд╛:



рдпрд╣ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рд░рд╛рдЬреНрдп рд╕реЗрд╡рд╛ рдХреА рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдФрд░ рдкреНрд░рдорд╛рдг рдкрддреНрд░ рджреЛрдиреЛрдВ рдХрд╛ рд╕рддреНрдпрд╛рдкрди рдХреЗрд╡рд▓ рддрднреА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдкреНрд░рдорд╛рдг рдкрддреНрд░ рдХрд┐рд╕реА рдорд╛рдиреНрдпрддрд╛ рдкреНрд░рд╛рдкреНрдд рдкреНрд░рдорд╛рдгрди рдХреЗрдВрджреНрд░ ( рд╕реАрдП ) рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛред рдЕрдиреНрдпрдерд╛, рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд╣рдореЗрд╢рд╛ рдЕрдорд╛рдиреНрдп рд╣реЛрдЧрд╛ред

рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рдУрдкрдирдпреВрдПрд▓рдЖрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдХреБрдЫ рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рдерд╛:

 proc openURL {url} { global typesys global macos # global windowsOS #,      Android if {$::typetlf} { #  borg activity android.intent.action.VIEW $url text/html return } . . . } 

рдПрдВрдбреНрд░реЙрдЗрдб рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

 borg activity android.intent.action.VIEW <URL> text/html 

рдкрд╣рд▓реЗ рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рдПрдХ рдирдпрд╛ рд╣рд╕реНрддрд╛рдХреНрд╖рд░рдХрд░реНрддрд╛ рдЬреЛрдбрд╝рдиреЗ рдкрд░ рдПрдХ рдЫреЛрдЯреА рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИред рдирдП рд╣рд╕реНрддрд╛рдХреНрд╖рд░рдХрд░реНрддрд╛ (рдпрд╛ рдмрд▓реНрдХрд┐, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдкреНрд░рдорд╛рдг рдкрддреНрд░ рдФрд░ рдирд┐рдЬреА рдХреБрдВрдЬреА рдХреЗ рд╕рд╛рде PKCS # 12 рдХрдВрдЯреЗрдирд░) рдХрд╛ рдкреНрд░рдорд╛рдг рдкрддреНрд░ "рд╕рд╛рдЗрди рдЗрди рдП рджрд╕реНрддрд╛рд╡реЗрдЬрд╝" рдпрд╛ "PKCS12 / PFX рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ" рдкреЗрдЬ рдкрд░ рдкреВрд░реНрд╡-рдЪрдпрдирд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬреЛ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдЖрдкрдХреЛ рдпрд╛рдж рджрд┐рд▓рд╛рдПрдЧреА:


рд▓рдВрдмреЗ рд╕рдордп рддрдХ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд╕рд╛рде, рдШрдбрд╝реА рдкрд╣рд▓реЗ рдХреА рддрд░рд╣ рдЖрдЧреЗ рдмрдврд╝реЗрдЧреА:


рдпрд╣ рдХрд╣рдирд╛ рдмрд╛рдХреА рд╣реИ рдХрд┐ рдЖрдЧрд╛рдореА рдирдП рд╕рд╛рд▓ рдкрд░ рд╡рд┐рддрд░рдг рдФрд░ рдмрдзрд╛рдИ рдХрд╣рд╛рдБ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ рдФрд░ рд╕рднреА рдХреЛ 2020 рдХреЗ рд▓рд┐рдП рд╢реБрднрдХрд╛рдордирд╛рдПрдВ рджреЗрдВ!

рдЫрд╡рд┐ рддреЛ, рд▓рд┐рдирдХреНрд╕, рдУрдПрд╕ рдПрдХреНрд╕, рд╡рд┐рдВрдбреЛрдЬ рдФрд░ рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд▓рд┐рдП рд╡рд┐рддрд░рдг:

Source: https://habr.com/ru/post/hi482574/


All Articles