+
Skip to content

alex-s168/slow-libs

Repository files navigation

slow-libs single-header libraries

MIT licennced (see ./LICENSE)

Most libraries are not actually slow, but that is just the naming scheme.

Each library is documentated at the top of each header file

Features of all libraries

  • C89 (or later) compatible
  • intuitive to use
  • don't pollude namespace
  • configurable with pre-processor macros

Libraries

  • ./chacha20.h
  • ./slowarr.h: C templated dynamic array
  • ./slowgraph.h: WIP graph library (this is the only library that is actually slow)

there are more files than that, but those are heavility wip

CLI Tools

CLI utils built with slow-libs.

  • ./slowcrypt/slowcrypt.c: cryptography cli
  • ./slowgraph/sgraph-adj.c: dgtxt graphs <-> adjacency matrix

Cryptography Security Considerations

All cryptography libraries list possible side channel attacks in their documentation

Library Zeroing memory Timing attacks Notes
chacha20.h manual 1 impossible 2

Cryptography 101

  • TODO: explain asymetric
  • TODO: compare symetrics
  • TODO: compare asymetrics
  • TODO: compare hashes
  • TODO: XOF
  • TODO: rng
  • TODO: length extension
  • TODO: password hashing

Contribution guide

  • Please use clang-format (and the provided .clang-format style) If you do not want to use clang-format, try to match the code style of other existing code, and a maintainer will format your code on merge.
  • Do not break portability of an existing "finished" library
  • Make new libraries as portable as possible (in a reasonable amount of time)

Footnotes

  1. the compiler might optimize the zeroing away

  2. does not prevent against length-extension, by algorithm design. See Cryptography 101.

About

header-only libraries. MIRROR FROM https://gitea.vxcc.dev/alexander.nutz/slow-libs

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  
点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载