package pkcs11-driver

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

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

type _t

type t = _t structure

let t : t typ = structure "CK_KEY_DERIVATION_STRING_DATA"

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

let pData = Reachable_ptr.typ Pkcs11_CK_BYTE.typ -: "pData"

let ulLen = ulong -: "ulLen"

let () = seal t

type u = string

let make (u : u) : t =
  let t = make t in
  let data = ptr_from_string u in
  Reachable_ptr.setf t pData data;
  setf t ulLen (Unsigned.ULong.of_int @@ String.length u);
  t

let view (t : t) : u =
  string_from_ptr
    ~length:(getf t ulLen |> Unsigned.ULong.to_int)
    (Reachable_ptr.getf t pData)