lowlevel set of cryptographic primitives for haskell
Go to file
Kazu Yamamoto 897d9c2648
Merge pull request #36 from tanyabouman/type-operators-extension
Add TypeOperators language extension to EdDSA.hs
2024-06-13 07:57:32 +09:00
.github/workflows master -> main 2024-01-31 09:17:38 +09:00
benchs Ability to select the hash algorithm 2020-02-24 06:54:23 +01:00
cbits Add support for XChaCha and XChaChaPoly1305 2023-09-25 09:16:02 +09:00
Crypto Add TypeOperators language extension to EdDSA.hs 2024-06-12 15:20:54 -04:00
gen Generate HashAlgorithmPrefix instances 2020-06-26 07:16:41 +02:00
tests naming 2024-04-28 16:39:52 +09:00
.gitignore Ignore stack.yaml.lock 2019-07-28 08:46:18 +02:00
.hlint.yaml Avoid error "Unknown mingw32 arch" with hlint 2020-03-14 08:07:35 +01:00
CHANGELOG.md ver bumps up 2024-04-26 08:13:38 +09:00
CONTRIBUTING.md add CONTRIBUTING guide - non definitive 2016-12-09 15:06:05 +00:00
crypton.cabal ver bumps up 2024-04-26 08:13:38 +09:00
crypton.externals cryptonite -> crypton 2023-06-05 14:32:48 +09:00
crypton.sublime-project cryptonite -> crypton 2023-06-05 14:32:48 +09:00
LICENSE update main license 2015-03-12 05:44:23 +00:00
Makefile fix QA building command 2019-01-06 16:08:48 +00:00
QA.hs ECDSA with a type class 2019-11-11 17:46:16 +01:00
README.md README.md: Remove wrong statement about LTS presence 2023-07-17 11:27:58 +02:00
Setup.hs initial commit. 2014-07-04 14:58:01 +01:00
stack.yaml update stackage 2022-03-13 20:49:31 +08:00

GitHub Actions status

crypton

Crypton is a fork from cryptonite with the original author's permission.

Crypton is a haskell repository of cryptographic primitives. Each crypto algorithm has specificities that are hard to wrap in common APIs and types, so instead of trying to provide a common ground for algorithms, this package provides a non-consistent low-level API.

If you have no idea what you're doing, please do not use this directly. Instead, rely on higher level protocols or implementations.

Documentation: crypton on hackage

Stability

Crypton APIs are stable, and we only strive to add, not change or remove. Note that because the API exposed is wide and also expose internals things (for power users and flexibility), certains APIs can be revised in extreme cases where we can't just add.

Versioning

Next version of 0.x is 0.(x+1). There's no exceptions, or API related meaning behind the numbers.

Coding Style

The coding style of this project mostly follows: haskell-style

Support

See Haskell packages guidelines

Known Building Issues

On OSX <= 10.7, the system compiler doesn't understand the '-maes' option, and with the lack of autodetection feature builtin in .cabal file, it is left on the user to disable the aesni. See the [Disabling AESNI] section

On CentOS 7 the default C compiler includes intrinsic header files incompatible with per-function target options. Solutions are to use GCC >= 4.9 or disable flag use_target_attributes (see flag configuration examples below).

Disabling AESNI

It may be useful to disable AESNI for building, testing or runtime purposes. This is achieved with the support_aesni flag.

As part of configure of crypton:

  cabal configure --flag='-support_aesni'

or as part of an installation:

  cabal install --constraint="crypton -support_aesni"

For help with cabal flags, see: stackoverflow : is there a way to define flags for cabal