code: func NewFileStore(
  	pairNamePrefix string,
  	certDirectory string,
  	keyDirectory string,
  	certFile string,
  	keyFile string) (FileStore, error) {
  
  	s := fileStore{
  		pairNamePrefix: pairNamePrefix,
  		certDirectory:  certDirectory,
  		keyDirectory:   keyDirectory,
  		certFile:       certFile,
  		keyFile:        keyFile,
  	}
  	if err := s.recover(); err != nil {
  		return nil, err
  	}
  	return &s, nil
  }
docs: // NewFileStore returns a concrete implementation of a Store that is based on
  // storing the cert/key pairs in a single file per pair on disk in the
  // designated directory. When starting up it will look for the currently
  // selected cert/key pair in:
  //
  // 1. ${certDirectory}/${pairNamePrefix}-current.pem - both cert and key are in the same file.
  // 2. ${certFile}, ${keyFile}
  // 3. ${certDirectory}/${pairNamePrefix}.crt, ${keyDirectory}/${pairNamePrefix}.key
  //
  // The first one found will be used. If rotation is enabled, future cert/key
  // updates will be written to the ${certDirectory} directory and
  // ${certDirectory}/${pairNamePrefix}-current.pem will be created as a soft
  // link to the currently selected cert/key pair.