diff --git a/additional-info/go.mod b/additional-info/go.mod new file mode 100644 index 0000000000000000000000000000000000000000..bed5eeeca98b676002a2d2f7b90823e70278f84f --- /dev/null +++ b/additional-info/go.mod @@ -0,0 +1,3 @@ +module example + +go 1.18 diff --git a/additional-info/inter-cluster.md b/additional-info/inter-cluster.md index 31e85602f9bbf225aa6d801746ed7660b25f8721..cd8dd177bdcb31796dbd2973ca8bb45615e4d5ac 100644 --- a/additional-info/inter-cluster.md +++ b/additional-info/inter-cluster.md @@ -4,38 +4,22 @@ Ejemplo de network inter: ```yaml -apiVersion: "k8s.cni.cncf.io/v1" -kind: NetworkAttachmentDefinition +apiVersion: l2sm.k8s.local/v1 +kind: L2SMNetwork metadata: - name: sample-inter-network + name: spain-network spec: - config: '{ - "cniVersion": "0.3.0", - "type": "l2sm", - "device": "l2sm-vNet", - "kind": { - "ext-vnet": { - "provider": { - "name": "<idco-name>", - "domain": "<domain-name>" - }, - "accessList": [ # no tiene porq ser asÃ. Dejar en abierto. - # { - # "user": "<username-1>", - # "public-key": "<public-key-1>" - # }, - # { - # "user": "<username-2>", - # "public-key": "<public-key-2>" - # }, - # { - # "user": "<username-3>", - # "public-key": "<public-key-3>" - # } - ] - } - } - }' + type: inter-vnet + config: | + { + "provider": { + "name": "uc3m", + "domain": "idco.uc3m.es" + }, + "accessList": ["public-key-1", "public-key-2"] + } + signature: sxySO0jHw4h1kcqO/LMLDgOoOeH8dOn8vZWv4KMBq0upxz3lcbl+o/36JefpEwSlBJ6ukuKiQ79L4rsmmZgglk6y/VL54DFyLfPw9RJn3mzl99YE4qCaHyEBANSw+d5hPaJ/I8q+AMtjrYpglMTRPf0iMZQMNtMd0CdeX2V8aZOPCQP75PsZkWukPdoAK/++y1vbFQ6nQKagvpUZfr7Ecb4/QY+hIAzepm6N6lNiFNTgj6lGTrFK0qCVfRhMD+vXbBP6xzZjB2N1nIheK9vx7kvj3HORjZ+odVMa+AOU5ShSKpzXTvknrtcRTcWWmXPNUZLoq5k3U+z1g1OTFcjMdQ==== + ``` Hay un NED conectado al L2S-M switch del nodo master con 10 interfaces veth (como el NED es hostNetwork, nos podemos permitir crear las interfaces y conectarlas directamente -> Necesario que l2sm-switch se despliegue más tarde). diff --git a/additional-info/main.go b/additional-info/main.go new file mode 100644 index 0000000000000000000000000000000000000000..eacd430a8a0479a533f3fd8cf45e4097e9f2c63a --- /dev/null +++ b/additional-info/main.go @@ -0,0 +1,53 @@ +package main + +import ( + "crypto" + "crypto/rand" + "crypto/rsa" + "crypto/sha256" + "encoding/base64" + "fmt" + "os" +) + +func main() { + + // Generate Alice RSA keys Of 2048 Buts + alicePrivateKey, err := rsa.GenerateKey(rand.Reader, 2048) + if err != nil { + fmt.Println(err.Error) + os.Exit(1) + } + // Extract Public Key from RSA Private Key + alicePublicKey := alicePrivateKey.PublicKey + secretMessage := "IHsKICAgICAgInByb3ZpZGVyIjogewogICAgICAgICJuYW1lIjogInVjM20iLAogICAgICAgICJkb21haW4iOiAiaWRjby51YzNtLmVzIgogICAgICB9LAogICAgICAiYWNjZXNzTGlzdCI6IFsicHVibGljLWtleS0xIiwgInB1YmxpYy1rZXktMiJdCiAgICB9Cg" + fmt.Println("Original Text ", secretMessage) + signature := SignPKCS1v15(secretMessage, *alicePrivateKey) + fmt.Println("Singature : ", signature) + verif := VerifyPKCS1v15(signature, secretMessage, alicePublicKey) + fmt.Println(verif) +} + +func SignPKCS1v15(plaintext string, privKey rsa.PrivateKey) string { + // crypto/rand.Reader is a good source of entropy for blinding the RSA + // operation. + rng := rand.Reader + hashed := sha256.Sum256([]byte(plaintext)) + signature, err := rsa.SignPKCS1v15(rng, &privKey, crypto.SHA256, hashed[:]) + if err != nil { + fmt.Fprintf(os.Stderr, "Error from signing: %s\n", err) + return "Error from signing" + } + return base64.StdEncoding.EncodeToString(signature) +} + +func VerifyPKCS1v15(signature string, plaintext string, pubkey rsa.PublicKey) string { + sig, _ := base64.StdEncoding.DecodeString(signature) + hashed := sha256.Sum256([]byte(plaintext)) + err := rsa.VerifyPKCS1v15(&pubkey, crypto.SHA256, hashed[:], sig) + if err != nil { + fmt.Fprintf(os.Stderr, "Error from verification: %s\n", err) + return "Error from verification:" + } + return "Signature Verification Passed" +} diff --git a/examples/inter-cluster/inter-network.yaml b/examples/inter-cluster/inter-network.yaml index 2bb64d3cf7eba1f11e84166989313858e7975ac2..654b7fa35ef48217b3fc5f0821d52938e7d48bf9 100644 --- a/examples/inter-cluster/inter-network.yaml +++ b/examples/inter-cluster/inter-network.yaml @@ -1,20 +1,15 @@ -apiVersion: "k8s.cni.cncf.io/v1" -kind: NetworkAttachmentDefinition +apiVersion: l2sm.k8s.local/v1 +kind: L2SMNetwork metadata: - name: sample-inter-network + name: spain-network spec: - config: '{ - "cniVersion": "0.3.0", - "type": "l2sm", - "device": "l2sm-vNet", - "kind": { - "inter": { - "provider": { - "name": "<idco-name>", - "domain": "<domain-name>" - }, - "accessList": ["<public-key-1>","<public-key-2>",...,"<public-key-N>"] - ] - } - } - }' + type: inter-vnet + config: | + { + "provider": { + "name": "uc3m", + "domain": "idco.uc3m.es" + }, + "accessList": ["public-key-1", "public-key-2"] + } + signature: sxySO0jHw4h1kcqO/LMLDgOoOeH8dOn8vZWv4KMBq0upxz3lcbl+o/36JefpEwSlBJ6ukuKiQ79L4rsmmZgglk6y/VL54DFyLfPw9RJn3mzl99YE4qCaHyEBANSw+d5hPaJ/I8q+AMtjrYpglMTRPf0iMZQMNtMd0CdeX2V8aZOPCQP75PsZkWukPdoAK/++y1vbFQ6nQKagvpUZfr7Ecb4/QY+hIAzepm6N6lNiFNTgj6lGTrFK0qCVfRhMD+vXbBP6xzZjB2N1nIheK9vx7kvj3HORjZ+odVMa+AOU5ShSKpzXTvknrtcRTcWWmXPNUZLoq5k3U+z1g1OTFcjMdQ====