uuid-crypto 1.3.1.0 → 1.4.0.0
raw patch · 4 files changed
+54/−17 lines, 4 filesdep +cryptoids-classdep ~basedep ~binarydep ~bytestringPVP ok
version bump matches the API change (PVP)
Dependencies added: cryptoids-class
Dependency ranges changed: base, binary, bytestring, cryptoids, cryptoids-types, exceptions
API changes (from Hackage documentation)
- Data.UUID.Cryptographic: AlgorithmError :: CryptoError -> CryptoIDError
- Data.UUID.Cryptographic: CiphertextConversionFailed :: ByteString -> CryptoIDError
- Data.UUID.Cryptographic: CryptoID :: a -> CryptoID a
- Data.UUID.Cryptographic: DeserializationError :: CryptoIDError
- Data.UUID.Cryptographic: InvalidNamespaceDetected :: CryptoIDError
- Data.UUID.Cryptographic: NamespaceHashIsWrongLength :: ByteString -> CryptoIDError
- Data.UUID.Cryptographic: PlaintextIsWrongLength :: Int -> CryptoIDError
- Data.UUID.Cryptographic: [ciphertext] :: CryptoID a -> a
- Data.UUID.Cryptographic: data CryptoIDError :: *
- Data.UUID.Cryptographic: newtype CryptoID (namespace :: Symbol) a :: Symbol -> * -> *
+ Data.UUID.Cryptographic: instance (Data.CryptoID.Class.MonadCrypto m, Data.CryptoID.Class.MonadCryptoKey m ~ Data.CryptoID.ByteString.CryptoIDKey, GHC.TypeLits.KnownSymbol namespace, Data.Binary.Class.Binary a) => Data.CryptoID.Class.HasCryptoID namespace Data.UUID.Types.Internal.UUID a m
+ Data.UUID.Cryptographic: type HasCryptoUUID (namespace :: Symbol) = HasCryptoID namespace UUID
+ Data.UUID.Cryptographic.ImplicitNamespace: type CryptoUUID plaintext = CryptoID UUID plaintext
+ Data.UUID.Cryptographic.ImplicitNamespace: type HasCryptoUUID plaintext = HasCryptoID UUID plaintext
Files
- changes.md +3/−0
- src/Data/UUID/Cryptographic.hs +15/−4
- src/Data/UUID/Cryptographic/ImplicitNamespace.hs +19/−0
- uuid-crypto.cabal +17/−13
changes.md view
@@ -1,3 +1,6 @@+# 1.4.0.0+ - Add support for 'cryptoids-class'+ # 1.3.1.0 - Fix documentation mistake - Bump @cryptoids@ to @0.4.0.*@
src/Data/UUID/Cryptographic.hs view
@@ -1,4 +1,5 @@ {-# LANGUAGE ScopedTypeVariables #-}+{-# OPTIONS_GHC -fno-warn-orphans #-} {-| Description: Reversably generate UUIDs from arbitrary serializable types in a secure fashion@@ -17,16 +18,17 @@ where \(l\) is the length of the serialized payload. -} module Data.UUID.Cryptographic- ( CryptoID(..)- , CryptoUUID+ ( CryptoUUID+ , HasCryptoUUID , encrypt , decrypt- , CryptoIDError(..)+ , module Data.CryptoID.Poly ) where -import Data.CryptoID import Data.CryptoID.Poly hiding (encrypt, decrypt) import qualified Data.CryptoID.Poly as Poly (encrypt, decrypt)+import Data.CryptoID.Class (HasCryptoID)+import qualified Data.CryptoID.Class as Class (HasCryptoID(..)) import Data.UUID (UUID, toByteString, fromByteString) import Data.Binary@@ -39,6 +41,7 @@ type CryptoUUID (namespace :: Symbol) = CryptoID namespace UUID+type HasCryptoUUID (namespace :: Symbol) = HasCryptoID namespace UUID -- | Encrypt an arbitrary serializable value@@ -64,3 +67,11 @@ , MonadThrow m ) => CryptoIDKey -> CryptoUUID namespace -> m a decrypt = Poly.decrypt $ return . Lazy.ByteString.toStrict . toByteString++instance ( MonadCrypto m+ , MonadCryptoKey m ~ CryptoIDKey+ , KnownSymbol namespace+ , Binary a+ ) => HasCryptoID namespace UUID a m where+ encrypt = cryptoIDKey . flip encrypt+ decrypt = cryptoIDKey . flip decrypt
+ src/Data/UUID/Cryptographic/ImplicitNamespace.hs view
@@ -0,0 +1,19 @@+{-|+Description: Reversably generate UUIDs from arbitrary serializable types with implicit type level namespaces+License: BSD3+-}+module Data.UUID.Cryptographic.ImplicitNamespace+ ( CryptoUUID+ , HasCryptoUUID+ , module Data.UUID.Cryptographic+ , module Data.CryptoID.Class.ImplicitNamespace+ ) where++import Data.CryptoID.Class.ImplicitNamespace++import Data.UUID.Cryptographic hiding (encrypt, decrypt, CryptoID, HasCryptoID, CryptoUUID, HasCryptoUUID)++import Data.UUID (UUID)++type CryptoUUID plaintext = CryptoID UUID plaintext+type HasCryptoUUID plaintext = HasCryptoID UUID plaintext
uuid-crypto.cabal view
@@ -1,37 +1,41 @@ name: uuid-crypto-version: 1.3.1.0+version: 1.4.0.0 cabal-version: >=1.10 build-type: Simple license: BSD3 license-file: LICENSE-maintainer: aethoago@141.li+maintainer: Gregor Kleen <aethoago@141.li> synopsis: Reversable and secure encoding of object ids as uuids category: cryptography-author: Gregor Kleen+author: Gregor Kleen <aethoago@141.li> extra-source-files: changes.md source-repository head type: git- location: https://git.rheperire.org/cryptoids- subdir: uuid-crypto+ location: https://git.rheperire.org/cryptoids/uuid-crypto library exposed-modules: Data.UUID.Cryptographic+ Data.UUID.Cryptographic.ImplicitNamespace build-depends:- base >=4.9 && <4.11,- cryptoids-types ==0.0.0,- cryptoids ==0.4.0.*,- uuid >=1.3.13 && <1.4,- binary >=0.8.3.0 && <0.9,- bytestring >=0.10.8.1 && <0.11,- exceptions >=0.8.3 && <0.9+ base >=4.10.1.0 && <4.11,+ binary >=0.8.5.1 && <0.9,+ bytestring >=0.10.8.2 && <0.11,+ cryptoids >=0.5.0.0 && <0.6,+ cryptoids-class >=0.0.0 && <0.1,+ cryptoids-types >=0.0.0 && <0.1,+ exceptions >=0.8.3 && <0.9,+ uuid >=1.3.13 && <1.4 default-language: Haskell2010 default-extensions: KindSignatures ViewPatterns FlexibleContexts GeneralizedNewtypeDeriving PatternGuards RecordWildCards DataKinds- DeriveDataTypeable DeriveGeneric+ DeriveDataTypeable DeriveGeneric FlexibleInstances+ MultiParamTypeClasses TypeFamilies ConstraintKinds other-extensions: ScopedTypeVariables hs-source-dirs: src+ other-modules:+ Paths_uuid_crypto ghc-options: -Wall -fno-warn-name-shadowing