summaryrefslogtreecommitdiff
path: root/src/Propellor
diff options
context:
space:
mode:
authorJoey Hess2015-01-04 15:59:42 -0400
committerJoey Hess2015-01-04 15:59:54 -0400
commit84685f24c9614d5f2c19851b4c63744bcb037241 (patch)
tree3f466362dfb5ffc0cbe0ed02e720ab203f47489f /src/Propellor
parentf1a1d0001a4c9bbfb0d658131314d014d7deb5c8 (diff)
Ssh.hostKeys now also installs any available SshEd25519 keys.
Diffstat (limited to 'src/Propellor')
-rw-r--r--src/Propellor/Property/Ssh.hs9
-rw-r--r--src/Propellor/Types/PrivData.hs2
2 files changed, 4 insertions, 7 deletions
diff --git a/src/Propellor/Property/Ssh.hs b/src/Propellor/Property/Ssh.hs
index 9a0b2153..301c628b 100644
--- a/src/Propellor/Property/Ssh.hs
+++ b/src/Propellor/Property/Ssh.hs
@@ -90,13 +90,10 @@ pubKey t k = pureInfoProperty ("ssh pubkey known") $
getPubKey :: Propellor (M.Map SshKeyType String)
getPubKey = asks (_sshPubKey . hostInfo)
--- | Installs all commonly used types of ssh host keys.
+-- | Installs all available types of ssh host keys.
hostKeys :: IsContext c => c -> Property
-hostKeys ctx = propertyList "known ssh host keys"
- [ hostKey SshDsa ctx
- , hostKey SshRsa ctx
- , hostKey SshEcdsa ctx
- ]
+hostKeys ctx = propertyList "known ssh host keys" $
+ map (flip hostKey ctx) [minBound..maxBound]
-- | Installs a single ssh host key.
--
diff --git a/src/Propellor/Types/PrivData.hs b/src/Propellor/Types/PrivData.hs
index d6941a77..c760ae55 100644
--- a/src/Propellor/Types/PrivData.hs
+++ b/src/Propellor/Types/PrivData.hs
@@ -90,7 +90,7 @@ hostContext = HostContext Context
type PrivData = String
data SshKeyType = SshRsa | SshDsa | SshEcdsa | SshEd25519
- deriving (Read, Show, Ord, Eq)
+ deriving (Read, Show, Ord, Eq, Enum, Bounded)
-- | Parameter that would be passed to ssh-keygen to generate key of this type
sshKeyTypeParam :: SshKeyType -> String