code: func readPublicKey(path string) (*rsa.PublicKey, error) {
  	bytes, err := ioutil.ReadFile(path)
  	if err != nil {
  		return nil, err
  	}
  	block, _ := pem.Decode(bytes)
  	if block == nil {
  		return nil, errors.New("failed to decode PEM for key " + path)
  	}
  	pubInterface, err := x509.ParsePKIXPublicKey(block.Bytes)
  	if err != nil {
  		return nil, err
  	}
  	publicKey, ok := pubInterface.(*rsa.PublicKey)
  	if !ok {
  		return nil, errors.New("failed to convert public key to rsa.PublicKey")
  	}
  
  	return publicKey, nil
  }
docs: // readPublicKey reads rsa public key from PEM file on provided path