diff options
author | Andreas Rumpf <rumpf_a@web.de> | 2019-06-02 06:33:35 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-06-02 06:33:35 +0200 |
commit | 4a35d2b571190e94e151091535793cd033b589b1 (patch) | |
tree | f1caff7561b003821835004045591f3852640586 /tests | |
parent | ec038998f06887dbbc038c592c2c0bb37a00c28a (diff) | |
download | Nim-4a35d2b571190e94e151091535793cd033b589b1.tar.gz |
fixes #11375 (#11376)
Diffstat (limited to 'tests')
-rw-r--r-- | tests/overload/toverload_various.nim | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/tests/overload/toverload_various.nim b/tests/overload/toverload_various.nim index 81564a7a9..78497e607 100644 --- a/tests/overload/toverload_various.nim +++ b/tests/overload/toverload_various.nim @@ -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("", "") |