package krb

  1. Overview
  2. Docs
A library for using Kerberos for both Rpc and Tcp communication

Install

Dune Dependency

Authors

Maintainers

Sources

krb-v0.15.0.tar.gz
sha256=d0b4b946f4e53dff9091d2d02a235e861ab5ad9d64638b17ba1834dedfb4f53d

doc/src/krb.internal/ticket.ml.html

Source file ticket.ml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
open! Core

module Raw = struct
  type t

  external kvno : t -> int = "caml_krb5_ticket_kvno"
  external free : Context.t -> t -> unit = "caml_krb5_free_ticket"
  external decode : Data.t -> t Krb_result.t = "caml_krb5_decode_ticket"
  external enctype : t -> int = "caml_krb5_ticket_enctype"
end

type t = Raw.t

let kvno t = Raw.kvno t
let enctype t = Or_error.try_with (fun () -> Enctype.of_int (Raw.enctype t))

let decode data =
  let open Or_error.Let_syntax in
  let info = "[krb5_decode_ticket]" in
  let%bind ticket = Raw.decode data |> Krb_result.to_or_error ~info in
  Context_sequencer.add_finalizer ticket ~f:Raw.free;
  return ticket
;;
OCaml

Innovation. Community. Security.