Skip to content
Snippets Groups Projects

Allow to reset key store and stop key fetching

Merged Malte Bauch requested to merge qkdnm-set-key-store into master
1 file
+ 31
1
Compare changes
  • Side-by-side
  • Inline
@@ -3,6 +3,7 @@ package qkdnmanager
import (
"encoding/json"
"errors"
"fmt"
"net/http"
"time"
@@ -18,12 +19,14 @@ const operationalState = "operationalState"
const qkdInterface = "qkdInterface"
const interCKMSInterface = "interCKMSInterface"
const akmsInterface = "akmsInterface"
const setKeyStore = "setKeyStore"
var endpoints = map[string]string{
operationalState: "/operationalState",
qkdInterface: "/qkdInterface",
interCKMSInterface: "/interCKMSInterface",
akmsInterface: "/akmsInterface",
setKeyStore: "/setKeyStore",
}
type QkdnManagerServer struct {
@@ -72,6 +75,7 @@ func (qs *QkdnManagerServer) addHandlersToMux(mux *http.ServeMux) {
mux.HandleFunc(APIPrefix+endpoints[qkdInterface], qs.handleHttpQkdInterface)
mux.HandleFunc(APIPrefix+endpoints[interCKMSInterface], qs.handleHttpInterCKMSInterface)
mux.HandleFunc(APIPrefix+endpoints[akmsInterface], qs.handleHttpAkmsInterface)
mux.HandleFunc(APIPrefix+endpoints[setKeyStore], qs.handleSetKeyStore)
}
func (qs *QkdnManagerServer) startServer() {
@@ -153,7 +157,7 @@ func (qs *QkdnManagerServer) handleHttpInterCKMSInterface(w http.ResponseWriter,
}
func (qs *QkdnManagerServer) handleHttpAkmsInterface(w http.ResponseWriter, r *http.Request) {
logrus.Debugf("Handler for AkmsInterface got requestfrom: %s", r.RemoteAddr)
logrus.Debugf("Handler for AkmsInterface got request from: %s", r.RemoteAddr)
data := &KmsData{
KMS_ID: qs.kms.GetID(),
@@ -172,3 +176,29 @@ func (qs *QkdnManagerServer) handleHttpAkmsInterface(w http.ResponseWriter, r *h
logrus.Error(err)
}
}
func (qs *QkdnManagerServer) handleSetKeyStore(w http.ResponseWriter, r *http.Request) {
logrus.Debugf("Handler for SetKeyStore got request from: %s", r.RemoteAddr)
err := r.ParseForm()
if err != nil {
http.Error(w, err.Error(), http.StatusBadRequest)
return
}
keyFillLevel := r.Form.Get("KeyFillLevel")
peerIDs, ok := r.Form["PeerIds"]
if !ok {
http.Error(w, fmt.Sprintf("No peer IDs provided."), http.StatusBadRequest)
return
}
fetch := r.Form.Get("Fetch")
logrus.Debugf("KeyFillLevel: %s, PeerIDs: %v, Fetch: %s", keyFillLevel, peerIDs, fetch)
w.WriteHeader(http.StatusOK)
_, err = w.Write([]byte("OK\n"))
if err != nil {
logrus.Error(err)
}
}
Loading