diff options
| author | Adam Langley <agl@golang.org> | 2011-06-21 21:00:49 -0400 |
|---|---|---|
| committer | Adam Langley <agl@golang.org> | 2011-06-21 21:00:49 -0400 |
| commit | f2e94de6d62be39044b28ca61b8659cd295253c2 (patch) | |
| tree | 84c849976f554ba61599c666faf2dfbdfdcdd6f8 /src/pkg/crypto/openpgp/read.go | |
| parent | 10b5519d3a15e9489c998a720fe19989af89da11 (diff) | |
| download | go-f2e94de6d62be39044b28ca61b8659cd295253c2.tar.xz | |
crypto/openpgp: add ElGamal support.
R=bradfitz, r
CC=golang-dev
https://golang.org/cl/4639049
Diffstat (limited to 'src/pkg/crypto/openpgp/read.go')
| -rw-r--r-- | src/pkg/crypto/openpgp/read.go | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/pkg/crypto/openpgp/read.go b/src/pkg/crypto/openpgp/read.go index 9d9eaec36a..6830147524 100644 --- a/src/pkg/crypto/openpgp/read.go +++ b/src/pkg/crypto/openpgp/read.go @@ -10,7 +10,6 @@ import ( "crypto/openpgp/armor" "crypto/openpgp/error" "crypto/openpgp/packet" - "crypto/rsa" _ "crypto/sha256" "hash" "io" @@ -111,7 +110,10 @@ ParsePackets: case *packet.EncryptedKey: // This packet contains the decryption key encrypted to a public key. md.EncryptedToKeyIds = append(md.EncryptedToKeyIds, p.KeyId) - if p.Algo != packet.PubKeyAlgoRSA && p.Algo != packet.PubKeyAlgoRSAEncryptOnly { + switch p.Algo { + case packet.PubKeyAlgoRSA, packet.PubKeyAlgoRSAEncryptOnly, packet.PubKeyAlgoElGamal: + break + default: continue } var keys []Key @@ -154,7 +156,7 @@ FindKey: } if !pk.key.PrivateKey.Encrypted { if len(pk.encryptedKey.Key) == 0 { - pk.encryptedKey.DecryptRSA(pk.key.PrivateKey.PrivateKey.(*rsa.PrivateKey)) + pk.encryptedKey.Decrypt(pk.key.PrivateKey) } if len(pk.encryptedKey.Key) == 0 { continue |
