Source file pkcs11_CK_RSA_PKCS_OAEP_PARAMS.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
open Ctypes
open Ctypes_helpers

type source_type = P11_ulong.t

let source_type : source_type typ = ulong

let _CKZ_DATA_SPECIFIED : source_type = Unsigned.ULong.of_int 0x00000001

type _t

type t = _t structure

let t : t typ = structure "CK_RSA_PKCS_OAEP_PARAMS"

let ( -: ) ty label = smart_field t label ty

let hashAlg = Pkcs11_CK_MECHANISM_TYPE.typ -: "hashAlg"

let mgf = Pkcs11_CK_RSA_PKCS_MGF_TYPE.typ -: "mgf"

let source = source_type -: "source"

let pSourceData = Reachable_ptr.typ void -: "pSourceData"

let pSourceDataLen = ulong -: "pSourceDataLen"

let () = seal t

let make params =
  let open P11_rsa_pkcs_oaep_params in
  let src = params.src in
  let p = Ctypes.make t in
  setf p hashAlg @@ Pkcs11_CK_MECHANISM_TYPE.make params.hashAlg;
  setf p mgf params.mgf;
  setf p source _CKZ_DATA_SPECIFIED;
  make_string_option src p pSourceDataLen pSourceData;
  p

let view c =
  let open P11_rsa_pkcs_oaep_params in
  { hashAlg = Pkcs11_CK_MECHANISM_TYPE.view @@ getf c hashAlg
  ; mgf = getf c mgf
  ; src = view_string_option c pSourceDataLen pSourceData }