This commit is contained in:
parent
aa2ff7b2f0
commit
2f3113f55d
11742 changed files with 1223940 additions and 0 deletions
61
unikernel/duniverse/ocaml-x509/tests/crltests.ml
Normal file
61
unikernel/duniverse/ocaml-x509/tests/crltests.ml
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
open X509
|
||||
|
||||
let of_ic ic =
|
||||
let ln = in_channel_length ic in
|
||||
let rs = Bytes.create ln in
|
||||
really_input ic rs 0 ln;
|
||||
Bytes.unsafe_to_string rs
|
||||
|
||||
let with_loaded_files file ~f =
|
||||
let pre = "./crl/" in
|
||||
let fullpath1 = pre ^ file ^ ".pem"
|
||||
and fullpath2 = pre ^ file ^ ".crl"
|
||||
in
|
||||
let fd1 = open_in fullpath1
|
||||
and fd2 = open_in fullpath2
|
||||
in
|
||||
let buf1 = of_ic fd1
|
||||
and buf2 = of_ic fd2
|
||||
in
|
||||
try let r = f buf1 buf2 in close_in fd1 ; close_in fd2 ;
|
||||
match r with
|
||||
| Ok x -> x
|
||||
| Error (`Msg e) -> Alcotest.failf "decoding error %s" e
|
||||
with e -> close_in fd1 ; close_in fd2 ;
|
||||
Alcotest.failf "exception %s" (Printexc.to_string e)
|
||||
|
||||
let allowed_hashes = [ `SHA1 ; `SHA256 ; `SHA384 ; `SHA512 ]
|
||||
|
||||
let one f () =
|
||||
with_loaded_files f ~f:(fun cert crl ->
|
||||
let ( let* ) = Result.bind in
|
||||
let* cert = Certificate.decode_pem cert in
|
||||
let pubkey = Certificate.public_key cert in
|
||||
let* crl = CRL.decode_der crl in
|
||||
Result.map_error
|
||||
(fun e -> `Msg (Fmt.to_to_string Validation.pp_signature_error e))
|
||||
(CRL.validate crl ~allowed_hashes pubkey))
|
||||
|
||||
let crl_tests = [
|
||||
"CRL 1 is good", `Quick, one "1" ;
|
||||
"CRL 2 is good", `Quick, one "2" ;
|
||||
"CRL 3 is good", `Quick, one "3" ;
|
||||
"CRL 4 is good", `Quick, one "4" ;
|
||||
"CRL 5 is good", `Quick, one "5" ;
|
||||
"CRL 6 is good", `Quick, one "6" ;
|
||||
"CRL 7 is good", `Quick, one "7" ;
|
||||
"CRL 8 is good", `Quick, one "8" ;
|
||||
"CRL 9 is good", `Quick, one "9" ;
|
||||
"CRL 10 is good", `Quick, one "10" ;
|
||||
"CRL 11 is good", `Quick, one "11" ;
|
||||
"CRL 12 is good", `Quick, one "12" ;
|
||||
"CRL 13 is good", `Quick, one "13" ;
|
||||
"CRL 14 is good", `Quick, one "14" ;
|
||||
"CRL 15 is good", `Quick, one "15" ;
|
||||
"CRL 16 is good", `Quick, one "16" ;
|
||||
"CRL 17 is good", `Quick, one "17" ;
|
||||
"CRL 18 is good", `Quick, one "18" ;
|
||||
"CRL 19 is good", `Quick, one "19" ;
|
||||
"CRL 20 is good", `Quick, one "20" ;
|
||||
"CRL 21 is good", `Quick, one "21" ;
|
||||
]
|
||||
Loading…
Add table
Add a link
Reference in a new issue