resign zone if keys change

This commit is contained in:
Joey Hess 2015-01-04 13:13:06 -04:00
parent 01d8ab0cfd
commit d6c8ddb955
3 changed files with 9 additions and 7 deletions

View File

@ -136,7 +136,6 @@ signedPrimary recurrance hosts domain soa rs = RevertableProperty setup cleanup
-- TODO put signed zone file in named.conf.
-- TODO enable dnssec options.
-- dnssec-enable yes; dnssec-validation yes; dnssec-lookaside auto;
-- TODO if keys change, resign zone file.
-- TODO write to entirely different files than does primary,
-- so that primary can be reverted and signedPrimary enabled,
-- or vice-versa, without conflicts.

View File

@ -53,15 +53,18 @@ zoneSigned domain zonefile = RevertableProperty setup cleanup
dssetfile = dir </> "-" ++ domain ++ "."
dir = takeDirectory zonefile
-- Need to update the signed zone if the zone file
-- has a newer timestamp.
-- Need to update the signed zone file if the zone file or
-- any of the keys have a newer timestamp.
needupdate = do
v <- catchMaybeIO $ getModificationTime signedzonefile
case v of
Nothing -> return True
Just t1 -> do
t2 <- getModificationTime zonefile
return (t2 >= t1)
Just t1 -> anyM (newerthan t1) $
zonefile : map (keyFn domain) [minBound..maxBound]
newerthan t1 f = do
t2 <- getModificationTime f
return (t2 >= t1)
forceZoneSigned :: Domain -> FilePath -> Property
forceZoneSigned domain zonefile = property ("zone signed for " ++ domain) $ liftIO $ do

View File

@ -104,4 +104,4 @@ data DnsSecKey
| PrivZSK -- ^ DNSSEC Zone Signing Key (private)
| PubKSK -- ^ DNSSEC Key Signing Key (public)
| PrivKSK -- ^ DNSSEC Key Signing Key (private)
deriving (Read, Show, Ord, Eq)
deriving (Read, Show, Ord, Eq, Bounded, Enum)