4
0
mirror of https://github.com/cwinfo/matterbridge.git synced 2025-06-27 23:49:25 +00:00

Add dependencies/vendor (whatsapp)

This commit is contained in:
Wim
2022-01-31 00:27:37 +01:00
parent e7b193788a
commit e3cafeaf92
1074 changed files with 3091569 additions and 26075 deletions

View File

@ -0,0 +1,47 @@
// Package identity provides identity keys used for verifying the identity
// of a signal user.
package identity
import (
"encoding/hex"
"go.mau.fi/libsignal/ecc"
)
// NewKey generates a new IdentityKey from an ECPublicKey
func NewKey(publicKey ecc.ECPublicKeyable) *Key {
identityKey := Key{
publicKey: publicKey,
}
return &identityKey
}
// NewKeyFromBytes generates a new IdentityKey from public key bytes
func NewKeyFromBytes(publicKey [32]byte, offset int) Key {
identityKey := Key{
publicKey: ecc.NewDjbECPublicKey(publicKey),
}
return identityKey
}
// Key is a structure for representing an identity key. This same structure can
// be used for verifying recipient's identity key or storing our own identity key.
type Key struct {
publicKey ecc.ECPublicKeyable
}
// Fingerprint gets the string fingerprint representation of the public key.
func (k *Key) Fingerprint() string {
return hex.EncodeToString(k.publicKey.Serialize())
}
// PublicKey returns the EC Public key of the identity key
func (k *Key) PublicKey() ecc.ECPublicKeyable {
return k.publicKey
}
// Serialize returns the serialized version of the key
func (k *Key) Serialize() []byte {
return k.publicKey.Serialize()
}

View File

@ -0,0 +1,39 @@
package identity
import (
"go.mau.fi/libsignal/ecc"
)
// NewKeyPair returns a new identity key with the given public and private keys.
func NewKeyPair(publicKey *Key, privateKey ecc.ECPrivateKeyable) *KeyPair {
keyPair := KeyPair{
publicKey: publicKey,
privateKey: privateKey,
}
return &keyPair
}
// NewKeyPairFromBytes returns a new identity key from the given serialized bytes.
//func NewKeyPairFromBytes(serialized []byte) KeyPair {
//}
// KeyPair is a holder for public and private identity key pair.
type KeyPair struct {
publicKey *Key
privateKey ecc.ECPrivateKeyable
}
// PublicKey returns the identity key's public key.
func (k *KeyPair) PublicKey() *Key {
return k.publicKey
}
// PrivateKey returns the identity key's private key.
func (k *KeyPair) PrivateKey() ecc.ECPrivateKeyable {
return k.privateKey
}
// Serialize returns a byte array that represents the keypair.
//func (k *KeyPair) Serialize() []byte {
//}