mirror of
https://github.com/vlang/v.git
synced 2023-08-10 21:13:21 +03:00
crypto: add a crypto.des module (#13065)
This commit is contained in:
51
vlib/crypto/des/des_test.v
Normal file
51
vlib/crypto/des/des_test.v
Normal file
@ -0,0 +1,51 @@
|
||||
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 []byte, key []byte, iv []byte) {
|
||||
block := des.new_cipher(key)
|
||||
block.encrypt(mut src, src.clone())
|
||||
}
|
||||
|
||||
fn des_de(mut src []byte, key []byte, iv []byte) {
|
||||
block := des.new_cipher(key)
|
||||
block.decrypt(mut src, src.clone())
|
||||
}
|
||||
|
||||
fn triple_des_en(mut src []byte, key []byte, iv []byte) {
|
||||
block := des.new_triple_des_cipher(key)
|
||||
block.encrypt(mut src, src.clone())
|
||||
}
|
||||
|
||||
fn triple_des_de(mut src []byte, key []byte, iv []byte) {
|
||||
block := des.new_triple_des_cipher(key)
|
||||
inbuf := src.clone()
|
||||
block.decrypt(mut src, inbuf)
|
||||
}
|
Reference in New Issue
Block a user