@@ -62,6 +62,31 @@ func mustNebulaCA(t *testing.T) (*cert.NebulaCertificate, ed25519.PrivateKey) {
6262 return nc , priv
6363}
6464
65+ func mustExpiredNebulaCA (t * testing.T ) (* cert.NebulaCertificate , ed25519.PrivateKey ) {
66+ t .Helper ()
67+ pub , priv , err := ed25519 .GenerateKey (rand .Reader )
68+ require .NoError (t , err )
69+ nc := & cert.NebulaCertificate {
70+ Details : cert.NebulaCertificateDetails {
71+ Name : "ExpiredTestCA" ,
72+ Groups : []string {"expired" },
73+ Ips : []* net.IPNet {
74+ mustNebulaIPNet (t , "10.2.0.0/16" ),
75+ },
76+ Subnets : []* net.IPNet {},
77+ NotBefore : time .Now ().Add (- 2 * time .Hour ),
78+ NotAfter : time .Now ().Add (- 1 * time .Hour ),
79+ PublicKey : pub ,
80+ IsCA : true ,
81+ Curve : cert .Curve_CURVE25519 ,
82+ },
83+ }
84+ err = nc .Sign (cert .Curve_CURVE25519 , priv )
85+ require .NoError (t , err )
86+
87+ return nc , priv
88+ }
89+
6590func mustNebulaP256CA (t * testing.T ) (* cert.NebulaCertificate , * ecdsa.PrivateKey ) {
6691 t .Helper ()
6792
@@ -298,6 +323,10 @@ func TestNebula_Init(t *testing.T) {
298323 nc , _ := mustNebulaCA (t )
299324 ncPem , err := nc .MarshalToPEM ()
300325 require .NoError (t , err )
326+ expiredNC , _ := mustExpiredNebulaCA (t )
327+ expiredPEM , err := expiredNC .MarshalToPEM ()
328+ require .NoError (t , err )
329+ expiredPEM = append (expiredPEM , ncPem ... ) // needed so that regular error isn't triggered
301330
302331 cfg := Config {
303332 Claims : globalProvisionerClaims ,
@@ -326,6 +355,7 @@ func TestNebula_Init(t *testing.T) {
326355 {"fail type" , fields {"" , "Nebulous" , ncPem , nil , nil }, args {cfg }, true },
327356 {"fail name" , fields {"Nebula" , "" , ncPem , nil , nil }, args {cfg }, true },
328357 {"fail root" , fields {"Nebula" , "Nebulous" , nil , nil , nil }, args {cfg }, true },
358+ {"fail expired root" , fields {"Nebula" , "Nebulous" , expiredPEM , nil , nil }, args {cfg }, true },
329359 {"fail bad root" , fields {"Nebula" , "Nebulous" , ncPem [:16 ], nil , nil }, args {cfg }, true },
330360 {"fail bad claims" , fields {"Nebula" , "Nebulous" , ncPem , & Claims {
331361 MinTLSDur : & Duration {Duration : 0 },
0 commit comments