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  }