Update go-hpke-compact

This commit is contained in:
Frank Denis 2021-06-07 18:11:58 +02:00
parent 45d3afc8f9
commit 72a354caf9
6 changed files with 30 additions and 8 deletions

2
go.mod
View File

@ -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

4
go.sum
View File

@ -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=

View File

@ -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!

View File

@ -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
)

View File

@ -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

2
vendor/modules.txt vendored
View File

@ -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