diff options
author | Wim <wim@42.be> | 2022-01-31 00:27:37 +0100 |
---|---|---|
committer | Wim <wim@42.be> | 2022-03-20 14:57:48 +0100 |
commit | e3cafeaf9292f67459ff1d186f68283bfaedf2ae (patch) | |
tree | b69c39620aa91dba695b3b935c6651c0fb37ce75 /vendor/go.mau.fi/whatsmeow/util/hkdfutil/hkdf.go | |
parent | e7b193788a56ee7cdb02a87a9db0ad6724ef66d5 (diff) | |
download | matterbridge-msglm-e3cafeaf9292f67459ff1d186f68283bfaedf2ae.tar.gz matterbridge-msglm-e3cafeaf9292f67459ff1d186f68283bfaedf2ae.tar.bz2 matterbridge-msglm-e3cafeaf9292f67459ff1d186f68283bfaedf2ae.zip |
Add dependencies/vendor (whatsapp)
Diffstat (limited to 'vendor/go.mau.fi/whatsmeow/util/hkdfutil/hkdf.go')
-rw-r--r-- | vendor/go.mau.fi/whatsmeow/util/hkdfutil/hkdf.go | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/vendor/go.mau.fi/whatsmeow/util/hkdfutil/hkdf.go b/vendor/go.mau.fi/whatsmeow/util/hkdfutil/hkdf.go new file mode 100644 index 00000000..fbc97124 --- /dev/null +++ b/vendor/go.mau.fi/whatsmeow/util/hkdfutil/hkdf.go @@ -0,0 +1,28 @@ +// Copyright (c) 2021 Tulir Asokan +// +// This Source Code Form is subject to the terms of the Mozilla Public +// License, v. 2.0. If a copy of the MPL was not distributed with this +// file, You can obtain one at http://mozilla.org/MPL/2.0/. + +// Package hkdfutil contains a simple wrapper for golang.org/x/crypto/hkdf that reads a specified number of bytes. +package hkdfutil + +import ( + "crypto/sha256" + "fmt" + + "golang.org/x/crypto/hkdf" +) + +func SHA256(key, salt, info []byte, length uint8) []byte { + data := make([]byte, length) + h := hkdf.New(sha256.New, key, salt, info) + n, err := h.Read(data) + if err != nil { + // Length is limited to 255 by being uint8, so these errors can't actually happen + panic(fmt.Errorf("failed to expand key: %w", err)) + } else if uint8(n) != length { + panic(fmt.Errorf("didn't read enough bytes (got %d, wanted %d)", n, length)) + } + return data +} |