Skip to content
Snippets Groups Projects
Select Git revision
  • 9a4a552c1c0eca182dd785d6af0fdd2bc9604658
  • master default protected
  • renovate/golangci-golangci-lint-2.x
  • renovate/google.golang.org-grpc-1.x
  • renovate/google.golang.org-protobuf-1.x
  • renovate/google.golang.org-genproto-googleapis-api-digest
  • renovate/golang.org-x-sys-0.x
  • enhance-ping-utility
  • renovate/rabbitmq-4.x
  • renovate/mongo-8.x
  • renovate/github.com-openconfig-goyang-1.x
  • renovate/github.com-oapi-codegen-runtime-1.x
  • renovate/code.fbi.h-da.de-danet-gnmi-target-digest
  • 54-ecoc-infrastructure-setup
  • kai_masterthesis
  • martin-quipsec
  • request-health-checks-for-peers
  • 44-block-incoming-keys-if-exceeding-max-key-fill-level
  • add-inventory-manager
  • extend-intercom-with-aes-auth-tag
  • debug-ci
  • tud-testing-1
22 results

akmsCkmsServer.go

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    akmsCkmsServer.go 1.31 KiB
    package akmsCkmsServer
    
    import (
    	"encoding/json"
    	"net/http"
    
    	"code.fbi.h-da.de/danet/quant/ekms/internal/kms"
    )
    
    // Define AKMSReceiverServer.
    type AKMSReceiverServer struct {
    	ekms   *kms.EKMS
    	server *http.Server
    }
    
    // create NewAKMSReceiver.
    func NewAKMSReceiver(port string, ekms *kms.EKMS) *AKMSReceiverServer {
    	router := http.NewServeMux()
    
    	router.HandleFunc("/ksa_key_req", ksaReqHandler)
    
    	server := &http.Server{
    		Addr:    ":" + port,
    		Handler: router,
    	}
    
    	AKMSReceiver := &AKMSReceiverServer{
    		ekms:   ekms,
    		server: server,
    	}
    
    	return AKMSReceiver
    }
    
    func (akmsReceiver *AKMSReceiverServer) Serve() {
    	go akmsReceiver.server.ListenAndServe() //nolint:errcheck
    }
    
    type KeyProperties struct {
    	Number    int `json:"number"`
    	KeyLength int `json:"key_length"`
    	Timeout   int `json:"timeout"`
    	TTL       int `json:"TTL"`
    }
    
    type KMSKeyRequest struct {
    	LocalCKMSID   string          `json:"local_CKMS_ID"`
    	RequestID     string          `json:"request_ID"`
    	KeyProperties []KeyProperties `json:"key_properties"`
    }
    
    func ksaReqHandler(w http.ResponseWriter, r *http.Request) {
    	// Parse the request body
    	var req KMSKeyRequest
    	err := json.NewDecoder(r.Body).Decode(&req)
    	if err != nil {
    		http.Error(w, err.Error(), http.StatusBadRequest)
    		return
    	}
    
    	// Run go routine
    	//ekms.Stuff()
    
    	w.WriteHeader(http.StatusNoContent)
    }