code: func (p *Plugin) Init() (err error) {
  	var config Config
  	found, err := p.Cfg.LoadValue(&config)
  	if err != nil {
  		return err
  	}
  
  	if !found {
  		p.Log.Info("cryptodata config not found, skip loading this plugin")
  		p.disabled = true
  		return nil
  	}
  
  	// Read client config and create it
  	clientConfig := ClientConfig{}
  	for _, file := range config.PrivateKeyFiles {
  		bytes, err := ioutil.ReadFile(file)
  		if err != nil {
  			p.Log.Infof("%v", err)
  			return err
  		}
  
  		for {
  			block, rest := pem.Decode(bytes)
  			if block == nil {
  				break
  			}
  
  			privateKey, err := x509.ParsePKCS1PrivateKey(block.Bytes)
  			if err != nil {
  				p.Log.Infof("%v", err)
  				return err
  			}
  
  			err = privateKey.Validate()
  			if err != nil {
  				p.Log.Infof("%v", err)
  				return err
  			}
  
  			privateKey.Precompute()
  			clientConfig.PrivateKeys = append(clientConfig.PrivateKeys, privateKey)
  
  			if rest == nil {
  				break
  			}
  
  			bytes = rest
  		}
  	}
  
  	p.ClientAPI = NewClient(clientConfig)
  	return
  }
docs: // Init initializes cryptodata plugin.