Advertisement
Guest User

Untitled

a guest
Jul 29th, 2017
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.04 KB | None | 0 0
  1. package main
  2.  
  3. import (
  4. "encoding/base64"
  5. "log"
  6. "time"
  7.  
  8. _ "github.com/containers/image/docker"
  9.  
  10. "github.com/containers/image/transports"
  11. "github.com/containers/image/types"
  12. )
  13.  
  14. func main() {
  15. t := transports.Get("docker")
  16. ref, err := t.ParseReference("//registry.access.redhat.com/rhel7@sha256:582cb940a6e730dbdffee7cc5e1983522fdeeb3c40bea7373b255a209124cc02")
  17. if err != nil {
  18. log.Fatalf(err.Error())
  19. }
  20. context := types.SystemContext{}
  21. source, err := ref.NewImageSource(&context, nil)
  22. if err != nil {
  23. log.Fatalf(err.Error())
  24. }
  25. defer source.Close()
  26. errChan := make(chan error)
  27. var signatures [][]byte
  28. go func() {
  29. var getSignatureErr error
  30. signatures, getSignatureErr = source.GetSignatures()
  31. errChan <- getSignatureErr
  32. }()
  33. select {
  34. case err := <-errChan:
  35. if err != nil {
  36. log.Fatalf("error getting signatures: %v", err)
  37. }
  38. case <-time.After(time.Second * 20):
  39. log.Fatalf("timeout getting signatures")
  40. }
  41. for n, s := range signatures {
  42. log.Printf("signature #%d: %s", n, base64.StdEncoding.EncodeToString(s))
  43. }
  44. log.Printf("done")
  45. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement