mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
Merge pull request #11324 from sunyuan3/TestDaemonwithwrongkey
add TestDaemonwithwrongkey test case
This commit is contained in:
commit
f5657249a0
1 changed files with 62 additions and 0 deletions
|
@ -834,3 +834,65 @@ func TestDaemonUnixSockCleanedUp(t *testing.T) {
|
|||
|
||||
logDone("daemon - unix socket is cleaned up")
|
||||
}
|
||||
|
||||
func TestDaemonwithwrongkey(t *testing.T) {
|
||||
type Config struct {
|
||||
Crv string `json:"crv"`
|
||||
D string `json:"d"`
|
||||
Kid string `json:"kid"`
|
||||
Kty string `json:"kty"`
|
||||
X string `json:"x"`
|
||||
Y string `json:"y"`
|
||||
}
|
||||
|
||||
os.Remove("/etc/docker/key.json")
|
||||
d := NewDaemon(t)
|
||||
if err := d.Start(); err != nil {
|
||||
t.Fatalf("Failed to start daemon: %v", err)
|
||||
}
|
||||
|
||||
if err := d.Stop(); err != nil {
|
||||
t.Fatalf("Could not stop daemon: %v", err)
|
||||
}
|
||||
|
||||
config := &Config{}
|
||||
bytes, err := ioutil.ReadFile("/etc/docker/key.json")
|
||||
if err != nil {
|
||||
t.Fatalf("Error reading key.json file: %s", err)
|
||||
}
|
||||
|
||||
// byte[] to Data-Struct
|
||||
if err := json.Unmarshal(bytes, &config); err != nil {
|
||||
t.Fatalf("Error Unmarshal: %s", err)
|
||||
}
|
||||
|
||||
//replace config.Kid with the fake value
|
||||
config.Kid = "VSAJ:FUYR:X3H2:B2VZ:KZ6U:CJD5:K7BX:ZXHY:UZXT:P4FT:MJWG:HRJ4"
|
||||
|
||||
// NEW Data-Struct to byte[]
|
||||
newBytes, err := json.Marshal(&config)
|
||||
if err != nil {
|
||||
t.Fatalf("Error Marshal: %s", err)
|
||||
}
|
||||
|
||||
// write back
|
||||
if err := ioutil.WriteFile("/etc/docker/key.json", newBytes, 0400); err != nil {
|
||||
t.Fatalf("Error ioutil.WriteFile: %s", err)
|
||||
}
|
||||
|
||||
d1 := NewDaemon(t)
|
||||
|
||||
if err := d1.Start(); err == nil {
|
||||
d1.Stop()
|
||||
t.Fatalf("It should not be succssful to start daemon with wrong key: %v", err)
|
||||
}
|
||||
|
||||
content, _ := ioutil.ReadFile(d1.logFile.Name())
|
||||
|
||||
if !strings.Contains(string(content), "Public Key ID does not match") {
|
||||
t.Fatal("Missing KeyID message from daemon logs")
|
||||
}
|
||||
|
||||
os.Remove("/etc/docker/key.json")
|
||||
logDone("daemon - it should be failed to start daemon with wrong key")
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue