package mldsa

  1. Overview
  2. Docs

Source file mldsa_for_testing.ml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
let sign module_ ~signing_key ~formatted_message ~randomness =
  let module Engine = (val module_ : Mldsa__Mldsa_engine.INTERNAL) in
  match Engine.signing_key_of_octets signing_key with
  | Error error -> Error error
  | Ok key -> begin
      match
        Engine.sign_internal_for_testing key ~formatted_message ~randomness
      with
      | Error error -> Error error
      | Ok signature -> Ok (Engine.signature_to_octets signature)
    end

let sign_internal_44 =
  sign (module Mldsa__Mldsa_engine.Mldsa44)

let sign_internal_65 =
  sign (module Mldsa__Mldsa_engine.Mldsa65)

let sign_internal_87 =
  sign (module Mldsa__Mldsa_engine.Mldsa87)

let sign_mu module_ ~signing_key ~mu ~randomness =
  let module Engine = (val module_ : Mldsa__Mldsa_engine.INTERNAL) in
  match Engine.signing_key_of_octets signing_key with
  | Error error -> Error error
  | Ok key ->
      begin match Engine.sign_mu_for_testing key ~mu ~randomness with
      | Error error -> Error error
      | Ok signature -> Ok (Engine.signature_to_octets signature)
      end

let sign_mu_44 = sign_mu (module Mldsa__Mldsa_engine.Mldsa44)
let sign_mu_65 = sign_mu (module Mldsa__Mldsa_engine.Mldsa65)
let sign_mu_87 = sign_mu (module Mldsa__Mldsa_engine.Mldsa87)

let verify module_ ~verification_key ~formatted_message ~signature =
  let module Engine = (val module_ : Mldsa__Mldsa_engine.INTERNAL) in
  match
    Engine.verification_key_of_octets verification_key,
    Engine.signature_of_octets signature
  with
  | Ok key, Ok signature ->
      Engine.verify_internal_for_testing key ~formatted_message signature
  | Error _, _ | _, Error _ -> false

let verify_internal_44 =
  verify (module Mldsa__Mldsa_engine.Mldsa44)

let verify_internal_65 =
  verify (module Mldsa__Mldsa_engine.Mldsa65)

let verify_internal_87 =
  verify (module Mldsa__Mldsa_engine.Mldsa87)

let verify_mu module_ ~verification_key ~mu ~signature =
  let module Engine = (val module_ : Mldsa__Mldsa_engine.INTERNAL) in
  match
    Engine.verification_key_of_octets verification_key,
    Engine.signature_of_octets signature
  with
  | Ok key, Ok signature -> Engine.verify_mu_for_testing key ~mu signature
  | Error _, _ | _, Error _ -> false

let verify_mu_44 = verify_mu (module Mldsa__Mldsa_engine.Mldsa44)
let verify_mu_65 = verify_mu (module Mldsa__Mldsa_engine.Mldsa65)
let verify_mu_87 = verify_mu (module Mldsa__Mldsa_engine.Mldsa87)