Merge branch 'master' into concurrentprogress
Conflicts: Command/Fsck.hs Messages.hs Remote/Directory.hs Remote/Git.hs Remote/Helper/Special.hs Types/Remote.hs debian/changelog git-annex.cabal
This commit is contained in:
commit
e27b97d364
378 changed files with 4978 additions and 1158 deletions
|
@ -1,6 +1,6 @@
|
|||
{- git-annex crypto types
|
||||
-
|
||||
- Copyright 2011-2012 Joey Hess <id@joeyh.name>
|
||||
- Copyright 2011-2015 Joey Hess <id@joeyh.name>
|
||||
-
|
||||
- Licensed under the GNU GPL version 3 or higher.
|
||||
-}
|
||||
|
@ -17,9 +17,7 @@ module Types.Crypto (
|
|||
calcMac,
|
||||
) where
|
||||
|
||||
import qualified Data.ByteString.Lazy as L
|
||||
import Data.Digest.Pure.SHA
|
||||
|
||||
import Utility.Hash
|
||||
import Utility.Gpg (KeyIds(..))
|
||||
|
||||
-- XXX ideally, this would be a locked memory region
|
||||
|
@ -31,13 +29,6 @@ data StorableCipher = EncryptedCipher String EncryptedCipherVariant KeyIds
|
|||
data EncryptedCipherVariant = Hybrid | PubKey
|
||||
deriving (Ord, Eq)
|
||||
|
||||
{- File names are (client-side) MAC'ed on special remotes.
|
||||
- The chosen MAC algorithm needs to be same for all files stored on the
|
||||
- remote.
|
||||
-}
|
||||
data Mac = HmacSha1 | HmacSha224 | HmacSha256 | HmacSha384 | HmacSha512
|
||||
deriving (Eq)
|
||||
|
||||
defaultMac :: Mac
|
||||
defaultMac = HmacSha1
|
||||
|
||||
|
@ -57,17 +48,3 @@ readMac "HMACSHA256" = Just HmacSha256
|
|||
readMac "HMACSHA384" = Just HmacSha384
|
||||
readMac "HMACSHA512" = Just HmacSha512
|
||||
readMac _ = Nothing
|
||||
|
||||
calcMac
|
||||
:: Mac -- ^ MAC
|
||||
-> L.ByteString -- ^ secret key
|
||||
-> L.ByteString -- ^ message
|
||||
-> String -- ^ MAC'ed message, in hexadecimal
|
||||
calcMac mac = case mac of
|
||||
HmacSha1 -> showDigest $* hmacSha1
|
||||
HmacSha224 -> showDigest $* hmacSha224
|
||||
HmacSha256 -> showDigest $* hmacSha256
|
||||
HmacSha384 -> showDigest $* hmacSha384
|
||||
HmacSha512 -> showDigest $* hmacSha512
|
||||
where
|
||||
($*) g f x y = g $ f x y
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
module Types.DesktopNotify where
|
||||
|
||||
import Data.Monoid
|
||||
import Prelude
|
||||
|
||||
data DesktopNotify = DesktopNotify
|
||||
{ notifyStart :: Bool
|
||||
|
|
|
@ -20,9 +20,10 @@ import Utility.PartialPrelude
|
|||
import qualified Git
|
||||
import qualified Git.Config
|
||||
|
||||
import qualified Data.Set as S
|
||||
import Data.Maybe
|
||||
import Data.Monoid
|
||||
import qualified Data.Set as S
|
||||
import Prelude
|
||||
|
||||
-- Describes differences from the v5 repository format.
|
||||
--
|
||||
|
|
|
@ -66,7 +66,8 @@ data RemoteA a = Remote {
|
|||
-- (The MeterUpdate does not need to be used if it retrieves
|
||||
-- directly to the file, and not to an intermediate file.)
|
||||
retrieveKeyFile :: Key -> AssociatedFile -> FilePath -> MeterUpdate -> a Bool,
|
||||
-- retrieves a key's contents to a tmp file, if it can be done cheaply
|
||||
-- Retrieves a key's contents to a tmp file, if it can be done cheaply.
|
||||
-- It's ok to create a symlink or hardlink.
|
||||
retrieveKeyFileCheap :: Key -> AssociatedFile -> FilePath -> a Bool,
|
||||
-- removes a key's contents (succeeds if the contents are not present)
|
||||
removeKey :: Key -> a Bool,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue