secret-sharing 1.0.1.0 → 1.0.1.1
raw patch · 4 files changed
+96/−65 lines, 4 filesdep ~bytestringsetup-changedPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: bytestring
API changes (from Hackage documentation)
Files
- ChangeLog.md +10/−0
- README.md +28/−0
- Setup.hs +0/−2
- secret-sharing.cabal +58/−63
+ ChangeLog.md view
@@ -0,0 +1,10 @@+# Changelog for secret-sharing++## Unreleased changes++* None++## 1.0.1.1++* Make it build with `stack`.+* Updated dependencies.
+ README.md view
@@ -0,0 +1,28 @@+Implementation of an (`m`,`n`)-threshold secret sharing scheme.+A given ByteString `b` (the secret) is split into `n` shares,+and any `m` shares are sufficient to reconstruct `b`.+The scheme preserves information-theoretic perfect secrecy in the sense that the knowledge of up+to `m-1` shares does not reveal any information about the secret `b`.++*Example in GHCi:*+Suppose that you want to split the string "my secret data" into n=5 shares such that+at least m=3 shares are necessary to reconstruct the secret.++~~~+❯ :m + Data.ByteString.Lazy.Char8 Crypto.SecretSharing+❯ let secret = pack "my secret message!"+❯ shares <- encode 3 5 secret+❯ mapM_ (Prelude.putStrLn . show) shares -- each share should be deposited at a different site.+(1,"\134\168\154\SUBV\248\CAN:\250y<\GS\EOT*\t\222_\140")+(2,"\225\206\241\136\SUBse\199r\169\162\131D4\179P\210x")+(3,"~\238%\192\174\206\\\f\214\173\162\148\&3\139_\183\193\235")+(4,"Z\b0\188\DC2\f\247\f,\136\&6S\209\&5\n\FS,\223")+(5,"x\EM\CAN\DELI*<\193q7d\192!/\183v\DC3T")+❯ let shares' = Prelude.drop 2 shares+❯ decode shares'+"my secret message!"+~~~++The mathematics behind the secret sharing scheme is described in:+\"/How to share a secret/.\" by Adi Shamir.+In Communications of the ACM 22 (11): 612–613, 1979.
− Setup.hs
@@ -1,2 +0,0 @@-import Distribution.Simple-main = defaultMain
secret-sharing.cabal view
@@ -1,70 +1,65 @@-name: secret-sharing-version: 1.0.1.0-synopsis: Information-theoretic secure secret sharing-description:- Implementation of an (@m@,@n@)-threshold secret sharing scheme.- A given ByteString @b@ (the secret) is split into @n@ shares,- and any @m@ shares are sufficient to reconstruct @b@.- The scheme preserves information-theoretic perfect secrecy in the sense that the knowledge of up- to @m-1@ shares does not reveal any information about the secret @b@.- .- /Example in GHCi:/- Suppose that you want to split the string \"my secret data\" into n=5 shares such that- at least m=3 shares are necessary to reconstruct the secret.- .- >> :m + Data.ByteString.Lazy.Char8 Crypto.SecretSharing- >> let secret = pack "my secret message!"- >> shares <- encode 3 5 secret- >> mapM_ (Prelude.putStrLn . show) shares -- each share should be deposited at a different site.- > (1,"\134\168\154\SUBV\248\CAN:\250y<\GS\EOT*\t\222_\140")- > (2,"\225\206\241\136\SUBse\199r\169\162\131D4\179P\210x")- > (3,"~\238%\192\174\206\\\f\214\173\162\148\&3\139_\183\193\235")- > (4,"Z\b0\188\DC2\f\247\f,\136\&6S\209\&5\n\FS,\223")- > (5,"x\EM\CAN\DELI*<\193q7d\192!/\183v\DC3T")- >> let shares' = Prelude.drop 2 shares- >> decode shares'- > "my secret message!"- .- The mathematics behind the secret sharing scheme is described in:- \"/How to share a secret/.\" by Adi Shamir.- In Communications of the ACM 22 (11): 612–613, 1979.-license: LGPL-2.1-license-file: LICENSE-author: Peter Robinson <peter.robinson@monoid.at>-maintainer: peter.robinson@monoid.at-copyright: Peter Robinson 2014-category: Cryptography-build-type: Simple-cabal-version: >=1.8-homepage: https://github.com/pwrobinson/secret-sharing-stability: experimental+cabal-version: 1.12 +-- This file has been generated from package.yaml by hpack version 0.31.2.+--+-- see: https://github.com/sol/hpack+--+-- hash: c1b1eeaf605102f858663726f0899511ab89b9122b1205e48ea433922ddfbd3f++name: secret-sharing+version: 1.0.1.1+synopsis: Information-theoretic secure secret sharing+description: Please see the README on GitHub at <https://github.com/pwrobinson/secret-sharing#readme>+category: Data, Cryptography+homepage: https://github.com/pwrobinson/secret-sharing#readme+bug-reports: https://github.com/pwrobinson/secret-sharing/issues+author: Peter Robinson+maintainer: pwr@lowerbound.io+copyright: 2014-2020 Peter Robinson+license: LGPL-2.1+license-file: LICENSE+build-type: Simple+extra-source-files:+ README.md+ ChangeLog.md+ source-repository head type: git location: https://github.com/pwrobinson/secret-sharing library- hs-source-dirs: src- exposed-modules: Crypto.SecretSharing- Crypto.SecretSharing.Internal-- build-depends: base >=4.6 && < 5,- bytestring ==0.10.*,- dice-entropy-conduit >= 1.0.0.0,- binary >=0.5.1.1,- vector >=0.10.11.0,- finite-field >=0.8.0- ghc-options: -Wall-+ exposed-modules:+ Crypto.SecretSharing+ Crypto.SecretSharing.Internal+ other-modules:+ Paths_secret_sharing+ hs-source-dirs:+ src+ build-depends:+ base >=4.6 && <5+ , binary >=0.5.1.1+ , bytestring >=0.10.0.2+ , dice-entropy-conduit >=1.0.0.0+ , finite-field >=0.8.0+ , vector >=0.10.11.0+ default-language: Haskell2010 -test-suite Main- type: exitcode-stdio-1.0- x-uses-tf: true- build-depends: base >= 4 && < 5,- bytestring ==0.10.*,- QuickCheck >= 2.4,- secret-sharing,- test-framework >= 0.4.1,- test-framework-quickcheck2- hs-source-dirs: tests- main-is: Tests.hs+test-suite secret-sharing-test+ type: exitcode-stdio-1.0+ main-is: Tests.hs+ other-modules:+ Paths_secret_sharing+ hs-source-dirs:+ tests+ build-depends:+ QuickCheck >=2.4+ , base >=4 && <5+ , binary >=0.5.1.1+ , bytestring >=0.10.0.2+ , dice-entropy-conduit >=1.0.0.0+ , finite-field >=0.8.0+ , secret-sharing+ , test-framework >=0.4.1+ , test-framework-quickcheck2+ , vector >=0.10.11.0+ default-language: Haskell2010