Subject: [bug#49867] [PATCH 23/29] gnu: Add ocaml-x509.

From: pukkamustard <[email-masked]>
Date: Wed, 4 Aug 2021 07:15:39 +0000

* gnu/packages/ocaml.scm (ocaml-x509): New variable.
---
 gnu/packages/ocaml.scm | 46 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 46 insertions(+)

diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm
index a9a4c8a684..3ce07057f5 100644
--- a/gnu/packages/ocaml.scm
+++ b/gnu/packages/ocaml.scm
@@ -7726,6 +7726,52 @@ to create a type-safe heterogenous maps.")
 PKCS#5 using @code{ocaml-mirage-crypto}.")
     (license license:bsd-2)))
 
+(define-public ocaml-x509
+  (package
+    (name "ocaml-x509")
+    (version "0.14.0")
+    (home-page "https://github.com/mirleft/ocaml-x509")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url home-page)
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0b51vzyxxkhwgx12dg55clb1lb971cxlmsk4wlxzs5h115j5hcy7"))))
+    (build-system dune-build-system)
+    (arguments `(#:test-target "."))
+    (propagated-inputs
+     `(("ocaml-cstruct" ,ocaml-cstruct)
+       ("ocaml-asn1-combinators" ,ocaml-asn1-combinators)
+       ("ocaml-ptime" ,ocaml-ptime)
+       ("ocaml-base64" ,ocaml-base64)
+       ("ocaml-mirage-crypto" ,ocaml-mirage-crypto)
+       ("ocaml-mirage-crypto-pk" ,ocaml-mirage-crypto-pk)
+       ("ocaml-mirage-crypto-ec" ,ocaml-mirage-crypto-ec)
+       ("ocaml-mirage-crypto-rng" ,ocaml-mirage-crypto-rng)
+       ("ocaml-rresult" ,ocaml-rresult)
+       ("ocaml-fmt" ,ocaml-fmt)
+       ("ocaml-gmap" ,ocaml-gmap)
+       ("ocaml-domain-name" ,ocaml-domain-name)
+       ("ocaml-logs" ,ocaml-logs)
+       ("ocaml-pbkdf" ,ocaml-pbkdf)))
+    (native-inputs
+     `(("ocaml-alcotest" ,ocaml-alcotest)
+       ("ocaml-cstruct-unix" ,ocaml-cstruct-unix)))
+    (synopsis "Public Key Infrastructure (RFC 5280, PKCS) purely in OCaml")
+    (description "X.509 is a public key infrastructure used mostly on the
+Internet.  It consists of certificates which include public keys and
+identifiers, signed by an authority. Authorities must be exchanged over a
+second channel to establish the trust relationship. This OCaml library
+implements most parts of RFC5280 and RFC6125.  The Public Key Cryptography
+Standards (PKCS) defines encoding and decoding (in ASN.1 DER and PEM format),
+which is also implemented by this library - namely PKCS 1, PKCS 5, PKCS 7,
+PKCS 8, PKCS 9, PKCS 10, and PKCS 12.")
+    (license license:bsd-2)))
+
 (define-public js-of-ocaml
   (package
     (name "js-of-ocaml")
-- 
2.32.0