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

рд╣реИрдмрд░ рдХреЗ рдЦреБрд▓реЗ рд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ, рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдпреЛрдЧреНрдп рдкреНрд░рдорд╛рдг рдкрддреНрд░ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХрд╛ рд╕рдлрд▓
рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ ред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗрд╡рд▓ рдЯреАрдЖрдИрдПрди, рдкреАрдПрд╕рдЖрд░рдПрди рдФрд░ рдПрд╕рдПрдирдЖрдИрдПрд▓рдПрд╕ рдХреА рдкреНрд░рд╛рдкреНрддрд┐ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ рдЬреЛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдирд╛рдо рдбреАрдПрди рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдХреНрдпреЛрдВ? рд▓реЗрдЦрдХ рдХреЛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдорд╕реНрдпрд╛ рдереА рдФрд░ рдЗрд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд╣рдо рдкрд╛рдпрдерди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рдпреЛрдЧреНрдп рдкреНрд░рдорд╛рдг рдкрддреНрд░ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЪрд┐рддреНрд░рдордп рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред
рдкреНрд░рдорд╛рдг рдкрддреНрд░ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо
fsb795 рдкреИрдХреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рдкреИрдХреЗрдЬ Pytho2 рдФрд░ Python3 рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП, рд▓рд┐рдирдХреНрд╕ рдХреЗ рд▓рд┐рдП рдФрд░ рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИред рдЗрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд╕ рдкрд╛рд░рдВрдкрд░рд┐рдХ рдХрдорд╛рдВрдб рдЪрд▓рд╛рдПрдВ:
Fsb795 рдкреИрдХреЗрдЬ рдХреЛ pyasn1 рдФрд░ pyasn1- рдореЙрдбреНрдпреВрд▓ рдкреИрдХреЗрдЬ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рд╡реЗ рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рдЙрдиреНрд╣реЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
Python3 рдХреЗ рд▓рд┐рдП, рдпрд╣ рдХрдорд╛рдВрдб рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
рдЖрдк
python3 рдФрд░
python2 рд╕реНрдерд╛рдкрдирд╛ рдкреИрдХреЗрдЬ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ
рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдкреИрдХреЗрдЬ рдХрд╛ рдирд╛рдо, pyasn1- рдореЙрдбреНрдпреВрд▓ рдкреИрдХреЗрдЬ рд╕реЗ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде рд╕рд╛рджреГрд╢реНрдп рджреНрд╡рд╛рд░рд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, rfc2459, рдЖрджрд┐ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ 27 рджрд┐рд╕рдВрдмрд░ 2011 рдХреЗ рд░реВрд╕реА рд╕рдВрдШ рдХреЗ рд╕рдВрдШреАрдп рд╕реБрд░рдХреНрд╖рд╛ рд╕реЗрд╡рд╛ рдХреЗ рдЖрджреЗрд╢ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рдорд╛рдгрдкрддреНрд░реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ
ред рдПрдХ рдпреЛрдЧреНрдп рдкреНрд░рдорд╛рдг рдкрддреНрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ ... "ред
рдкреНрд░рдорд╛рдг рдкрддреНрд░ рд╡рд░реНрдЧ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ fsb795 рдкреИрдХреЗрдЬ рдореЗрдВ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рддрдХ рдкрд╣реБрдВрдЪ рд▓рд╛рдЧреВ рдХреА рдЧрдИ рд╣реИ:
рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдерди рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ:
$ python Python 2.7.15 (default, May 23 2018, 14:20:56) [GCC 5.4.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>import fsb795 >>tek_cert = fsb795.Certificate(</ >) >>
рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ, рдХрдХреНрд╖рд╛ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рддреЗ рд╕рдордп, рдПрдХ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдпрд╛ рддреЛ рдкреАрдИрдПрдо рдпрд╛ рдбреАрдИрдЖрд░ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдкреАрдИрдПрдо рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдирд┐рд░реНрдорд╛рдг рдХреЗ рдмрд╛рдж, рдкреНрд░рддреНрдпреЗрдХ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдЪрд╛рд░ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реЛрддреА рд╣реИрдВ: рдкрд╛рдЗрд╡рд░, рдлреЙрд░реНрдореЗрдЯрдХрд╛рд░реНрдЯ, рд╕рд░реНрдЯрд┐рдлрд┐рдХреЗрдЯ_рдлреБрд▓ рдФрд░ рд╕рд░реНрдЯрд┐рдлрд┐рдХреЗрдЯред
рдкрд╛рдЗрд╡рд░ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рдЬрд╛рдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдкреНрд░рдорд╛рдг рдкрддреНрд░ рдХреА рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдХреИрд╕реЗ рдЧрдИред рдпрджрд┐ рдкрд╛рдЗрд╡рд░ рдПрдХ рдЦрд╛рд▓реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ, рддреЛ рдлрд╝рд╛рдЗрд▓ рдпрд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдирд╣реАрдВ рд╣реИред рдЕрдиреНрдпрдерд╛, pyver рд╡рд┐рд╢реЗрд╖рддрд╛ рдореЗрдВ рдЕрдЬрдЧрд░ рднрд╛рд╖рд╛ рд╕рдВрд╕реНрдХрд░рдг рд╣реИ:
>>> c1=fsb795.Certificate(' ') >>> if (c1.pyver == ''): ... print (' ') ... >>> c2 = fsb795.Certificate('/home/a513/cert_nss.der') >>> if (c2.pyver != ""): ... print(c2.pyver) ... 2 >>> print(c2.formatCert) DER >>>
рдлреЙрд░реНрдореЗрдЯрд░реНрдЯ рд╡рд┐рд╢реЗрд╖рддрд╛, рдЬрдм рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреНрд░рдорд╛рдг рдкрддреНрд░ рд╡рд░реНрдЧ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рддреЗ рд╣реИрдВ, рддреЛ рдкреНрд░рдорд╛рдг рдкрддреНрд░ рдХреА рдлрд╝рд╛рдЗрд▓ / рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рд╛рд░реВрдк рдкреНрд░рдХрд╛рд░ рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рдкреАрдИрдПрдо рдпрд╛ рдбреАрдИрдЖрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреНрдпреЛрдВ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдиреАрдЪреЗ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред
Fsb795 рдкреИрдХреЗрдЬ pyasn1 рдкреИрдХреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред рддреЛ, рджреЛ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рдЕрдкрд░рд┐рдЪрд┐рдд рд░рд╣ рдЧрдИрдВред Pyasn1 рдкреИрдХреЗрдЬ рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╕рд░реНрдЯрд┐рдлрд┐рдХреЗрдЯ рд╡рд┐рд╢реЗрд╖рддрд╛ tbs рдкреНрд░рдорд╛рдгрдкрддреНрд░ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИред рдПрдХ рдФрд░ Cert_full рд╡рд┐рд╢реЗрд╖рддрд╛ rfc2459 рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдкреВрд░реЗ рдбрд┐рдХреЛрдб рдХрд┐рдП рдЧрдП рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреА рд╣реИред рд╣рдо рджрд┐рдЦрд╛рддреЗ рд╣реИрдВ рдХрд┐ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬреА рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЛ рдкреНрд░рдорд╛рдгрд┐рдд рд╡рд┐рд╢реЗрд╖рддрд╛ рдФрд░ рдЬреБрдбрд╝реЗ pyasn1 рдкреИрдХреЗрдЬ рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ:
>>> pubkey = c2.cert['subjectPublicKeyInfo'] >>> ff = pubkey['algorithm'] >>> ff1 = ff['algorithm'] >>> print (ff1) 1.2.643.2.2.19 >>>
рдЕрдВрдд рдореЗрдВ, рдПрдХ рдпреЛрдЧреНрдп рдкреНрд░рдорд╛рдг рдкрддреНрд░ рдХреА рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬреА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП fsb795 рдкреИрдХреЗрдЬ рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛ред
рдЬрдм рдкреНрд░рдорд╛рдгрдкрддреНрд░ рд╡рд░реНрдЧ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╣рдорд╛рд░реЗ рдирд┐рдкрдЯрд╛рди рдХреЗ рддрд░реАрдХреЗ рд╣реИрдВ рдЬреЛ рдкреНрд░рдорд╛рдг рдкрддреНрд░ рд╕реЗ рдЖрд╡рд╢реНрдпрдХ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЖрд╕рд╛рди рдмрдирд╛рддреЗ рд╣реИрдВред рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬреА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рднреА рдЬрд╛рдирдХрд╛рд░реА рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдкреНрд░рд╛рдкреНрдд рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ:
>>> c3 = fsb795.Certificate('cert.der') >>> key_info=c3.publicKey() >>> for opt in key_info.keys(): ... val = str(key_info[opt]) ... print (opt + '=' + val) ... curve=1.2.643.2.2.36.0 hash=1.2.643.2.2.30.1 valuepk=5b785f86f0dd5316ba37c8440e398e83f2ec0c34478f90da9c0c8046d341ff66f9044cd00a0e25530 acefd51e6be852dbecacbaabc55e807be8e1f861658bd58 algo=1.2.643.2.2.19 >>>
рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рдкреНрд░рдорд╛рдгрдкрддреНрд░ рд╡рд░реНрдЧ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рдзрд┐рдпрд╛рдБ рд╣реИрдВ:
- subjectSignTool () - рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлрд╝рд┐рдХ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдзрд╛рд░рдХ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдХреЗ рдирд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рджреЗрддрд╛ рд╣реИ
- рдЬрд╛рд░реАрдХрд░реНрддрд╛рд╕рд╛рдЗрдирдЯреВрд▓ () - рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдЬрд╛рд░реАрдХрд░реНрддрд╛ рдХреЗ рд╕реВрдЪрдирд╛ рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлрд┐рдХ рдЯреВрд▓ рдХреЗ рд╕рд╛рде рдЪрд╛рд░ рддрддреНрд╡реЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рджреЗрддрд╛ рд╣реИ;
- classUser () - рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдзрд╛рд░рдХ рдХреА рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлрд╝рд┐рдХ рд╕реВрдЪрдирд╛ рд╕реБрд░рдХреНрд╖рд╛ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдХрдХреНрд╖рд╛рдУрдВ рдХреА рд╢рдкрде рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рджреЗрддрд╛ рд╣реИ, рдкрд╛рддреНрд░реЛрдВ рджреНрд╡рд╛рд░рд╛ рдЕрд▓рдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ ";;";
- рдЬрд╛рд░реАрдХрд░реНрддрд╛рдХреЙрд░реНрдЯ () - рдкреНрд░рдорд╛рдг рдкрддреНрд░ рдЬрд╛рд░реА рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХрд╛ рдирд╛рдо рдбреАрдПрди рдФрд░ рдЦреЗрддреЛрдВ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╢рдмреНрджрдХреЛрд╢ рдФрд░ рдкреНрд░рдорд╛рдг рдкрддреНрд░ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдПрдХ рдирдВрдмрд░ (2 - рдХрд╛рдиреВрдиреА рдЗрдХрд╛рдИ);
- subjectCert () - рдкреНрд░рдорд╛рдг рдкрддреНрд░ рдзрд╛рд░рдХ рдХреЗ рдкреНрд░рддрд┐рд╖реНрдард┐рдд рдирд╛рдо DN рдХреЗ рдХреНрд╖реЗрддреНрд░реЛрдВ рдФрд░ рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╢рдмреНрджрдХреЛрд╢ рджреЗрддрд╛ рд╣реИ рдФрд░ рдПрдХ рдирдВрдмрд░ рдЬреЛ рдкреНрд░рдорд╛рдг рдкрддреНрд░ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рддрд╛ рд╣реИ (2 - рдХрд╛рдиреВрдиреА рдЗрдХрд╛рдИ);
- publicKey () - рдПрдХ рд╢рдмреНрджрдХреЛрд╢ рджреЗрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдореБрдЦреНрдп рдорд╛рди ('valuepk') рдФрд░ рдкреНрд░рдореБрдЦ рдкреИрд░рд╛рдореАрдЯрд░ ('рд╡рдХреНрд░' рдФрд░ 'hasn') рд╣реЛрддреЗ рд╣реИрдВ;
- рд╕рд┐рдЧреНрдиреЗрдЪрд░рдХрд╛рд░реНрдЯ - рджреЛ рдорд╛рди рд▓реМрдЯрд╛рддрд╛ рд╣реИ: рд╕рд┐рдЧреНрдиреЗрдЪрд░ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдФрд░ рд╕рд┐рдЧреНрдиреЗрдЪрд░ рд╡реИрд▓реНрдпреВ;
- validityCert - рджреЛ рдХреБрдВрдЬреА 'not_after' рдФрд░ 'not_before' рдХреЗ рд╕рд╛рде рдПрдХ рд╢рдмреНрджрдХреЛрд╢ рджреЗрддрд╛ рд╣реИ;
- keyUsage () - рдореБрдЦреНрдп рд╕реНрдХреЛрдк рдХреА рд╕реВрдЪреА рджреЗрддрд╛ рд╣реИ;
- рд╕реАрд░рд┐рдпрд▓рдирдВрдмрд░ () - рджрд╢рдорд▓рд╡ рд░реВрдк рдореЗрдВ рдкреНрд░рдорд╛рдг рдкрддреНрд░ рдХреА рдХреНрд░рдо рд╕рдВрдЦреНрдпрд╛ рд▓реМрдЯрд╛рддрд╛ рд╣реИ;
- prettyPrint () - pyasn1 (self.cert_full.prettyPrint ()) рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдХреЗ 'рдкреНрд░рд┐рдВрдЯрдЖрдЙрдЯ' рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рджреЗрддрд╛ рд╣реИред
рд╕реНрдкреЙрдЗрд▓рд░ рдореЗрдВ рдПрдХ рдкрд░реАрдХреНрд╖рдг рдЙрджрд╛рд╣рд░рдг рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдЗрди рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рдХрд╛рдо рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред
Fsb795 рдкреИрдХреЗрдЬ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП test795.py рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░реЗрдВ import fsb795 certpem = """ -----BEGIN CERTIFICATE----- MIIG3DCCBougAwIBAgIKE8/KkAAAAAAC4zAIBgYqhQMCAgMwggFKMR4wHAYJKoZI hvcNAQkBFg9kaXRAbWluc3Z5YXoucnUxCzAJBgNVBAYTAlJVMRwwGgYDVQQIDBM3 NyDQsy4g0JzQvtGB0LrQstCwMRUwEwYDVQQHDAzQnNC+0YHQutCy0LAxPzA9BgNV BAkMNjEyNTM3NSDQsy4g0JzQvtGB0LrQstCwLCDRg9C7LiDQotCy0LXRgNGB0LrQ sNGPLCDQtC4gNzEsMCoGA1UECgwj0JzQuNC90LrQvtC80YHQstGP0LfRjCDQoNC+ 0YHRgdC40LgxGDAWBgUqhQNkARINMTA0NzcwMjAyNjcwMTEaMBgGCCqFAwOBAwEB EgwwMDc3MTA0NzQzNzUxQTA/BgNVBAMMONCT0L7Qu9C+0LLQvdC+0Lkg0YPQtNC+ 0YHRgtC+0LLQtdGA0Y/RjtGJ0LjQuSDRhtC10L3RgtGAMB4XDTE4MDcwOTE1MjYy NFoXDTI3MDcwOTE1MjYyNFowggFVMR4wHAYJKoZIhvcNAQkBFg9jb250YWN0QGVr ZXkucnUxITAfBgNVBAMMGNCe0J7QniDCq9CV0LrQtdC5INCj0KbCuzEwMC4GA1UE Cwwn0KPQtNC+0YHRgtC+0LLQtdGA0Y/RjtGJ0LjQuSDRhtC10L3RgtGAMSEwHwYD VQQKDBjQntCe0J4gwqvQldC60LXQuSDQo9CmwrsxCzAJBgNVBAYTAlJVMRgwFgYD VQQIDA83NyDQnNC+0YHQutCy0LAxRDBCBgNVBAkMO9Cj0JvQmNCm0JAg0JjQm9Cs 0JjQndCa0JAsINCULjQsINCQ0J3QotCgIDMg0K3Qojsg0J/QntCcLjk0MRgwFgYD VQQHDA/Qsy7QnNC+0YHQutCy0LAxGDAWBgUqhQNkARINMTE0Nzc0NjcxNDYzMTEa MBgGCCqFAwOBAwEBEgwwMDc3MTA5NjQzNDgwYzAcBgYqhQMCAhMwEgYHKoUDAgIk AAYHKoUDAgIeAQNDAARAW3hfhvDdUxa6N8hEDjmOg/LsDDRHj5DanAyARtNB/2b5 BEzQCg4lUwrO/VHmvoUtvsrLqrxV6Ae+jh+GFli9WKOCA0AwggM8MBIGA1UdEwEB /wQIMAYBAf8CAQAwHQYDVR0OBBYEFMQYnG5GfYRnj2ehEQ5tv8Fso/qBMAsGA1Ud DwQEAwIBRjAdBgNVHSAEFjAUMAgGBiqFA2RxATAIBgYqhQNkcQIwKAYFKoUDZG8E Hwwd0KHQmtCX0JggwqvQm9CY0KDQodCh0JstQ1NQwrswggGLBgNVHSMEggGCMIIB foAUi5g7iRhR6O+cAni46sjUILJVyV2hggFSpIIBTjCCAUoxHjAcBgkqhkiG9w0B CQEWD2RpdEBtaW5zdnlhei5ydTELMAkGA1UEBhMCUlUxHDAaBgNVBAgMEzc3INCz LiDQnNC+0YHQutCy0LAxFTATBgNVBAcMDNCc0L7RgdC60LLQsDE/MD0GA1UECQw2 MTI1Mzc1INCzLiDQnNC+0YHQutCy0LAsINGD0LsuINCi0LLQtdGA0YHQutCw0Y8s INC0LiA3MSwwKgYDVQQKDCPQnNC40L3QutC+0LzRgdCy0Y/Qt9GMINCg0L7RgdGB 0LjQuDEYMBYGBSqFA2QBEg0xMDQ3NzAyMDI2NzAxMRowGAYIKoUDA4EDAQESDDAw NzcxMDQ3NDM3NTFBMD8GA1UEAww40JPQvtC70L7QstC90L7QuSDRg9C00L7RgdGC 0L7QstC10YDRj9GO0YnQuNC5INGG0LXQvdGC0YCCEDRoHkDLQe8zqaC3yHaSmikw WQYDVR0fBFIwUDAmoCSgIoYgaHR0cDovL3Jvc3RlbGVjb20ucnUvY2RwL2d1Yy5j cmwwJqAkoCKGIGh0dHA6Ly9yZWVzdHItcGtpLnJ1L2NkcC9ndWMuY3JsMIHGBgUq hQNkcASBvDCBuQwj0J/QkNCa0JwgwqvQmtGA0LjQv9GC0L7Qn9GA0L4gSFNNwrsM INCf0JDQmiDCq9CT0L7Qu9C+0LLQvdC+0Lkg0KPQpsK7DDbQl9Cw0LrQu9GO0YfQ tdC90LjQtSDihJYgMTQ5LzMvMi8yLTk5OSDQvtGCIDA1LjA3LjIwMTIMONCX0LDQ utC70Y7Rh9C10L3QuNC1IOKEliAxNDkvNy8xLzQvMi02MDMg0L7RgiAwNi4wNy4y MDEyMAgGBiqFAwICAwNBALvjFGhdFE9llvlvKeQmZmkI5J+yO2jFWTh8nXPjIpiL OutUew2hIZv15pJ1QM/VgRO3BTBGDOoIrq8LvgC+3kA= -----END CERTIFICATE----- """
рдкрд░реАрдХреНрд╖рдг рдЙрджрд╛рд╣рд░рдг рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд╕ рдХрдорд╛рдВрдб рдЪрд▓рд╛рдПрдБ:
$python test795.py
рдЕрдкрдиреЗ рдирд┐рдкрдЯрд╛рди рдореЗрдВ fsb795 рдкреИрдХреЗрдЬ рдХреЗ рд╕рд╛рде, рдпреЛрдЧреНрдп рдкреНрд░рдорд╛рдгрдкрддреНрд░ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдЬрдЧрд░ рдХреЛ рдПрдХ рд╕реНрд╡-рдирд┐рд╣рд┐рдд, рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо-рд╕реНрд╡рддрдВрддреНрд░ рдЧреНрд░рд╛рдлрд╝рд┐рдХрд▓ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдореЗрдВ рд▓рд┐рдЦрдирд╛ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рдерд╛ред Tkinter рдкреИрдХреЗрдЬ рдХреЛ рдЧреНрд░рд╛рдлрд┐рдХрд▓ рд╕рдорд░реНрдерди рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:
ViewCertFL63 рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдореЗрдВ рддреАрди рдЯреИрдм рд╣реИрдВред рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдЯреИрдм рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдЕрдиреНрдп рдмрд╛рддреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╡рд░реНрддрдорд╛рди рд╕рдордп рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред рд╣рдо рдЗрд╕рдХреЗ рдиреАрдЪреЗ рд▓реМрдЯ рдЖрдПрдВрдЧреЗред рдПрдХ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд╕ "рдЪрдпрди рдХрд░реЗрдВ" рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ:

рдмрдЯрди рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ (рдЬреЛ рд▓реЛрдЧ рд╡рд┐рдВрдбреЛрдЬ рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ рд╡реЗ рдЗрд╕ рдмрдЯрди рдХреЛ рдирд╣реАрдВ рджреЗрдЦреЗрдВрдЧреЗ), рдпрд╣ рдЖрдкрдХреЛ рддрдерд╛рдХрдерд┐рдд рдЕрджреГрд╢реНрдп рдлрд╝рд╛рдЗрд▓реЛрдВ / рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ (рдЫрд┐рдкреА) рдХреЛ рдЫрд┐рдкрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЗрд╕ рдмрдЯрди рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ:
if sys.platform != "win32": root.tk.call('set', '::tk::dialog::file::showHiddenBtn', '1') root.tk.call('set', '::tk::dialog::file::showHiddenVar', '0')
рдПрдХ рдмрд╣реБрдд рд╣реА рдЙрдкрдпреЛрдЧреА рдмрдЯрдиред рдЗрд╕рд▓рд┐рдП, рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдЪреБрдирдиреЗ рдХреЗ рдмрд╛рдж, "рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ" рдЯреИрдм рдлреЙрд░реНрдо рд▓реЗрдЧрд╛:


рдпрд╣рд╛рдВ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рдпрд╣ рд╣реИ рдХрд┐ рдпрджрд┐ рдкреНрд░рдорд╛рдг рдкрддреНрд░ рджреЗрдЦрдиреЗ рдХреЗ рджреМрд░рд╛рди рдкреНрд░рдорд╛рдгрдкрддреНрд░ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдКрдкрд░реА рдмрд╛рдПрдВ рдХреЛрдиреЗ рдореЗрдВ рдЖрдЗрдХрди рдкрд░ рд╕реАрд▓ рджреЛ рд╣рд┐рд╕реНрд╕реЛрдВ рдореЗрдВ рдЯреВрдЯ рдЬрд╛рдПрдЧреАред рд╣рд░ рдХреЛрдИ рдЗрд╕ рдкрд░ рдЖрд╢реНрд╡рд╕реНрдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдПрдХ рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдШрдбрд╝реА рдХреЛ рдлрд┐рд░ рд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдирд╛ред
"рд╡рд┐рд╡рд░рдг" рдЯреИрдм рдкрд░, рдЖрдк рдПрдХ рдпреЛрдЧреНрдп рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдХреА рдЪрдпрдирд┐рдд рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ:

рдФрд░ рдЕрдВрдд рдореЗрдВ, рддреАрд╕рд░рд╛ рдЯреИрдм "рдЯреЗрдХреНрд╕реНрдЯ" рд╣реИред рдпрд╣ рдЯреИрдм рдкреВрд░реЗ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ:

рдкреНрд░рдорд╛рдг рдкрддреНрд░ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рди рдХреЗрд╡рд▓ рдкрд╛рдпрдерди ("рдкрд╛рдпрдерди" рдмрдЯрди) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдлрд┐рд░ рдиреЗрдЯрд╡рд░реНрдХ рд╕реАрд░рд┐рдпрд╕ рд╕рд░реНрд╡рд┐рд╕реЗрдЬ (рдПрдирдПрд╕рдПрд╕) рд╕реЗ рдЦреБрд▓рддрд╛ рд╣реИ рдФрд░ рдкреАрдкреА рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВред рдпрджрд┐ рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рдпреЗ рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рдкрд╣рд▓реЗ рдХреЛ рд░реВрд╕реА рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлреА рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рдУрдкрдирд╕реЗрд▓ рдЗрдХрдЯреНрдард╛ рдХрд░рдХреЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдкреАрдкреА рдпреВрдЯрд┐рд▓рд┐рдЯреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдЖрдЙрдЯрдкреБрдЯ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

рдКрдкрд░, рд╣рдордиреЗ fsb795 рдкреИрдХреЗрдЬ рдХреЗ рд╕рд░реНрдЯрд┐рдлрд┐рдХреЗрдЯ рд╡рд░реНрдЧ рдХреЗ рдлреЙрд░реНрдореЗрдЯрд░реНрдЯ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ред рдЗрд╕рд▓рд┐рдП рдЗрд╕ рдпрд╛ рдЙрд╕ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЛ рдЪрд▓рд╛рддреЗ рд╕рдордп рд╣рдореЗрдВ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдХреЗ рд╕рд╛рде рдлрд╝рд╛рдЗрд▓ рдХреЗ рдкреНрд░рд╛рд░реВрдк рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рдореВрд▓реНрдп рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреАрдИрдПрдо рдлрд╛рдЗрд▓ рдлреЙрд░реНрдореЗрдЯ рдХреЗ рд╕рд╛рде рдкреАрдкреА рдпреВрдЯрд┐рд▓рд┐рдЯреА рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
$pp тАУtc тАУu тАУa тАУi < >
-A рд╡рд┐рдХрд▓реНрдк PEM рдлрд╝рд╛рдЗрд▓ рдХреЗ рдкреНрд░рд╛рд░реВрдк рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИред рдбреАрдИрдЖрд░ рдкреНрд░рд╛рд░реВрдк рдХреЗ рд▓рд┐рдП, рдпрд╣ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рд╣реИред
рдЦреБрд▓рдиреЗ рдХреЗ рд▓рд┐рдП "-рдЗрдирдлреЙрд░реНрдо" рдкреИрд░рд╛рдореАрдЯрд░ рдЙрд╕реА рддрд░рд╣ рд╕реЗ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдпреВрдЯрд┐рд▓рд┐рдЯреА рдмрдЯрди рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдУрдкрдирд╕реЗрд▓ рдпрд╛ рдкреАрдкреА рдпреВрдЯрд┐рд▓рд┐рдЯреАрдЬ рдХреЗ рд▓рд┐рдП рд░рд╛рд╕реНрддрд╛ рдмрддрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
ViewCertFL63 рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╡рд┐рддрд░рдг рдпрд╣рд╛рдВ рд╕реНрдерд┐рдд
рд╣реИрдВ ред
рд╡рд┐рддрд░рдг pyinstaller рдкреИрдХреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛:
$python pyinstaller.py --noconsole -F viewCertFL63.py