diff --git a/ekms.Dockerfile b/ekms.Dockerfile index d634d3078127e9d557a1a1b1628a2f0c9a5c94ce..82cb8c24f8259db2025c877d6b939dfb8232ce87 100644 --- a/ekms.Dockerfile +++ b/ekms.Dockerfile @@ -1,9 +1,18 @@ ARG GOLANG_VERSION=1.20.3 ARG BUILDARGS +ARG ACCESS_TOKEN_USR="nothing" +ARG ACCESS_TOKEN_PWD="nothing" FROM golang:$GOLANG_VERSION-buster as builder WORKDIR /ekms/ COPY . . +# based on https://jwenz723.medium.com/fetching-private-go-modules-during-docker-build-5b76aa690280 +RUN printf "machine code.fbi.h-da.de\n\ + login ${ACCESS_TOKEN_USR}\n\ + password ${ACCESS_TOKEN_PWD}\n\ + \n"\ + >> /root/.netrc +RUN chmod 600 /root/.netrc RUN --mount=type=cache,target=/root/go/pkg/mod \ --mount=type=cache,target=/root/.cache/go-build \ make build diff --git a/etsiqkdnclient/etsi-qkdn-client.go b/etsiqkdnclient/etsi-qkdn-client.go index 42f8833d288efd45a260f3e9b9716b82ef35523b..14ec0855cdb2a362fa25b54d5a3e161dcedfcaa4 100644 --- a/etsiqkdnclient/etsi-qkdn-client.go +++ b/etsiqkdnclient/etsi-qkdn-client.go @@ -1,16 +1,22 @@ package etsiqkdnclient import ( - "net" "os" "time" log "github.com/sirupsen/logrus" - "code.fbi.h-da.de/danet/proto-kms/kms" + "code.fbi.h-da.de/danet/ekms/internal/kms" "github.com/google/uuid" ) +type QuantumModuleType int + +const ( + EmulatedQuantumModule QuantumModuleType = iota + ETSIQuantumModule +) + // Example of a valid config.yaml // // Name: kms02 @@ -41,16 +47,21 @@ type Config struct { InterComAddr string `yaml:"InterComAddr"` GRPCAddr string `yaml:"GRPCAddr"` Peers []struct { - PeerInterComAddr string `yaml:"PeerInterComAddr"` - Sync bool `yaml:"Sync"` - QuantumModule struct { - UDPAddr string `yaml:"UDPAddr"` - PeerUDPAddr string `yaml:"PeerUDPAddr"` - GenerateKeys bool `yaml:"GenerateKeys"` - } `yaml:"QuantumModule"` + PeerId string `yaml:"PeerId"` + PeerInterComAddr string `yaml:"PeerInterComAddr"` + Sync bool `yaml:"Sync"` + QuantumModule QuantumModule `yaml:"QuantumModule"` } `yaml:"Peers"` } +type QuantumModule struct { + QmType string `yaml:"Type"` + Address string `yaml:"Address"` + MasterSAEID string `yaml:"MasterSAEID"` + SlaveSAEID string `yaml:"SlaveSAEID"` + MasterMode bool `yaml:"MasterMode"` +} + type EtsiQkdClient interface { GetQkdnVersion() *string GetQkdnUui() *string @@ -91,19 +102,29 @@ func emulatedKMS(config *Config, peerChannel chan string) *kms.EKMS { emuKMS := kms.NewEKMS(config.Name, uuid.New(), os.Stdout, log.TraceLevel, false, config.InterComAddr) emuKMS.AddExternalNotifierKMSPeer(peerChannel) + var qm kms.QuantumModule + var err error for _, peer := range config.Peers { - // Fire up Quantum LinK - myQL := emuKMS.AddQuantumElement(peer.QuantumModule.UDPAddr, peer.QuantumModule.GenerateKeys, os.Stdout, log.TraceLevel, false) + pqm := peer.QuantumModule + switch qmt := peer.QuantumModule.QmType; qmt { + case "emulated": + qm = kms.NewEmulatedQuantumModule(pqm.Address) + case "etsi": + qm, err = kms.NewETSI014HTTPQuantumModule(pqm.Address, pqm.SlaveSAEID, pqm.MasterSAEID, pqm.MasterMode) + if err != nil { + } + default: + log.Fatalf("Unknown type: %s for quantum module", qmt) + return nil + } - udpQL2Addr, err := net.ResolveUDPAddr("udp", peer.QuantumModule.PeerUDPAddr) + err := emuKMS.AddQuantumElement(qm) if err != nil { - log.Fatalf("QuantumlayerEmuPRNG UDP failure: %s", err) + log.Fatalf("Failed to add quantum element", err) return nil } - myQL.QuantumElementLink.AddPeer(udpQL2Addr) - - p, err := emuKMS.AddPeer(peer.PeerInterComAddr, myQL) + p, err := emuKMS.AddPeer(peer.PeerId, peer.PeerInterComAddr, qm) if err != nil { log.Fatalf("Failed to create a peer: %s", err) return nil @@ -122,9 +143,6 @@ func emulatedKMS(config *Config, peerChannel chan string) *kms.EKMS { // Start the SDN/management and key retrieval interface go kms.StartETSI(config.GRPCAddr, emuKMS) - // TODO/XXX catch errors! - go emuKMS.GlobalKeyHandler(7 * time.Second) - return emuKMS } diff --git a/go.mod b/go.mod index f7b1f63ced0b61d8a23fd1eeb90e978a4be92d30..540fee127f46327c6eb98909ff3a13182dd1ef25 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,8 @@ go 1.21 require ( code.fbi.h-da.de/danet/gnmi-target v0.0.0-20231020162329-e5679b7b675b - code.fbi.h-da.de/danet/proto-kms v0.0.0-20231010134253-1aaf11da29b9 + code.fbi.h-da.de/danet/quantumlayer v0.0.0-20231114130902-f292ca2f0cfc + code.fbi.h-da.de/danet/quipsec/gen/go/quipsec v0.0.0-20231113131315-e0a0cd3d28e3 github.com/google/uuid v1.3.1 github.com/gorilla/mux v1.8.0 github.com/grpc-ecosystem/grpc-gateway/v2 v2.18.0 @@ -19,12 +20,13 @@ require ( github.com/stretchr/testify v1.8.4 golang.org/x/sys v0.13.0 google.golang.org/genproto/googleapis/api v0.0.0-20230913181813-007df8e322eb - google.golang.org/grpc v1.58.2 + google.golang.org/grpc v1.59.0 google.golang.org/protobuf v1.31.0 gopkg.in/yaml.v3 v3.0.1 ) require ( + buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.31.0-20231030212536-12f9cba37c9d.2 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/fsnotify/fsnotify v1.6.0 // indirect github.com/go-ole/go-ole v1.2.6 // indirect diff --git a/go.sum b/go.sum index f0bfb7506bb2418dbf3e3a30db0e46bb32092047..af5e29d29eea32d6c82412eae7834b8749ed4526 100644 --- a/go.sum +++ b/go.sum @@ -1,3 +1,5 @@ +buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.31.0-20231030212536-12f9cba37c9d.2 h1:m8rKyv88R8ZIR1549RMXckZ4FZJGxrq/7aRYl6U3WHc= +buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.31.0-20231030212536-12f9cba37c9d.2/go.mod h1:xafc+XIsTxTy76GJQ1TKgvJWsSugFBqMaN27WhUblew= cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= @@ -37,8 +39,10 @@ cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9 cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo= code.fbi.h-da.de/danet/gnmi-target v0.0.0-20231020162329-e5679b7b675b h1:VxqdCZoOjrXLAEEJOldL42x9wuC4GEs62QT750PGlOw= code.fbi.h-da.de/danet/gnmi-target v0.0.0-20231020162329-e5679b7b675b/go.mod h1:xPagPYNZ/m3HlcooqrnXySZnbRlhCSJipHNezWYnjes= -code.fbi.h-da.de/danet/proto-kms v0.0.0-20231010134253-1aaf11da29b9 h1:9aqZn5Noule8DfdFwxsL2zNL5N/oP3i3eiz0QQ+TuTw= -code.fbi.h-da.de/danet/proto-kms v0.0.0-20231010134253-1aaf11da29b9/go.mod h1:7dji2FbqT/K0ygRuq5OkiTQK+DOzs5qE+ygVw8fja0g= +code.fbi.h-da.de/danet/quantumlayer v0.0.0-20231114130902-f292ca2f0cfc h1:AS8trTNdwnZcSTbqSHkS/6yi/p2PRBJ7WrqlRWYtrpE= +code.fbi.h-da.de/danet/quantumlayer v0.0.0-20231114130902-f292ca2f0cfc/go.mod h1:uutiqkcUedfATuNkwqk2cyheTtxxZaXjE+iv+zLk7qw= +code.fbi.h-da.de/danet/quipsec/gen/go/quipsec v0.0.0-20231113131315-e0a0cd3d28e3 h1:PXz62uU6MEdcafEZnVwKINPRxSL0y0Ht0Pzp/NSSTew= +code.fbi.h-da.de/danet/quipsec/gen/go/quipsec v0.0.0-20231113131315-e0a0cd3d28e3/go.mod h1:lPCd19Jk8aL5B3xSk+h6y5sziXVPqyCXgO7dILvJFfQ= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= @@ -528,8 +532,8 @@ google.golang.org/grpc v1.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8= google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= -google.golang.org/grpc v1.58.2 h1:SXUpjxeVF3FKrTYQI4f4KvbGD5u2xccdYdurwowix5I= -google.golang.org/grpc v1.58.2/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= +google.golang.org/grpc v1.59.0 h1:Z5Iec2pjwb+LEOqzpB2MR12/eKFhDPhuqW91O+4bwUk= +google.golang.org/grpc v1.59.0/go.mod h1:aUPDwccQo6OTjy7Hct4AfBPD1GptF4fyUjIkQ9YtF98= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= diff --git a/handlers/etsi/etsi15Handler.go b/handlers/etsi/etsi15Handler.go index 0d6fb57218e017f9d8387ba24dc3aa6ddff48430..7d536c807cb9f73805eefcaa2d74fbcc8596d96f 100644 --- a/handlers/etsi/etsi15Handler.go +++ b/handlers/etsi/etsi15Handler.go @@ -5,8 +5,6 @@ import ( "code.fbi.h-da.de/danet/ekms/etsiqkdnclient" gnmitargetygot "code.fbi.h-da.de/danet/ekms/model" - "code.fbi.h-da.de/danet/proto-kms/kms" - "github.com/google/uuid" "github.com/openconfig/gnmi/proto/gnmi" "github.com/openconfig/ygot/ygot" log "github.com/sirupsen/logrus" @@ -74,52 +72,52 @@ func (yh *ETSI15Handler) Init(c ygot.ValidatedGoStruct) error { func (yh *ETSI15Handler) Update(c ygot.ValidatedGoStruct, jobs []*gnmi.Update) error { fmt.Println("Update request received for ", yh.name) - config, ok := c.(*gnmitargetygot.Gnmitarget) - if !ok { - return fmt.Errorf("failed type assertion for newConfig %T", (*gnmitargetygot.Gnmitarget)(nil)) - } - - qkdnInfo := config.GetQkdNode() - - if qkdnInfo != nil { - // check for changes in the QKD interfaces - if q := qkdnInfo.GetOrCreateQkdInterfaces(); q != nil { - for _, qkdnIface := range q.QkdInterface { - qle, exists := yh.qkdnClient.GetEKMS().QuantumElements[*qkdnIface.QkdiId] - if !exists { - log.Printf("Could not find QuantumElement with QKD-ID: %d\n", *qkdnIface.QkdiId) - return fmt.Errorf("Error: Could not find QuantumElement with QKD-ID: %d\n", *qkdnIface.QkdiId) - } - if qkdnIface.QkdiStatus == gnmitargetygot.EtsiQkdSdnNode_IfaceStatusTypes_DISABLED { - qle.QuantumElementLink.PowerOff() - } else if qkdnIface.QkdiStatus == gnmitargetygot.EtsiQkdSdnNode_IfaceStatusTypes_ENABLED { - qle.QuantumElementLink.PowerOn(true) - } - } - } - if links := qkdnInfo.GetOrCreateQkdLinks(); links != nil { - theEKMS := yh.qkdnClient.GetEKMS() - for _, qkdnLink := range links.QkdLink { - peerUuid, uuidErr := uuid.Parse(*qkdnLink.QkdlId) - if uuidErr != nil { - return fmt.Errorf("Couldn't parse uuid %s of request", *qkdnLink.QkdlId) - } - // Lookup peer and skip if there - // TODO needs handling for existing peers - if thePeer := theEKMS.FindPeerUuid(peerUuid); thePeer == nil { - // should be changed!!!! - if qkdnLink.QkdlLocal.QkdiId != nil && qkdnLink.QkdlRemote.QkdiRemoteSocket != nil && qkdnLink.QkdlStatus == gnmitargetygot.EtsiQkdSdnNode_LinkStatusTypes_ACTIVE { - if elementID, _ := theEKMS.QuantumElements[*qkdnLink.QkdlLocal.QkdiId]; elementID != nil { - theEKMS.AddPeer(*qkdnLink.QkdlRemote.QkdiRemoteSocket, elementID) - } - } - } - if qkdnLink.QkdlLocal.QkdiId != nil && qkdnLink.QkdlRemote.QkdiRemoteSocket != nil && qkdnLink.QkdlStatus == gnmitargetygot.EtsiQkdSdnNode_LinkStatusTypes_PASSIVE { - theEKMS.RemovePeer(*qkdnLink.QkdlRemote.QkdiRemoteSocket) - } - } - } - } + //config, ok := c.(*gnmitargetygot.Gnmitarget) + //if !ok { + // return fmt.Errorf("failed type assertion for newConfig %T", (*gnmitargetygot.Gnmitarget)(nil)) + //} + + //qkdnInfo := config.GetQkdNode() + + //if qkdnInfo != nil { + // // check for changes in the QKD interfaces + // if q := qkdnInfo.GetOrCreateQkdInterfaces(); q != nil { + // for _, qkdnIface := range q.QkdInterface { + // qle, exists := yh.qkdnClient.GetEKMS().QuantumElements[*qkdnIface.QkdiId] + // if !exists { + // log.Printf("Could not find QuantumElement with QKD-ID: %d\n", *qkdnIface.QkdiId) + // return fmt.Errorf("Error: Could not find QuantumElement with QKD-ID: %d\n", *qkdnIface.QkdiId) + // } + // if qkdnIface.QkdiStatus == gnmitargetygot.EtsiQkdSdnNode_IfaceStatusTypes_DISABLED { + // qle.QuantumElementLink.PowerOff() + // } else if qkdnIface.QkdiStatus == gnmitargetygot.EtsiQkdSdnNode_IfaceStatusTypes_ENABLED { + // qle.QuantumElementLink.PowerOn(true) + // } + // } + // } + // if links := qkdnInfo.GetOrCreateQkdLinks(); links != nil { + // theEKMS := yh.qkdnClient.GetEKMS() + // for _, qkdnLink := range links.QkdLink { + // peerUuid, uuidErr := uuid.Parse(*qkdnLink.QkdlId) + // if uuidErr != nil { + // return fmt.Errorf("Couldn't parse uuid %s of request", *qkdnLink.QkdlId) + // } + // // Lookup peer and skip if there + // // TODO needs handling for existing peers + // if thePeer := theEKMS.FindPeerUuid(peerUuid); thePeer == nil { + // // should be changed!!!! + // if qkdnLink.QkdlLocal.QkdiId != nil && qkdnLink.QkdlRemote.QkdiRemoteSocket != nil && qkdnLink.QkdlStatus == gnmitargetygot.EtsiQkdSdnNode_LinkStatusTypes_ACTIVE { + // if elementID, _ := theEKMS.QuantumElements[*qkdnLink.QkdlLocal.QkdiId]; elementID != nil { + // theEKMS.AddPeer(*qkdnLink.QkdlRemote.QkdiRemoteSocket, elementID) + // } + // } + // } + // if qkdnLink.QkdlLocal.QkdiId != nil && qkdnLink.QkdlRemote.QkdiRemoteSocket != nil && qkdnLink.QkdlStatus == gnmitargetygot.EtsiQkdSdnNode_LinkStatusTypes_PASSIVE { + // theEKMS.RemovePeer(*qkdnLink.QkdlRemote.QkdiRemoteSocket) + // } + // } + // } + //} return nil } @@ -137,55 +135,54 @@ func updateOrCreateQkdNode(confQkdNode *gnmitargetygot.EtsiQkdSdnNode_QkdNode, q // Fill QKD Interfaces with the relevant information // Interfaces structure confQkdNode.QkdInterfaces = confQkdNode.GetOrCreateQkdInterfaces() - QkdiModel := "danet-emulated-qle-prng" - - // range through existing QKD interfaces out of proto-kms - myKMS := qkdInfo.GetEKMS() - for _, element := range myKMS.QuantumElements { - log.Printf("Element with ID %d\n", element.QlID) - - //Check if element exists in ygot struct - qkdIface, nodeErr := confQkdNode.QkdInterfaces.NewQkdInterface(element.QlID) - if nodeErr != nil { - qkdIface = confQkdNode.QkdInterfaces.GetQkdInterface(element.QlID) - } else { - confQkdNode.QkdInterfaces.AppendQkdInterface(qkdIface) - } - - qkdIface.QkdiId = &element.QlID - if poweredOn, _ := element.QuantumElementLink.GetStatus(); poweredOn == true { - qkdIface.QkdiStatus = gnmitargetygot.EtsiQkdSdnNode_IfaceStatusTypes_ENABLED - } else { - qkdIface.QkdiStatus = gnmitargetygot.EtsiQkdSdnNode_IfaceStatusTypes_DISABLED - } - qkdIface.QkdiModel = &QkdiModel - //qkdIface.QkdiAttPoint.Device = - element.QuantumElementLink.GetLocalQLPort() - } - confQkdNode.QkdLinks = confQkdNode.GetOrCreateQkdLinks() - - // Check for changes in the QKD key association links - if q := confQkdNode.GetOrCreateQkdLinks(); q != nil { - for _, kmsLink := range qkdInfo.GetEKMS().KmsPeers { - // Just write the current status of this kms peer - qkdnLink := confQkdNode.QkdLinks.GetOrCreateQkdLink(kmsLink.GetKmsPeerId().String()) - switch kmsLink.GetKmsPeerStatus() { - case kms.KmsPeerDown: - qkdnLink.QkdlStatus = gnmitargetygot.E_EtsiQkdSdnNode_LinkStatusTypes(gnmitargetygot.EtsiQkdSdnNode_LinkStatusTypes_OFF) - case kms.KmsPeerUp: - qkdnLink.QkdlStatus = gnmitargetygot.E_EtsiQkdSdnNode_LinkStatusTypes(gnmitargetygot.EtsiQkdSdnNode_LinkStatusTypes_ACTIVE) - case kms.KmsPeerPending: - qkdnLink.QkdlStatus = gnmitargetygot.E_EtsiQkdSdnNode_LinkStatusTypes(gnmitargetygot.EtsiQkdSdnNode_LinkStatusTypes_PENDING) - default: - qkdnLink.QkdlStatus = gnmitargetygot.E_EtsiQkdSdnNode_LinkStatusTypes(gnmitargetygot.EtsiQkdSdnNode_LinkStatusTypes_UNSET) - } - peerQkdiId := kmsLink.GetKmsPeerQkdiId() - qkdLocal := qkdnLink.GetOrCreateQkdlLocal() - qkdLocal.QkdiId = &peerQkdiId - - qkdnLink.QkdlLocal = qkdLocal - } - } + //QkdiModel := "danet-emulated-qle-prng" + + //// range through existing QKD interfaces out of proto-kms + //myKMS := qkdInfo.GetEKMS() + //for _, element := range myKMS.QuantumElements { + // log.Printf("Element with ID %d\n", element.QlID) + + // //Check if element exists in ygot struct + // qkdIface, nodeErr := confQkdNode.QkdInterfaces.NewQkdInterface(element.QlID) + // if nodeErr != nil { + // qkdIface = confQkdNode.QkdInterfaces.GetQkdInterface(element.QlID) + // } else { + // confQkdNode.QkdInterfaces.AppendQkdInterface(qkdIface) + // } + + // qkdIface.QkdiId = &element.QlID + // if poweredOn, _ := element.QuantumElementLink.GetStatus(); poweredOn == true { + // qkdIface.QkdiStatus = gnmitargetygot.EtsiQkdSdnNode_IfaceStatusTypes_ENABLED + // } else { + // qkdIface.QkdiStatus = gnmitargetygot.EtsiQkdSdnNode_IfaceStatusTypes_DISABLED + // } + // qkdIface.QkdiModel = &QkdiModel + // //qkdIface.QkdiAttPoint.Device = + // element.QuantumElementLink.GetLocalQLPort() + //} + //confQkdNode.QkdLinks = confQkdNode.GetOrCreateQkdLinks() + + //// Check for changes in the QKD key association links + //if q := confQkdNode.GetOrCreateQkdLinks(); q != nil { + // for _, kmsLink := range qkdInfo.GetEKMS().KmsPeers { + // // Just write the current status of this kms peer + // qkdnLink := confQkdNode.QkdLinks.GetOrCreateQkdLink(kmsLink.GetKmsPeerId().String()) + // switch kmsLink.GetKmsPeerStatus() { + // case kms.KmsPeerDown: + // qkdnLink.QkdlStatus = gnmitargetygot.E_EtsiQkdSdnNode_LinkStatusTypes(gnmitargetygot.EtsiQkdSdnNode_LinkStatusTypes_OFF) + // case kms.KmsPeerUp: + // qkdnLink.QkdlStatus = gnmitargetygot.E_EtsiQkdSdnNode_LinkStatusTypes(gnmitargetygot.EtsiQkdSdnNode_LinkStatusTypes_ACTIVE) + // case kms.KmsPeerPending: + // qkdnLink.QkdlStatus = gnmitargetygot.E_EtsiQkdSdnNode_LinkStatusTypes(gnmitargetygot.EtsiQkdSdnNode_LinkStatusTypes_PENDING) + // default: + // qkdnLink.QkdlStatus = gnmitargetygot.E_EtsiQkdSdnNode_LinkStatusTypes(gnmitargetygot.EtsiQkdSdnNode_LinkStatusTypes_UNSET) + // } + // peerQkdiId := kmsLink.GetKmsPeerQkdiId() + // qkdLocal := qkdnLink.GetOrCreateQkdlLocal() + // qkdLocal.QkdiId = &peerQkdiId + // qkdnLink.QkdlLocal = qkdLocal + // } + //} confQkdNode.QkdApplications = confQkdNode.GetOrCreateQkdApplications() diff --git a/internal/Dockerfile b/internal/Dockerfile deleted file mode 100644 index 4e7b6ac65832fc233b1b06dbf7bbb5d81df62b2c..0000000000000000000000000000000000000000 --- a/internal/Dockerfile +++ /dev/null @@ -1,14 +0,0 @@ -ARG GOLANG_VERSION=1.20.5 - -FROM golang:$GOLANG_VERSION-alpine as builder -WORKDIR /proto-kms/ -RUN apk add build-base -COPY . . -RUN --mount=type=cache,target=/root/go/pkg/mod \ - --mount=type=cache,target=/root/.cache/go-build \ - make build-proto-kms - -FROM ${GITLAB_PROXY}golang:$GOLANG_VERSION-buster -WORKDIR /app/ -COPY --from=builder /proto-kms/artifacts/proto-kms ./proto-kms -ENTRYPOINT ["./proto-kms"] diff --git a/internal/Makefile b/internal/Makefile deleted file mode 100644 index 14dcc56834286077dea369be87ea99e25e6cfd9e..0000000000000000000000000000000000000000 --- a/internal/Makefile +++ /dev/null @@ -1,17 +0,0 @@ -GOCMD=go -GOBUILD=$(GOCMD) build -GOCLEAN=$(GOCMD) clean -BUILD_ARTIFACTS_PATH=artifacts - -pre: - mkdir -p $(BUILD_ARTIFACTS_PATH) - -build-proto-kms: pre - CGO_ENABLED=0 $(GOBUILD) -o $(BUILD_ARTIFACTS_PATH)/proto-kms . - -containerize-proto-kms: - docker buildx build --rm -t proto-kms --load -f Dockerfile . - -clean: - $(GOCLEAN) - rm -rf $(BUILD_ARTIFACTS_PATH) diff --git a/internal/api/buf.gen.yaml b/internal/api/buf.gen.yaml index 72950582b034612d2feccdb2fc95cea8f49694de..1bb1e1bb0706c938c6201a14ca467d8903eb391a 100644 --- a/internal/api/buf.gen.yaml +++ b/internal/api/buf.gen.yaml @@ -2,7 +2,7 @@ version: v1 managed: enabled: true go_package_prefix: - default: code.fbi.h-da.de/demoquandt/proto-kms/gen/proto/go + default: code.fbi.h-da.de/demoquandt/ekms/internal/kms/gen/proto/go plugins: - plugin: buf.build/grpc/go out: gen/proto/go diff --git a/internal/api/gen/proto/go/kmsetsi/kmsetsiproto.pb.go b/internal/api/gen/proto/go/kmsetsi/kmsetsiproto.pb.go index af7a507c7f40823c4620e0881f2e02cf744ee169..6586db4574081586f6477e5104cec5e027336153 100644 --- a/internal/api/gen/proto/go/kmsetsi/kmsetsiproto.pb.go +++ b/internal/api/gen/proto/go/kmsetsi/kmsetsiproto.pb.go @@ -1043,17 +1043,18 @@ var file_kmsetsi_kmsetsiproto_proto_rawDesc = []byte{ 0x69, 0x2e, 0x45, 0x54, 0x53, 0x49, 0x53, 0x65, 0x6e, 0x64, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x6b, 0x6d, 0x73, 0x65, 0x74, 0x73, 0x69, 0x2e, 0x45, 0x54, 0x53, 0x49, 0x53, 0x65, 0x6e, 0x64, 0x50, 0x61, 0x79, 0x6c, 0x6f, - 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x98, 0x01, 0x0a, + 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0xa0, 0x01, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x2e, 0x6b, 0x6d, 0x73, 0x65, 0x74, 0x73, 0x69, 0x42, 0x11, 0x4b, 0x6d, 0x73, 0x65, 0x74, 0x73, 0x69, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, - 0x01, 0x5a, 0x3a, 0x63, 0x6f, 0x64, 0x65, 0x2e, 0x66, 0x62, 0x69, 0x2e, 0x68, 0x2d, 0x64, 0x61, - 0x2e, 0x64, 0x65, 0x2f, 0x64, 0x65, 0x6d, 0x6f, 0x71, 0x75, 0x61, 0x6e, 0x64, 0x74, 0x2f, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2d, 0x6b, 0x6d, 0x73, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x2f, 0x6b, 0x6d, 0x73, 0x65, 0x74, 0x73, 0x69, 0xa2, 0x02, 0x03, - 0x4b, 0x58, 0x58, 0xaa, 0x02, 0x07, 0x4b, 0x6d, 0x73, 0x65, 0x74, 0x73, 0x69, 0xca, 0x02, 0x07, - 0x4b, 0x6d, 0x73, 0x65, 0x74, 0x73, 0x69, 0xe2, 0x02, 0x13, 0x4b, 0x6d, 0x73, 0x65, 0x74, 0x73, - 0x69, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x07, - 0x4b, 0x6d, 0x73, 0x65, 0x74, 0x73, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x01, 0x5a, 0x42, 0x63, 0x6f, 0x64, 0x65, 0x2e, 0x66, 0x62, 0x69, 0x2e, 0x68, 0x2d, 0x64, 0x61, + 0x2e, 0x64, 0x65, 0x2f, 0x64, 0x65, 0x6d, 0x6f, 0x71, 0x75, 0x61, 0x6e, 0x64, 0x74, 0x2f, 0x65, + 0x6b, 0x6d, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x6b, 0x6d, 0x73, + 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x2f, 0x6b, 0x6d, + 0x73, 0x65, 0x74, 0x73, 0x69, 0xa2, 0x02, 0x03, 0x4b, 0x58, 0x58, 0xaa, 0x02, 0x07, 0x4b, 0x6d, + 0x73, 0x65, 0x74, 0x73, 0x69, 0xca, 0x02, 0x07, 0x4b, 0x6d, 0x73, 0x65, 0x74, 0x73, 0x69, 0xe2, + 0x02, 0x13, 0x4b, 0x6d, 0x73, 0x65, 0x74, 0x73, 0x69, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x07, 0x4b, 0x6d, 0x73, 0x65, 0x74, 0x73, 0x69, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/internal/api/gen/proto/go/kmsintercom/kmsintercom.pb.go b/internal/api/gen/proto/go/kmsintercom/kmsintercom.pb.go index d990f2d156f73a47bcc5b969c900de9e89d96a9f..859f69e96857d236e2728b6eaca40b3139a12e16 100644 --- a/internal/api/gen/proto/go/kmsintercom/kmsintercom.pb.go +++ b/internal/api/gen/proto/go/kmsintercom/kmsintercom.pb.go @@ -815,18 +815,19 @@ var file_kmsintercom_kmsintercom_proto_rawDesc = []byte{ 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x6b, 0x6d, 0x73, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6d, 0x2e, 0x4b, 0x65, 0x79, 0x49, 0x64, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x00, 0x42, 0xaf, 0x01, 0x0a, 0x0f, 0x63, 0x6f, 0x6d, 0x2e, 0x6b, 0x6d, 0x73, 0x69, + 0x65, 0x22, 0x00, 0x42, 0xb7, 0x01, 0x0a, 0x0f, 0x63, 0x6f, 0x6d, 0x2e, 0x6b, 0x6d, 0x73, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6d, 0x42, 0x10, 0x4b, 0x6d, 0x73, 0x69, 0x6e, 0x74, 0x65, - 0x72, 0x63, 0x6f, 0x6d, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3e, 0x63, 0x6f, 0x64, + 0x72, 0x63, 0x6f, 0x6d, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x46, 0x63, 0x6f, 0x64, 0x65, 0x2e, 0x66, 0x62, 0x69, 0x2e, 0x68, 0x2d, 0x64, 0x61, 0x2e, 0x64, 0x65, 0x2f, 0x64, 0x65, - 0x6d, 0x6f, 0x71, 0x75, 0x61, 0x6e, 0x64, 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2d, 0x6b, - 0x6d, 0x73, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x2f, - 0x6b, 0x6d, 0x73, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6d, 0xa2, 0x02, 0x03, 0x4b, 0x58, - 0x58, 0xaa, 0x02, 0x0b, 0x4b, 0x6d, 0x73, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6d, 0xca, - 0x02, 0x0b, 0x4b, 0x6d, 0x73, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6d, 0xe2, 0x02, 0x17, - 0x4b, 0x6d, 0x73, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6d, 0x5c, 0x47, 0x50, 0x42, 0x4d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x0b, 0x4b, 0x6d, 0x73, 0x69, 0x6e, 0x74, - 0x65, 0x72, 0x63, 0x6f, 0x6d, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6d, 0x6f, 0x71, 0x75, 0x61, 0x6e, 0x64, 0x74, 0x2f, 0x65, 0x6b, 0x6d, 0x73, 0x2f, 0x69, 0x6e, + 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x6b, 0x6d, 0x73, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x2f, 0x6b, 0x6d, 0x73, 0x69, 0x6e, 0x74, 0x65, 0x72, + 0x63, 0x6f, 0x6d, 0xa2, 0x02, 0x03, 0x4b, 0x58, 0x58, 0xaa, 0x02, 0x0b, 0x4b, 0x6d, 0x73, 0x69, + 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6d, 0xca, 0x02, 0x0b, 0x4b, 0x6d, 0x73, 0x69, 0x6e, 0x74, + 0x65, 0x72, 0x63, 0x6f, 0x6d, 0xe2, 0x02, 0x17, 0x4b, 0x6d, 0x73, 0x69, 0x6e, 0x74, 0x65, 0x72, + 0x63, 0x6f, 0x6d, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, + 0x02, 0x0b, 0x4b, 0x6d, 0x73, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6d, 0x62, 0x06, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/internal/docker-compose.yml b/internal/docker-compose.yml deleted file mode 100644 index 3d19d0ff3ea1de99a333d53593335e419de95bbb..0000000000000000000000000000000000000000 --- a/internal/docker-compose.yml +++ /dev/null @@ -1,27 +0,0 @@ -version: '3' - -services: - proto-kms1: - build: - dockerfile: Dockerfile - command: ["-my-address", "172.100.20.10:55059", "-my-name", "proto-kms1", "-remote-address", "172.100.20.11:55059"] - networks: - proto-kms-net: - ipv4_address: 172.100.20.10 - - proto-kms2: - build: - dockerfile: Dockerfile - command: ["-my-address", "172.100.20.11:55059","-my-name", "proto-kms2", "-remote-address", "172.100.20.10:55059"] - networks: - proto-kms-net: - ipv4_address: 172.100.20.11 - -networks: - proto-kms-net: - ipam: - driver: default - config: - - subnet: "172.100.20.0/24" - name: proto-kms-net - diff --git a/internal/go.mod b/internal/go.mod deleted file mode 100644 index d181fee7a23bf168fa8f0f290a833850e1a1af4c..0000000000000000000000000000000000000000 --- a/internal/go.mod +++ /dev/null @@ -1,22 +0,0 @@ -module code.fbi.h-da.de/danet/proto-kms - -go 1.21 - -require ( - code.fbi.h-da.de/danet/ekms v0.0.0-20231101170413-671634b8e3b3 - code.fbi.h-da.de/danet/quipsec/gen/go/quipsec v0.0.0-20231113131315-e0a0cd3d28e3 - github.com/google/uuid v1.3.1 - github.com/sirupsen/logrus v1.9.3 - google.golang.org/grpc v1.59.0 - google.golang.org/protobuf v1.31.0 -) - -require ( - buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.31.0-20231030212536-12f9cba37c9d.2 // indirect - code.fbi.h-da.de/danet/quantumlayer v0.0.0-20231113142846-ae276faa2a9a // indirect - github.com/golang/protobuf v1.5.3 // indirect - golang.org/x/net v0.15.0 // indirect - golang.org/x/sys v0.13.0 // indirect - golang.org/x/text v0.13.0 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20230920204549-e6e6cdab5c13 // indirect -) diff --git a/internal/go.sum b/internal/go.sum deleted file mode 100644 index 1161aaaa3886541d9a6c969d3e559ad23b552c98..0000000000000000000000000000000000000000 --- a/internal/go.sum +++ /dev/null @@ -1,49 +0,0 @@ -buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.31.0-20231030212536-12f9cba37c9d.2 h1:m8rKyv88R8ZIR1549RMXckZ4FZJGxrq/7aRYl6U3WHc= -buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.31.0-20231030212536-12f9cba37c9d.2/go.mod h1:xafc+XIsTxTy76GJQ1TKgvJWsSugFBqMaN27WhUblew= -code.fbi.h-da.de/danet/ekms v0.0.0-20231101170413-671634b8e3b3 h1:ABpjLMNTDQIykwpDQOxBZ9ukm+suBu8oJHqq3GZCzzc= -code.fbi.h-da.de/danet/ekms v0.0.0-20231101170413-671634b8e3b3/go.mod h1:qVaZ1wGJ+XrE+S3eW1CEB0gAarzClnxYEog06BLnD4k= -code.fbi.h-da.de/danet/quantumlayer v0.0.0-20231113142846-ae276faa2a9a h1:urBXx1zWxvP/0QdEkIbViPqaILJV2BMhPJ34r0d5omk= -code.fbi.h-da.de/danet/quantumlayer v0.0.0-20231113142846-ae276faa2a9a/go.mod h1:L+el1b356QSGNH21HuA0uSqs58Ix5HyySYsTRmsBEaA= -code.fbi.h-da.de/danet/quipsec/gen/go/quipsec v0.0.0-20231113131315-e0a0cd3d28e3 h1:PXz62uU6MEdcafEZnVwKINPRxSL0y0Ht0Pzp/NSSTew= -code.fbi.h-da.de/danet/quipsec/gen/go/quipsec v0.0.0-20231113131315-e0a0cd3d28e3/go.mod h1:lPCd19Jk8aL5B3xSk+h6y5sziXVPqyCXgO7dILvJFfQ= -github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= -github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= -github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= -github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= -github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -github.com/google/uuid v1.3.1 h1:KjJaJ9iWZ3jOFZIf1Lqf4laDRCasjl0BCmnEGxkdLb4= -github.com/google/uuid v1.3.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= -github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= -github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= -github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= -github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -golang.org/x/net v0.15.0 h1:ugBLEUaxABaB5AJqW9enI0ACdci2RUd4eP51NTBvuJ8= -golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk= -golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE= -golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= -golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/genproto/googleapis/rpc v0.0.0-20230920204549-e6e6cdab5c13 h1:N3bU/SQDCDyD6R528GJ/PwW9KjYcJA3dgyH+MovAkIM= -google.golang.org/genproto/googleapis/rpc v0.0.0-20230920204549-e6e6cdab5c13/go.mod h1:KSqppvjFjtoCI+KGd4PELB0qLNxdJHRGqRI09mB6pQA= -google.golang.org/grpc v1.59.0 h1:Z5Iec2pjwb+LEOqzpB2MR12/eKFhDPhuqW91O+4bwUk= -google.golang.org/grpc v1.59.0/go.mod h1:aUPDwccQo6OTjy7Hct4AfBPD1GptF4fyUjIkQ9YtF98= -google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= -google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= -gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/internal/kms/kms.go b/internal/kms/kms.go index 5360a60ebc7aead0ddab6500fd193b5417dc6bef..37dc67f9dfab87fa81238e1c09820dc4fbc7c482 100644 --- a/internal/kms/kms.go +++ b/internal/kms/kms.go @@ -15,8 +15,8 @@ import ( "google.golang.org/grpc/health" healthpb "google.golang.org/grpc/health/grpc_health_v1" - pbETSI "code.fbi.h-da.de/danet/proto-kms/api/gen/proto/go/kmsetsi" - pbIC "code.fbi.h-da.de/danet/proto-kms/api/gen/proto/go/kmsintercom" + pbETSI "code.fbi.h-da.de/danet/ekms/internal/api/gen/proto/go/kmsetsi" + pbIC "code.fbi.h-da.de/danet/ekms/internal/api/gen/proto/go/kmsintercom" pbQS "code.fbi.h-da.de/danet/quipsec/gen/go/quipsec" "github.com/google/uuid" ) @@ -47,10 +47,11 @@ const ( // The general emulated KMS type EKMS struct { - kmsName string - kmsUUID uuid.UUID - interComAddr string - qleMapMutex sync.Mutex + kmsName string + kmsUUID uuid.UUID + interComAddr string + qleMapMutex sync.Mutex + // TODO create a mapping between ids and address quantumModules map[string]QuantumModule quantumModulesMutex sync.RWMutex externalNotifierQLE chan uint32 diff --git a/internal/kms/kmsetsi.go b/internal/kms/kmsetsi.go index f6e2cbba0dba79667095df46f365edcda8142846..4a491da07a78d4ee25ece9cc71e9d2b5f10ec235 100644 --- a/internal/kms/kmsetsi.go +++ b/internal/kms/kmsetsi.go @@ -11,7 +11,7 @@ import ( "github.com/google/uuid" log "github.com/sirupsen/logrus" - pb "code.fbi.h-da.de/danet/proto-kms/api/gen/proto/go/kmsetsi" + pb "code.fbi.h-da.de/danet/ekms/internal/api/gen/proto/go/kmsetsi" "google.golang.org/grpc" "google.golang.org/grpc/codes" "google.golang.org/grpc/status" diff --git a/internal/kms/kmsintercom.go b/internal/kms/kmsintercom.go index 7bf01c609c04a2e1fbd906638e727dbbfbc5e884..64fac9bad92e296a2a06de57d84fbd2f9a2a59fb 100644 --- a/internal/kms/kmsintercom.go +++ b/internal/kms/kmsintercom.go @@ -10,7 +10,7 @@ import ( log "github.com/sirupsen/logrus" etsi14 "code.fbi.h-da.de/danet/ekms/api/go/rest/etsi/client" - pb "code.fbi.h-da.de/danet/proto-kms/api/gen/proto/go/kmsintercom" + pb "code.fbi.h-da.de/danet/ekms/internal/api/gen/proto/go/kmsintercom" "google.golang.org/grpc/codes" "google.golang.org/grpc/status" ) diff --git a/internal/kms/kmspeers.go b/internal/kms/kmspeers.go index 05bda9fb812301751c82a632ab6c082ef248181d..f7a8d9daa22588bc92d5624f371b35e43f588769 100644 --- a/internal/kms/kmspeers.go +++ b/internal/kms/kmspeers.go @@ -7,7 +7,7 @@ import ( "net" "time" - pbIC "code.fbi.h-da.de/danet/proto-kms/api/gen/proto/go/kmsintercom" + pbIC "code.fbi.h-da.de/danet/ekms/internal/api/gen/proto/go/kmsintercom" "github.com/google/uuid" log "github.com/sirupsen/logrus" "google.golang.org/grpc" diff --git a/internal/kms/module.go b/internal/kms/module.go index e19d32df16235637ca52537687ee3004291a412d..59437b0f27dcc67826a641df3cd79b9822324fd5 100644 --- a/internal/kms/module.go +++ b/internal/kms/module.go @@ -4,14 +4,13 @@ import ( "context" "errors" "fmt" - "io" "net/url" "sync" "time" etsi14 "code.fbi.h-da.de/danet/ekms/api/go/rest/etsi/client" + pbIC "code.fbi.h-da.de/danet/ekms/internal/api/gen/proto/go/kmsintercom" restclient "code.fbi.h-da.de/danet/ekms/restclient" - pbIC "code.fbi.h-da.de/danet/proto-kms/api/gen/proto/go/kmsintercom" "code.fbi.h-da.de/danet/quantumlayer" "github.com/google/uuid" "github.com/sirupsen/logrus" @@ -42,12 +41,7 @@ type EmulatedQuantumModule struct { peer *kmsPeer } -func NewEmulatedQuantumModule(kmsUDPAddr string, logOutput io.Writer, logLevel log.Level, logInJson bool) *EmulatedQuantumModule { - // create an emulated quantum layer - // ql := quantumlayer.NewQuantumlayerEmuPRNG(logOutput, logLevel, logInJson) - // ql.Configure(kmsUDPAddr) - // ql.PowerOn(generateKeys) - +func NewEmulatedQuantumModule(kmsUDPAddr string) *EmulatedQuantumModule { return &EmulatedQuantumModule{ QlID: uuid.New(), //QuantumElementLink: ql, diff --git a/internal/main_test.go b/internal/main_test.go deleted file mode 100644 index 65e3b727c5ab57772cb9b2e8e05e3389f0e476d0..0000000000000000000000000000000000000000 --- a/internal/main_test.go +++ /dev/null @@ -1,81 +0,0 @@ -package main - -import ( - "flag" - "os" - "testing" - - log "github.com/sirupsen/logrus" - - "code.fbi.h-da.de/danet/proto-kms/kms" - "github.com/google/uuid" -) - -func TestMain(m *testing.M) { - // run a self-test if set to yes - var selfTesting bool - // my own Name - var udpQL1AddrString string - var ql1Name string - // a name for potential self-testing - var udpQL2AddrString string - var ql2Name string - // Setup flags that allows to initially provide a address to a second - // quantumlayer so generated keys can be fetched. This is mainly to simplify - // the initial setup process. - - flag.BoolVar(&selfTesting, "selftesting", true, - "Will perform self-testing with second quantum link if set to true") - - flag.StringVar(&udpQL1AddrString, "my-address", "[::1]:50900", - "The UDP address for my quantumlayer so keys can be fetched") - - flag.StringVar(&ql1Name, "my-name", "ekms-ql1", - "The name of the quantumlayer") - - flag.StringVar(&udpQL2AddrString, "remote-address", "[::1]:50901", - "The UDP address to a second quantumlayer so keys can be fetched") - - flag.StringVar(&ql2Name, "remote-name", "ekms-ql2", - "The name of the quantumlayer") - - // Parse the provided flags - flag.Parse() - - log.Println("Welcome to the proto-kms called: ", ql1Name) - - if selfTesting == true { - log.Infof("%s in self-testing mode", ql1Name) - go emulatedKMS("leftKMS", "[::1]:50900", "[::1]:50930", "[::1]:50931", true) - emulatedKMS("rightKMS", "[::1]:50901", "[::1]:50931", "[::1]:50930", false) - - } else { - // log.Infof("%s in regular mode of operation", ql1Name) - // emulatedKMS(ql1Name, udpQL1AddrString, udpQL2AddrString) - } -} - -func emulatedKMS(myName, myUDPAddr, myInterComAddr, peerInterComAddr string, master bool) { - // Attach to eKMS - emuKMS := kms.NewEKMS(myName, uuid.New(), os.Stdout, log.TraceLevel, false, myInterComAddr) - - eqm := kms.NewEmulatedQuantumModule("::1", os.Stdout, log.TraceLevel, false) - - // Fire up Quantum LinK - err := emuKMS.AddQuantumElement(eqm) - if err != nil { - log.Println("failed to add emulated quantum module") - return - } - - _, err = emuKMS.AddPeer(myName, peerInterComAddr, eqm) - if err != nil { - log.Println("PEERERROR: ", err) - } - - // Start the SDN/management and key retrieval interface - go kms.StartETSI(myUDPAddr, emuKMS) - - for { - } -}