parent
ec038998f0
commit
4a35d2b571
2 changed files with 59 additions and 9 deletions
|
|
@ -16,6 +16,7 @@ static: literal
|
|||
static: constant folding
|
||||
static: static string
|
||||
foo1
|
||||
1
|
||||
'''
|
||||
"""
|
||||
|
||||
|
|
@ -220,3 +221,52 @@ proc regr(p: Foo[void]): seq[int] =
|
|||
|
||||
discard regr(Foo[int]())
|
||||
discard regr(Foo[void]())
|
||||
|
||||
|
||||
type
|
||||
Sha2Context*[bits: static[int],
|
||||
bsize: static[int],
|
||||
T: uint32|uint64] = object
|
||||
count: array[2, T]
|
||||
state: array[8, T]
|
||||
buffer: array[bsize, byte]
|
||||
|
||||
sha224* = Sha2Context[224, 64, uint32]
|
||||
sha256* = Sha2Context[256, 64, uint32]
|
||||
sha384* = Sha2Context[384, 128, uint64]
|
||||
sha512* = Sha2Context[512, 128, uint64]
|
||||
sha512_224* = Sha2Context[224, 128, uint64]
|
||||
sha512_256* = Sha2Context[256, 128, uint64]
|
||||
|
||||
type
|
||||
RipemdContext*[bits: static[int]] = object
|
||||
count: array[2, uint32]
|
||||
state: array[bits div 32, uint32]
|
||||
buffer: array[64, byte]
|
||||
|
||||
ripemd128* = RipemdContext[128]
|
||||
ripemd160* = RipemdContext[160]
|
||||
ripemd256* = RipemdContext[256]
|
||||
ripemd320* = RipemdContext[320]
|
||||
|
||||
const
|
||||
MaxHmacBlockSize = 256
|
||||
|
||||
type
|
||||
HMAC*[HashType] = object
|
||||
mdctx: HashType
|
||||
opadctx: HashType
|
||||
|
||||
template sizeBlock*(h: HMAC[Sha2Context]): uint = 1u
|
||||
template sizeBlock*(h: HMAC[RipemdContext]): uint = 0u
|
||||
|
||||
proc init*[T](hmctx: HMAC[T], key: ptr byte, ulen: uint) =
|
||||
const sizeBlock = hmctx.sizeBlock
|
||||
echo sizeBlock
|
||||
|
||||
proc hmac*[A, B](HashType: typedesc, key: openarray[A],
|
||||
data: openarray[B]) =
|
||||
var ctx: HMAC[HashType]
|
||||
ctx.init(nil, 0)
|
||||
|
||||
sha256.hmac("", "")
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue