summaryrefslogtreecommitdiff
path: root/internal/client
diff options
context:
space:
mode:
authorKyren223 <ulmliad223@gmail.com>2024-10-10 01:14:37 +0300
committerKyren223 <ulmliad223@gmail.com>2024-10-10 01:14:37 +0300
commit755df330a4785456387ecafea2e305c1a9f4ba0a (patch)
tree626f63c6e85087bef4cf2905233428f0d990492b /internal/client
parent6a157c52540035fa7285ed77bb191c47310671f3 (diff)
refactor: move to tls tcp connection for security purposes
Diffstat (limited to 'internal/client')
-rw-r--r--internal/client/client.go26
-rw-r--r--internal/client/server.crt21
2 files changed, 41 insertions, 6 deletions
diff --git a/internal/client/client.go b/internal/client/client.go
index b60b320..c2ef6e1 100644
--- a/internal/client/client.go
+++ b/internal/client/client.go
@@ -2,8 +2,10 @@ package client
import (
"bufio"
+ "crypto/tls"
+ "crypto/x509"
+ _ "embed"
"fmt"
- "net"
"os"
"strings"
"time"
@@ -11,8 +13,20 @@ import (
"github.com/kyren223/eko/internal/utils/log"
)
+//go:embed server.crt
+var certPEM []byte
+
func Run() {
- log.SetLevel(log.LevelDebug)
+ certPool := x509.NewCertPool()
+ if !certPool.AppendCertsFromPEM(certPEM) {
+ log.Fatal("failed to append server certificate")
+ }
+
+ tlsConfig := &tls.Config{
+ RootCAs: certPool,
+ ServerName: "localhost",
+ }
+
log.Info("Client started, waiting for user input...")
for {
fmt.Print("> ")
@@ -21,20 +35,20 @@ func Run() {
if input == ":q" || input == "exit" || input == "quit" {
break
}
- log.Debug("Input: %v", input)
- err := processRequest(input)
+ err := processRequest(input, tlsConfig)
if err != nil {
log.Error("%v", err)
}
}
}
-func processRequest(request string) error {
- conn, err := net.Dial("tcp", ":7223")
+func processRequest(request string, tlsConfig *tls.Config) error {
+ conn, err := tls.Dial("tcp", ":7223", tlsConfig)
if err != nil {
return fmt.Errorf("Unable to establish connection with server: %v", err)
}
defer conn.Close()
+
conn.SetDeadline(time.Now().Add(time.Second))
log.Info("Established connection to server: %v", conn.RemoteAddr().String())
diff --git a/internal/client/server.crt b/internal/client/server.crt
new file mode 100644
index 0000000..caf2384
--- /dev/null
+++ b/internal/client/server.crt
@@ -0,0 +1,21 @@
+-----BEGIN CERTIFICATE-----
+MIIDbTCCAlWgAwIBAgIUZyvzq7LOxKqTttTRjChoJWOO4pYwDQYJKoZIhvcNAQEL
+BQAwOjEhMB8GCSqGSIb3DQEJARYSa3lyZW4yMjNAcHJvdG9uLm1lMRUwEwYDVQQD
+DAxreXJlbjIyMy5kZXYwHhcNMjQxMDA5MjE1NzQzWhcNMjUxMDA5MjE1NzQzWjA6
+MSEwHwYJKoZIhvcNAQkBFhJreXJlbjIyM0Bwcm90b24ubWUxFTATBgNVBAMMDGt5
+cmVuMjIzLmRldjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAK7hd+zT
+kqrn/8EhLEO0uMKKHgfoyczYWTlA9uPFADOsjdzXRLuR/Y3rK0PBE4u55xcjYZSf
+mzJmVHuv1rEFOt634YOoE2UwJd9V2M0p+cD716XIEDNPfVCUe77FoZoYaH1h8QF5
+Mrx2eDH5JZt690F05O39zYzbb7+RlChWlt1kBcmLEZ1GKJeXznbL6lLMh20deYX9
+7oemqYMqP9DFbFeHkubeZ20yQvKW9cOWae9M+IhE9dAa8fm5WdfiDoTdAHfbIawx
+r1OB4YqfXlXler9wAHfHWeCS0KgZCTdghF1h6wtYlwyQZcUuv+dHN7SP7zVo8pOD
+b7NUqjFAMGlNgf0CAwEAAaNrMGkwCQYDVR0TBAIwADALBgNVHQ8EBAMCBaAwMAYD
+VR0RBCkwJ4IJbG9jYWxob3N0ggsqLmxvY2FsaG9zdIINZWtvLmxvY2FsaG9zdDAd
+BgNVHQ4EFgQUf32SXO976zgO0K/wlgWdyT3EPzcwDQYJKoZIhvcNAQELBQADggEB
+AHVMGCkaZv5eIOQwevfrsEJQo3dNG34om8wBVGS5iQyho0VJZpKZSiQ16yv4x2kc
+UICfVEFcfO/7/hRlA5yLWE/wpeqCgTSgtQ74gvc8D6H26wCznSPj9MIRWxYhSmPM
+YO+7UKqyvFoaKiW4OkqJvCRzrpwr/lbXcGpD47UqT5gRvjJ91ULCHIUt8qDUS6+8
+mEGJAe/xFkiJ6zT0bThlqMaCA4v5g9tHGXzooIZ+YSgTvlWhAM6mVwt34l2rDSOw
+4YNGUJXKCoGpy8U0NteIOOs6HhaslJpKe1mSSxmMQcgBcaf6yBT08mYfQPSsaeOk
+OSoncuVBnT64liAtShpsgTc=
+-----END CERTIFICATE-----