From f599e81c7a5625a79d56a14d03e6e36e12dbebd7 Mon Sep 17 00:00:00 2001 From: Andrew Cady Date: Fri, 22 Jan 2016 18:37:03 -0500 Subject: move key reading function into exported library --- src/Network/ACME.hs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/Network/ACME.hs b/src/Network/ACME.hs index f8135e6..2481163 100644 --- a/src/Network/ACME.hs +++ b/src/Network/ACME.hs @@ -6,6 +6,7 @@ module Network.ACME ( Keys(..), + readKeys, thumbprint, JWK(..), toStrict, @@ -51,7 +52,13 @@ import OpenSSL.PEM import OpenSSL.RSA import OpenSSL.X509.Request -data Keys = Keys SomeKeyPair RSAPubKey +data Keys = Keys RSAKeyPair RSAPubKey +readKeys :: String -> IO (Maybe Keys) +readKeys privKeyData = do + keypair :: SomeKeyPair <- readPrivateKey privKeyData PwTTY + let (priv :: Maybe RSAKeyPair) = toKeyPair keypair + pub :: Maybe RSAPubKey <- maybe (return Nothing) (fmap Just . rsaCopyPublic) priv + return $ Keys <$> priv <*> pub -------------------------------------------------------------------------------- -- | Sign return a payload with a nonce-protected header. -- cgit v1.2.3