in container_images/registry-image-forked/types.go [250:305]
func (ct *ContentTrust) PrepareConfigDir() (string, error) {
configDir, err := ioutil.TempDir("", "notary-config")
if err != nil {
return "", err
}
configObj := make(map[string]string)
configObj["server_url"] = ct.Server
configObj["root_passphrase"] = ""
configObj["repository_passphrase"] = ct.RepositoryPassphrase
configData, err := json.Marshal(configObj)
if err != nil {
return "", err
}
err = ioutil.WriteFile(filepath.Join(configDir, "gcr-config.json"), configData, 0644)
if err != nil {
return "", err
}
u, err := url.Parse(ct.Server)
if err != nil {
return "", err
}
privateDir := filepath.Join(configDir, "trust", "private")
err = os.MkdirAll(privateDir, os.ModePerm)
if err != nil {
return "", err
}
repoKey := fmt.Sprintf("%s.key", ct.RepositoryKeyID)
err = ioutil.WriteFile(filepath.Join(privateDir, repoKey), []byte(ct.RepositoryKey), 0600)
if err != nil {
return "", err
}
if u.Host != "" {
certDir := filepath.Join(configDir, "tls", u.Host)
err = os.MkdirAll(certDir, os.ModePerm)
if err != nil {
return "", err
}
err = ioutil.WriteFile(filepath.Join(certDir, "client.cert"), []byte(ct.TLSCert), 0644)
if err != nil {
return "", err
}
err = ioutil.WriteFile(filepath.Join(certDir, "client.key"), []byte(ct.TLSKey), 0644)
if err != nil {
return "", err
}
}
return configDir, nil
}