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.16.0.tar.gz
sha256=353675621e4c5a888f2483dc1bb7281bd17ce4ed7dfd2f40142257f98db7c77d

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.