Skip to content

Commit b64d4a1

Browse files
committed
SSL test with mosquitto
1 parent 88b78e5 commit b64d4a1

File tree

1 file changed

+36
-4
lines changed

1 file changed

+36
-4
lines changed

Tests/MQTTNIOTests/MQTTNIOTests.swift

Lines changed: 36 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,34 @@ import NIOSSL
55

66
final class MQTTNIOTests: XCTestCase {
77

8+
// downloaded from http://test.mosquitto.org/
9+
let mosquittoCertificate = """
10+
-----BEGIN CERTIFICATE-----
11+
MIIEAzCCAuugAwIBAgIUBY1hlCGvdj4NhBXkZ/uLUZNILAwwDQYJKoZIhvcNAQEL
12+
BQAwgZAxCzAJBgNVBAYTAkdCMRcwFQYDVQQIDA5Vbml0ZWQgS2luZ2RvbTEOMAwG
13+
A1UEBwwFRGVyYnkxEjAQBgNVBAoMCU1vc3F1aXR0bzELMAkGA1UECwwCQ0ExFjAU
14+
BgNVBAMMDW1vc3F1aXR0by5vcmcxHzAdBgkqhkiG9w0BCQEWEHJvZ2VyQGF0Y2hv
15+
by5vcmcwHhcNMjAwNjA5MTEwNjM5WhcNMzAwNjA3MTEwNjM5WjCBkDELMAkGA1UE
16+
BhMCR0IxFzAVBgNVBAgMDlVuaXRlZCBLaW5nZG9tMQ4wDAYDVQQHDAVEZXJieTES
17+
MBAGA1UECgwJTW9zcXVpdHRvMQswCQYDVQQLDAJDQTEWMBQGA1UEAwwNbW9zcXVp
18+
dHRvLm9yZzEfMB0GCSqGSIb3DQEJARYQcm9nZXJAYXRjaG9vLm9yZzCCASIwDQYJ
19+
KoZIhvcNAQEBBQADggEPADCCAQoCggEBAME0HKmIzfTOwkKLT3THHe+ObdizamPg
20+
UZmD64Tf3zJdNeYGYn4CEXbyP6fy3tWc8S2boW6dzrH8SdFf9uo320GJA9B7U1FW
21+
Te3xda/Lm3JFfaHjkWw7jBwcauQZjpGINHapHRlpiCZsquAthOgxW9SgDgYlGzEA
22+
s06pkEFiMw+qDfLo/sxFKB6vQlFekMeCymjLCbNwPJyqyhFmPWwio/PDMruBTzPH
23+
3cioBnrJWKXc3OjXdLGFJOfj7pP0j/dr2LH72eSvv3PQQFl90CZPFhrCUcRHSSxo
24+
E6yjGOdnz7f6PveLIB574kQORwt8ePn0yidrTC1ictikED3nHYhMUOUCAwEAAaNT
25+
MFEwHQYDVR0OBBYEFPVV6xBUFPiGKDyo5V3+Hbh4N9YSMB8GA1UdIwQYMBaAFPVV
26+
6xBUFPiGKDyo5V3+Hbh4N9YSMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEL
27+
BQADggEBAGa9kS21N70ThM6/Hj9D7mbVxKLBjVWe2TPsGfbl3rEDfZ+OKRZ2j6AC
28+
6r7jb4TZO3dzF2p6dgbrlU71Y/4K0TdzIjRj3cQ3KSm41JvUQ0hZ/c04iGDg/xWf
29+
+pp58nfPAYwuerruPNWmlStWAXf0UTqRtg4hQDWBuUFDJTuWuuBvEXudz74eh/wK
30+
sMwfu1HFvjy5Z0iMDU8PUDepjVolOCue9ashlS4EB5IECdSR2TItnAIiIwimx839
31+
LdUdRudafMu5T5Xma182OC0/u/xRlEm+tvKGGmfFcN0piqVl8OrSPBgIlb+1IKJE
32+
m/XriWr/Cq4h/JfB7NTsezVslgkBaoU=
33+
-----END CERTIFICATE-----
34+
"""
35+
836
func createClient(cb: @escaping (Result<MQTTPublishInfo, Swift.Error>) -> () = { _ in }) -> MQTTClient {
937
MQTTClient(host: "mqtt.eclipse.org", port: 1883, eventLoopGroupProvider: .createNew, publishCallback: cb)
1038
}
@@ -17,10 +45,14 @@ final class MQTTNIOTests: XCTestCase {
1745
publishCallback: cb
1846
)
1947
}
20-
func createSSLClient(cb: @escaping (Result<MQTTPublishInfo, Swift.Error>) -> () = { _ in }) -> MQTTClient {
21-
let tlsConfiguration: TLSConfiguration? = nil //TLSConfiguration.forClient(certificateChain: certificate.map {.certificate($0)}, privateKey: .privateKey(privateKey))
48+
func createSSLClient(cb: @escaping (Result<MQTTPublishInfo, Swift.Error>) -> () = { _ in }) throws -> MQTTClient {
49+
let rootCertificate = try NIOSSLCertificate.fromPEMBytes([UInt8](mosquittoCertificate.utf8))
50+
//let key = try NIOSSLPrivateKey(bytes: [UInt8](macbookProKey.utf8), format: .pem)
51+
let tlsConfiguration: TLSConfiguration? = TLSConfiguration.forClient(
52+
trustRoots: .certificates(rootCertificate)
53+
)
2254
return MQTTClient(
23-
host: "broker.emqx.io",
55+
host: "test.mosquitto.org",
2456
eventLoopGroupProvider: .createNew,
2557
configuration: .init(useSSL: true, tlsConfiguration: tlsConfiguration),
2658
publishCallback: cb
@@ -54,7 +86,7 @@ final class MQTTNIOTests: XCTestCase {
5486
}
5587

5688
func testSSLConnect() throws {
57-
let client = createSSLClient()
89+
let client = try createSSLClient()
5890
try connect(to: client, identifier: "connect")
5991
try client.pingreq().wait()
6092
try client.disconnect().wait()

0 commit comments

Comments
 (0)