From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by sympa.inria.fr (Postfix) with ESMTPS id 26E3DE0A9D for ; Tue, 18 May 2021 20:33:00 +0200 (CEST) Authentication-Results: mail2-smtp-roc.national.inria.fr; spf=None smtp.pra=jonathan.protzenko@gmail.com; spf=Pass smtp.mailfrom=jonathan.protzenko@gmail.com; spf=None smtp.helo=postmaster@mail-pj1-f48.google.com Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of jonathan.protzenko@gmail.com) identity=pra; client-ip=209.85.216.48; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="jonathan.protzenko@gmail.com"; x-sender="jonathan.protzenko@gmail.com"; x-conformance=sidf_compatible Received-SPF: Pass (mail2-smtp-roc.national.inria.fr: domain of jonathan.protzenko@gmail.com designates 209.85.216.48 as permitted sender) identity=mailfrom; client-ip=209.85.216.48; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="jonathan.protzenko@gmail.com"; x-sender="jonathan.protzenko@gmail.com"; x-conformance=sidf_compatible; x-record-type="v=spf1" Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of postmaster@mail-pj1-f48.google.com) identity=helo; client-ip=209.85.216.48; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="jonathan.protzenko@gmail.com"; x-sender="postmaster@mail-pj1-f48.google.com"; x-conformance=sidf_compatible IronPort-PHdr: =?us-ascii?q?A9a23=3AFXzTgh11mPhBJcgYsmDOpQMyDhhOgF0UFjAc5pd?= =?us-ascii?q?vsb9SaKPrp82kYBWOo68z0xSYA83y0LFts6LuqafuWGgNs96qkUspV9hybSIDk?= =?us-ascii?q?tgchAc6AcSIWgXRJf/uaDEmTowZDAc2t360PlJIF8ngelbcvmO97SIIGhX4KAF?= =?us-ascii?q?5Ovn5FpTdgsiq0+2+4YPfbgRKiTayZb5/LQi9oBnMuMURnYZsMLs6xAHTontPd?= =?us-ascii?q?eRWxGdoKkyWkh3h+Mq+/4Nt/jpJtf45+MFOTav1f6IjTbxFFzsmKHw65NfqtRb?= =?us-ascii?q?YUwSC4GYXX3gMnRpJBwjF6wz6Xov0vyDnuOdxxDWWMMvrRr0vRz+s87lkRwPpi?= =?us-ascii?q?CcfNj427mfXitBrjKlGpB6tvgFzz5LIbI2QMvdxeb7Tfc4BRWpZQMleSzBBDI2?= =?us-ascii?q?7b4sKFeUBPOBYpJT5q1YBqRayAA+hD/7txDBVnH/7xbA03fovEQ/G3wIuEdwBv?= =?us-ascii?q?3vWo9rpL6odS/y5wbPSwDnfYf5b2zHw45XIfBA7pvGMWKp9f87WyUkpDQzFklW?= =?us-ascii?q?QppbjPziIzOoNqW+b7/ZhVO2xjW4nqAZxqSWoy8cujYnJgJgaykzE9SpjxoY5P?= =?us-ascii?q?8W4SFR8Yd64EZpfqSeaN4hxQs45TGFovTw1yrwCuZKhYCcKz5EnygfZZveafIe?= =?us-ascii?q?G/gjtW/yNITdkmn1lYrS/ig6u/UWiy+DxVMe63llXoidHktTAq34A2RPS58aJR?= =?us-ascii?q?PVx41qt1zmS2w3P5O9JIU86m6TVJpI8xrM9kocevEXdEiL2nkj9kaGYdkIh+ue?= =?us-ascii?q?y6uTnZK3rppCdN49oigH+L78hlta+AeQ/KgQOWHSU9v651L3n50H5R69KjvIwn?= =?us-ascii?q?6LEs57aPdwWqrClDwJRyIou6BayAy243NgFnHQLNl1IdRGfg4T3NFzCOvD1APa?= =?us-ascii?q?lj1iynjpmxOrKMqDuD5jOKHXIja3vcqxn60FGzQo+1dBf6IxQCrEGOP/zX1X+t?= =?us-ascii?q?N3cDhMgKwy0wfvrBMxz1o4RWm+DGKCZMKTVsV+H4uIgPfOAa5MSuDb4M/Ql5vj?= =?us-ascii?q?ugmElmVIFY6WlwZ8aZGq7E/lmOUmVf2fgj9YbHWoFvQcyVOnqh0eDUT5XaXayR?= =?us-ascii?q?aU85jQjBYKkCofDQJqigKCB3CihGJ1afHhGCkqLEXf0doSLRfEMaCGVIsJ6nTw?= =?us-ascii?q?EUKKuS44l1R20qAD6zL9nIvLO+iIErZLjyMR15+rLmB4u7zN0CsCd33iJT2F1h?= =?us-ascii?q?WMIWyQ73Lt/oEx40leMy7J0g/1eFdxJ5vNGSB02NZDGz78yN9eneAXafsqAAHm?= =?us-ascii?q?7XsmjCDd5GtA22N8TagByBsm+ixnF9yWvCr4R0beMAcpwuqnV2ny0I8dm117H0?= =?us-ascii?q?rMghh8oWJhhL2qj04x48QHPB4fP232DkLq4eKIf22aZ9mCFxHaOtUceSBR3Tbf?= =?us-ascii?q?IW3MYTkTTpNX9oEjFSun9WvwcLgJdxJvaeeNxYdrzgAADGa6L0DH2bGe4mmP2D?= =?us-ascii?q?hGNlOvkhGXCdGAU3SGbA08BwVl7FZeuMAE/AmK5oTubAmA+U13oZEzo/K91r3b?= =?us-ascii?q?pFicJ?= IronPort-HdrOrdr: =?us-ascii?q?A9a23=3A8Vt04K0kuQKbJuq6El6gHgqjBWdyeYIsimQD?= =?us-ascii?q?101hICG9Lfb4qyn+ppomPEHP5wr5AEtQ5uxpOMG7MBThHO1OkPcs1NCZLUjbUQ?= =?us-ascii?q?qTXc9fBO7ZowEIdBeOjdK1uZ0QFpSWTeeAcWSS7vyKoDVQcexQuuVvmZrA7Yy1?= =?us-ascii?q?ohsdLnAJV0gj1XYFNu/xKDwReOAyP+tAKHPq3Ls/m9PPQwVyUu2LQl0+G8TTrd?= =?us-ascii?q?zCk5zrJTQcAQQ81QWIhTS0rJbnDhmxxH4lInBy6IZn1VKAvx3y562lvf3+4ATb?= =?us-ascii?q?zXXv45Nfn8ak4sdfBfaLltMeJlzX+0SVjcVaKvi/VQIO0aaSAWUR4Z/xStAbTp?= =?us-ascii?q?1OAkbqDyWISN3WqlHdOXgVmiTfIBSj8AreSITCNUIH4ox69Nhkmt+z0Tt9gDm6?= =?us-ascii?q?u5g7gl5x/qAnfi/ojWDz4cPFWAptkVfxqX0+kfQLh3gaSocGbqRNxLZvsX+9Pa?= =?us-ascii?q?1wVx4S0rpXWtWGzfusksq+emnqI0wxflMfiOBEe05DUStubnJyzvB94gIm1UyR?= =?us-ascii?q?lXFosfD3tk1wg67VZaM0ldj5Dg=3D=3D?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0A0AgBJB6RghzDYVdFaHAEBAQEBAQcBA?= =?us-ascii?q?RIBAQQEAQGCF4MiVxU7GoRHkU0IJQOEDodAiR6HUQNUCwEDAQsBATUMBAEBhE8?= =?us-ascii?q?CgXQCHQcBBDQTAgQVAQEFAQEBAgEDAwQBEwEBAQwNCQgpGoVQDYI4KYNkAQEEE?= =?us-ascii?q?hEdARseAwwGAwILDSoCAiMRAQUBHAYBDAgBAR6CTwGCVAEDLw+NLI8WgQQ9izK?= =?us-ascii?q?BFQUBF4EBgggGglaCBwoZKA1jA4E4AgcJAQiBKIVqgR0BgmSCWYEeJxCBVUSBP?= =?us-ascii?q?AyBb4EAPoFSgQ8CAYR2gmMEgigYgTEOAQEpXAdXBnKfCIpakUksB4MZgSMGC4h?= =?us-ascii?q?OkzkFCQUjhRuPNBSQW5U3jAiSY4UcAgoHBhAjgUiBfE0jUDGCOAlHGQ6OHwsOC?= =?us-ascii?q?YNOgmSCMIVpITICNgIGAQkBAQMJjRABAQ?= X-IPAS-Result: =?us-ascii?q?A0A0AgBJB6RghzDYVdFaHAEBAQEBAQcBARIBAQQEAQGCF4M?= =?us-ascii?q?iVxU7GoRHkU0IJQOEDodAiR6HUQNUCwEDAQsBATUMBAEBhE8CgXQCHQcBBDQTA?= =?us-ascii?q?gQVAQEFAQEBAgEDAwQBEwEBAQwNCQgpGoVQDYI4KYNkAQEEEhEdARseAwwGAwI?= =?us-ascii?q?LDSoCAiMRAQUBHAYBDAgBAR6CTwGCVAEDLw+NLI8WgQQ9izKBFQUBF4EBgggGg?= =?us-ascii?q?laCBwoZKA1jA4E4AgcJAQiBKIVqgR0BgmSCWYEeJxCBVUSBPAyBb4EAPoFSgQ8?= =?us-ascii?q?CAYR2gmMEgigYgTEOAQEpXAdXBnKfCIpakUksB4MZgSMGC4hOkzkFCQUjhRuPN?= =?us-ascii?q?BSQW5U3jAiSY4UcAgoHBhAjgUiBfE0jUDGCOAlHGQ6OHwsOCYNOgmSCMIVpITI?= =?us-ascii?q?CNgIGAQkBAQMJjRABAQ?= X-IronPort-AV: E=Sophos;i="5.82,310,1613430000"; d="scan'208,217";a="508804687" X-MGA-submission: =?us-ascii?q?MDGEV2qGpxFKayJU3aBTt0jt9M3Bdf4JSx3P6g?= =?us-ascii?q?NeJZa5Yin3aYcKdMNrCWtLScYqtk3uVtaHSVlNchAskaUl2X4T5kDcmB?= =?us-ascii?q?VNaVYiHvLryi1VQBlJDsO+djvSvmDMGAMqG1U7DXIGRDxSxOc6i3CNVv?= =?us-ascii?q?HOVzo75Ea8MjX+tGUwxS86oQ=3D=3D?= Received: from mail-pj1-f48.google.com ([209.85.216.48]) by mail2-smtp-roc.national.inria.fr with ESMTP/TLS/AES256-GCM-SHA384; 18 May 2021 20:32:58 +0200 Received: by mail-pj1-f48.google.com with SMTP id n6-20020a17090ac686b029015d2f7aeea8so2061632pjt.1 for ; Tue, 18 May 2021 11:32:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:references:from:message-id:date:user-agent:mime-version :in-reply-to:content-language; bh=RoNxshJZ07V4mm5BfhsV9p3cow8Y9h4Y9OyvlWTsfgA=; b=gjk+s6GP07dhl5P7ahL2PgUhCF5pHFelvAwfFhTmlvvXFzfUHru9BXrkwp9giV1gZr mMKXxUKseQHeLPEnJPpmbsR8EFd3WtGgbyHmWNR7XGz7Ok/iNnUpIFAXGOHZqicD4WKZ RFQVGh/BGlCgg4oWzc0Ywc7z8qLfPIwn5SrXYqSt+hO5gBBhoke4MvDOZlSiTjdGszhj +PmIKj1GJqAhMFZyeFz4GbTY26g93fCEnIcHRMDPGUzwdvYHG6+0CQWKzwt7Q+embFG7 L7e87DzAw41VgZE+gYjiZ6RpoBBJwpBaXrfURHmA/qgW7u4qtz/EN6ZYHUMkt9OrnHz6 Y1UQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language; bh=RoNxshJZ07V4mm5BfhsV9p3cow8Y9h4Y9OyvlWTsfgA=; b=TU+BUJaOnYWKvBOtPxn++ou5cs6adWQOC4GRxUkfcE3JFkPPCr0a90oJEPN0zVxytO z6rv/TWzl3AKatjBeBTt8NKn4UlLyEahfnTgS4frUtPaciAVfHO3uaRwA6/Wpw5ANwsE sZwO1AZ6iiZN0No//huSDZ+t7tQD3iG9s0gHk0c1A8et6FydeF6rU3JKrrmsyHbrUcMn wcsNq+N4x69qHRAzaPlxnLCLhCTVPp+x1PEiIrAeleWt0SNgiycy/Rh//Bc/jC/nMQ6/ hIdgSRLleKTwNNghbyfqUsvyYSlMUV6wgBy64PGcmgnUjr1ptY3wAuwqdbe1texujBsR E6SA== X-Gm-Message-State: AOAM531N8pT6/EhDuixqvKtRDX56b7fPWVBKiSGIf3Fz8IoBc06lCN43 YQ4JU2C/jGpzg8QkS3e+QF/2YBlwDAPv09j/ X-Google-Smtp-Source: ABdhPJyd4tID0adE2Phcbw+NKPDXmuA3K44pRKSeerMNJXEECwFnMlW9abkSZuasEjZZC9gWmyMqpg== X-Received: by 2002:a17:90a:fc8f:: with SMTP id ci15mr6786230pjb.147.1621362776261; Tue, 18 May 2021 11:32:56 -0700 (PDT) Received: from [192.168.1.108] (c-24-56-238-148.customer.broadstripe.net. [24.56.238.148]) by smtp.gmail.com with ESMTPSA id s3sm14442557pgs.62.2021.05.18.11.32.54 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 18 May 2021 11:32:55 -0700 (PDT) To: Joshua Guttman , caml-list@inria.fr References: From: Jonathan Protzenko Message-ID: Date: Tue, 18 May 2021 11:32:54 -0700 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:78.0) Gecko/20100101 Thunderbird/78.9.1 MIME-Version: 1.0 In-Reply-To: Content-Type: multipart/alternative; boundary="------------46D025A7A4EBD361F886FF0A" Content-Language: en-US Subject: Re: [Caml-list] Crypto libraries for OCaml: Recommendations? This is a multi-part message in MIME format. --------------46D025A7A4EBD361F886FF0A Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Hi Joshua, Allow me to recommend the formally verified cryptography from the Everest project. We support a wide variety of algorithms so hopefully your needs would be met. We have official OCaml bindings, available via `opam install hacl-star`. And we can easily extend the OCaml bindings if there's a C algorithm that hasn't been exposed via OCaml yet. Those bindings are used by Tezos' blockchain, which I hope provides a good endorsement that they are "production ready". Best, Jonathan On 5/18/21 9:51 AM, Joshua Guttman wrote: > It's a while since I've done a project with OCaml, > though I used it a lot a decade or more back. But > now I have something for which I think OCaml is > the perfect tool. > > It does involve relying on a few crypto primitives, > though, and I see on ocaml.org  that there are now > a good number of crypto packages on offer. > > In my case, I just need a decent hash, access to AES > both as a pure cipher and with the usual modes, and > subsequently decent elliptic curve signature and key > exchange. > > Are there packages that provides access to decent > implementations of these things, and are currently > well maintained? > > Thanks a lot! > >         Joshua > -- > --------------46D025A7A4EBD361F886FF0A Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: 8bit Hi Joshua,

Allow me to recommend the formally verified cryptography from the Everest project. We support a wide variety of algorithms <https://hacl-star.github.io/Supported.html> so hopefully your needs would be met. We have official OCaml bindings, available via `opam install hacl-star`. And we can easily extend the OCaml bindings if there's a C algorithm that hasn't been exposed via OCaml yet.

Those bindings are used by Tezos' blockchain, which I hope provides a good endorsement that they are "production ready".

Best,

Jonathan

On 5/18/21 9:51 AM, Joshua Guttman wrote:
It's a while since I've done a project with OCaml,
though I used it a lot a decade or more back.  But
now I have something for which I think OCaml is
the perfect tool.

It does involve relying on a few crypto primitives, 
though, and I see on ocaml.org that there are now 
a good number of crypto packages on offer.

In my case, I just need a decent hash, access to AES 
both as a pure cipher and with the usual modes, and 
subsequently decent elliptic curve signature and key 
exchange.

Are there packages that provides access to decent
implementations of these things, and are currently
well maintained?

Thanks a lot!

        Joshua 
--


--------------46D025A7A4EBD361F886FF0A--