From fad7824a13580f505549cc746589c94542bec9cb Mon Sep 17 00:00:00 2001 From: Félix Sipma Date: Fri, 23 Feb 2018 16:33:00 +0100 Subject: rename Dhparams to Openssl --- src/Propellor/Property/Openssl.hs | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 src/Propellor/Property/Openssl.hs (limited to 'src/Propellor/Property/Openssl.hs') diff --git a/src/Propellor/Property/Openssl.hs b/src/Propellor/Property/Openssl.hs new file mode 100644 index 00000000..eb373e49 --- /dev/null +++ b/src/Propellor/Property/Openssl.hs @@ -0,0 +1,26 @@ +-- | Maintainer: Félix Sipma + +module Propellor.Property.Openssl where + +import Propellor.Base +import qualified Propellor.Property.Apt as Apt +import qualified Propellor.Property.File as File +import Utility.FileMode +import Utility.SafeCommand + + +dhparamsLength :: Int +dhparamsLength = 2048 + +dhparams :: FilePath +dhparams = "/etc/ssl/private/dhparams.pem" + +safeDhparams :: Property DebianLike +safeDhparams = propertyList "safe dhparams" $ props + & File.dirExists (takeDirectory file) + & Apt.installed ["openssl"] + & check (not <$> doesFileExist file) (createDhparams file length') + +createDhparams :: FilePath -> Int -> Property UnixLike +createDhparams f l = property ("generate new dhparams: " ++ f) $ liftIO $ withUmask 0o0177 $ withFile f WriteMode $ \h -> + cmdResult <$> boolSystem' "openssl" [Param "dhparam", Param (show l)] (\p -> p { std_out = UseHandle h }) -- cgit v1.3-2-g0d8e From 788ad7bcff61147dbdde484d8d56ff6aead82659 Mon Sep 17 00:00:00 2001 From: Félix Sipma Date: Fri, 23 Feb 2018 16:33:53 +0100 Subject: add installed property to Openssl --- src/Propellor/Property/Openssl.hs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src/Propellor/Property/Openssl.hs') diff --git a/src/Propellor/Property/Openssl.hs b/src/Propellor/Property/Openssl.hs index eb373e49..1967301c 100644 --- a/src/Propellor/Property/Openssl.hs +++ b/src/Propellor/Property/Openssl.hs @@ -9,6 +9,9 @@ import Utility.FileMode import Utility.SafeCommand +installed :: Property DebianLike +installed = Apt.installed ["openssl"] + dhparamsLength :: Int dhparamsLength = 2048 @@ -18,7 +21,7 @@ dhparams = "/etc/ssl/private/dhparams.pem" safeDhparams :: Property DebianLike safeDhparams = propertyList "safe dhparams" $ props & File.dirExists (takeDirectory file) - & Apt.installed ["openssl"] + & installed & check (not <$> doesFileExist file) (createDhparams file length') createDhparams :: FilePath -> Int -> Property UnixLike -- cgit v1.3-2-g0d8e From c16bc5a806d0020f608a35185127430b65253981 Mon Sep 17 00:00:00 2001 From: Félix Sipma Date: Sat, 24 Feb 2018 21:31:03 +0100 Subject: Openssl: fix typo --- src/Propellor/Property/Openssl.hs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/Propellor/Property/Openssl.hs') diff --git a/src/Propellor/Property/Openssl.hs b/src/Propellor/Property/Openssl.hs index 1967301c..a91b8195 100644 --- a/src/Propellor/Property/Openssl.hs +++ b/src/Propellor/Property/Openssl.hs @@ -20,9 +20,9 @@ dhparams = "/etc/ssl/private/dhparams.pem" safeDhparams :: Property DebianLike safeDhparams = propertyList "safe dhparams" $ props - & File.dirExists (takeDirectory file) + & File.dirExists (takeDirectory dhparams) & installed - & check (not <$> doesFileExist file) (createDhparams file length') + & check (not <$> doesFileExist dhparams) (createDhparams dhparams dhparamsLength) createDhparams :: FilePath -> Int -> Property UnixLike createDhparams f l = property ("generate new dhparams: " ++ f) $ liftIO $ withUmask 0o0177 $ withFile f WriteMode $ \h -> -- cgit v1.3-2-g0d8e