class GostKuznyechik::KuznyechikKeyExpImp
Public Class Methods
export(key, key_mac, key_enc, iv)
click to toggle source
# File lib/gost_kuznyechik/kuznyechik_key_exp_imp.rb, line 3 def self.export(key, key_mac, key_enc, iv) mac = KuznyechikOmac.new(key_mac, BlockLengthInBytes).update(iv+key).final ctr = KuznyechikCtr.new(key_enc, iv, BlockLengthInBytes) encr_key = ctr.encrypt(key) encr_mac = ctr.encrypt(mac) encr_key += encr_mac end
import(encr_key, key_mac, key_enc, iv)
click to toggle source
# File lib/gost_kuznyechik/kuznyechik_key_exp_imp.rb, line 11 def self.import(encr_key, key_mac, key_enc, iv) buf = KuznyechikCtr.new(key_enc, iv, BlockLengthInBytes).decrypt(encr_key) decr_key = buf[0...-BlockLengthInBytes] decr_mac = buf[decr_key.length..-1] mac = KuznyechikOmac.new(key_mac, BlockLengthInBytes).update(iv+decr_key).final if mac != decr_mac then decr_key = nil end decr_key end