Skip to content
Snippets Groups Projects
Commit ae276faa authored by Malte Bauch's avatar Malte Bauch
Browse files

Add example main file

parent b53188bd
No related branches found
No related tags found
1 merge request!8Create a monorepo for ekms and quantumlayer
package main
import (
"flag"
"log"
"net"
"os"
"os/signal"
"syscall"
"code.fbi.h-da.de/danet/quantumlayer"
pb "code.fbi.h-da.de/danet/quipsec/gen/go/quipsec"
"github.com/sirupsen/logrus"
"google.golang.org/grpc"
"google.golang.org/grpc/credentials/insecure"
"gopkg.in/yaml.v3"
)
type Config struct {
KMSAddr string `yaml:"KMSAddr"`
UDPAddr string `yaml:"UDPAddr"`
PeerUDPAddr string `yaml:"PeerUDPAddr"`
GenerateKeys bool `yaml:"GenerateKeys"`
}
func main() {
// TODO: flag validation
configPath := flag.String("config", "", "path to the config file")
flag.Parse()
// unmarshal config
config := &Config{}
file, err := os.ReadFile(*configPath)
if err != nil {
logrus.Fatal(err)
}
if err := yaml.Unmarshal(file, config); err != nil {
logrus.Fatal(err)
}
newPeerConn, err := grpc.Dial(config.KMSAddr, grpc.WithTransportCredentials(insecure.NewCredentials()))
if err != nil {
log.Fatal(err)
return
}
kmsClient := pb.NewKmsQkdmCommunicationServiceClient(newPeerConn)
peerUDPAddr, err := net.ResolveUDPAddr("udp", config.PeerUDPAddr)
if err != nil {
log.Fatal(err)
return
}
stopChan := make(chan os.Signal)
signal.Notify(stopChan, os.Interrupt, syscall.SIGTERM)
ql := quantumlayer.NewQuantumlayerEmuPRNG(kmsClient, os.Stdout, logrus.GetLevel(), false)
ql.Configure(config.GenerateKeys, config.UDPAddr)
ql.PowerOn()
ql.AddPeer(peerUDPAddr)
<-stopChan
}
......@@ -3,8 +3,9 @@ module code.fbi.h-da.de/danet/quantumlayer
go 1.21
require (
code.fbi.h-da.de/danet/quicsep/gen/go/quicsep v0.0.0-20231103130241-c2c8c6de8030
code.fbi.h-da.de/danet/quipsec/gen/go/quipsec v0.0.0-20231113131315-e0a0cd3d28e3
github.com/sirupsen/logrus v1.9.3
google.golang.org/grpc v1.59.0
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c
)
......@@ -15,6 +16,5 @@ require (
golang.org/x/sys v0.11.0 // indirect
golang.org/x/text v0.12.0 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d // indirect
google.golang.org/grpc v1.59.0 // indirect
google.golang.org/protobuf v1.31.0 // indirect
)
......@@ -21,7 +21,7 @@ import (
"sync"
"time"
pb "code.fbi.h-da.de/danet/quicsep/gen/go/quicsep"
pb "code.fbi.h-da.de/danet/quipsec/gen/go/quipsec"
"github.com/sirupsen/logrus"
logi "github.com/sirupsen/logrus"
)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment