cryptocipher 0.3.4 → 0.3.5
raw patch · 3 files changed
+26/−10 lines, 3 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
Files
- Crypto/Cipher/AES/Haskell.hs +19/−6
- Crypto/Cipher/ElGamal.hs +6/−3
- cryptocipher.cabal +1/−1
Crypto/Cipher/AES/Haskell.hs view
@@ -315,13 +315,26 @@ cR0 it r0 r1 r2 r3 = (sbox r1 `xor` rcon it, sbox r2, sbox r3, sbox r0) +rotateR' :: Word32 -> Int -> Word32+rotateR' = case getSystemEndianness of+ LittleEndian -> rotateR+ BigEndian -> rotateL+{-# INLINE rotateR' #-}++rotateL' :: Word32 -> Int -> Word32+rotateL' = case getSystemEndianness of+ LittleEndian -> rotateL+ BigEndian -> rotateR+{-# INLINE rotateL' #-}++ {-# INLINE shiftRows #-} shiftRows :: AESState -> IO () shiftRows blk = do r32 blk 0 >>= w32 blk 0 . msbox32- r32 blk 1 >>= \t1 -> w32 blk 1 $ rotateR (msbox32 t1) 8- r32 blk 2 >>= \t2 -> w32 blk 2 $ rotateR (msbox32 t2) 16- r32 blk 3 >>= \t3 -> w32 blk 3 $ rotateR (msbox32 t3) 24+ r32 blk 1 >>= \t1 -> w32 blk 1 $ rotateR' (msbox32 t1) 8+ r32 blk 2 >>= \t2 -> w32 blk 2 $ rotateR' (msbox32 t2) 16+ r32 blk 3 >>= \t3 -> w32 blk 3 $ rotateR' (msbox32 t3) 24 {-# INLINE addRoundKey #-} addRoundKey :: Key -> Int -> AESState -> IO ()@@ -355,9 +368,9 @@ shiftRowsInv :: AESState -> IO () shiftRowsInv blk = do r32 blk 0 >>= w32 blk 0 . mrsbox32- r32 blk 1 >>= \t1 -> w32 blk 1 $ mrsbox32 $ rotateL t1 8- r32 blk 2 >>= \t2 -> w32 blk 2 $ mrsbox32 $ rotateL t2 16- r32 blk 3 >>= \t3 -> w32 blk 3 $ mrsbox32 $ rotateL t3 24+ r32 blk 1 >>= \t1 -> w32 blk 1 $ mrsbox32 $ rotateL' t1 8+ r32 blk 2 >>= \t2 -> w32 blk 2 $ mrsbox32 $ rotateL' t2 16+ r32 blk 3 >>= \t3 -> w32 blk 3 $ mrsbox32 $ rotateL' t3 24 {-# INLINE mixColumnsInv #-} mixColumnsInv :: AESState -> IO ()
Crypto/Cipher/ElGamal.hs view
@@ -21,13 +21,14 @@ , encryptWith , encrypt , decrypt+{- , sign , verify+-} ) where import Number.ModArithmetic (exponantiation, inverse)-import Number.Prime (generateSafePrime)-import Number.Generate (generateOfSize, generateBetween)+import Number.Generate (generateOfSize) import Crypto.Types.PubKey.DH import Crypto.Random import Control.Arrow (first)@@ -61,10 +62,12 @@ -- | decrypt message decrypt :: Params -> PrivateNumber -> (Integer, Integer) -> Integer-decrypt (p,g) (PrivateNumber a) (c1,c2) = (c2 * sm1) `mod` p+decrypt (p,_) (PrivateNumber a) (c1,c2) = (c2 * sm1) `mod` p where s = exponantiation c1 a p sm1 = fromJust $ inverse s p -- always inversible in Zp +{- sign = undefined verify = undefined+-}
cryptocipher.cabal view
@@ -1,5 +1,5 @@ Name: cryptocipher-Version: 0.3.4+Version: 0.3.5 Description: Symmetrical Block, Stream and PubKey Ciphers License: BSD3 License-file: LICENSE