cert.proto 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. syntax = "proto3";
  2. package cert;
  3. option go_package = "github.com/slackhq/nebula/cert";
  4. //import "google/protobuf/timestamp.proto";
  5. message RawNebulaCertificate {
  6. RawNebulaCertificateDetails Details = 1;
  7. bytes Signature = 2;
  8. }
  9. message RawNebulaCertificateDetails {
  10. string Name = 1;
  11. // Ips and Subnets are in big endian 32 bit pairs, 1st the ip, 2nd the mask
  12. repeated uint32 Ips = 2;
  13. repeated uint32 Subnets = 3;
  14. repeated string Groups = 4;
  15. int64 NotBefore = 5;
  16. int64 NotAfter = 6;
  17. bytes PublicKey = 7;
  18. bool IsCA = 8;
  19. // sha-256 of the issuer certificate, if this field is blank the cert is self-signed
  20. bytes Issuer = 9;
  21. }
  22. message RawNebulaEncryptedData {
  23. RawNebulaEncryptionMetadata EncryptionMetadata = 1;
  24. bytes Ciphertext = 2;
  25. }
  26. message RawNebulaEncryptionMetadata {
  27. string EncryptionAlgorithm = 1;
  28. RawNebulaArgon2Parameters Argon2Parameters = 2;
  29. }
  30. message RawNebulaArgon2Parameters {
  31. int32 version = 1; // rune in Go
  32. uint32 memory = 2;
  33. uint32 parallelism = 4; // uint8 in Go
  34. uint32 iterations = 3;
  35. bytes salt = 5;
  36. }