{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE ViewPatterns #-} module Main where import Imports import Crypto.OpenSSL.ECC p256 = maybe (error "p256 not available") id $ ecGroupFromCurveOID "1.2.840.10045.3.1.7" intToInteger :: Int -> Integer intToInteger i = toInteger i tests = testGroup "cryptonite-openssl" [ testProperty "ring" $ \(Positive (intToInteger -> a)) (Positive (intToInteger -> b)) -> let pa = ecPointGeneratorMul p256 a pb = ecPointGeneratorMul p256 b pc = ecPointGeneratorMul p256 (a+b) in ecPointEq p256 (ecPointAdd p256 pa pb) pc ] main = defaultMain tests