Source file p11_object_class.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
type t =
| CKO_DATA
| CKO_CERTIFICATE
| CKO_PUBLIC_KEY
| CKO_PRIVATE_KEY
| CKO_SECRET_KEY
| CKO_HW_FEATURE
| CKO_DOMAIN_PARAMETERS
| CKO_MECHANISM
| CKO_OTP_KEY
| CKO_VENDOR_DEFINED
| CKO_CS_UNKNOWN of P11_ulong.t
[@@deriving eq, ord, show]
let to_string = function
| CKO_DATA -> "CKO_DATA"
| CKO_CERTIFICATE -> "CKO_CERTIFICATE"
| CKO_PUBLIC_KEY -> "CKO_PUBLIC_KEY"
| CKO_PRIVATE_KEY -> "CKO_PRIVATE_KEY"
| CKO_SECRET_KEY -> "CKO_SECRET_KEY"
| CKO_HW_FEATURE -> "CKO_HW_FEATURE"
| CKO_DOMAIN_PARAMETERS -> "CKO_DOMAIN_PARAMETERS"
| CKO_MECHANISM -> "CKO_MECHANISM"
| CKO_OTP_KEY -> "CKO_OTP_KEY"
| CKO_VENDOR_DEFINED -> "CKO_VENDOR_DEFINED"
| CKO_CS_UNKNOWN x -> Unsigned.ULong.to_string x
let of_string = function
| "CKO_DATA" -> CKO_DATA
| "CKO_CERTIFICATE" -> CKO_CERTIFICATE
| "CKO_PUBLIC_KEY" -> CKO_PUBLIC_KEY
| "CKO_PRIVATE_KEY" -> CKO_PRIVATE_KEY
| "CKO_SECRET_KEY" -> CKO_SECRET_KEY
| "CKO_HW_FEATURE" -> CKO_HW_FEATURE
| "CKO_DOMAIN_PARAMETERS" -> CKO_DOMAIN_PARAMETERS
| "CKO_MECHANISM" -> CKO_MECHANISM
| "CKO_OTP_KEY" -> CKO_OTP_KEY
| "CKO_VENDOR_DEFINED" -> CKO_VENDOR_DEFINED
| x -> (
try CKO_CS_UNKNOWN (Unsigned.ULong.of_string x) with
| Sys.Break as e -> raise e
| _ ->
invalid_arg ("Pkcs11_CK_OBJECT_CLASS.of_string" ^ ": cannot find " ^ x))
let to_yojson object_class = `String (to_string object_class)
let of_yojson = P11_helpers.of_json_string ~typename:"object class" of_string