package pkcs11-driver

  1. Overview
  2. Docs
Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source

Source file pkcs11_CK_GCM_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
type s

type t = s Ctypes.structure

let t : t Ctypes.typ = Ctypes.structure "CK_GCM_PARAMS"

let pIv = Ctypes_helpers.smart_field t "pIv" (Ctypes_helpers.Reachable_ptr.typ Pkcs11_CK_BYTE.typ)
let ulIvLen = Ctypes_helpers.smart_field t "ulIvLen" Ctypes.ulong
let ulIvBits = Ctypes_helpers.smart_field t "ulIvBits" Ctypes.ulong
let pAAD = Ctypes_helpers.smart_field t "pAAD" (Ctypes_helpers.Reachable_ptr.typ Pkcs11_CK_BYTE.typ)
let ulAADLen = Ctypes_helpers.smart_field t "ulAADLen" Ctypes.ulong
let ulTagBits = Ctypes_helpers.smart_field t "ulTagBits" Ctypes.ulong

let () = Ctypes.seal t

let make u =
  let p = Ctypes.make t in
  Ctypes_helpers.make_string
    (P11_gcm_params.iv u)
    p
    ulIvLen
    pIv;
  Ctypes_helpers.make_string
    (P11_gcm_params.aad u)
    p
    ulAADLen
    pAAD;
  Ctypes.setf p ulTagBits (P11_gcm_params.tag_bits u);
  p

let view p =
  let iv = Ctypes_helpers.view_string p ulIvLen pIv in
  let aad = Ctypes_helpers.view_string p ulAADLen pAAD in
  let tag_bits = Ctypes.getf p ulTagBits in
  P11_gcm_params.make ~iv ~aad ~tag_bits
OCaml

Innovation. Community. Security.