Release 2.3.0: Update go-crypto, add Key.IsRevoked and fix key.IsExpired
This commit is contained in:
parent
420bb96585
commit
130472d5a5
9 changed files with 85 additions and 43 deletions
|
|
@ -4,6 +4,12 @@ All notable changes to this project will be documented in this file.
|
|||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## [2.3.0] 2021-11-15
|
||||
### Added
|
||||
- `Key.IsRevoked()` to check the revocation status of a key
|
||||
### Security
|
||||
- Upgraded underlying crypto library to fix handling of revoked keys
|
||||
|
||||
## [2.2.5] 2021-11-11
|
||||
### Fixed
|
||||
- Protect the global `pgp` variable fields with a lock.
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ package constants
|
|||
|
||||
// Constants for armored data.
|
||||
const (
|
||||
ArmorHeaderVersion = "GopenPGP 2.2.5"
|
||||
ArmorHeaderVersion = "GopenPGP 2.3.0"
|
||||
ArmorHeaderComment = "https://gopenpgp.org"
|
||||
PGPMessageHeader = "PGP MESSAGE"
|
||||
PGPSignatureHeader = "PGP SIGNATURE"
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
package constants
|
||||
|
||||
const Version = "2.2.5"
|
||||
const Version = "2.3.0"
|
||||
|
|
|
|||
|
|
@ -276,8 +276,14 @@ func (key *Key) CanEncrypt() bool {
|
|||
|
||||
// IsExpired checks whether the key is expired.
|
||||
func (key *Key) IsExpired() bool {
|
||||
_, ok := key.entity.EncryptionKey(getNow())
|
||||
return !ok
|
||||
i := key.entity.PrimaryIdentity()
|
||||
return key.entity.PrimaryKey.KeyExpired(i.SelfSignature, getNow()) || // primary key has expired
|
||||
i.SelfSignature.SigExpired(getNow()) // user ID self-signature has expired
|
||||
}
|
||||
|
||||
// IsRevoked checks whether the key or the primary identity has a valid revocation signature.
|
||||
func (key *Key) IsRevoked() bool {
|
||||
return key.entity.Revoked(getNow()) || key.entity.PrimaryIdentity().Revoked(getNow())
|
||||
}
|
||||
|
||||
// IsPrivate returns true if the key is private.
|
||||
|
|
|
|||
|
|
@ -417,6 +417,23 @@ func TestKeyCapabilities(t *testing.T) {
|
|||
assert.True(t, publicKey.CanEncrypt())
|
||||
}
|
||||
|
||||
func TestRevokedKeyCapabilities(t *testing.T) {
|
||||
pgp.latestServerTime = 1632219895
|
||||
defer func() {
|
||||
pgp.latestServerTime = testTime
|
||||
}()
|
||||
|
||||
revokedKey, err := NewKeyFromArmored(readTestFile("key_revoked", false))
|
||||
if err != nil {
|
||||
t.Fatal("Cannot unarmor key:", err)
|
||||
}
|
||||
|
||||
assert.False(t, revokedKey.CanVerify())
|
||||
assert.False(t, revokedKey.CanEncrypt())
|
||||
assert.False(t, revokedKey.IsExpired())
|
||||
assert.True(t, revokedKey.IsRevoked())
|
||||
}
|
||||
|
||||
func TestUnlockMismatchingKey(t *testing.T) {
|
||||
privateKey, err := NewKeyFromArmored(readTestFile("key_mismatching_eddsa_key", false))
|
||||
if err != nil {
|
||||
|
|
|
|||
|
|
@ -173,6 +173,11 @@ func TestBinaryMessageEncryption(t *testing.T) {
|
|||
}
|
||||
|
||||
func TestIssue11(t *testing.T) {
|
||||
pgp.latestServerTime = 1559655272
|
||||
defer func() {
|
||||
pgp.latestServerTime = testTime
|
||||
}()
|
||||
|
||||
var issue11Password = []byte("1234")
|
||||
|
||||
issue11Key, err := NewKeyFromArmored(readTestFile("issue11_privatekey", false))
|
||||
|
|
|
|||
43
crypto/testdata/key_revoked
vendored
Normal file
43
crypto/testdata/key_revoked
vendored
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
Version: OpenPGP.js v4.10.10
|
||||
Comment: https://openpgpjs.org
|
||||
|
||||
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
|
||||
=iGbb
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
||||
2
go.mod
2
go.mod
|
|
@ -3,7 +3,7 @@ module github.com/ProtonMail/gopenpgp/v2
|
|||
go 1.15
|
||||
|
||||
require (
|
||||
github.com/ProtonMail/go-crypto v0.0.0-20210920160938-87db9fbc61c7
|
||||
github.com/ProtonMail/go-crypto v0.0.0-20211112122917-428f8eabeeb3
|
||||
github.com/ProtonMail/go-mime v0.0.0-20190923161245-9b5a4261663a
|
||||
github.com/pkg/errors v0.9.1
|
||||
github.com/stretchr/testify v1.4.0
|
||||
|
|
|
|||
39
go.sum
39
go.sum
|
|
@ -1,13 +1,6 @@
|
|||
github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802 h1:1BDTz0u9nC3//pOCMdNH+CiXJVYJh5UQNCOBG7jbELc=
|
||||
github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
|
||||
github.com/ProtonMail/go-crypto v0.0.0-20210428141323-04723f9f07d7 h1:YoJbenK9C67SkzkDfmQuVln04ygHj3vjZfd9FL+GmQQ=
|
||||
github.com/ProtonMail/go-crypto v0.0.0-20210428141323-04723f9f07d7/go.mod h1:z4/9nQmJSSwwds7ejkxaJwO37dru3geImFUdJlaLzQo=
|
||||
github.com/ProtonMail/go-crypto v0.0.0-20210503074116-6a33223a51e6 h1:GAvhO5jJ2YkkyKuCWa2VKuHHpyZZjKgkcPvj913Mt40=
|
||||
github.com/ProtonMail/go-crypto v0.0.0-20210503074116-6a33223a51e6/go.mod h1:z4/9nQmJSSwwds7ejkxaJwO37dru3geImFUdJlaLzQo=
|
||||
github.com/ProtonMail/go-crypto v0.0.0-20210512092938-c05353c2d58c h1:bNpaLLv2Y4kslsdkdCwAYu8Bak1aGVtxwi8Z/wy4Yuo=
|
||||
github.com/ProtonMail/go-crypto v0.0.0-20210512092938-c05353c2d58c/go.mod h1:z4/9nQmJSSwwds7ejkxaJwO37dru3geImFUdJlaLzQo=
|
||||
github.com/ProtonMail/go-crypto v0.0.0-20210920160938-87db9fbc61c7 h1:DSqTh6nEes/uO8BlNcGk8PzZsxY2sN9ZL//veWBdTRI=
|
||||
github.com/ProtonMail/go-crypto v0.0.0-20210920160938-87db9fbc61c7/go.mod h1:z4/9nQmJSSwwds7ejkxaJwO37dru3geImFUdJlaLzQo=
|
||||
github.com/ProtonMail/go-crypto v0.0.0-20211112122917-428f8eabeeb3 h1:XcF0cTDJeiuZ5NU8w7WUDge0HRwwNRmxj/GGk6KSA6g=
|
||||
github.com/ProtonMail/go-crypto v0.0.0-20211112122917-428f8eabeeb3/go.mod h1:z4/9nQmJSSwwds7ejkxaJwO37dru3geImFUdJlaLzQo=
|
||||
github.com/ProtonMail/go-mime v0.0.0-20190923161245-9b5a4261663a h1:W6RrgN/sTxg1msqzFFb+G80MFmpjMw61IU+slm+wln4=
|
||||
github.com/ProtonMail/go-mime v0.0.0-20190923161245-9b5a4261663a/go.mod h1:NYt+V3/4rEeDuaev/zw1zCq8uqVEuPHzDPo3OZrlGJ4=
|
||||
github.com/ProtonMail/go-mobile v0.0.0-20210326110230-f181c70e4e2b h1:XVeh08xp93T+xK6rzpCSQTZ+LwEo+ASHvOifrQ5ZgEE=
|
||||
|
|
@ -19,47 +12,24 @@ github.com/hashicorp/go-version v1.2.1 h1:zEfKbn2+PDgroKdiOzqiE8rsmLqU2uwi5PB5pB
|
|||
github.com/hashicorp/go-version v1.2.1/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA=
|
||||
github.com/konsorten/go-windows-terminal-sequences v1.0.1 h1:mweAR1A6xJ3oS2pRaGiHgQ4OO8tzTaLawm8vnODuwDk=
|
||||
github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
|
||||
github.com/konsorten/go-windows-terminal-sequences v1.0.3 h1:CE8S1cTafDpPvMhIxNJKvHsGVBgn1xWYf1NbHQhywc8=
|
||||
github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
|
||||
github.com/mattn/go-colorable v0.0.0-20170327083344-ded68f7a9561 h1:isR/L+BIZ+rqODWYR/f526ygrBMGKZYFhaaFRDGvuZ8=
|
||||
github.com/mattn/go-colorable v0.0.0-20170327083344-ded68f7a9561/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU=
|
||||
github.com/mattn/go-isatty v0.0.3 h1:ns/ykhmWi7G9O+8a448SecJU3nSMBXJfqQkl0upE1jI=
|
||||
github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
|
||||
github.com/peterh/liner v0.0.0-20170317030525-88609521dc4b h1:8uaXtUkxiy+T/zdLWuxa/PG4so0TPZDZfafFNNSaptE=
|
||||
github.com/peterh/liner v0.0.0-20170317030525-88609521dc4b/go.mod h1:xIteQHvHuaLYG9IFj6mSxM0fCKrs34IrEQUhOYuGPHc=
|
||||
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
|
||||
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
||||
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||
github.com/russross/blackfriday v1.5.2 h1:HyvC0ARfnZBqnXwABFeSZHpKvJHJJfPz81GNueLj0oo=
|
||||
github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g=
|
||||
github.com/sirupsen/logrus v1.4.2 h1:SPIRibHv4MatM3XXNO2BJeFLZwZ2LvZgfQ5+UNI2im4=
|
||||
github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
|
||||
github.com/sirupsen/logrus v1.6.0 h1:UBcNElsrwanuuMsnGSlYmtmgbb23qDR5dG+6X6Oo89I=
|
||||
github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88=
|
||||
github.com/spf13/cobra v0.0.0-20170417170307-b6cb39589372 h1:eRfW1vRS4th8IX2iQeyqQ8cOUNOySvAYJ0IUvTXGoYA=
|
||||
github.com/spf13/cobra v0.0.0-20170417170307-b6cb39589372/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ=
|
||||
github.com/spf13/pflag v0.0.0-20170417173400-9e4c21054fa1 h1:7bozMfSdo41n2NOc0GsVTTVUiA+Ncaj6pXNpm4UHKys=
|
||||
github.com/spf13/pflag v0.0.0-20170417173400-9e4c21054fa1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
|
||||
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||
github.com/stretchr/objx v0.1.1 h1:2vfRuCMp5sSVIDSqO8oNnWJq7mPa6KVP3iPIwFBuy8A=
|
||||
github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
|
||||
github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk=
|
||||
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
|
||||
go.starlark.net v0.0.0-20200821142938-949cc6f4b097 h1:YiRMXXgG+Pg26t1fjq+iAjaauKWMC9cmGFrtOEuwDDg=
|
||||
go.starlark.net v0.0.0-20200821142938-949cc6f4b097/go.mod h1:f0znQkUKRrkk36XxWbGjMqQM8wGv/xHBVE2qc3B5oFU=
|
||||
golang.org/x/arch v0.0.0-20190927153633-4e8777c89be4 h1:QlVATYS7JBoZMVaf+cNjb90WD/beKVHnIxFKT4QaHVI=
|
||||
golang.org/x/arch v0.0.0-20190927153633-4e8777c89be4/go.mod h1:flIaEI6LNU6xOCD5PaJvn9wGP0agmIOqjrtsKGRguv4=
|
||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
||||
golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||
golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2 h1:It14KIkyBFYkHkwZ7k45minvA9aorojkyjGk9KJ5B/w=
|
||||
golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
|
||||
golang.org/x/exp v0.0.0-20190731235908-ec7cb31e5a56 h1:estk1glOnSVeJ9tdEZZc5mAMDZk5lNJNyJ6DvrBkTEU=
|
||||
golang.org/x/exp v0.0.0-20190731235908-ec7cb31e5a56/go.mod h1:JhuoJpWY28nO4Vef9tZUw9qufEGTyX1+7lmHxV5q5G4=
|
||||
golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
|
||||
golang.org/x/image v0.0.0-20190802002840-cff245a6509b h1:+qEpEAPhDZ1o0x3tHzZTQDArnOixOzGD9HUJfcg0mb4=
|
||||
golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
|
||||
golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY=
|
||||
golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=
|
||||
|
|
@ -68,16 +38,13 @@ golang.org/x/mod v0.1.1-0.20191209134235-331c550502dd/go.mod h1:s0Qsj1ACt9ePp/hM
|
|||
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110 h1:qWPm9rbaAMKs8Bq/9LRpbMqxWRVUAQwMI9fVrssnTfw=
|
||||
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
|
||||
golang.org/x/sync v0.0.0-20190423024810-112230192c58 h1:8gQV6CLnAEikrhgkHFbMAEhagSSnXWGV915qUMm9mrU=
|
||||
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68 h1:nxC68pudNYkKU6jWhgrqdreuFiOQWj1Fs7T3VrH4Pjw=
|
||||
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1 h1:v+OssWQX+hTHEmOBgwxdZxK4zHq3yOs8F9J7mk0PY8E=
|
||||
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
|
||||
|
|
@ -95,5 +62,3 @@ gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+
|
|||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||
gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw=
|
||||
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||
qgithub.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
|
||||
rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4=
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue