45 lines
1 KiB
OCaml
45 lines
1 KiB
OCaml
|
let () = Mirage_crypto_rng_unix.initialize ()
|
||
|
|
||
|
let csr_privkey =
|
||
|
lazy
|
||
|
(`RSA (Mirage_crypto_pk.Rsa.generate ~bits:1024 ()))
|
||
|
|
||
|
let dn_of_name name =
|
||
|
[X509.(Distinguished_name.Relative_distinguished_name.singleton
|
||
|
(CN name))]
|
||
|
|
||
|
let csr name =
|
||
|
X509.Signing_request.create
|
||
|
(dn_of_name name)
|
||
|
(Lazy.force csr_privkey)
|
||
|
|
||
|
let check_csr_dn_good () =
|
||
|
let name = "reynir" in
|
||
|
let csr = csr name in
|
||
|
Alcotest.(check @@ result unit Alcotest.reject)
|
||
|
"good dn in csr"
|
||
|
(Ok ())
|
||
|
(Cert_service.check_csr_dn
|
||
|
csr name)
|
||
|
|
||
|
let check_csr_dn_different () =
|
||
|
let name = "reynir" in
|
||
|
let csr = csr name in
|
||
|
match Cert_service.check_csr_dn csr "notreynir" with
|
||
|
| Ok () -> Alcotest.fail "check succeeded, expected failure"
|
||
|
| Error (`Msg _) -> ()
|
||
|
|
||
|
let cert_tests = [
|
||
|
"check_csr_dn_good", `Quick, check_csr_dn_good;
|
||
|
"check_csr_dn_different", `Quick, check_csr_dn_different;
|
||
|
]
|
||
|
|
||
|
let tests : unit Alcotest.test list= [
|
||
|
"check_csr_dn", cert_tests
|
||
|
]
|
||
|
|
||
|
let () =
|
||
|
Alcotest.run
|
||
|
"Cert-service tests"
|
||
|
tests
|