From 72a354caf9027ee2834afe6579bc66587046f56e Mon Sep 17 00:00:00 2001 From: Frank Denis Date: Mon, 7 Jun 2021 18:11:58 +0200 Subject: [PATCH] Update go-hpke-compact --- go.mod | 2 +- go.sum | 4 ++-- .../jedisct1/go-hpke-compact/README.md | 6 +++++ .../jedisct1/go-hpke-compact/go.mod | 2 +- .../jedisct1/go-hpke-compact/hpke.go | 22 ++++++++++++++++--- vendor/modules.txt | 2 +- 6 files changed, 30 insertions(+), 8 deletions(-) diff --git a/go.mod b/go.mod index d799c55e..54dc41ca 100644 --- a/go.mod +++ b/go.mod @@ -13,7 +13,7 @@ require ( github.com/jedisct1/dlog v0.0.0-20210101122416-354ffe815216 github.com/jedisct1/go-clocksmith v0.0.0-20210101121932-da382b963868 github.com/jedisct1/go-dnsstamps v0.0.0-20210414164033-fdb47fe0c84c - github.com/jedisct1/go-hpke-compact v0.0.0-20210329192501-7ceabaabca65 + github.com/jedisct1/go-hpke-compact v0.0.0-20210607160958-a8af3a0d4a3c github.com/jedisct1/go-minisign v0.0.0-20210414164026-819d7e2534ac github.com/jedisct1/xsecretbox v0.0.0-20210330110434-7cb86b57caf0 github.com/k-sone/critbitgo v1.4.0 diff --git a/go.sum b/go.sum index 7febf3dc..48adc0d0 100644 --- a/go.sum +++ b/go.sum @@ -50,8 +50,8 @@ github.com/jedisct1/go-clocksmith v0.0.0-20210101121932-da382b963868 h1:QZ79mRbN github.com/jedisct1/go-clocksmith v0.0.0-20210101121932-da382b963868/go.mod h1:SAINchklztk2jcLWJ4bpNF4KnwDUSUTX+cJbspWC2Rw= github.com/jedisct1/go-dnsstamps v0.0.0-20210414164033-fdb47fe0c84c h1:C4YliYa18NEFs92gIYDhcnkAZL3dea0fmqDwJ9wCvjk= github.com/jedisct1/go-dnsstamps v0.0.0-20210414164033-fdb47fe0c84c/go.mod h1:t35n6rsPE3nD3RXbc5hI5Ax1ci/SSYTpx0BdMXh/1aE= -github.com/jedisct1/go-hpke-compact v0.0.0-20210329192501-7ceabaabca65 h1:qxey1Jfre+udaWyQI+lS3qPGuJDzmkBaHDIhmL9qef8= -github.com/jedisct1/go-hpke-compact v0.0.0-20210329192501-7ceabaabca65/go.mod h1:fFxJHJ4XTptLoMkie7bC9zjyKSKC8yycljJtKXGaAAI= +github.com/jedisct1/go-hpke-compact v0.0.0-20210607160958-a8af3a0d4a3c h1:FYRBSw8+E9zw9hA7IOc0G6TDRDdbpLHlOx/avdmEty4= +github.com/jedisct1/go-hpke-compact v0.0.0-20210607160958-a8af3a0d4a3c/go.mod h1:8jLxHdP84UJy7CNm4uzXJCl1DJkRee53TuE8UbXuoWs= github.com/jedisct1/go-minisign v0.0.0-20210414164026-819d7e2534ac h1:eHNaWGqKp8Xjf/yyzfhgO4bmSpiScZg+vCpjdhr2x4k= github.com/jedisct1/go-minisign v0.0.0-20210414164026-819d7e2534ac/go.mod h1:oPTyITpvr7hPx/9w76gWrgbZwbb+7gZ9/On8hFc+LNE= github.com/jedisct1/xsecretbox v0.0.0-20210330110434-7cb86b57caf0 h1:URIhPa4hmOo+YgZx58jLy/LyeaEBl2B/Vbfvy1gafp8= diff --git a/vendor/github.com/jedisct1/go-hpke-compact/README.md b/vendor/github.com/jedisct1/go-hpke-compact/README.md index ca2c52ec..0721671b 100644 --- a/vendor/github.com/jedisct1/go-hpke-compact/README.md +++ b/vendor/github.com/jedisct1/go-hpke-compact/README.md @@ -126,4 +126,10 @@ secret1, err := clientCtx.Export("description 1") secret2, err := serverCtx.Export("description 2"); ``` +### Access the raw cipher interface + +```go +cipher, err := suite.NewRawCipher(key) +``` + ## That's it! \ No newline at end of file diff --git a/vendor/github.com/jedisct1/go-hpke-compact/go.mod b/vendor/github.com/jedisct1/go-hpke-compact/go.mod index af15fdc6..5601f201 100644 --- a/vendor/github.com/jedisct1/go-hpke-compact/go.mod +++ b/vendor/github.com/jedisct1/go-hpke-compact/go.mod @@ -4,5 +4,5 @@ go 1.16 require ( github.com/powerman/check v1.3.1 - golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2 + golang.org/x/crypto v0.0.0-20210513164829-c07d793c2f9a ) diff --git a/vendor/github.com/jedisct1/go-hpke-compact/hpke.go b/vendor/github.com/jedisct1/go-hpke-compact/hpke.go index 959ce8fa..2d1ee404 100644 --- a/vendor/github.com/jedisct1/go-hpke-compact/hpke.go +++ b/vendor/github.com/jedisct1/go-hpke-compact/hpke.go @@ -508,6 +508,22 @@ func (suite *Suite) NewAuthenticatedServerContext(clientPk []byte, enc []byte, s return ServerContext{inner: context}, nil } +// NewRawCipher - Access the raw cipher interface +func (suite *Suite) NewRawCipher(key []byte) (cipher.AEAD, error) { + switch suite.AeadID { + case AeadAes128Gcm, AeadAes256Gcm: + block, err := aes.NewCipher(key) + if err != nil { + return nil, err + } + return cipher.NewGCM(block) + case AeadChaCha20Poly1305: + return chacha20poly1305.New(key) + default: + return nil, errors.New("externally defined cipher") + } +} + func (state *aeadState) incrementCounter() error { carry := uint16(1) for i := len(state.counter); ; { @@ -624,11 +640,11 @@ type aeadAesImpl struct { func newAesAead(key []byte) (aeadAesImpl, error) { block, err := aes.NewCipher(key) if err != nil { - return aeadAesImpl{}, nil + return aeadAesImpl{}, err } aesGcm, err := cipher.NewGCM(block) if err != nil { - return aeadAesImpl{}, nil + return aeadAesImpl{}, err } aead := aeadAesImpl{impl: aesGcm} return aead, nil @@ -645,7 +661,7 @@ type aeadChaChaPolyImpl struct { func newChaChaPolyAead(key []byte) (aeadChaChaPolyImpl, error) { impl, err := chacha20poly1305.New(key) if err != nil { - return aeadChaChaPolyImpl{}, nil + return aeadChaChaPolyImpl{}, err } aead := aeadChaChaPolyImpl{impl: impl} return aead, nil diff --git a/vendor/modules.txt b/vendor/modules.txt index e3dc6875..54de01aa 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -41,7 +41,7 @@ github.com/jedisct1/go-clocksmith # github.com/jedisct1/go-dnsstamps v0.0.0-20210414164033-fdb47fe0c84c ## explicit github.com/jedisct1/go-dnsstamps -# github.com/jedisct1/go-hpke-compact v0.0.0-20210329192501-7ceabaabca65 +# github.com/jedisct1/go-hpke-compact v0.0.0-20210607160958-a8af3a0d4a3c ## explicit github.com/jedisct1/go-hpke-compact # github.com/jedisct1/go-minisign v0.0.0-20210414164026-819d7e2534ac