{"id":13439628,"url":"https://github.com/miscreant/meta","last_synced_at":"2025-03-20T08:31:46.187Z","repository":{"id":56883996,"uuid":"89163740","full_name":"miscreant/meta","owner":"miscreant","description":"Meta-repository for Miscreant: misuse-resistant symmetric encryption library with AES-SIV (RFC 5297) and AES-PMAC-SIV support","archived":true,"fork":false,"pushed_at":"2019-09-03T00:13:58.000Z","size":692,"stargazers_count":474,"open_issues_count":16,"forks_count":27,"subscribers_count":19,"default_branch":"develop","last_synced_at":"2024-09-25T09:11:41.441Z","etag":null,"topics":["aead","aes","cryptography","key-wrapping","nonce-misuse-attacks","security","siv","streaming-encryption"],"latest_commit_sha":null,"homepage":"https://miscreant.io","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/miscreant.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-04-23T18:37:48.000Z","updated_at":"2024-05-07T16:44:31.000Z","dependencies_parsed_at":"2022-08-21T01:20:54.393Z","dependency_job_id":null,"html_url":"https://github.com/miscreant/meta","commit_stats":null,"previous_names":["zcred/sivchain","miscreant/miscreant"],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miscreant%2Fmeta","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miscreant%2Fmeta/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miscreant%2Fmeta/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miscreant%2Fmeta/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/miscreant","download_url":"https://codeload.github.com/miscreant/meta/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244577897,"owners_count":20475380,"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":["aead","aes","cryptography","key-wrapping","nonce-misuse-attacks","security","siv","streaming-encryption"],"created_at":"2024-07-31T03:01:15.750Z","updated_at":"2025-03-20T08:31:45.875Z","avatar_url":"https://github.com/miscreant.png","language":null,"funding_links":[],"categories":["Others","security"],"sub_categories":[],"readme":"# \u003cimg alt=\"miscreant.\" src=\"https://miscreant.io/images/miscreant.svg\"\u003e\n\n[![MIT Licensed][license-image]][license-link]\n[![Gitter Chat][gitter-image]][gitter-link]\n\n[license-image]: https://img.shields.io/badge/license-MIT-blue.svg\n[license-link]: https://github.com/miscreant/miscreant/blob/master/LICENSE.txt\n[gitter-image]: https://badges.gitter.im/badge.svg\n[gitter-link]: https://gitter.im/miscreant/Lobby\n\n\u003e The best crypto you've never heard of, brought to you by [Phil Rogaway]\n\nA misuse resistant symmetric encryption library designed to support\nauthenticated encryption of individual messages, encryption keys,\nmessage streams, or large files using the [AES-SIV] ([RFC 5297]),\n[AES-PMAC-SIV], and [STREAM] constructions.\n\nMiscreant is available for several programming languages, including\n[C#], [Go], [JavaScript], [Python], [Ruby], and [Rust].\n\n[Phil Rogaway]: https://en.wikipedia.org/wiki/Phillip_Rogaway\n[RFC 5297]: https://tools.ietf.org/html/rfc5297\n[AES-SIV]: https://github.com/miscreant/miscreant/wiki/AES-SIV\n[AES-PMAC-SIV]: https://github.com/miscreant/miscreant/wiki/AES-PMAC-SIV\n[STREAM]: https://github.com/miscreant/miscreant/wiki/STREAM\n[C#]: https://github.com/miscreant/miscreant/tree/master/dotnet\n[Go]: https://github.com/miscreant/miscreant/tree/master/go\n[JavaScript]: https://github.com/miscreant/miscreant/tree/master/js\n[Python]: https://github.com/miscreant/miscreant/tree/master/python\n[Ruby]: https://github.com/miscreant/miscreant/tree/master/ruby\n[Rust]: https://github.com/miscreant/miscreant/tree/master/rust\n\n## What is Miscreant?\n\n**Miscreant** is a set of interoperable libraries implemented in several\nlanguages providing a high-level API for misuse-resistant symmetric encryption.\nAdditionally, it provides support for \"online\" [authenticated encryption] use\ncases such as streaming or incrementally encryption/decryption of large files.\n\nThe following algorithms are provided by **Miscreant**:\n\n* [AES-SIV]: an [authenticated] mode of AES which provides\n  [nonce reuse misuse resistance]. Described in [RFC 5297], it combines the\n  [AES-CTR] ([NIST SP 800-38A]) mode of encryption with the\n  [AES-CMAC]([NIST SP 800-38B]) function for integrity.\n\n* [AES-PMAC-SIV]: a fully parallelizable variant of **AES-SIV** which\n  substitutes the [AES-PMAC] function for integrity, providing effectively\n  identical security properties as the original construction, but much better\n  performance on systems which provide parallel hardware implementations of\n  AES, namely Intel/AMD CPUs.\n\n* [STREAM]: a construction which, when combined with **AES-SIV** or\n  **AES-PMAC-SIV**, provides online/streaming [authenticated] encryption\n  and defends against reordering and truncation attacks.\n\n[authenticated]: https://en.wikipedia.org/wiki/Authenticated_encryption\n[nonce reuse misuse resistance]: https://github.com/miscreant/miscreant/wiki/Nonce-Reuse-Misuse-Resistance\n[AES-CTR]: https://en.wikipedia.org/wiki/Block_cipher_mode_of_operation#Counter_.28CTR.29\n[AES-CMAC]: https://en.wikipedia.org/wiki/One-key_MAC\n[AES-PMAC]: http://web.cs.ucdavis.edu/~rogaway/ocb/pmac-bak.htm\n\n## Cipher Comparison\n\n### Miscreant Ciphers\n\n| Name              | [Authenticated] | [Misuse Resistance] | x86 Speed      | IoT Speed† | Standardization   |\n|-------------------|-----------------|---------------------|----------------|------------|-------------------|\n| [AES-SIV]         | 💚              | 💚                  | 💛             | 💚         | [RFC 5297]        |\n| [AES-PMAC-SIV]    | 💚              | 💚                  | 💚             | 💚         | None              |\n\n### Other Constructions\n\n| Name              | [Authenticated] | [Misuse Resistance] | x86 Speed      | IoT Speed† | Standardization   |\n|-------------------|-----------------|---------------------|----------------|------------|-------------------|\n| AES-GCM-SIV       | 💚              | 💚                  | 💖             | 💔         | Forthcoming‡      |\n| AES-GCM           | 💚              | 💔                  | 💖             | 💔         | [NIST SP 800-38D] |\n| AES-CCM           | 💚              | 💔                  | 💛             | 💚         | [NIST SP 800-38C] |\n| AES-CBC           | 💔              | 💔                  | 💚             | 💚         | [NIST SP 800-38A] |\n| AES-CTR           | 💔              | 💔                  | 💚             | 💚         | [NIST SP 800-38A] |\n| ChaCha20+Poly1305 | 💚              | 💔                  | 💚             | 💛         | [RFC 7539]        |\n| XSalsa20+Poly1305 | 💚              | 💔                  | 💚             | 💛         | None              |\n\n### Legend\n\n| Heart | Meaning   |\n|-------|-----------|\n| 💚    | Great     |\n| 💛    | Fine \u003cimg src=\"https://raw.githubusercontent.com/miscreant/miscreant.github.io/master/images/thisisfine.png\" width=\"16\" height=\"16\"\u003e |\n| 💔    | Bad       |\n\n† Assumes hardware acceleration for the AES block cipher function\n\n‡ Work is underway in the IRTF CFRG to provide an informational RFC for **AES-GCM-SIV**.\n  For more information, see [draft-irtf-cfrg-gcmsiv].\n  When standardization work around **AES-GCM-SIV** is complete, it will be\n  [considered for inclusion in this library](https://github.com/miscreant/miscreant/issues/60).\n\n[Misuse Resistance]: https://github.com/miscreant/miscreant/wiki/Nonce-Reuse-Misuse-Resistance\n[NIST SP 800-38A]: https://dx.doi.org/10.6028/NIST.SP.800-38A\n[NIST SP 800-38B]: https://dx.doi.org/10.6028/NIST.SP.800-38B\n[NIST SP 800-38C]: https://dx.doi.org/10.6028/NIST.SP.800-38C\n[NIST SP 800-38D]: https://dx.doi.org/10.6028/NIST.SP.800-38D\n[RFC 7539]: https://tools.ietf.org/html/rfc7539\n[draft-irtf-cfrg-gcmsiv]: https://datatracker.ietf.org/doc/draft-irtf-cfrg-gcmsiv/\n[GHASH]: https://en.wikipedia.org/wiki/Galois/Counter_Mode#Mathematical_basis\n\n## Language Support\n\n**Miscreant** libraries are available for the following languages:\n\n| Language               | Version                              |\n|------------------------|--------------------------------------|\n| [C#][nuget-link]       | [![nuget][nuget-shield]][nuget-link] |\n| [Go][go-link]          | N/A                                  |\n| [JavaScript][npm-link] | [![npm][npm-shield]][npm-link]       |\n| [Python][pypi-link]    | [![pypi][pypi-shield]][pypi-link]    |\n| [Ruby][gem-link]       | [![gem][gem-shield]][gem-link]       |\n| [Rust][crate-link]     | [![crate][crate-shield]][crate-link] |\n\n[nuget-link]: https://www.nuget.org/packages/Miscreant\n[nuget-shield]: https://img.shields.io/nuget/v/Miscreant.svg\n[go-link]: https://github.com/miscreant/miscreant/tree/master/go\n[npm-shield]: https://img.shields.io/npm/v/miscreant.svg\n[npm-link]: https://www.npmjs.com/package/miscreant\n[pypi-shield]: https://img.shields.io/pypi/v/miscreant.svg\n[pypi-link]: https://pypi.python.org/pypi/miscreant/\n[gem-shield]: https://badge.fury.io/rb/miscreant.svg\n[gem-link]: https://rubygems.org/gems/miscreant\n[crate-shield]: https://img.shields.io/crates/v/miscreant.svg\n[crate-link]: https://crates.io/crates/miscreant\n\n## Documentation\n\n[Please see the Miscreant Wiki](https://github.com/miscreant/miscreant/wiki)\nfor more detailed documentation and usage notes.\n\n## Related Projects\n\n* [XSTREAM]: public-key cryptography built on Miscreant and the [X25519]\n  elliptic curve Diffie-Hellman function.\n* [minc] (the MIscreaNt Cryptotool): a command-line encryption utility built\n  on Miscreant and **XSTREAM**.\n\n[XSTREAM]: https://github.com/miscreant/xstream\n[X25519]: https://en.wikipedia.org/wiki/Curve25519\n[minc]: https://github.com/miscreant/minc\n\n## Help and Discussion\n\nHave questions? Want to suggest a feature or change?\n\n* [Gitter]: web-based chat about Miscreant\n* [Google Group]: join via web or email ([miscreant-crypto+subscribe@googlegroups.com])\n\n[Gitter]: https://gitter.im/miscreant/Lobby\n[Google Group]: https://groups.google.com/forum/#!forum/miscreant-crypto\n[miscreant-crypto+subscribe@googlegroups.com]: mailto:miscreant-crypto+subscribe@googlegroups.com?subject=subscribe\n\n## Code of Conduct\n\nWe abide by the [Contributor Covenant][cc] and ask that you do as well.\n\nFor more information, please see [CODE_OF_CONDUCT.md].\n\n[cc]: https://contributor-covenant.org\n[CODE_OF_CONDUCT.md]: https://github.com/miscreant/miscreant/blob/master/CODE_OF_CONDUCT.md\n\n## Key Rap\n\nThe paper describing AES-SIV,\n[Deterministic Authenticated-Encryption: A Provable-Security Treatment of the Key-Wrap Problem]\ncontains this explanatory rap song at the end, which goes out to all the\nchronic IV misusing miscreants in the land:\n\n\u003e Yo! We’z gonna’ take them keys an’ whatever you pleaze\u003cbr\u003e\n\u003e We gonna’ wrap ’em all up looks like some ran’om gup\u003cbr\u003e\n\u003e Make somethin’ gnarly and funky won’t fool no half-wit junkie\u003cbr\u003e\n\u003e So the game’s like AE but there’s one major hitch\u003cbr\u003e\n\u003e No coins can be pitched there’s no state to enrich\u003cbr\u003e\n\u003e the IV’s in a ditch dead drunk on cheap wine\u003cbr\u003e\n\u003e Now NIST and X9 and their friends at the fort\u003cbr\u003e\n\u003e suggest that you stick it in a six-layer torte\u003cbr\u003e\n\u003e S/MIME has a scheme there’s even one more\u003cbr\u003e\n\u003e So many ways that it’s hard to keep score\u003cbr\u003e\n\u003e And maybe they work and maybe they’re fine\u003cbr\u003e\n\u003e but I want some proofs for spendin’ my time\u003cbr\u003e\n\u003e After wrappin’ them keys gonna’ help out some losers\u003cbr\u003e\n\u003e chronic IV abusers don’t read no directions\u003cbr\u003e\n\u003e risk a deadly infection If a rusty IV’s drippin’ into yo’ veins\u003cbr\u003e\n\u003e and ya never do manage to get it exchanged\u003cbr\u003e\n\u003e Then we got ya somethin’ and it comes at low cost\u003cbr\u003e\n\u003e When you screw up again not all ’ill be lost\n\n[Deterministic Authenticated-Encryption: A Provable-Security Treatment of the Key-Wrap Problem]: http://web.cs.ucdavis.edu/~rogaway/papers/keywrap.pdf\n\n## Contributing\n\nBug reports and pull requests are welcome on GitHub at https://github.com/miscreant/miscreant\n\n## Copyright\n\nCopyright (c) 2017-2018 [The Miscreant Developers][AUTHORS].\nDistributed under the MIT license. See [LICENSE.txt] for further details.\n\nSome language-specific subprojects include sources from other authors with more\nspecific licensing requirements, though all projects are MIT licensed.\nPlease see the respective **LICENSE.txt** files in each project for more\ninformation.\n\n[AUTHORS]: https://github.com/miscreant/miscreant/blob/master/AUTHORS.md\n[LICENSE.txt]: https://github.com/miscreant/miscreant/blob/master/LICENSE.txt\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmiscreant%2Fmeta","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmiscreant%2Fmeta","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmiscreant%2Fmeta/lists"}