mirror of
https://github.com/logos-storage/nim-bearssl.git
synced 2026-01-03 14:03:12 +00:00
* rsaKeygenGetDefault test * add ubuntu 24 and gcc 14 to ci * use PrngClassPointerConst for rsa keygen * fix test_brssl * add comment about ubuntu 24 * define and use ConstPtrPtrHashClass * remove previous ecKeygen * remove previous x509NoanchorInit * improve test * add ecKeygen test * add x509NoanchorInit test * remove commented code * rename target to linux-gcc-14 * test already exists * fix tests
42 lines
892 B
Nim
42 lines
892 B
Nim
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
|