code: func (c *Client) SecretRingFile() string {
  	if osutil.HasSecretRingFlag() {
  		if secretRing, ok := osutil.ExplicitSecretRingFile(); ok {
  			return secretRing
  		}
  	}
  	if android.OnAndroid() {
  		panic("on android, so CAMLI_SECRET_RING should have been defined, or --secret-keyring used.")
  	}
  	if c.noExtConfig {
  		log.Print("client: noExtConfig set; cannot get secret ring file from config or env vars.")
  		return ""
  	}
  	if configDisabled {
  		panic("Need a secret ring, and config file disabled")
  	}
  	configOnce.Do(parseConfig)
  	if config.IdentitySecretRing == "" {
  		return osutil.SecretRingFile()
  	}
  	return config.IdentitySecretRing
  }
docs: // SecretRingFile returns the filename to the user's GPG secret ring.
  // The value comes from either the --secret-keyring flag, the
  // CAMLI_SECRET_RING environment variable, the client config file's
  // "identitySecretRing" value, or the operating system default location.