code: func newProvider(ak config.AuthKey, ad []byte) (auth.Provider, error) {
  	// If no auth key was provided, use unauthenticated
  	// requests. This is useful when a local CFSSL is being used.
  	if ak.Type == "" && ak.Key == "" {
  		return nil, nil
  	}
  
  	f, ok := authTypes[ak.Type]
  	if !ok {
  		return nil, &authError{authType: ak.Type}
  	}
  
  	return f(ak, ad)
  }
docs: // Create a new provider from an authentication key and possibly
  // additional data.