X-Git-Url: http://git.cielonegro.org/gitweb.cgi?p=blackboard-dns.git;a=blobdiff_plain;f=ClientMain.hs;h=e979b95ecf525621b7d69c798f7f00d2a0ed2577;hp=b96b430275439d3a2b1cc52784b195af52e8e23e;hb=20021ec127c5574db472d88ff47cbf7e656969f4;hpb=3674500cd498050a48d69d1d30a6139ba3ba88f5 diff --git a/ClientMain.hs b/ClientMain.hs index b96b430..e979b95 100644 --- a/ClientMain.hs +++ b/ClientMain.hs @@ -1,17 +1,9 @@ module Main where import Control.Monad -import Control.Monad.Trans +import DDNS.Client.MakeReq import OpenSSL -import OpenSSL.PEM -import OpenSSL.RSA -import OpenSSL.X509.Request -import System.Console.Haskeline import System.Console.ParseArgs -import System.IO -import System.Posix.Files -import System.Posix.Uname - data Options = Help @@ -45,38 +37,3 @@ main = withOpenSSL $ "makereq" -> makeReq _ -> usageError m "" - - -makeReq :: IO () -makeReq - = do fqdn <- runInputT defaultSettings $ - do defaultFqdn <- liftM uNodeName $ liftIO uname - fqdn <- getInputLine ("What's your FQDN? (default: " ++ defaultFqdn ++ "): ") - case fqdn of - Just s@(_:_) -> return s - _ -> return defaultFqdn - - putStrLn "Generating RSA keypair..." - key <- generateRSAKey 1024 3 Nothing - - let pubFile = fqdn ++ ".pub" - withFile pubFile WriteMode $ \ h -> - writePublicKey key >>= hPutStr h - putStrLn ("Wrote " ++ pubFile) - - let keyFile = fqdn ++ ".key" - withFile keyFile WriteMode $ \ h -> - writePKCS8PrivateKey key Nothing >>= hPutStr h - setFileMode keyFile ownerReadMode - putStrLn ("Wrote " ++ keyFile ++ " (with no encryption)") - - req <- newX509Req - setVersion req 2 - setSubjectName req [("CN", fqdn)] - setPublicKey req key - signX509Req req key Nothing - let reqFile = fqdn ++ ".req" - withFile reqFile WriteMode $ \ h -> - writeX509Req req ReqNewFormat >>= hPutStr h - putStrLn ("Wrote " ++ reqFile) - putStrLn ("Now send " ++ reqFile ++ " to the server operator and tell him/her to sign it.") \ No newline at end of file