
рдПрдХ рд╕рдордп рдореЗрдВ, libgcrypt рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рдШрд░реЗрд▓реВ рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлрд╝рд┐рдХ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдиреЗ рдореБрдЭреЗ рдмрд╣реБрдд рдкреНрд░реЗрд░рд┐рдд рдХрд┐рдпрд╛ред GOST рдЗрдВрдЬрди рдХреЗ рд╕рд╛рде рдЦреБрд▓рдиреЗ рдХреЗ
рд╡рд┐рдХрд▓реНрдк рдХреЗ рд░реВрдк рдореЗрдВ libgcrypt рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд▓рд┐рдпреЛрдкреЗрдЯреНрд░рд╛ рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ Kmail рдФрд░ GnuPg рдореЗрдВ
рдЗрди рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХрд╛ рдЙрдкрдпреЛрдЧ
рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЧрдпрд╛ред рдФрд░ рдкрд┐рдЫрд▓реЗ рд╢реБрдХреНрд░рд╡рд╛рд░ рддрдХ рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдерд╛ред
рдореБрдЭреЗ MS Windows рдкрд░ Microsoft Office рдореЗрдВ рдмрдирд╛рдП рдЧрдП рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЗ рд▓рд┐рдП GOST R 34.10-2012-256 рдХреЗ рдЗрд▓реЗрдХреНрдЯреНрд░реЙрдирд┐рдХ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреЛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ рдЧрдпрд╛ рдерд╛ред рдФрд░ рдореИрдВрдиреЗ рдЗрд╕реЗ рдХреНрд▓рд┐рдпреЛрдкреЗрдЯреНрд░рд╛ (рдореЗрд░реЗ рдкрд╛рд╕ рд▓рд┐рдирдХреНрд╕ рд╣реИ) рдореЗрдВ рдЬрд╛рдВрдЪрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдФрд░ рдЖрдкрдХреЛ рдХреНрдпрд╛ рд▓рдЧрддрд╛ рд╣реИ, рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдЧрд▓рдд рдирд┐рдХрд▓рд╛ред рд╕рдВрджреЗрд╣ рдореЗрдВ рджрд░рд╛рд░ред рдореИрдВрдиреЗ
GOST рдЗрдВрдЬрди рдХреЗ
рд╕рд╛рде рдЦреБрд▓рдиреЗ рдкрд░ рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рддрддреНрдХрд╛рд▓ рдХреНрд▓рд┐рдпреЛрдкреЗрдЯреНрд░рд╛ рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдкрд░ рдлрд┐рд░ рд╕реЗ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд┐рдП рдФрд░ рдЗрд╕рдиреЗ рдПрдордПрд╕ рд╡рд┐рдВрдбреЛрдЬ рдкрд░ рдЪреЗрдХ рдкрд╛рд╕ рдирд╣реАрдВ рдХрд┐рдпрд╛ред рд╣рдордиреЗ рдЕрдиреНрдп рдлрд╝рд╛рдЗрд▓реЛрдВ рдкрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд░рдиреЗ рдФрд░ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд╕рдм рдХреБрдЫ рдареАрдХ рдерд╛ред рд╕рд╡рд╛рд▓ рдпрд╣ рдерд╛ рдХрд┐ рдкрд░реЗрд╢рд╛рдиреА рдХреНрдпрд╛ рдереА? рдЪреВрдВрдХрд┐ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХрд╛ рд╣реИрд╢ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд░рдиреЗ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рджреНрд╡рд╛рд░рд╛ рд╣реИрд╢ рдХреА рдЧрдгрдирд╛ рдХреА рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ,
рд╕реНрдЯреНрд░реЛрдЧ рдХреЗ рд▓рд┐рдП рдУрдкрди-рд╕реЛрд░реНрд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╢рд╛рдорд┐рд▓ рдереЗ :
рдФрд░ рдлрд┐рд░ рдПрдХ рдЭрдЯрдХрд╛ рд▓рдЧрд╛! рд╣реИрд╢ рдХреА рдЧрдгрдирд╛ "рдкреНрд░рд╕рд┐рджреНрдз рдбрд┐рдЧреНрдЯрд┐рдПрд░реЗрд╡ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди" рджреНрд╡рд╛рд░рд╛ рдХреА рдЧрдИ рд╣реИ, рдЬреЛ рдХрд┐ рдПрдВрдбреА рдХреЗ GOST рдХреЗ рд╕рд╛рде рдУрдкрдирд╕реЗрд▓ рдореЗрдВ рдЧрдгрдирд╛ рдХреА рдЧрдИ рд╣реИрд╢ рдХреЗ рд╕рд╛рде рд╣реИ, рд▓реЗрдХрд┐рди рд▓рд┐рдмрдЧрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рд▓рд┐рдмреНрд░реЗрд╕рд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЧрдгрдирд╛ рдХреА рдЧрдИ рд╣реИрд╢ рдореВрд▓реНрдп рд╕реЗ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддреА рд╣реИред
рдЬрдм рд╡рд╣ рдЕрдкрдиреЗ
рд▓реЗрдЦ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рд▓рд┐рдЦрд╛ рдерд╛, рддреЛ
ru_crypt рд╕рд╣реА рдерд╛:
рдореИрдВ рдЖрдкрдХреЛ рддреБрд░рдВрдд рдЪреЗрддрд╛рд╡рдиреА рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рдореИрдВрдиреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рд╢реБрджреНрдзрддрд╛ рдХреА рдЬрд╛рдВрдЪ рдирд╣реАрдВ рдХреА рд╣реИред
рд╡реИрд╕реЗ, GOST R 34.10-2012 рдкрд░ рдорд╛рдирдХ рдпрд╣ рднреА рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ рдирд┐рдпрдВрддреНрд░рдг рдЙрджрд╛рд╣рд░рдг рдХреЗрд╡рд▓ рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП рд╣реИрдВред рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕рдордЭрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдкрд░реАрдХреНрд╖рдг рдорд╛рдорд▓реЛрдВ рдХреА рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╡рд┐рднрд┐рдиреНрди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕рднреА рдЕрд╡рд╕рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реА рдкрд░рд┐рдгрд╛рдо рджреЗрддреЗ рд╣реИрдВред
рд╣реИрд╢ рдорд╛рдиреЛрдВ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:
1) рдЦреБрд▓рддрд╛ рд╣реИ
$ openssl dgst [тАУmd_gost12_256|-md_gost12_512] <file>
реи) рдХрд╛рдорд╡рд╛рд╕рдирд╛
$libressl dgst [тАУstreebog256|streebog512] <file>
3) libgcrypt
$gchash [stribog256|stribog512] <file>
рек) рдбрд┐рдЧреНрдЯреНрдпреЗрд░реЗрд╡ рдХрд╛ рдкреНрд░рд╕рд┐рджреНрдз рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди
$gost3411-2012 [-2|-5] <file>
рдпрд╣рд╛рдБ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдмрд╛рдд рдпрд╣ рднреА рд╣реИ: рд▓реИрдЯрд┐рди рдЯреНрд░рд╛рдВрд╕рдХреНрд░рд┐рдкреНрд╢рди рдореЗрдВ, рд╕реНрдЯреНрд░реАрдмреЛрдЧ рдпрд╛ рддреЛ рд╕реНрдЯреНрд░реАрдмреЛрдЧ рдпрд╛ рд╕реНрдЯреНрд░реАрдмреЙрдЧ рд▓рд┐рдЦрддреЗ рд╣реИрдВред рдПрдХрд░реВрдкрддрд╛ рдореЗрдВ рдЖрдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред рдФрд░ рдЗрд╕рд▓рд┐рдП рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХрд╛рд░реНрдп рд╣реИрдВред рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рдореИрдВ рдкрд╣рд▓рд╛ рд╡рд┐рдХрд▓реНрдк рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВ - рд╕реНрдЯреНрд░реАрдмреЛрдЧред
рдореБрдЭреЗ рдПрдХ рдордзреНрдпрд╕реНрде рдХреА рдЬрд░реВрд░рдд рдереАред
рдордзреНрдпрд╕реНрде рдХреЗ рд░реВрдк рдореЗрдВ, PKCS # 11 рдЯреЛрдХрди рд░реЙрдЯреЛрдХрди рдИрдбреАрдПрд╕-2.0 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛, рдЬреЛ рд░реВрд╕реА рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлрд┐рдХ рдорд╛рдирдХреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ GOST R 34.10-2012, GOST R 34.11-2012, VKO GOST 34.10-2012 (RFC 7836) 256 рдФрд░ 512 рдмрд┐рдЯреНрд╕ рдХреА рдкреНрд░рдореБрдЦ рд▓рдВрдмрд╛рдИ рдХреЗ рд╕рд╛рде , рдФрд░ рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлрд┐рдХ рд╕реВрдЪрдирд╛ рд╕рдВрд░рдХреНрд╖рдг (CPSI) рдФрд░ рдЗрд▓реЗрдХреНрдЯреНрд░реЙрдирд┐рдХ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреЗ рд╕рд╛рдзрди рдХреЗ рд░реВрдк рдореЗрдВ рд░реВрд╕ рдХреЗ FSB рджреНрд╡рд╛рд░рд╛ рдкреНрд░рдорд╛рдгрд┐рдд рд╣реИред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, RUTOKEN EDS-2.0 рдЯреЛрдХрди рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рд╡рд┐рддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░
рд░рд╛рдЬреНрдп рд╕реЗрд╡рд╛рдУрдВ рдФрд░ рдЕрдиреНрдп рдкреЛрд░реНрдЯрд▓реЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдкрд░ рдХрдИ
рд╕реНрдЯреЛрд░ рдкреНрд░рдорд╛рдг рдкрддреНрд░ ред
рдЯреЛрдХрди рдкрд░ рд╣реИрд╢ рдорд╛рди рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо
Tcl рдореЗрдВ test_digest.tcl рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ:
test_digest.tcl #! /usr/bin/env tclsh package require pki lappend auto_path . package require pki::pkcs11 # PKCS#11 set pkcs11_module "/usr/local/lib64/librtpkcs11ecp_2.0.so" #set pkcs11_module "/usr/local/lib64/libls11sw2016.so" puts "Connect the Token and press Enter" gets stdin yes set handle [pki::pkcs11::loadmodule $pkcs11_module] set slots [pki::pkcs11::listslots $handle] foreach slotinfo $slots { set slotid [lindex $slotinfo 0] set slotlabel [lindex $slotinfo 1] set slotflags [lindex $slotinfo 2] if {[lsearch -exact $slotflags TOKEN_PRESENT] != -1} { set token_slotlabel $slotlabel set token_slotid $slotid # break } } proc usage {use error} { puts "Copyright(C) Orlov Vladimir (http://soft.lissi.ru) 2019" if {$use == 1} { puts $error puts "Usage:\ndigest <stribog256|stribog512> <file for digest>\n" } } set countcert [llength $argv] if { $countcert != 2 } { usage 1 "Bad usage!" exit } set digest_algo [lindex $argv 0] if {$digest_algo != "stribog256" && $digest_algo != "stribog512"} { usage 1 "Bad usage!" exit } set file [lindex $argv 1] if {![file exists $file]} { usage 1 "File $file not exist" exit } puts "Loading file for digest: $file" set fd [open $file] chan configure $fd -translation binary set cert_user [read $fd] close $fd if {$cert_user == "" } { usage 1 "Bad file: $file" exit } set aa [dict create pkcs11_handle $handle pkcs11_slotid $token_slotid] set digest_hex [pki::pkcs11::digest $digest_algo $cert_user $aa] puts "digest_hex=\n$digest_hex" exit
рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдпрд╣ рд╡рд┐рд╕рдВрдЧрддрд┐ рдХрдм рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИ? рдЕрдм рддрдХ, рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд┐рд╕рдВрдЧрддрд┐ рдПрдордПрд╕ рдСрдлрд┐рд╕ рдореЗрдВ рдмрдирд╛рдИ рдЧрдИ рдбреЙрдХреНрдЯрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╣реИрд╢ рдХреА рдЧрдгрдирд╛ рдХрд░рддреЗ рд╕рдордп рд╣реЛрддреА рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкрд╣рд▓реЗ 143 рдмрд╛рдЗрдЯреНрд╕ рдХреЗ рд╣реИрд╢ рдХреЛ рд╕рдорд╛рди рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ 144 рдмрд╛рдЗрдЯреНрд╕ рд╕реЗ рд╣реИрд╢ рдХреА рдЧрдгрдирд╛ рдХрд░рддреЗ рд╕рдордп, рдорд╛рди рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реЛрддреЗ рд╣реИрдВред
рд╣реЗрдХреНрд╕рд╛рдбреЗрд╕рд┐рдорд▓ рдореЗрдВ рдкрд╣рд▓реЗ 143 рдмрд╛рдЗрдЯ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреЗ рд╣реИрдВ:
d0cf11e0a1b11ae1000000000000000000000000000000003e000300feff0900060000000000000000000000010000000100000000000000001000002400000001000000feffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
рдЙрдиреНрд╣реЗрдВ Doc1_143_hex.txt рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рд╣реЗрдЬреЗрдВред
рд╣реЗрдХреНрд╕рд╛рдбреЗрд╕рд┐рдорд▓ рдореЗрдВ рдкрд╣рд▓реЗ 144 рдмрд╛рдЗрдЯреНрд╕ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреЗ рд╣реИрдВ:
d0cf11e0a1b11ae1000000000000000000000000000000003e000300feff0900060000000000000000000000010000000100000000000000001000002400000001000000feffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
рдЙрдиреНрд╣реЗрдВ Doc1_144_hex.txt рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рд╣реЗрдЬреЗрдВред
рд╣реЗрдХреНрд╕рд╛рдбреЗрд╕рд┐рдорд▓ рд╕реЗ рдмрд╛рдЗрдирд░реА рдлреЙрд░реНрдо рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реЗрдХреНрд╕ 2рдмреАрди.рдЯреАрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ:
#!/usr/bin/tclsh proc usage {use error} { if {$use == 1} { puts $error puts "Usage:\nhex2bin <file with hex> <file for bin>\n" } } set countcert [llength $argv] if { $countcert != 2 } { usage 1 "Bad usage!" exit } set file [lindex $argv 0] if {![file exists $file]} { usage 1 "File $file not exist" exit } set fd [open $file] chan configure $fd -translation binary set cert_user [read $fd] close $fd if {$cert_user == "" } { usage 1 "Bad file with hex: $file" exit } set cert_user [binary format H* $cert_user] set fd [open [lindex $argv 1] w] chan configure $fd -translation binary puts -nonewline $fd $cert_user close $fd
рд╣реЗрдХреНрд╕рд╛рдбреЗрд╕рд┐рдорд▓ рдХреЛрдб рдХреЛ рдмрд╛рдЗрдирд░реА рдореЗрдВ рдмрджрд▓реЗрдВ:
$./hex2bin Doc1_143_hex.txt Doc1_143.bin $./hex2bin Doc1_144_hex.txt Doc1_144.bin $
рдЕрдм рдЖрдк рдЬрд╛рдБрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╣реИрд╢ рдХреА рдЧрдгрдирд╛ рд╡рд┐рднрд┐рдиреНрди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдиреЛрдВ рджреНрд╡рд╛рд░рд╛ рдХреИрд╕реЗ рдХреА рдЬрд╛рддреА рд╣реИ:
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, Doc1_143, рдмрд┐рди рдХреЗ рд▓рд┐рдП рд╣реИрд╢ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:
$ ./openssl dgst -md_gost12_256 Doc1_143.bin md_gost12_256(Doc1_143.bin)= e63bd3edc44f9a03fece4198b690a8ae291b973ae61b2a0f512a9a7479431a63 $ ./libressl dgst -streebog256 Doc1_143.bin streebog256(Doc1_143.bin)= e63bd3edc44f9a03fece4198b690a8ae291b973ae61b2a0f512a9a7479431a63 $ ./gchash stribog256 Doc1_143.bin e63bd3edc44f9a03fece4198b690a8ae291b973ae61b2a0f512a9a7479431a63 Doc1_143.bin $ ./gost3411-2012 -2 Doc1_143.bin GOST R 34.11-2012 (Doc1_143.bin) = e63bd3edc44f9a03fece4198b690a8ae291b973ae61b2a0f512a9a7479431a63 $
рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХреНрд╖рдг рдЖ рдЧрдпрд╛ рд╣реИ, рдПрдХ рдкреНрд░рдорд╛рдгрд┐рдд рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлрд┐рдХ рд╕реВрдЪрдирд╛ рд╕реБрд░рдХреНрд╖рд╛ рдкреНрд░рдгрд╛рд▓реА рдкрд░ рд╕рддреНрдпрд╛рдкрди рдХрд╛ рдХреНрд╖рдг:
$ ./test_digest.tcl stribog256 Doc1_143.bin Connect the Token and press Enter Loading file for digest: Doc1_143.bin digest_hex= e63bd3edc44f9a03fece4198b690a8ae291b973ae61b2a0f512a9a7479431a63 $
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЕрдЪреНрдЫреЗ рдХреЗ рд▓рд┐рдП рд╕рдм рдХреБрдЫ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдпрд╛ред
рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ Doc1_144.bin рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ:
$ ./openssl dgst -md_gost12_256 Doc1_144.bin md_gost12_256(Doc1_144.bin)= c766085540caaa8953bfcf7a1ba220619cee50d65dc242f82f23ba4b180b18e0 $ ./libressl dgst -streebog256 Doc1_144.bin streebog256(Doc1_144.bin)= 3965c99777eb1b64c783496fe950aa6540bc7baa399a3889995145afbdd76250 $
рдпрд╣реА рд╣реИ, рд╣реИрд╢ рдХреЗ рдореВрд▓реНрдп рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддреЗ рд╣реИрдВред рдкреНрд░рдпреЛрдЧ рдХреА рд╢реБрджреНрдзрддрд╛ рдХреЗ рд▓рд┐рдП, рд╣рдо рд╢реЗрд╖ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рдЬрд╛рдБрдЪ рдХрд░рддреЗ рд╣реИрдВ:
$ ./gchash_1.7.10 stribog256 Doc1_144.bin 3965c99777eb1b64c783496fe950aa6540bc7baa399a3889995145afbdd76250 Doc1_144.bin $ ./gost3411-2012 -2 Doc1_144.bin GOST R 34.11-2012 (Doc1_144.bin) = c766085540caaa8953bfcf7a1ba220619cee50d65dc242f82f23ba4b180b18e0 $ ./test_digest.tcl stribog256 Doc1_144.bin Connect the Token and press Enter Loading file for digest: Doc1_144.bin digest_hex= c766085540caaa8953bfcf7a1ba220619cee50d65dc242f82f23ba4b180b18e0 $
рд╣реИрд╢ рдХреА рдЧрдгрдирд╛ "рдкреНрд░рд╕рд┐рджреНрдз рдбрд┐рдЧреНрдЯреЗрдпрд░рд╡ рдЗрдореНрдкреНрд▓реАрдореЗрдВрдЯреЗрд╢рди" рджреНрд╡рд╛рд░рд╛ рдХреА рдЧрдИ рд╣реИрд╢ рдХреА рдЧрдгрдирд╛ GOST рдЗрдВрдЬрди рдХреЗ рд╕рд╛рде рдУрдкрдирд╕реЗрд▓ рдореЗрдВ рдХреА рдЧрдИ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд▓рд┐рдмрд╛рд╕рдХреНрд░рд┐рдкреНрдЯ рдФрд░ рд▓рд┐рдмреНрд░реЗрд╕рд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЧрдгрдирд╛ рдХрд┐рдП рдЧрдП рд╣реИрд╢ рдорд╛рди рд╕реЗ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддрд╛ рд╣реИред
рдпрджрд┐ рд╣рдо рд╣реИрд╢ stribog512 рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рд╣рдореЗрдВ рдПрдХ рд╕рдорд╛рди рдкрд░рд┐рдгрд╛рдо рдорд┐рд▓рддрд╛ рд╣реИред
рдПрдХ рдирд┐рд╖реНрдХрд░реНрд╖ рд╣реИред рдпрджрд┐ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ GOST R 34.10-2012 рд▓рд┐рдмреНрд░реЗрд╕рд▓ рдФрд░ рд▓рд┐рдмрдЧрдХреНрд░рд┐рдкреНрдЯ (рдпрд╛ рд╢рд╛рдпрдж рдЕрдиреНрдп) рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдорд┐рдд рдЗрд▓реЗрдХреНрдЯреНрд░реЙрдирд┐рдХ рд╣рд╕реНрддрд╛рдХреНрд╖рд░, рд░реВрд╕ рдХреЗ FSB рдкреНрд░рдорд╛рдгрди рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рдкреНрд░рдорд╛рдгрд┐рдд рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлрд┐рдХ рд╕реВрдЪрдирд╛ рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рд╕рд╛рде, Opensl рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░, рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░реЗрдВ рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рд╣реИрд╢ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдиред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рдкреНрд░рдХрд╛рд╢рди рдХрдИ рдЧрд▓рддрдлрд╣рдорд┐рдпреЛрдВ рд╕реЗ рдмрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рд▓рд┐рдмрд░рд▓, рд▓рд┐рдмрдЧреНрд░рд┐рдкреНрдЯ, рдФрд░ рд╕рдВрднрд╡рдд: рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдореЗрдВ рд╕реНрдЯреНрд░рд┐рдмреЙрдЧ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓реЗрдЦрдХ рдЗрди рд╡рд┐рд╕рдВрдЧрддрд┐рдпреЛрдВ рдХреЛ рдЦрддреНрдо рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдВрдЧреЗред рдЖрдЬ, рдореБрдЭреЗ рдЙрдкрд░реЛрдХреНрдд рдЙрддреНрдкрд╛рджреЛрдВ рдореЗрдВ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ GOST R 34.10-2012 рдирд╣реАрдВ рд╣реИ рдЬрд┐рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреБрдЫ рдФрд░ред рдпрд╣ рдПрдХ рдЕрд▓рдЧ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рд╣реИред рджрд┐рдП рдЧрдП рдкрд░реАрдХреНрд╖рдг рдЙрджрд╛рд╣рд░рдг рд╕рдВрднрд╡рддрдГ GOST R 34.10-2012 рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред рдФрд░ рдореИрдВ рдХреНрд▓рд┐рдпреЛрдкреЗрдЯреНрд░рд╛ рдФрд░ рдХреЗрдореЗрд▓ рдХреЗ рд▓рд┐рдП libgcrypt рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВред рдХреНрд▓рд┐рдпреЛрдкрд╛рд░реНрдЯ рдФрд░ рд░реВрд╕реА рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлреА рдХреА рдХрдерд╛ рдЕрдзреВрд░реА рдереАред
рдкреБрдирд╢реНрдЪ рд▓реЗрдЦ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рддреИрдпрд╛рд░ рдерд╛ рдЬрдм рдореЗрд░реЗ рд╕рд╣рдпреЛрдЧреА рдиреЗ рдХрд╣рд╛ рдХрд┐ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдмреАрдЪ рд╡рд┐рд╕рдВрдЧрддрд┐ рддрдм рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИ рдЬрдм 0xFF рдХрд╛ рдкрд░реНрдпрд╛рдкреНрдд рд▓рдВрдмрд╛ рдЕрдиреБрдХреНрд░рдо рд╕рд╛рдордиреЗ рдЖрддрд╛ рд╣реИред рд╡рд╣, рдпрд╣ рдХреНрд░рдо, рдПрдордПрд╕ рдСрдлрд┐рд╕ рдХреА рдбреЙрдХ рдлрд╛рдЗрд▓реЛрдВ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдореМрдЬреВрдж рд╣реИред рдореИрдВрдиреЗ рдЬрд╛рдБрдЪ рдХреА, рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдпрд╣ рд╣реИред рдлрд╝рд╛рдЗрд▓ рдореЗрдВ 189 рдмрд╛рдЗрдЯреНрд╕ рдереЗред