Skip to content
Snippets Groups Projects
Commit 88dafda5 authored by Alex ubuntu vm's avatar Alex ubuntu vm
Browse files

added intercluster examples

parent df66e34a
No related branches found
No related tags found
1 merge request!2repo: added new directory where utils scripts will be
module example
go 1.18
...@@ -4,38 +4,22 @@ ...@@ -4,38 +4,22 @@
Ejemplo de network inter: Ejemplo de network inter:
```yaml ```yaml
apiVersion: "k8s.cni.cncf.io/v1" apiVersion: l2sm.k8s.local/v1
kind: NetworkAttachmentDefinition kind: L2SMNetwork
metadata: metadata:
name: sample-inter-network name: spain-network
spec: spec:
config: '{ type: inter-vnet
"cniVersion": "0.3.0", config: |
"type": "l2sm", {
"device": "l2sm-vNet", "provider": {
"kind": { "name": "uc3m",
"ext-vnet": { "domain": "idco.uc3m.es"
"provider": { },
"name": "<idco-name>", "accessList": ["public-key-1", "public-key-2"]
"domain": "<domain-name>" }
}, signature: sxySO0jHw4h1kcqO/LMLDgOoOeH8dOn8vZWv4KMBq0upxz3lcbl+o/36JefpEwSlBJ6ukuKiQ79L4rsmmZgglk6y/VL54DFyLfPw9RJn3mzl99YE4qCaHyEBANSw+d5hPaJ/I8q+AMtjrYpglMTRPf0iMZQMNtMd0CdeX2V8aZOPCQP75PsZkWukPdoAK/++y1vbFQ6nQKagvpUZfr7Ecb4/QY+hIAzepm6N6lNiFNTgj6lGTrFK0qCVfRhMD+vXbBP6xzZjB2N1nIheK9vx7kvj3HORjZ+odVMa+AOU5ShSKpzXTvknrtcRTcWWmXPNUZLoq5k3U+z1g1OTFcjMdQ====
"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>"
# }
]
}
}
}'
``` ```
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). 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).
......
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"
}
apiVersion: "k8s.cni.cncf.io/v1" apiVersion: l2sm.k8s.local/v1
kind: NetworkAttachmentDefinition kind: L2SMNetwork
metadata: metadata:
name: sample-inter-network name: spain-network
spec: spec:
config: '{ type: inter-vnet
"cniVersion": "0.3.0", config: |
"type": "l2sm", {
"device": "l2sm-vNet", "provider": {
"kind": { "name": "uc3m",
"inter": { "domain": "idco.uc3m.es"
"provider": { },
"name": "<idco-name>", "accessList": ["public-key-1", "public-key-2"]
"domain": "<domain-name>" }
}, signature: sxySO0jHw4h1kcqO/LMLDgOoOeH8dOn8vZWv4KMBq0upxz3lcbl+o/36JefpEwSlBJ6ukuKiQ79L4rsmmZgglk6y/VL54DFyLfPw9RJn3mzl99YE4qCaHyEBANSw+d5hPaJ/I8q+AMtjrYpglMTRPf0iMZQMNtMd0CdeX2V8aZOPCQP75PsZkWukPdoAK/++y1vbFQ6nQKagvpUZfr7Ecb4/QY+hIAzepm6N6lNiFNTgj6lGTrFK0qCVfRhMD+vXbBP6xzZjB2N1nIheK9vx7kvj3HORjZ+odVMa+AOU5ShSKpzXTvknrtcRTcWWmXPNUZLoq5k3U+z1g1OTFcjMdQ====
"accessList": ["<public-key-1>","<public-key-2>",...,"<public-key-N>"]
]
}
}
}'
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment