module Main where import qualified Crypto.PubKey.RSA as RSA import Data.ASN1.BinaryEncoding (DER (DER)) import Data.ASN1.Encoding (ASN1Encoding (encodeASN1)) import Data.ASN1.Types (ASN1Object (toASN1)) import qualified Data.ByteString.Lazy as LB import Data.X509 (PrivKey (PrivKeyRSA)) -- | The size of the keys to generate. bits :: Int bits = 2048 -- | The number of keys to generate. count :: Int count = 5 main :: IO () main = do mapM_ genKey [0 .. count - 1] genKey :: Show a => a -> IO () genKey n = do (_, priv) <- RSA.generate bits e let bytes = encodeASN1 DER (toASN1 (PrivKeyRSA priv) []) LB.writeFile ("test/data/rsa-privkey-" <> show n <> ".der") bytes where e = 0x10001