diff --git a/kmqtt-broker/src/macosArm64Main/kotlin/socket/tls/TLSServerEngine.kt b/kmqtt-broker/src/macosArm64Main/kotlin/socket/tls/TLSServerEngine.kt
index d43d68eb401429c02f55df1b7426cd043953ed07..3c08335d5f42b109067f08d1df5a867ada9a0b6e 100644
--- a/kmqtt-broker/src/macosArm64Main/kotlin/socket/tls/TLSServerEngine.kt
+++ b/kmqtt-broker/src/macosArm64Main/kotlin/socket/tls/TLSServerEngine.kt
@@ -36,33 +36,33 @@ internal actual class TLSServerEngine actual constructor(serverContext: TLSServe
         this.writeBio = writeBio
     }
 
-    override val isInitFinished: Boolean
+    actual override val isInitFinished: Boolean
         get() = SSL_is_init_finished(context) != 0
 
-    override val bioShouldRetry: Boolean
+    actual override val bioShouldRetry: Boolean
         get() = BIO_test_flags(writeBio, BIO_FLAGS_SHOULD_RETRY) == 0
 
-    override fun write(buffer: CPointer<ByteVar>, length: Int): Int {
+    actual override fun write(buffer: CPointer<ByteVar>, length: Int): Int {
         return SSL_write(context, buffer, length)
     }
 
-    override fun read(buffer: CPointer<ByteVar>, length: Int): Int {
+    actual override fun read(buffer: CPointer<ByteVar>, length: Int): Int {
         return SSL_read(context, buffer, length)
     }
 
-    override fun bioRead(buffer: CPointer<ByteVar>, length: Int): Int {
+    actual override fun bioRead(buffer: CPointer<ByteVar>, length: Int): Int {
         return BIO_read(writeBio, buffer, length)
     }
 
-    override fun bioWrite(buffer: CPointer<ByteVar>, length: Int): Int {
+    actual override fun bioWrite(buffer: CPointer<ByteVar>, length: Int): Int {
         return BIO_write(readBio, buffer, length)
     }
 
-    override fun getError(result: Int): Int {
+    actual override fun getError(result: Int): Int {
         return SSL_get_error(context, result)
     }
 
-    override fun close() {
+    actual override fun close() {
         if (!freed) {
             SSL_free(context)
             freed = true
diff --git a/kmqtt-broker/src/macosX64Main/kotlin/socket/tls/TLSServerEngine.kt b/kmqtt-broker/src/macosX64Main/kotlin/socket/tls/TLSServerEngine.kt
index d43d68eb401429c02f55df1b7426cd043953ed07..3c08335d5f42b109067f08d1df5a867ada9a0b6e 100644
--- a/kmqtt-broker/src/macosX64Main/kotlin/socket/tls/TLSServerEngine.kt
+++ b/kmqtt-broker/src/macosX64Main/kotlin/socket/tls/TLSServerEngine.kt
@@ -36,33 +36,33 @@ internal actual class TLSServerEngine actual constructor(serverContext: TLSServe
         this.writeBio = writeBio
     }
 
-    override val isInitFinished: Boolean
+    actual override val isInitFinished: Boolean
         get() = SSL_is_init_finished(context) != 0
 
-    override val bioShouldRetry: Boolean
+    actual override val bioShouldRetry: Boolean
         get() = BIO_test_flags(writeBio, BIO_FLAGS_SHOULD_RETRY) == 0
 
-    override fun write(buffer: CPointer<ByteVar>, length: Int): Int {
+    actual override fun write(buffer: CPointer<ByteVar>, length: Int): Int {
         return SSL_write(context, buffer, length)
     }
 
-    override fun read(buffer: CPointer<ByteVar>, length: Int): Int {
+    actual override fun read(buffer: CPointer<ByteVar>, length: Int): Int {
         return SSL_read(context, buffer, length)
     }
 
-    override fun bioRead(buffer: CPointer<ByteVar>, length: Int): Int {
+    actual override fun bioRead(buffer: CPointer<ByteVar>, length: Int): Int {
         return BIO_read(writeBio, buffer, length)
     }
 
-    override fun bioWrite(buffer: CPointer<ByteVar>, length: Int): Int {
+    actual override fun bioWrite(buffer: CPointer<ByteVar>, length: Int): Int {
         return BIO_write(readBio, buffer, length)
     }
 
-    override fun getError(result: Int): Int {
+    actual override fun getError(result: Int): Int {
         return SSL_get_error(context, result)
     }
 
-    override fun close() {
+    actual override fun close() {
         if (!freed) {
             SSL_free(context)
             freed = true
diff --git a/kmqtt-common/src/nativeInterop/openssl-ios-arm64.klib b/kmqtt-common/src/nativeInterop/openssl-ios-arm64.klib
index 08dd67ad47bca93543d2e8a2b643b03d2209fb2a..5783ac855382060a41a39a23a8256ab0014e0199 100644
Binary files a/kmqtt-common/src/nativeInterop/openssl-ios-arm64.klib and b/kmqtt-common/src/nativeInterop/openssl-ios-arm64.klib differ
diff --git a/kmqtt-common/src/nativeInterop/openssl-ios-simulator-arm64.klib b/kmqtt-common/src/nativeInterop/openssl-ios-simulator-arm64.klib
index 8db248c77804351df5b8a08b0fab983a4e014c95..044185d0023b294c5c00b8f6f68bbc9501ad0ec4 100644
Binary files a/kmqtt-common/src/nativeInterop/openssl-ios-simulator-arm64.klib and b/kmqtt-common/src/nativeInterop/openssl-ios-simulator-arm64.klib differ
diff --git a/kmqtt-common/src/nativeInterop/openssl-ios-x64.klib b/kmqtt-common/src/nativeInterop/openssl-ios-x64.klib
index 99e01228960b796e6518028e3fca31f666b451c8..d52b93af6362b88ce134c89a73fbe72ca5ffa061 100644
Binary files a/kmqtt-common/src/nativeInterop/openssl-ios-x64.klib and b/kmqtt-common/src/nativeInterop/openssl-ios-x64.klib differ
diff --git a/kmqtt-common/src/nativeInterop/openssl-macos-arm64.klib b/kmqtt-common/src/nativeInterop/openssl-macos-arm64.klib
index 2a6b5a10ee6c2bd81aef9495a3b708a4ae627bac..15f0ba492f361f1aea50833a7f7a833b203f4c11 100644
Binary files a/kmqtt-common/src/nativeInterop/openssl-macos-arm64.klib and b/kmqtt-common/src/nativeInterop/openssl-macos-arm64.klib differ
diff --git a/kmqtt-common/src/nativeInterop/openssl-macos-x64.klib b/kmqtt-common/src/nativeInterop/openssl-macos-x64.klib
index 9f06acf1fb87f5679b7a50b35ceb39afc2323589..ee46eb0f5d192b966d93a8cfbbaf695eecdc2a6c 100644
Binary files a/kmqtt-common/src/nativeInterop/openssl-macos-x64.klib and b/kmqtt-common/src/nativeInterop/openssl-macos-x64.klib differ
diff --git a/kmqtt-common/src/nativeInterop/openssl-tvos-arm64.klib b/kmqtt-common/src/nativeInterop/openssl-tvos-arm64.klib
index 426d58aed7935fa1dbca9575bd6e03e061e4c8d2..189c5e9f8fbd0fedce3dd33984058e8fb6d649c0 100644
Binary files a/kmqtt-common/src/nativeInterop/openssl-tvos-arm64.klib and b/kmqtt-common/src/nativeInterop/openssl-tvos-arm64.klib differ
diff --git a/kmqtt-common/src/nativeInterop/openssl-tvos-simulator-arm64.klib b/kmqtt-common/src/nativeInterop/openssl-tvos-simulator-arm64.klib
index 8fd0cc1f0400adcc22cd0eb78469d5c566f4324f..316d003c49397c5fb112edeed6ed2061cceb3368 100644
Binary files a/kmqtt-common/src/nativeInterop/openssl-tvos-simulator-arm64.klib and b/kmqtt-common/src/nativeInterop/openssl-tvos-simulator-arm64.klib differ
diff --git a/kmqtt-common/src/nativeInterop/openssl-tvos-x64.klib b/kmqtt-common/src/nativeInterop/openssl-tvos-x64.klib
index a47af1938415203a6e4df9e1fd7681a7517f65e7..5e58bd42c579e397869e7523943f6ced6f5697b8 100644
Binary files a/kmqtt-common/src/nativeInterop/openssl-tvos-x64.klib and b/kmqtt-common/src/nativeInterop/openssl-tvos-x64.klib differ
diff --git a/kmqtt-common/src/nativeInterop/openssl-watchos-arm32.klib b/kmqtt-common/src/nativeInterop/openssl-watchos-arm32.klib
index c815e464bfcdfd1618e91dc3cf61ae27fe5f211c..61b97ea77e586160d50b63d0605e29861a997ebc 100644
Binary files a/kmqtt-common/src/nativeInterop/openssl-watchos-arm32.klib and b/kmqtt-common/src/nativeInterop/openssl-watchos-arm32.klib differ
diff --git a/kmqtt-common/src/nativeInterop/openssl-watchos-arm64.klib b/kmqtt-common/src/nativeInterop/openssl-watchos-arm64.klib
index 59d3ac771922043afe570c134d01ccbb17884f1f..d8f7fd4cd18bbd1d549d2be2eb7f6d0dc8f96b97 100644
Binary files a/kmqtt-common/src/nativeInterop/openssl-watchos-arm64.klib and b/kmqtt-common/src/nativeInterop/openssl-watchos-arm64.klib differ
diff --git a/kmqtt-common/src/nativeInterop/openssl-watchos-simulator-arm64.klib b/kmqtt-common/src/nativeInterop/openssl-watchos-simulator-arm64.klib
index 0a2e64740b3a5985a0544f1d7ed5a3a917a9db0f..bd1daafa799773bb784ec3858d496ee52bd186a5 100644
Binary files a/kmqtt-common/src/nativeInterop/openssl-watchos-simulator-arm64.klib and b/kmqtt-common/src/nativeInterop/openssl-watchos-simulator-arm64.klib differ
diff --git a/kmqtt-common/src/nativeInterop/openssl-watchos-x64.klib b/kmqtt-common/src/nativeInterop/openssl-watchos-x64.klib
index 50fd617d49e43bc273ec8cee98549a71bc0fcc3c..4b73eae38e43099378be82db3a54e632a243c970 100644
Binary files a/kmqtt-common/src/nativeInterop/openssl-watchos-x64.klib and b/kmqtt-common/src/nativeInterop/openssl-watchos-x64.klib differ
diff --git a/kmqtt-common/src/nativeInterop/openssl.def b/kmqtt-common/src/nativeInterop/openssl.def
index 5dff88346a9e56c48e948393ed1812e0d363dce2..89b50251273b587fdade257a53dd3c6c64a5f4b4 100644
--- a/kmqtt-common/src/nativeInterop/openssl.def
+++ b/kmqtt-common/src/nativeInterop/openssl.def
@@ -3,38 +3,38 @@ headerFilter = openssl/*
 package = openssl
 staticLibraries = libssl.a libcrypto.a
 
-compilerOpts.macos_x64 = -I/Users/davide/Desktop/openssl/OpenSSL-for-iPhone/bin/MacOSX11.3-x86_64.sdk/include
-libraryPaths.macos_x64 = /Users/davide/Desktop/openssl/OpenSSL-for-iPhone/bin/MacOSX11.3-x86_64.sdk/lib
+compilerOpts.macos_x64 = -I/Users/davide/Desktop/openssl/openssl-mac-x64/openssl-1.1.1w/include
+libraryPaths.macos_x64 = /Users/davide/Desktop/openssl/openssl-mac-x64/openssl-1.1.1w
 
-compilerOpts.macos_arm64 = -I/Users/davide/Desktop/openssl/OpenSSL-for-iPhone/bin/MacOSX11.3-arm64.sdk/include
-libraryPaths.macos_arm64 = /Users/davide/Desktop/openssl/OpenSSL-for-iPhone/bin/MacOSX11.3-arm64.sdk/lib
+compilerOpts.macos_arm64 = -I/Users/davide/Desktop/openssl/openssl-1.1.1w/include
+libraryPaths.macos_arm64 = /Users/davide/Desktop/openssl/openssl-1.1.1w
 
-compilerOpts.ios_x64 = -I/Users/davide/Desktop/openssl/OpenSSL-for-iPhone/bin/iPhoneSimulator14.5-x86_64.sdk/include
-libraryPaths.ios_x64 = /Users/davide/Desktop/openssl/OpenSSL-for-iPhone/bin/iPhoneSimulator14.5-x86_64.sdk/lib
+compilerOpts.ios_x64 = -I/Users/davide/Desktop/openssl/OpenSSL-for-iPhone/bin/iPhoneSimulator17.2-x86_64.sdk/include
+libraryPaths.ios_x64 = /Users/davide/Desktop/openssl/OpenSSL-for-iPhone/bin/iPhoneSimulator17.2-x86_64.sdk/lib
 
-compilerOpts.ios_simulator_arm64 = -I/Users/davide/Desktop/openssl/OpenSSL-for-iPhone/bin/iPhoneSimulator14.5-arm64.sdk/include
-libraryPaths.ios_simulator_arm64 = /Users/davide/Desktop/openssl/OpenSSL-for-iPhone/bin/iPhoneSimulator14.5-arm64.sdk/lib
+compilerOpts.ios_simulator_arm64 = -I/Users/davide/Desktop/openssl/OpenSSL-for-iPhone/bin/iPhoneSimulator17.2-arm64.sdk/include
+libraryPaths.ios_simulator_arm64 = /Users/davide/Desktop/openssl/OpenSSL-for-iPhone/bin/iPhoneSimulator17.2-arm64.sdk/lib
 
-compilerOpts.ios_arm64 = -I/Users/davide/Desktop/openssl/OpenSSL-for-iPhone/bin/iPhoneOS14.5-arm64.sdk/include
-libraryPaths.ios_arm64 = /Users/davide/Desktop/openssl/OpenSSL-for-iPhone/bin/iPhoneOS14.5-arm64.sdk/lib
+compilerOpts.ios_arm64 = -I/Users/davide/Desktop/openssl/OpenSSL-for-iPhone/bin/iPhoneOS17.2-arm64.sdk/include
+libraryPaths.ios_arm64 = /Users/davide/Desktop/openssl/OpenSSL-for-iPhone/bin/iPhoneOS17.2-arm64.sdk/lib
 
-compilerOpts.tvos_x64 = -I/Users/davide/Desktop/openssl/OpenSSL-for-iPhone/bin/AppleTVSimulator14.5-x86_64.sdk/include
-libraryPaths.tvos_x64 = /Users/davide/Desktop/openssl/OpenSSL-for-iPhone/bin/AppleTVSimulator14.5-x86_64.sdk/lib
+compilerOpts.tvos_x64 = -I/Users/davide/Desktop/openssl/OpenSSL-for-iPhone/bin/AppleTVSimulator17.2-x86_64.sdk/include
+libraryPaths.tvos_x64 = /Users/davide/Desktop/openssl/OpenSSL-for-iPhone/bin/AppleTVSimulator17.2-x86_64.sdk/lib
 
-compilerOpts.tvos_simulator_arm64 = -I/Users/davide/Desktop/openssl/OpenSSL-for-iPhone/bin/AppleTVSimulator14.5-arm64.sdk/include
-libraryPaths.tvos_simulator_arm64 = /Users/davide/Desktop/openssl/OpenSSL-for-iPhone/bin/AppleTVSimulator14.5-arm64.sdk/lib
+compilerOpts.tvos_simulator_arm64 = -I/Users/davide/Desktop/openssl/OpenSSL-for-iPhone/bin/AppleTVSimulator17.2-arm64.sdk/include
+libraryPaths.tvos_simulator_arm64 = /Users/davide/Desktop/openssl/OpenSSL-for-iPhone/bin/AppleTVSimulator17.2-arm64.sdk/lib
 
-compilerOpts.tvos_arm64 = -I/Users/davide/Desktop/openssl/OpenSSL-for-iPhone/bin/AppleTVOS14.5-arm64.sdk/include
-libraryPaths.tvos_arm64 = /Users/davide/Desktop/openssl/OpenSSL-for-iPhone/bin/AppleTVOS14.5-arm64.sdk/lib
+compilerOpts.tvos_arm64 = -I/Users/davide/Desktop/openssl/OpenSSL-for-iPhone/bin/AppleTVOS17.2-arm64.sdk/include
+libraryPaths.tvos_arm64 = /Users/davide/Desktop/openssl/OpenSSL-for-iPhone/bin/AppleTVOS17.2-arm64.sdk/lib
 
-compilerOpts.watchos_x64 = -I/Users/davide/Desktop/openssl/OpenSSL-for-iPhone/bin/WatchSimulator7.4-x86_64.sdk/include
-libraryPaths.watchos_x64 = /Users/davide/Desktop/openssl/OpenSSL-for-iPhone/bin/WatchSimulator7.4-x86_64.sdk/lib
+compilerOpts.watchos_x64 = -I/Users/davide/Desktop/openssl/OpenSSL-for-iPhone/bin/WatchSimulator10.2-x86_64.sdk/include
+libraryPaths.watchos_x64 = /Users/davide/Desktop/openssl/OpenSSL-for-iPhone/bin/WatchSimulator10.2-x86_64.sdk/lib
 
-compilerOpts.watchos_simulator_arm64 = -I/Users/davide/Desktop/openssl/OpenSSL-for-iPhone/bin/WatchSimulator7.4-arm64.sdk/include
-libraryPaths.watchos_simulator_arm64 = /Users/davide/Desktop/openssl/OpenSSL-for-iPhone/bin/WatchSimulator7.4-arm64.sdk/lib
+compilerOpts.watchos_simulator_arm64 = -I/Users/davide/Desktop/openssl/OpenSSL-for-iPhone/bin/WatchSimulator10.2-arm64.sdk/include
+libraryPaths.watchos_simulator_arm64 = /Users/davide/Desktop/openssl/OpenSSL-for-iPhone/bin/WatchSimulator10.2-arm64.sdk/lib
 
-compilerOpts.watchos_arm64 = -I/Users/davide/Desktop/openssl/OpenSSL-for-iPhone/bin/WatchOS7.4-arm64_32.sdk/include
-libraryPaths.watchos_arm64 = /Users/davide/Desktop/openssl/OpenSSL-for-iPhone/bin/WatchOS7.4-arm64_32.sdk/lib
+compilerOpts.watchos_arm64 = -I/Users/davide/Desktop/openssl/OpenSSL-for-iPhone/bin/WatchOS10.2-arm64_32.sdk/include
+libraryPaths.watchos_arm64 = /Users/davide/Desktop/openssl/OpenSSL-for-iPhone/bin/WatchOS10.2-arm64_32.sdk/lib
 
-compilerOpts.watchos_arm32 = -I/Users/davide/Desktop/openssl/OpenSSL-for-iPhone/bin/WatchOS7.4-armv7k.sdk/include
-libraryPaths.watchos_arm32 = /Users/davide/Desktop/openssl/OpenSSL-for-iPhone/bin/WatchOS7.4-armv7k.sdk/lib
+compilerOpts.watchos_arm32 = -I/Users/davide/Desktop/openssl/OpenSSL-for-iPhone/bin/WatchOS10.2-armv7k.sdk/include
+libraryPaths.watchos_arm32 = /Users/davide/Desktop/openssl/OpenSSL-for-iPhone/bin/WatchOS10.2-armv7k.sdk/lib