nim-bearssl/tests/test_rsa.nim

42 lines
892 B
Nim
Raw Normal View History

import
unittest2,
../bearssl/[rand, rsa]
{.used.}
const
DefaultKeySize* = 3072 ## Default RSA key size in bits.
DefaultPublicExponent* = 65537'u32
type
RsaPrivateKey* = ref object
buffer*: seq[byte]
seck*: rsa.RsaPrivateKey
pubk*: rsa.RsaPublicKey
pexp*: ptr byte
pexplen*: uint
suite "rsa":
test "test rsaKeygenGetDefault interface":
let rng = HmacDrbgContext.new()
let
sko = 0
pko = rsaKbufPrivSize(DefaultKeySize)
eko = pko + rsaKbufPubSize(DefaultKeySize)
length = eko + ((DefaultKeySize + 7) shr 3)
let res = new RsaPrivateKey
res.buffer = newSeq[byte](length)
var keygen = rsaKeygenGetDefault()
check keygen(
addr rng.vtable,
addr res.seck,
addr res.buffer[sko],
addr res.pubk,
addr res.buffer[pko],
cuint(DefaultKeySize),
DefaultPublicExponent,
) != 0