{"id":20828890,"url":"https://github.com/mirleft/ocaml-nocrypto","last_synced_at":"2025-05-07T21:21:56.657Z","repository":{"id":14400490,"uuid":"17111142","full_name":"mirleft/ocaml-nocrypto","owner":"mirleft","description":"OCaml cryptographic library","archived":false,"fork":false,"pushed_at":"2020-04-17T14:17:03.000Z","size":4441,"stargazers_count":111,"open_issues_count":42,"forks_count":53,"subscribers_count":16,"default_branch":"master","last_synced_at":"2025-03-31T14:11:19.294Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"OCaml","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"isc","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mirleft.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGES.md","contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-02-23T16:02:49.000Z","updated_at":"2024-11-04T23:49:26.000Z","dependencies_parsed_at":"2022-08-26T03:41:59.013Z","dependency_job_id":null,"html_url":"https://github.com/mirleft/ocaml-nocrypto","commit_stats":null,"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mirleft%2Focaml-nocrypto","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mirleft%2Focaml-nocrypto/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mirleft%2Focaml-nocrypto/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mirleft%2Focaml-nocrypto/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mirleft","download_url":"https://codeload.github.com/mirleft/ocaml-nocrypto/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252955163,"owners_count":21831059,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-17T23:18:44.615Z","updated_at":"2025-05-07T21:21:56.634Z","avatar_url":"https://github.com/mirleft.png","language":"OCaml","funding_links":[],"categories":["Security and Cryptography"],"sub_categories":[],"readme":"# nocrypto - Simpler crypto\n\n%%VERSION%%\n\nnocrypto is a small cryptographic library that puts emphasis on the applicative\nstyle and ease of use. It includes basic ciphers (AES, 3DES, RC4), hashes (MD5,\nSHA1, SHA2 family), AEAD primitives (AES-GCM, AES-CCM), public-key primitives\n(RSA, DSA, DH) and a strong RNG (Fortuna).\n\nRSA timing attacks are countered by blinding. AES timing attacks are avoided by\ndelegating to AES-NI.\n\n## Documentation\n\n[Interface][nocrypto-mli] is documented. Also [online][doc].\n\n[nocrypto-mli]: https://github.com/mirleft/ocaml-nocrypto/blob/master/src/nocrypto.mli\n[doc]: http://mirleft.github.io/ocaml-nocrypto/doc\n\n## Build\n\n```bash\n./pkg/pkg.ml build\n  --with-unix BOOL\n  --with-lwt BOOL\n  --xen BOOL\n  --freestanding BOOL\n\n./pkg/pkg.ml test\n```\n\n## FAQ\n\n#### RNG seeding\n\nIf RNG fails with `Fatal error: exception Uncommon.Boot.Unseeded_generator`, you\nneed to [seed][doc-entropy] it.\n\nUnix:\n```OCaml\nlet () = Nocrypto_entropy_unix.initialize ()\n```\n\nUnix/Lwt:\n```OCaml\nlet () = Nocrypto_entropy_lwt.initialize () |\u003e ignore\n```\n\n[doc-entropy]: http://mirleft.github.io/ocaml-nocrypto/Nocrypto_entropy_unix.html\n\n#### Illegal instructions\n\n```\nProgram terminated with signal SIGILL, Illegal instruction.\n#0  _mm_aeskeygenassist_si128 (__C=\u003coptimized out\u003e, __X=...)\n```\n\n`Nocrypto` has CPU acceleration support (`SSE2`+`AES-NI`), but no run-time\nautodetection yet. You compiled the library with acceleration, but you are using\nit on a machine that does not support it.\n\n`pkg/pkg.ml build --accelerate false` force-disables non-portable code.\n\n`pkg/pkg.ml build --accelerate true` force-enables non-portable code.\n\nThe flag can also be set via the `NOCRYPTO_ACCELERATE` environment variable.\nWhen unset, it maches the capabilities of the build machine.\n\n[![Build Status](https://travis-ci.org/mirleft/ocaml-nocrypto.svg?branch=master)](https://travis-ci.org/mirleft/ocaml-nocrypto)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmirleft%2Focaml-nocrypto","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmirleft%2Focaml-nocrypto","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmirleft%2Focaml-nocrypto/lists"}