code: func getCachedCerts(c context.Context) (*signing.PublicCertificates, error) {
  	v, err := certCache.Fetch(c, func(interface{}) (interface{}, time.Duration, error) {
  		aeCerts, err := info.PublicCertificates(c)
  		if err != nil {
  			return nil, 0, err
  		}
  		certs := make([]signing.Certificate, len(aeCerts))
  		for i, ac := range aeCerts {
  			certs[i] = signing.Certificate{
  				KeyName:            ac.KeyName,
  				X509CertificatePEM: string(ac.Data),
  			}
  		}
  		inf, err := getCachedInfo(c)
  		if err != nil {
  			return nil, 0, err
  		}
  		return &signing.PublicCertificates{
  			AppID:              inf.AppID,
  			ServiceAccountName: inf.ServiceAccountName,
  			Certificates:       certs,
  			Timestamp:          signing.JSONTime(clock.Now(c)),
  		}, time.Hour, nil
  	})
  	if err != nil {
  		return nil, err
  	}
  	return v.(*signing.PublicCertificates), nil
  }
docs: // cachedCerts caches this app certs in local memory for 1 hour.