package main
|
|
|
|
import (
|
|
"encoding/json"
|
|
"fmt"
|
|
"net/http"
|
|
|
|
"github.com/fatih/color"
|
|
"github.com/gorilla/mux"
|
|
)
|
|
|
|
//TODO use rsa library instead own rsa functions
|
|
|
|
func Index(w http.ResponseWriter, r *http.Request) {
|
|
fmt.Fprintln(w, "clientApp")
|
|
}
|
|
|
|
func GetServer(w http.ResponseWriter, r *http.Request) {
|
|
color.Green(config.Server)
|
|
fmt.Fprintln(w, config.Server)
|
|
}
|
|
func GetIDs(w http.ResponseWriter, r *http.Request) {
|
|
keys := IDs()
|
|
|
|
jResp, err := json.Marshal(keys)
|
|
check(err)
|
|
fmt.Fprintln(w, string(jResp))
|
|
}
|
|
func GetID(w http.ResponseWriter, r *http.Request) {
|
|
vars := mux.Vars(r)
|
|
keyID := vars["keyid"]
|
|
key := getKeyByKeyID(keyID)
|
|
|
|
jResp, err := json.Marshal(key)
|
|
check(err)
|
|
fmt.Fprintln(w, string(jResp))
|
|
}
|
|
func GetNewID(w http.ResponseWriter, r *http.Request) {
|
|
key := NewID()
|
|
|
|
fmt.Println(key)
|
|
|
|
jResp, err := json.Marshal(key)
|
|
check(err)
|
|
fmt.Fprintln(w, string(jResp))
|
|
}
|
|
func GetBlindAndSendToSign(w http.ResponseWriter, r *http.Request) {
|
|
vars := mux.Vars(r)
|
|
idKey := vars["keyid"]
|
|
color.Green(idKey)
|
|
|
|
keys := BlindAndSendToSign(idKey)
|
|
|
|
jResp, err := json.Marshal(keys)
|
|
check(err)
|
|
fmt.Fprintln(w, string(jResp))
|
|
}
|
|
|
|
func GetVerify(w http.ResponseWriter, r *http.Request) {
|
|
vars := mux.Vars(r)
|
|
packPubK := vars["pubK"]
|
|
color.Green(packPubK)
|
|
|
|
//keys := Verify(packPubK)
|
|
keys := "a"
|
|
|
|
jResp, err := json.Marshal(keys)
|
|
check(err)
|
|
fmt.Fprintln(w, string(jResp))
|
|
}
|
|
|
|
func GetDelete(w http.ResponseWriter, r *http.Request) {
|
|
vars := mux.Vars(r)
|
|
keyID := vars["keyid"]
|
|
|
|
keys := Delete(keyID)
|
|
|
|
jResp, err := json.Marshal(keys)
|
|
check(err)
|
|
fmt.Fprintln(w, string(jResp))
|
|
}
|
|
|
|
type EncryptData struct {
|
|
M string `json:"m"`
|
|
C []byte `json:"c"`
|
|
}
|
|
|
|
func PostEncrypt(w http.ResponseWriter, r *http.Request) {
|
|
vars := mux.Vars(r)
|
|
keyID := vars["keyid"]
|
|
|
|
//get ciphertext from POST json
|
|
decoder := json.NewDecoder(r.Body)
|
|
var encryptData EncryptData
|
|
err := decoder.Decode(&encryptData)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
defer r.Body.Close()
|
|
|
|
encryptData = Encrypt(keyID, encryptData)
|
|
|
|
jResp, err := json.Marshal(encryptData)
|
|
check(err)
|
|
fmt.Fprintln(w, string(jResp))
|
|
}
|
|
func PostDecrypt(w http.ResponseWriter, r *http.Request) {
|
|
vars := mux.Vars(r)
|
|
keyID := vars["keyid"]
|
|
|
|
//get ciphertext from POST json
|
|
decoder := json.NewDecoder(r.Body)
|
|
var encryptData EncryptData
|
|
err := decoder.Decode(&encryptData)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
defer r.Body.Close()
|
|
|
|
encryptData = Decrypt(keyID, encryptData)
|
|
|
|
jResp, err := json.Marshal(encryptData)
|
|
check(err)
|
|
fmt.Fprintln(w, string(jResp))
|
|
}
|