botan-low-0.0.2.0: test/Botan/Low/PubKey/RSASpec.hs
module Main where
import Test.Prelude
import Botan.Low.MPI
import Botan.Low.RNG
import Botan.Low.PubKey
import Botan.Low.PubKey.RSA
rsaSizes = [ "2048" ]
-- TODO: Consolidate
privKeyField :: PrivKey -> ByteString -> IO MP
privKeyField privKey field = do
mp <- mpInit
privKeyGetField mp privKey field
return mp
-- TODO: Consolidate
pubKeyField :: PubKey -> ByteString -> IO MP
pubKeyField pubKey field = do
mp <- mpInit
pubKeyGetField mp pubKey field
return mp
main :: IO ()
main = hspec $ testSuite rsaSizes chars $ \ rsaSize -> do
it "privKeyLoadRSA" $ do
rng <- rngInit "system"
privKey <- privKeyCreate "RSA" rsaSize rng
p <- privKeyField privKey "p"
q <- privKeyField privKey "q"
e <- privKeyField privKey "e"
loadedKey <- privKeyLoadRSA p q e
pass
it "pubKeyLoadRSA" $ do
rng <- rngInit "system"
privKey <- privKeyCreate "RSA" rsaSize rng
pubKey <- privKeyExportPubKey privKey
n <- pubKeyField pubKey "n"
e <- pubKeyField pubKey "e"
loadedKey <- pubKeyLoadRSA n e
pass