github.com/slackhq/nebula@v1.9.0/cert/cert.proto (about) 1 syntax = "proto3"; 2 package cert; 3 4 option go_package = "github.com/slackhq/nebula/cert"; 5 6 //import "google/protobuf/timestamp.proto"; 7 8 enum Curve { 9 CURVE25519 = 0; 10 P256 = 1; 11 } 12 13 message RawNebulaCertificate { 14 RawNebulaCertificateDetails Details = 1; 15 bytes Signature = 2; 16 } 17 18 message RawNebulaCertificateDetails { 19 string Name = 1; 20 21 // Ips and Subnets are in big endian 32 bit pairs, 1st the ip, 2nd the mask 22 repeated uint32 Ips = 2; 23 repeated uint32 Subnets = 3; 24 25 repeated string Groups = 4; 26 int64 NotBefore = 5; 27 int64 NotAfter = 6; 28 bytes PublicKey = 7; 29 30 bool IsCA = 8; 31 32 // sha-256 of the issuer certificate, if this field is blank the cert is self-signed 33 bytes Issuer = 9; 34 35 Curve curve = 100; 36 } 37 38 message RawNebulaEncryptedData { 39 RawNebulaEncryptionMetadata EncryptionMetadata = 1; 40 bytes Ciphertext = 2; 41 } 42 43 message RawNebulaEncryptionMetadata { 44 string EncryptionAlgorithm = 1; 45 RawNebulaArgon2Parameters Argon2Parameters = 2; 46 } 47 48 message RawNebulaArgon2Parameters { 49 int32 version = 1; // rune in Go 50 uint32 memory = 2; 51 uint32 parallelism = 4; // uint8 in Go 52 uint32 iterations = 3; 53 bytes salt = 5; 54 }