diff --git a/server-cert.json b/server-cert.json new file mode 100644 index 0000000..06a864b --- /dev/null +++ b/server-cert.json @@ -0,0 +1 @@ +{"public_key":"RTGLeEetHkt9wqFRngJAPMK8ao2IY5+hXew1VWyqXlM=","secret_key":"XxwOXSkM9uUBw/+PhjgXlsrlbD+SjKNQ3GpGFQrZo+I="} \ No newline at end of file diff --git a/server-cert.pub.json b/server-cert.pub.json new file mode 100644 index 0000000..a374958 --- /dev/null +++ b/server-cert.pub.json @@ -0,0 +1 @@ +{"public_key":"RTGLeEetHkt9wqFRngJAPMK8ao2IY5+hXew1VWyqXlM="} \ No newline at end of file diff --git a/src/Main.hs b/src/Main.hs index 074deec..3030457 100644 --- a/src/Main.hs +++ b/src/Main.hs @@ -64,8 +64,22 @@ main :: IO () main = do initLogging "test" backend <- makeTestBackend - withContext (\ctx -> do - bro <- startBrokerServer [backend] ctx "tcp://*:5530" "tcp://*:5531" [] defaultServerSecurityParams + withContext (\ctx -> + withZapHandler ctx $ \zap -> do + maybeServerCert <- loadCertificateFromFile "./server-cert.json" + case maybeServerCert of + Left err -> error $ "Unable to load server certificate: " ++ err + Right serverCert -> do + let secParams = ServerSecurityParams (Just "default") (Just serverCert) + addCertFromFile zap "../broker-client-test/client-cert.pub.json" + bro <- startBrokerServer [backend] ctx "tcp://*:5530" "tcp://*:5531" [] secParams - void $ forever $ threadDelay 10000000 - stopBrokerServer bro) + void $ forever $ threadDelay 10000000 + stopBrokerServer bro) + +addCertFromFile :: Zap -> FilePath -> IO () +addCertFromFile zap fp = do + maybeCert <- loadCertificateFromFile fp + case maybeCert of + Left _ -> return () + Right cert -> zapAddClientCertificate zap "default" cert