Source file p11_token_info.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 flags_to_string = P11_flags.(to_pretty_string Token_info_domain)
type token_info_flags = P11_flags.t
[@@deriving eq,ord,show,of_yojson]
let token_info_flags_to_yojson flags =
P11_flags.to_json ~pretty:flags_to_string flags
type t =
{ label : string
; manufacturerID : string
; model : string
; serialNumber : string
; flags : token_info_flags
; ulMaxSessionCount : P11_ulong.t
; ulSessionCount : P11_ulong.t
; ulMaxRwSessionCount : P11_ulong.t
; ulRwSessionCount : P11_ulong.t
; ulMaxPinLen : P11_ulong.t
; ulMinPinLen : P11_ulong.t
; ulTotalPublicMemory : P11_ulong.t
; ulFreePublicMemory : P11_ulong.t
; ulTotalPrivateMemory : P11_ulong.t
; ulFreePrivateMemory : P11_ulong.t
; hardwareVersion : P11_version.t
; firmwareVersion : P11_version.t
; utcTime : string
}
[@@deriving eq,ord,show,yojson]
let ul_to_string t =
P11_ulong.(
if is_effectively_infinite t then
"CK_EFFECTIVELY_INFINITE"
else if is_unavailable_information t then
"CK_UNAVAILABLE_INFORMATION"
else
Unsigned.ULong.to_string t
)
let to_strings info =
[
"Label", P11_helpers.trim_and_quote info.label;
"Manufacturer ID", P11_helpers.trim_and_quote info.manufacturerID;
"Model", P11_helpers.trim_and_quote info.model;
"Serial Number", P11_helpers.trim_and_quote info.serialNumber;
"Flags", flags_to_string info.flags;
"Maximum Session Count", ul_to_string info.ulMaxSessionCount;
"Session count", ul_to_string info.ulSessionCount;
"Maximum Read-Write Session Count", ul_to_string info.ulMaxRwSessionCount;
"Read-Write Session Count", ul_to_string info.ulRwSessionCount;
"Maximum PIN Length", Unsigned.ULong.to_string info.ulMaxPinLen;
"Minimim PIN Length", Unsigned.ULong.to_string info.ulMinPinLen;
"Total Public Memory", ul_to_string info.ulTotalPublicMemory;
"Free Public Memory", ul_to_string info.ulFreePublicMemory;
"Total Private Memory", ul_to_string info.ulTotalPrivateMemory;
"Free Private Memory", ul_to_string info.ulFreePrivateMemory;
"Hardware Version", (P11_version.to_string info.hardwareVersion);
"Firmware Version", (P11_version.to_string info.firmwareVersion);
"UTC Time", P11_helpers.trim_and_quote info.utcTime;
]
let to_string ?newlines ?indent info =
P11_helpers.string_of_record ?newlines ?indent (to_strings info)
let to_strings info = P11_helpers.strings_of_record @@ to_strings info