RSAPair.hs 603 B

123456789101112131415161718192021
  1. module Main where
  2. import Codec.Crypto.RSA
  3. import Crypto.Random
  4. import Crypto.Random.DRBG
  5. import Data.Binary
  6. import qualified Data.ByteString.Lazy as BS
  7. import Numeric (showHex)
  8. toHex :: (Binary a) => a -> String
  9. toHex = concat . map (flip showHex "") . BS.unpack . encode
  10. main :: IO ()
  11. main = do
  12. (pub, priv) <- genPair
  13. putStrLn ("pub: " ++ toHex pub)
  14. putStrLn ("priv: " ++ toHex priv)
  15. genPair :: IO (PublicKey, PrivateKey)
  16. genPair = go `fmap` (newGenIO :: IO HashDRBG)
  17. where go g = let (pub, priv, _) = generateKeyPair g 1024 in (pub, priv)