summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2011-04-16 16:41:46 -0400
committerGravatar Joey Hess <joey@kitenet.net>2011-04-16 16:41:46 -0400
commit9fe7e6be7064d9c47e6c6fd4f1b3a70da604727d (patch)
tree503537ba2b11d71f3bea9bd95ee0ca43a73880f7
parent5efd41327045f8da55c972b7391309c99dee5afc (diff)
add cipher field to AnnexState
-rw-r--r--Annex.hs5
-rw-r--r--Crypto.hs13
-rw-r--r--CryptoTypes.hs22
3 files changed, 27 insertions, 13 deletions
diff --git a/Annex.hs b/Annex.hs
index f4e5d599d..9086db9bf 100644
--- a/Annex.hs
+++ b/Annex.hs
@@ -22,6 +22,7 @@ import qualified GitRepo as Git
import qualified GitQueue
import qualified BackendClass
import qualified RemoteClass
+import qualified CryptoTypes
-- git-annex's monad
type Annex = StateT AnnexState IO
@@ -41,7 +42,8 @@ data AnnexState = AnnexState
, toremote :: Maybe String
, fromremote :: Maybe String
, exclude :: [String]
- } deriving (Show)
+ , cipher :: Maybe CryptoTypes.Cipher
+ }
newState :: Git.Repo -> [BackendClass.Backend Annex] -> AnnexState
newState gitrepo allbackends = AnnexState
@@ -58,6 +60,7 @@ newState gitrepo allbackends = AnnexState
, toremote = Nothing
, fromremote = Nothing
, exclude = []
+ , cipher = Nothing
}
{- Create and returns an Annex state object for the specified git repo. -}
diff --git a/Crypto.hs b/Crypto.hs
index 2e20dddb1..337aedff6 100644
--- a/Crypto.hs
+++ b/Crypto.hs
@@ -36,18 +36,7 @@ import Types
import Key
import RemoteClass
import Utility
-
-data Cipher = Cipher String -- XXX ideally, this would be a locked memory region
-
-data EncryptedCipher = EncryptedCipher String KeyIds
-
-data KeyIds = KeyIds [String]
-
-instance Show KeyIds where
- show (KeyIds ks) = join "," ks
-
-instance Read KeyIds where
- readsPrec _ s = [(KeyIds (split "," s), "")]
+import CryptoTypes
{- Creates a new Cipher, encrypted as specified in the remote's configuration -}
genCipher :: RemoteConfig -> IO EncryptedCipher
diff --git a/CryptoTypes.hs b/CryptoTypes.hs
new file mode 100644
index 000000000..944a9d34e
--- /dev/null
+++ b/CryptoTypes.hs
@@ -0,0 +1,22 @@
+{- git-annex crypto types
+ -
+ - Copyright 2011 Joey Hess <joey@kitenet.net>
+ -
+ - Licensed under the GNU GPL version 3 or higher.
+ -}
+
+module CryptoTypes where
+
+import Data.String.Utils
+
+data Cipher = Cipher String -- XXX ideally, this would be a locked memory region
+
+data EncryptedCipher = EncryptedCipher String KeyIds
+
+data KeyIds = KeyIds [String]
+
+instance Show KeyIds where
+ show (KeyIds ks) = join "," ks
+
+instance Read KeyIds where
+ readsPrec _ s = [(KeyIds (split "," s), "")]