code: func DecryptPKCS1v15(rand io.Reader, priv *PrivateKey, ciphertext []byte) (out []byte, err error) {
  	if err := checkPub(&priv.PublicKey); err != nil {
  		return nil, err
  	}
  	valid, out, index, err := decryptPKCS1v15(rand, priv, ciphertext)
  	if err != nil {
  		return
  	}
  	if valid == 0 {
  		return nil, ErrDecryption
  	}
  	out = out[index:]
  	return
  }
docs: // DecryptPKCS1v15 decrypts a plaintext using RSA and the padding scheme from PKCS#1 v1.5.
  // If rand != nil, it uses RSA blinding to avoid timing side-channel attacks.
  //
  // Note that whether this function returns an error or not discloses secret
  // information. If an attacker can cause this function to run repeatedly and
  // learn whether each instance returned an error then they can decrypt and
  // forge signatures as if they had the private key. See
  // DecryptPKCS1v15SessionKey for a way of solving this problem.