Basic implementation of client: render qa code and scan from mobile app
diff --git a/core/client/client.go b/core/client/client.go
new file mode 100644
index 0000000..b7c8294
--- /dev/null
+++ b/core/client/client.go
@@ -0,0 +1,38 @@
+package main
+
+import (
+	"bytes"
+	"encoding/json"
+	"fmt"
+	"net/http"
+)
+
+type VPNApiClient struct {
+	addr string
+}
+
+type signReq struct {
+	Message []byte `json:"message"`
+}
+
+type signResp struct {
+	Signature []byte `json:"signature"`
+}
+
+func (c *VPNApiClient) Sign(message []byte) ([]byte, error) {
+	var data bytes.Buffer
+	if err := json.NewEncoder(&data).Encode(signReq{message}); err != nil {
+		return nil, err
+	}
+	client := &http.Client{}
+	r, err := client.Post(c.addr+"/api/sign", "application/json", &data)
+	if err != nil {
+		fmt.Println(111111)
+		return nil, err
+	}
+	resp := &signResp{}
+	if err := json.NewDecoder(r.Body).Decode(resp); err != nil {
+		return nil, err
+	}
+	return resp.Signature, nil
+}