"git@developer.sourcefind.cn:OpenDAS/mmcv.git" did not exist on "af0aaddf89c827bd8ed3f4f322066a478b9cc43e"
Unverified Commit 99289286 authored by Michael Yang's avatar Michael Yang Committed by GitHub
Browse files

Merge pull request #145 from jmorganca/verify-digest

verify blob digest
parents dde88029 bf198c39
...@@ -615,6 +615,13 @@ func PullModel(name, username, password string, fn func(api.ProgressResponse)) e ...@@ -615,6 +615,13 @@ func PullModel(name, username, password string, fn func(api.ProgressResponse)) e
} }
} }
fn(api.ProgressResponse{Status: "verifying sha256 digest"})
for _, layer := range layers {
if err := verifyBlob(layer.Digest); err != nil {
return err
}
}
fn(api.ProgressResponse{Status: "writing manifest"}) fn(api.ProgressResponse{Status: "writing manifest"})
manifestJSON, err := json.Marshal(manifest) manifestJSON, err := json.Marshal(manifest)
...@@ -909,3 +916,23 @@ func makeRequest(method, url string, headers map[string]string, body io.Reader, ...@@ -909,3 +916,23 @@ func makeRequest(method, url string, headers map[string]string, body io.Reader,
return resp, nil return resp, nil
} }
func verifyBlob(digest string) error {
fp, err := GetBlobsPath(digest)
if err != nil {
return err
}
f, err := os.Open(fp)
if err != nil {
return err
}
defer f.Close()
fileDigest, _ := GetSHA256Digest(f)
if digest != fileDigest {
return fmt.Errorf("digest mismatch: want %s, got %s", digest, fileDigest)
}
return nil
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment