import crypto.des const ( key = '123456789012345678901234'.bytes() iv = 'abcdegfh'.bytes() str = 'aaaaaaaa' ) fn test_triple_des() { mut src := str.bytes() triple_des_en(mut src, key, iv) assert src.hex() == '45902cf00aa1df46' triple_des_de(mut src, key, iv) assert src.bytestr() == str println('test_triple_des ok') } fn test_des() { mut src := str.bytes() des_en(mut src, key[..8], iv) assert src.hex() == '72dca13c37223cf0' des_de(mut src, key[..8], iv) assert src.bytestr() == str println('test_des ok') } fn des_en(mut src []u8, key []u8, iv []u8) { block := des.new_cipher(key) block.encrypt(mut src, src.clone()) } fn des_de(mut src []u8, key []u8, iv []u8) { block := des.new_cipher(key) block.decrypt(mut src, src.clone()) } fn triple_des_en(mut src []u8, key []u8, iv []u8) { block := des.new_triple_des_cipher(key) block.encrypt(mut src, src.clone()) } fn triple_des_de(mut src []u8, key []u8, iv []u8) { block := des.new_triple_des_cipher(key) inbuf := src.clone() block.decrypt(mut src, inbuf) }