Compare commits

..

No commits in common. "f35" and "master" have entirely different histories.
f35 ... master

4 changed files with 160 additions and 225 deletions

1
.gitignore vendored
View File

@ -1,3 +1,2 @@
/cryptohash-sha256-0.11.100.1.tar.gz /cryptohash-sha256-0.11.100.1.tar.gz
/cryptohash-sha256-0.11.101.0.tar.gz /cryptohash-sha256-0.11.101.0.tar.gz
/cryptohash-sha256-0.11.102.0.tar.gz

View File

@ -1,149 +1,135 @@
cabal-version: 2.0 cabal-version: 1.12
name: cryptohash-sha256 name: cryptohash-sha256
version: 0.11.102.0 version: 0.11.101.0
x-revision: 1 x-revision: 2
synopsis: Fast, pure and practical SHA-256 implementation synopsis: Fast, pure and practical SHA-256 implementation
description: { description: {
A practical incremental and one-pass, pure API to A practical incremental and one-pass, pure API to
the [SHA-256 cryptographic hash algorithm](https://en.wikipedia.org/wiki/SHA-2) according 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) 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. with performance close to the fastest implementations available in other languages.
. .
The core SHA-256 algorithm is implemented in C and is thus expected 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); 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 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. 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).) (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
. .
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)
- 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..
. .
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.. === Packages in the @cryptohash-*@ family
. .
=== Relationship to the @cryptohash@ package and its API - <https://hackage.haskell.org/package/cryptohash-md5 cryptohash-md5>
. - <https://hackage.haskell.org/package/cryptohash-sha1 cryptohash-sha1>
This package has been originally a fork of @cryptohash-0.11.7@ because the @cryptohash@ - <https://hackage.haskell.org/package/cryptohash-sha256 cryptohash-sha256>
package had been deprecated and so this package continues to satisfy the need for a - <https://hackage.haskell.org/package/cryptohash-sha512 cryptohash-sha512>
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 === Relationship to the @cryptohash@ package and its API
"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. 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
Consequently, this package is designed to be used as a drop-in replacement for @cryptohash-0.11.7@'s lightweight package providing the SHA-256 hash algorithm without any dependencies on packages
"Crypto.Hash.SHA256" module, though with other than @base@ and @bytestring@. The API exposed by @cryptohash-sha256-0.11.*@'s
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/). "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
license: BSD3 "Crypto.Hash.SHA256" module, though with
license-file: LICENSE 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/).
copyright: Vincent Hanquez, Herbert Valerio Riedel
maintainer: Herbert Valerio Riedel <hvr@gnu.org> }
homepage: https://github.com/hvr/cryptohash-sha256
bug-reports: https://github.com/hvr/cryptohash-sha256/issues license: BSD3
category: Data, Cryptography license-file: LICENSE
build-type: Simple copyright: Vincent Hanquez, Herbert Valerio Riedel
tested-with: GHC == 7.4.2 maintainer: Herbert Valerio Riedel <hvr@gnu.org>
, GHC == 7.6.3 homepage: https://github.com/hvr/cryptohash-sha256
, GHC == 7.8.4 bug-reports: https://github.com/hvr/cryptohash-sha256/issues
, GHC == 7.10.3 category: Data, Cryptography
, GHC == 8.0.2 build-type: Simple
, GHC == 8.2.2 tested-with: GHC == 7.4.2
, GHC == 8.4.4 , GHC == 7.6.3
, GHC == 8.6.5 , GHC == 7.8.4
, GHC == 8.8.3 , GHC == 7.10.3
, GHC == 8.10.1 , GHC == 8.0.2
, GHC == 8.2.1
extra-source-files: cbits/hs_sha256.h , GHC == 8.4.1
changelog.md
extra-source-files: cbits/hs_sha256.h
source-repository head changelog.md
type: git
location: https://github.com/hvr/cryptohash-sha256.git source-repository head
type: git
flag exe location: https://github.com/hvr/cryptohash-sha256.git
description: Enable building @sha256sum@ executable
manual: True flag exe
default: False description: Enable building @sha256sum@ executable
manual: True
flag use-cbits default: False
description: Use fast optimized C routines via FFI; if flag is disabled falls back to non-FFI Haskell optimized implementation.
manual: True library
default: True default-language: Haskell2010
other-extensions: BangPatterns
library CApiFFI
default-language: Haskell2010 Trustworthy
Unsafe
ghc-options: -Wall
build-depends: base >= 4.5 && < 4.13
build-depends: base >= 4.5 && < 4.16 , bytestring >= 0.9.2 && < 0.11
exposed-modules: Crypto.Hash.SHA256 ghc-options: -Wall
if flag(use-cbits) hs-source-dirs: src
build-depends: bytestring ^>= 0.9.2 || ^>= 0.10.0 || ^>= 0.11.0 exposed-modules: Crypto.Hash.SHA256
other-modules: Crypto.Hash.SHA256.FFI
other-extensions: BangPatterns include-dirs: cbits
CApiFFI
CPP executable sha256sum
Trustworthy hs-source-dirs: src-exe
Unsafe main-is: sha256sum.hs
ghc-options: -Wall -threaded
hs-source-dirs: src if flag(exe)
other-modules: Crypto.Hash.SHA256.FFI default-language: Haskell2010
Compat other-extensions: RecordWildCards
include-dirs: cbits build-depends: cryptohash-sha256
else , base
hs-source-dirs: src-pure , bytestring
build-depends: cryptohash-sha256-pure ^>= 0.1.0
, base16-bytestring >= 0.1.1 && < 0.2
executable sha256sum else
default-language: Haskell2010 buildable: False
hs-source-dirs: src-exe
main-is: sha256sum.hs test-suite test-sha256
ghc-options: -Wall -threaded default-language: Haskell2010
if flag(exe) other-extensions: OverloadedStrings
other-extensions: RecordWildCards type: exitcode-stdio-1.0
build-depends: cryptohash-sha256 hs-source-dirs: src-tests
, base main-is: test-sha256.hs
, bytestring ghc-options: -Wall -threaded
build-depends: cryptohash-sha256
, base16-bytestring ^>= 0.1.1 || ^>= 1.0.0 , base
else , bytestring
buildable: False
, base16-bytestring >= 0.1.1 && < 0.2
test-suite test-sha256 , SHA >= 1.6.4 && < 1.7
default-language: Haskell2010 , tasty == 0.11.*
other-extensions: OverloadedStrings , tasty-quickcheck == 0.8.*
type: exitcode-stdio-1.0 , tasty-hunit == 0.9.*
hs-source-dirs: src-tests
main-is: test-sha256.hs benchmark bench-sha256
ghc-options: -Wall -threaded default-language: Haskell2010
build-depends: cryptohash-sha256 other-extensions: BangPatterns
, base type: exitcode-stdio-1.0
, bytestring main-is: bench-sha256.hs
hs-source-dirs: src-bench
, base16-bytestring ^>= 0.1.1 || ^>= 1.0.0 build-depends: cryptohash-sha256
, SHA ^>= 1.6.4 , base
, tasty ^>= 1.1 , bytestring
, tasty-quickcheck ^>= 0.10 , criterion == 1.1.*
, tasty-hunit ^>= 0.10
benchmark bench-sha256
default-language: Haskell2010
other-extensions: BangPatterns
type: exitcode-stdio-1.0
main-is: bench-sha256.hs
hs-source-dirs: src-bench
build-depends: cryptohash-sha256
, cryptohash-sha256-pure ^>= 0.1.0
, SHA ^>= 1.6.4
, base
, bytestring
, criterion ^>= 1.5

View File

@ -1,15 +1,14 @@
# generated by cabal-rpm-2.0.10 # generated by cabal-rpm-0.13
# https://docs.fedoraproject.org/en-US/packaging-guidelines/Haskell/ # https://fedoraproject.org/wiki/Packaging:Haskell
%global pkg_name cryptohash-sha256 %global pkg_name cryptohash-sha256
%global pkgver %{pkg_name}-%{version} %global pkgver %{pkg_name}-%{version}
# tasty versions
%bcond_with tests %bcond_with tests
Name: ghc-%{pkg_name} Name: ghc-%{pkg_name}
Version: 0.11.102.0 Version: 0.11.101.0
Release: 1%{?dist} Release: 5%{?dist}
Summary: Fast, pure and practical SHA-256 implementation Summary: Fast, pure and practical SHA-256 implementation
License: BSD License: BSD
@ -20,11 +19,9 @@ Source1: https://hackage.haskell.org/package/%{pkgver}/%{pkg_name}.cabal#
# End cabal-rpm sources # End cabal-rpm sources
# Begin cabal-rpm deps: # Begin cabal-rpm deps:
BuildRequires: dos2unix
BuildRequires: ghc-Cabal-devel BuildRequires: ghc-Cabal-devel
BuildRequires: ghc-rpm-macros BuildRequires: ghc-rpm-macros
BuildRequires: ghc-base-prof BuildRequires: ghc-bytestring-devel
BuildRequires: ghc-bytestring-prof
%if %{with tests} %if %{with tests}
BuildRequires: ghc-SHA-devel BuildRequires: ghc-SHA-devel
BuildRequires: ghc-base16-bytestring-devel BuildRequires: ghc-base16-bytestring-devel
@ -36,10 +33,15 @@ BuildRequires: ghc-tasty-quickcheck-devel
%description %description
A practical incremental and one-pass, pure API to the SHA-256 hash algorithm A practical incremental and one-pass, pure API to the SHA-256 hash algorithm
according to FIPS 180-4 with performance close to the fastest implementations (including HMAC support) with performance close to the fastest implementations
available in other languages. available in other languages.
This package can be used as a drop-in replacement for 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 cryptohash's "Crypto.Hash.SHA256" module, though with a clearly smaller
footprint. footprint.
@ -47,9 +49,11 @@ footprint.
%package devel %package devel
Summary: Haskell %{pkg_name} library development files Summary: Haskell %{pkg_name} library development files
Provides: %{name}-static = %{version}-%{release} Provides: %{name}-static = %{version}-%{release}
Provides: %{name}-static%{?_isa} = %{version}-%{release} Provides: %{name}-doc = %{version}-%{release}
%if %{defined ghc_version} %if %{defined ghc_version}
Requires: ghc-compiler = %{ghc_version} Requires: ghc-compiler = %{ghc_version}
Requires(post): ghc-compiler = %{ghc_version}
Requires(postun): ghc-compiler = %{ghc_version}
%endif %endif
Requires: %{name}%{?_isa} = %{version}-%{release} Requires: %{name}%{?_isa} = %{version}-%{release}
@ -58,32 +62,10 @@ This package provides the Haskell %{pkg_name} library development
files. files.
%if %{with haddock}
%package doc
Summary: Haskell %{pkg_name} library documentation
BuildArch: noarch
Requires: ghc-filesystem
%description doc
This package provides the Haskell %{pkg_name} library documentation.
%endif
%if %{with ghc_prof}
%package prof
Summary: Haskell %{pkg_name} profiling library
Requires: %{name}-devel%{?_isa} = %{version}-%{release}
Supplements: (%{name}-devel and ghc-prof)
%description prof
This package provides the Haskell %{pkg_name} profiling library.
%endif
%prep %prep
# Begin cabal-rpm setup: # Begin cabal-rpm setup:
%setup -q -n %{pkgver} %setup -q -n %{pkgver}
dos2unix -k -n %{SOURCE1} %{pkg_name}.cabal cp -bp %{SOURCE1} %{pkg_name}.cabal
# End cabal-rpm setup # End cabal-rpm setup
@ -100,9 +82,15 @@ dos2unix -k -n %{SOURCE1} %{pkg_name}.cabal
%check %check
%if %{with tests}
%cabal_test %cabal_test
%endif
%post devel
%ghc_pkg_recache
%postun devel
%ghc_pkg_recache
%files -f %{name}.files %files -f %{name}.files
@ -115,45 +103,7 @@ dos2unix -k -n %{SOURCE1} %{pkg_name}.cabal
%doc changelog.md %doc changelog.md
%if %{with haddock}
%files doc -f %{name}-doc.files
%license LICENSE
%endif
%if %{with ghc_prof}
%files prof -f %{name}-prof.files
%endif
%changelog %changelog
* Thu Aug 5 2021 Jens Petersen <petersen@redhat.com> - 0.11.102.0-1
- update to 0.11.102.0
* Thu Jul 22 2021 Fedora Release Engineering <releng@fedoraproject.org> - 0.11.101.0-13
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 0.11.101.0-12
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Mon Jul 27 2020 Fedora Release Engineering <releng@fedoraproject.org> - 0.11.101.0-11
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Fri Jul 17 2020 Jens Petersen <petersen@redhat.com> - 0.11.101.0-10
- refresh to cabal-rpm-2.0.6
* Wed Feb 19 2020 Jens Petersen <petersen@redhat.com> - 0.11.101.0-9
- revise .cabal and refresh to cabal-rpm-2.0.2
* Tue Jan 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 0.11.101.0-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Thu Aug 01 2019 Jens Petersen <petersen@redhat.com> - 0.11.101.0-7
- add doc and prof subpackages (cabal-rpm-1.0.0)
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.11.101.0-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Sun Feb 17 2019 Jens Petersen <petersen@redhat.com> - 0.11.101.0-5 * Sun Feb 17 2019 Jens Petersen <petersen@redhat.com> - 0.11.101.0-5
- refresh to cabal-rpm-0.13 - refresh to cabal-rpm-0.13

View File

@ -1 +1 @@
SHA512 (cryptohash-sha256-0.11.102.0.tar.gz) = d55663f24c9c24370c85b2cd22a8aceff6c81de5ee278bc85ebef35868310a0df02dedf8247c201d0c086172845def4a910650756ce225385f2e5801ac1019c7 SHA512 (cryptohash-sha256-0.11.101.0.tar.gz) = c755f1354fb5f1d6cfb54f73e39692392517954118d98b39ac4be7460e75a9ddc91ad641fed0f17e5fa33b62b7b0734af66526ea757e00716832572bb383c612