]> git.immae.eu Git - github/fretlink/terraform-provider-statuscake.git/blobdiff - vendor/golang.org/x/crypto/openpgp/packet/encrypted_key.go
Upgrade to 0.12
[github/fretlink/terraform-provider-statuscake.git] / vendor / golang.org / x / crypto / openpgp / packet / encrypted_key.go
index 266840d05a360a0a8b6ef55e32bd7a2492139d5a..02b372cf374ecca19a6a0930d2e6f2ce7189911d 100644 (file)
@@ -42,12 +42,18 @@ func (e *EncryptedKey) parse(r io.Reader) (err error) {
        switch e.Algo {
        case PubKeyAlgoRSA, PubKeyAlgoRSAEncryptOnly:
                e.encryptedMPI1.bytes, e.encryptedMPI1.bitLength, err = readMPI(r)
+               if err != nil {
+                       return
+               }
        case PubKeyAlgoElGamal:
                e.encryptedMPI1.bytes, e.encryptedMPI1.bitLength, err = readMPI(r)
                if err != nil {
                        return
                }
                e.encryptedMPI2.bytes, e.encryptedMPI2.bitLength, err = readMPI(r)
+               if err != nil {
+                       return
+               }
        }
        _, err = consumeAll(r)
        return
@@ -72,7 +78,8 @@ func (e *EncryptedKey) Decrypt(priv *PrivateKey, config *Config) error {
        // padding oracle attacks.
        switch priv.PubKeyAlgo {
        case PubKeyAlgoRSA, PubKeyAlgoRSAEncryptOnly:
-               b, err = rsa.DecryptPKCS1v15(config.Random(), priv.PrivateKey.(*rsa.PrivateKey), e.encryptedMPI1.bytes)
+               k := priv.PrivateKey.(*rsa.PrivateKey)
+               b, err = rsa.DecryptPKCS1v15(config.Random(), k, padToKeySize(&k.PublicKey, e.encryptedMPI1.bytes))
        case PubKeyAlgoElGamal:
                c1 := new(big.Int).SetBytes(e.encryptedMPI1.bytes)
                c2 := new(big.Int).SetBytes(e.encryptedMPI2.bytes)