diff --git a/cryptohash-sha256-0.11.100.1.tar.gz b/cryptohash-sha256-0.11.100.1.tar.gz deleted file mode 100644 index d932b0a..0000000 --- a/cryptohash-sha256-0.11.100.1.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:57b02338e9648639335788b422dd4c744543cb0991347472e2e3628a33c2f5d6 -size 10885 diff --git a/cryptohash-sha256-0.11.101.0.tar.gz b/cryptohash-sha256-0.11.101.0.tar.gz new file mode 100644 index 0000000..e86ae9f --- /dev/null +++ b/cryptohash-sha256-0.11.101.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:52756435dbea248e344fbcbcc5df5307f60dfacf337dfd11ae30f1c7a4da05dd +size 14996 diff --git a/cryptohash-sha256.cabal b/cryptohash-sha256.cabal index 68ee15f..151a30a 100644 --- a/cryptohash-sha256.cabal +++ b/cryptohash-sha256.cabal @@ -1,21 +1,45 @@ +cabal-version: 1.12 name: cryptohash-sha256 -version: 0.11.100.1 +version: 0.11.101.0 x-revision: 1 -description: - A practical incremental and one-pass, pure API to the - - (including support) - with performance close to the fastest implementations available in other languages. - . - The implementation is made in C with a haskell FFI wrapper that hides the C implementation. - . - NOTE: This package has been forked off @cryptohash-0.11.7@ because the @cryptohash@ package has been - deprecated and so this package continues to satisfy the need for a lightweight package - providing the SHA256 hash algorithm without any dependencies on packages other than - @base@ and @bytestring@. - . - Consequently, this package can be used as a drop-in replacement for @cryptohash@'s - "Crypto.Hash.SHA256" module, though with a clearly smaller footprint. + +synopsis: Fast, pure and practical SHA-256 implementation +description: { + +A practical incremental and one-pass, pure API to +the [SHA-256 cryptographic hash algorithm](https://en.wikipedia.org/wiki/SHA-2) according +to [FIPS 180-4](http://dx.doi.org/10.6028/NIST.FIPS.180-4) +with performance close to the fastest implementations available in other languages. +. +The core SHA-256 algorithm is implemented in C and is thus expected +to be as fast as the standard [sha256sum(1) tool](https://linux.die.net/man/1/sha256sum); +for instance, on an /Intel Core i7-3770/ at 3.40GHz this implementation can +compute a SHA-256 hash over 230 MiB of data in under one second. +(If, instead, you require a pure Haskell implementation and performance is secondary, please refer to the [SHA package](https://hackage.haskell.org/package/SHA).) +. + +. +Additionally, this package provides support for +. +- HMAC-SHA-256: SHA-256-based [Hashed Message Authentication Codes](https://en.wikipedia.org/wiki/HMAC) (HMAC) +- HKDF-SHA-256: [HMAC-SHA-256-based Key Derivation Function](https://en.wikipedia.org/wiki/HKDF) (HKDF) +. +conforming to [RFC6234](https://tools.ietf.org/html/rfc6234), [RFC4231](https://tools.ietf.org/html/rfc4231), [RFC5869](https://tools.ietf.org/html/rfc5869), et al.. +. +=== Relationship to the @cryptohash@ package and its API +. +This package has been originally a fork of @cryptohash-0.11.7@ because the @cryptohash@ +package had been deprecated and so this package continues to satisfy the need for a +lightweight package providing the SHA-256 hash algorithm without any dependencies on packages +other than @base@ and @bytestring@. The API exposed by @cryptohash-sha256-0.11.*@'s +"Crypto.Hash.SHA256" module is guaranteed to remain a compatible superset of the API provided +by the @cryptohash-0.11.7@'s module of the same name. +. +Consequently, this package is designed to be used as a drop-in replacement for @cryptohash-0.11.7@'s +"Crypto.Hash.SHA256" module, though with +a [clearly smaller footprint by almost 3 orders of magnitude](https://www.reddit.com/r/haskell/comments/5lxv75/psa_please_use_unique_module_names_when_uploading/dbzegx3/). + +} license: BSD3 license-file: LICENSE @@ -23,37 +47,63 @@ copyright: Vincent Hanquez, Herbert Valerio Riedel maintainer: Herbert Valerio Riedel homepage: https://github.com/hvr/cryptohash-sha256 bug-reports: https://github.com/hvr/cryptohash-sha256/issues -synopsis: Fast, pure and practical SHA-256 implementation category: Data, Cryptography build-type: Simple -cabal-version: >=1.10 tested-with: GHC == 7.4.2 , GHC == 7.6.3 , GHC == 7.8.4 , GHC == 7.10.3 - , GHC == 8.0.1 + , GHC == 8.0.2 + , GHC == 8.2.1 + , GHC == 8.4.1 -extra-source-files: cbits/sha256.h +extra-source-files: cbits/hs_sha256.h changelog.md source-repository head type: git location: https://github.com/hvr/cryptohash-sha256.git +flag exe + description: Enable building @sha256sum@ executable + manual: True + default: False + library default-language: Haskell2010 - build-depends: base >= 4.5 && < 4.11 + other-extensions: BangPatterns + CApiFFI + Trustworthy + Unsafe + + build-depends: base >= 4.5 && < 4.12 , bytestring >= 0.9.2 && < 0.11 + ghc-options: -Wall + hs-source-dirs: src exposed-modules: Crypto.Hash.SHA256 - ghc-options: -Wall -fno-cse -O2 - cc-options: -Wall -O3 - c-sources: cbits/sha256.c + other-modules: Crypto.Hash.SHA256.FFI include-dirs: cbits +executable sha256sum + hs-source-dirs: src-exe + main-is: sha256sum.hs + ghc-options: -Wall -threaded + if flag(exe) + default-language: Haskell2010 + other-extensions: RecordWildCards + build-depends: cryptohash-sha256 + , base + , bytestring + + , base16-bytestring >= 0.1.1 && < 0.2 + else + buildable: False + test-suite test-sha256 default-language: Haskell2010 + other-extensions: OverloadedStrings type: exitcode-stdio-1.0 hs-source-dirs: src-tests main-is: test-sha256.hs @@ -70,6 +120,7 @@ test-suite test-sha256 benchmark bench-sha256 default-language: Haskell2010 + other-extensions: BangPatterns type: exitcode-stdio-1.0 main-is: bench-sha256.hs hs-source-dirs: src-bench diff --git a/ghc-cryptohash-sha256.changes b/ghc-cryptohash-sha256.changes index 24bf61a..646294d 100644 --- a/ghc-cryptohash-sha256.changes +++ b/ghc-cryptohash-sha256.changes @@ -1,3 +1,17 @@ +------------------------------------------------------------------- +Mon May 14 17:02:11 UTC 2018 - psimons@suse.com + +- Update cryptohash-sha256 to version 0.11.101.0 revision 1. + - Add `hkdf` function providing HKDF-SHA256 conforming to RFC5869 + - Declare `Crypto.Hash.SHA256` module `-XTrustworthy` + - Remove ineffective RULES + - Convert to `CApiFFI` + - Added `...AndLength` variants of hashing functions: + - `finalizeAndLength` + - `hashlazyAndLength` + - `hmaclazyAndLength` + - Minor optimizations in `hmac` and `hash` + ------------------------------------------------------------------- Thu Aug 3 15:38:38 UTC 2017 - psimons@suse.com diff --git a/ghc-cryptohash-sha256.spec b/ghc-cryptohash-sha256.spec index 8b73abb..2163242 100644 --- a/ghc-cryptohash-sha256.spec +++ b/ghc-cryptohash-sha256.spec @@ -1,7 +1,7 @@ # # spec file for package ghc-cryptohash-sha256 # -# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -19,7 +19,7 @@ %global pkg_name cryptohash-sha256 %bcond_with tests Name: ghc-%{pkg_name} -Version: 0.11.100.1 +Version: 0.11.101.0 Release: 0 Summary: Fast, pure and practical SHA-256 implementation License: BSD-3-Clause @@ -39,22 +39,44 @@ BuildRequires: ghc-tasty-quickcheck-devel %endif %description -A practical incremental and one-pass, pure API to the - (including - support) with performance close to -the fastest implementations available in other languages. +A practical incremental and one-pass, pure API to the [SHA-256 cryptographic +hash algorithm](https://en.wikipedia.org/wiki/SHA-2) according to [FIPS +180-4](http://dx.doi.org/10.6028/NIST.FIPS.180-4) with performance close to the +fastest implementations available in other languages. -The implementation is made in C with a haskell FFI wrapper that hides the C -implementation. +The core SHA-256 algorithm is implemented in C and is thus expected to be as +fast as the standard [sha256sum(1) +tool](https://linux.die.net/man/1/sha256sum); for instance, on an /Intel Core +i7-3770/ at 3.40GHz this implementation can compute a SHA-256 hash over 230 MiB +of data in under one second. (If, instead, you require a pure Haskell +implementation and performance is secondary, please refer to the [SHA +package](https://hackage.haskell.org/package/SHA).) -NOTE: This package has been forked off 'cryptohash-0.11.7' because the -'cryptohash' package has been deprecated and so this package continues to -satisfy the need for a lightweight package providing the SHA256 hash algorithm +Additionally, this package provides support for + +- HMAC-SHA-256: SHA-256-based [Hashed Message Authentication +Codes](https://en.wikipedia.org/wiki/HMAC) (HMAC) - HKDF-SHA-256: +[HMAC-SHA-256-based Key Derivation +Function](https://en.wikipedia.org/wiki/HKDF) (HKDF) + +conforming to [RFC6234](https://tools.ietf.org/html/rfc6234), +[RFC4231](https://tools.ietf.org/html/rfc4231), +[RFC5869](https://tools.ietf.org/html/rfc5869), et al.. + +=== Relationship to the 'cryptohash' package and its API + +This package has been originally a fork of 'cryptohash-0.11.7' because the +'cryptohash' package had been deprecated and so this package continues to +satisfy the need for a lightweight package providing the SHA-256 hash algorithm without any dependencies on packages other than 'base' and 'bytestring'. +The API exposed by 'cryptohash-sha256-0.11.*''s "Crypto.Hash.SHA256" module is +guaranteed to remain a compatible superset of the API provided by the +'cryptohash-0.11.7''s module of the same name. -Consequently, this package can be used as a drop-in replacement for -'cryptohash''s "Crypto.Hash.SHA256" module, though with a clearly smaller -footprint. +Consequently, this package is designed to be used as a drop-in replacement for +'cryptohash-0.11.7''s "Crypto.Hash.SHA256" module, though with a [clearly +smaller footprint by almost 3 orders of +magnitude](https://www.reddit.com/r/haskell/comments/5lxv75/psa_please_use_unique_module_names_when_uploading/dbzegx3/). %package devel Summary: Haskell %{pkg_name} library development files @@ -88,7 +110,7 @@ cp -p %{SOURCE1} %{pkg_name}.cabal %ghc_pkg_recache %files -f %{name}.files -%doc LICENSE +%license LICENSE %files devel -f %{name}-devel.files %doc changelog.md