From bd32661c82e1d14784a893e438c6b198a5769296 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Leandro=20Ant=C3=B4nio=20Farias=20Machado?= Date: Tue, 9 May 2023 00:43:03 -0300 Subject: [PATCH] chore(mqtt): tls structure for soon feature --- backend/services/mochi/cmd/main.go | 72 +++++++++++++++++++++++------- 1 file changed, 56 insertions(+), 16 deletions(-) diff --git a/backend/services/mochi/cmd/main.go b/backend/services/mochi/cmd/main.go index bb54dac..d4fb654 100644 --- a/backend/services/mochi/cmd/main.go +++ b/backend/services/mochi/cmd/main.go @@ -22,17 +22,49 @@ import ( "github.com/mochi-co/mqtt/v2/listeners" ) -var server = mqtt.New(&mqtt.Options{ - //Capabilities: &mqtt.Capabilities{ - // ServerKeepAlive: 10000, - // ReceiveMaximum: math.MaxUint16, - // MaximumMessageExpiryInterval: math.MaxUint32, - // MaximumSessionExpiryInterval: math.MaxUint32, // maximum number of seconds to keep disconnected sessions - // MaximumClientWritesPending: 65536, - // MaximumPacketSize: 0, - // MaximumQos: 2, - //}, -}) +var ( + testCertificate = []byte(`-----BEGIN CERTIFICATE----- +MIIB/zCCAWgCCQDm3jV+lSF1AzANBgkqhkiG9w0BAQsFADBEMQswCQYDVQQGEwJB +VTETMBEGA1UECAwKU29tZS1TdGF0ZTERMA8GA1UECgwITW9jaGkgQ28xDTALBgNV +BAsMBE1RVFQwHhcNMjAwMTA0MjAzMzQyWhcNMjEwMTAzMjAzMzQyWjBEMQswCQYD +VQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTERMA8GA1UECgwITW9jaGkgQ28x +DTALBgNVBAsMBE1RVFQwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAKz2bUz3 +AOymssVLuvSOEbQ/sF8C/Ill8nRTd7sX9WBIxHJZf+gVn8lQ4BTQ0NchLDRIlpbi +OuZgktpd6ba8sIfVM4jbVprctky5tGsyHRFwL/GAycCtKwvuXkvcwSwLvB8b29EI +MLQ/3vNnYuC3eZ4qqxlODJgRsfQ7mUNB8zkLAgMBAAEwDQYJKoZIhvcNAQELBQAD +gYEAiMoKnQaD0F/J332arGvcmtbHmF2XZp/rGy3dooPug8+OPUSAJY9vTfxJwOsQ +qN1EcI+kIgrGxzA3VRfVYV8gr7IX+fUYfVCaPGcDCfPvo/Ihu757afJRVvpafWgy +zSpDZYu6C62h3KSzMJxffDjy7/2t8oYbTzkLSamsHJJjLZw= +-----END CERTIFICATE-----`) + + testPrivateKey = []byte(`-----BEGIN RSA PRIVATE KEY----- +MIICXAIBAAKBgQCs9m1M9wDsprLFS7r0jhG0P7BfAvyJZfJ0U3e7F/VgSMRyWX/o +FZ/JUOAU0NDXISw0SJaW4jrmYJLaXem2vLCH1TOI21aa3LZMubRrMh0RcC/xgMnA +rSsL7l5L3MEsC7wfG9vRCDC0P97zZ2Lgt3meKqsZTgyYEbH0O5lDQfM5CwIDAQAB +AoGBAKlmVVirFqmw/qhDaqD4wBg0xI3Zw/Lh+Vu7ICoK5hVeT6DbTW3GOBAY+M8K +UXBSGhQ+/9ZZTmyyK0JZ9nw2RAG3lONU6wS41pZhB7F4siatZfP/JJfU6p+ohe8m +n22hTw4brY/8E/tjuki9T5e2GeiUPBhjbdECkkVXMYBPKDZhAkEA5h/b/HBcsIZZ +mL2d3dyWkXR/IxngQa4NH3124M8MfBqCYXPLgD7RDI+3oT/uVe+N0vu6+7CSMVx6 +INM67CuE0QJBAMBpKW54cfMsMya3CM1BfdPEBzDT5kTMqxJ7ez164PHv9CJCnL0Z +AuWgM/p2WNbAF1yHNxw1eEfNbUWwVX2yhxsCQEtnMQvcPWLSAtWbe/jQaL2scGQt +/F9JCp/A2oz7Cto3TXVlHc8dxh3ZkY/ShOO/pLb3KOODjcOCy7mpvOrZr6ECQH32 +WoFPqImhrfryaHi3H0C7XFnC30S7GGOJIy0kfI7mn9St9x50eUkKj/yv7YjpSGHy +w0lcV9npyleNEOqxLXECQBL3VRGCfZfhfFpL8z+5+HPKXw6FxWr+p5h8o3CZ6Yi3 +OJVN3Mfo6mbz34wswrEdMXn25MzAwbhFQvCVpPZrFwc= +-----END RSA PRIVATE KEY-----`) + + server = mqtt.New(&mqtt.Options{ + //Capabilities: &mqtt.Capabilities{ + // ServerKeepAlive: 10000, + // ReceiveMaximum: math.MaxUint16, + // MaximumMessageExpiryInterval: math.MaxUint32, + // MaximumSessionExpiryInterval: math.MaxUint32, // maximum number of seconds to keep disconnected sessions + // MaximumClientWritesPending: 65536, + // MaximumPacketSize: 0, + // MaximumQos: 2, + //}, + }) +) func main() { tcpAddr := flag.String("tcp", ":1883", "network address for TCP listener") @@ -72,7 +104,20 @@ func main() { } } + //cert, err := tls.X509KeyPair(testCertificate, testPrivateKey) + //if err != nil { + // log.Fatal(err) + //} + + // Basic TLS Config + //tlsConfig := &tls.Config{ + // Certificates: []tls.Certificate{cert}, + //} + if *tcpAddr != "" { + //tcp := listeners.NewTCP("t1", *tcpAddr, &listeners.Config{ + // TLSConfig: tlsConfig, + //}) tcp := listeners.NewTCP("t1", *tcpAddr, nil) err := server.AddListener(tcp) if err != nil { @@ -146,11 +191,6 @@ func (h *MyHook) Init(config any) error { return nil } -func (h *MyHook) Red(config any) error { - h.Log.Info().Msg("initialised") - return nil -} - func (h *MyHook) OnDisconnect(cl *mqtt.Client, err error, expire bool) { var clUser string if len(cl.Properties.Props.User) > 0 {