Add utils.v
This commit is contained in:
parent
9952df2f38
commit
946b8598af
67
utils.v
Normal file
67
utils.v
Normal file
@ -0,0 +1,67 @@
|
||||
module votp
|
||||
import crypto.hmac
|
||||
import crypto.sha1
|
||||
import crypto.sha256
|
||||
import crypto.sha512
|
||||
|
||||
|
||||
pub const (
|
||||
v_version = '0.4.3 bc24683'
|
||||
author = 'odai alghamdi'
|
||||
)
|
||||
|
||||
|
||||
|
||||
pub fn u64_to_bytes(n i64) []u8 {
|
||||
mut bytes := []u8{len: 8}
|
||||
mut nn := n
|
||||
for i := 7; i >= 0; i-- {
|
||||
bytes[i] = u8(nn & 0xff)
|
||||
nn >>= 8
|
||||
}
|
||||
return bytes
|
||||
}
|
||||
|
||||
pub fn get_hash(msg []u8, key []u8, digest string) []u8 {
|
||||
match digest {
|
||||
"sha1" {
|
||||
return hmac.new(key,msg, sha1.sum, sha1.block_size)
|
||||
}
|
||||
"sha256"{
|
||||
return hmac.new(key,msg, sha256.sum, sha256.block_size)
|
||||
}
|
||||
"sha512" {
|
||||
return hmac.new(key,msg, sha512.sum512, sha512.block_size)
|
||||
}
|
||||
else{
|
||||
panic('Unsupported digest')
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pub fn int_pow(base int, exp int) int {
|
||||
mut result := 1
|
||||
for i := 0; i < exp; i++ {
|
||||
result *= base
|
||||
}
|
||||
return result
|
||||
}
|
||||
|
||||
|
||||
pub fn missing_pad(text string) string {
|
||||
mut new_text := text
|
||||
missing_padding := text.len % 8
|
||||
missing := (8 - missing_padding)
|
||||
mut i := 0
|
||||
|
||||
if missing_padding != 0 {
|
||||
|
||||
for i < missing {
|
||||
new_text += '='
|
||||
i++
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
return new_text
|
||||
}
|
Loading…
Reference in New Issue
Block a user