Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package main
- import (
- "encoding/base64"
- "log"
- "time"
- _ "github.com/containers/image/docker"
- "github.com/containers/image/transports"
- "github.com/containers/image/types"
- )
- func main() {
- t := transports.Get("docker")
- ref, err := t.ParseReference("//registry.access.redhat.com/rhel7@sha256:582cb940a6e730dbdffee7cc5e1983522fdeeb3c40bea7373b255a209124cc02")
- if err != nil {
- log.Fatalf(err.Error())
- }
- context := types.SystemContext{}
- source, err := ref.NewImageSource(&context, nil)
- if err != nil {
- log.Fatalf(err.Error())
- }
- defer source.Close()
- errChan := make(chan error)
- var signatures [][]byte
- go func() {
- var getSignatureErr error
- signatures, getSignatureErr = source.GetSignatures()
- errChan <- getSignatureErr
- }()
- select {
- case err := <-errChan:
- if err != nil {
- log.Fatalf("error getting signatures: %v", err)
- }
- case <-time.After(time.Second * 20):
- log.Fatalf("timeout getting signatures")
- }
- for n, s := range signatures {
- log.Printf("signature #%d: %s", n, base64.StdEncoding.EncodeToString(s))
- }
- log.Printf("done")
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement