mirror of
https://github.com/cwinfo/matterbridge.git
synced 2025-07-07 19:24:04 +00:00
Add dependencies/vendor (whatsapp)
This commit is contained in:
106
vendor/go.mau.fi/libsignal/ratchet/ReceiverParameters.go
vendored
Normal file
106
vendor/go.mau.fi/libsignal/ratchet/ReceiverParameters.go
vendored
Normal file
@ -0,0 +1,106 @@
|
||||
package ratchet
|
||||
|
||||
import (
|
||||
"go.mau.fi/libsignal/ecc"
|
||||
"go.mau.fi/libsignal/keys/identity"
|
||||
)
|
||||
|
||||
// NewReceiverParameters creates a structure with all the keys needed to construct
|
||||
// a new session when we are receiving a message from a user for the first time.
|
||||
func NewReceiverParameters(ourIdentityKey *identity.KeyPair, ourSignedPreKey *ecc.ECKeyPair,
|
||||
ourOneTimePreKey *ecc.ECKeyPair, ourRatchetKey *ecc.ECKeyPair,
|
||||
theirBaseKey ecc.ECPublicKeyable, theirIdentityKey *identity.Key) *ReceiverParameters {
|
||||
|
||||
receiverParams := ReceiverParameters{
|
||||
ourIdentityKeyPair: ourIdentityKey,
|
||||
ourSignedPreKey: ourSignedPreKey,
|
||||
ourOneTimePreKey: ourOneTimePreKey,
|
||||
ourRatchetKey: ourRatchetKey,
|
||||
theirBaseKey: theirBaseKey,
|
||||
theirIdentityKey: theirIdentityKey,
|
||||
}
|
||||
|
||||
return &receiverParams
|
||||
}
|
||||
|
||||
// NewEmptyReceiverParameters creates an empty structure with the receiver parameters
|
||||
// needed to create a session. You should use the `set` functions to set all the
|
||||
// necessary keys needed to build a session.
|
||||
func NewEmptyReceiverParameters() *ReceiverParameters {
|
||||
receiverParams := ReceiverParameters{}
|
||||
|
||||
return &receiverParams
|
||||
}
|
||||
|
||||
// ReceiverParameters describes the session parameters if we are receiving
|
||||
// a message from someone for the first time. These parameters are used as
|
||||
// the basis for deriving a shared secret with the sender.
|
||||
type ReceiverParameters struct {
|
||||
ourIdentityKeyPair *identity.KeyPair
|
||||
ourSignedPreKey *ecc.ECKeyPair
|
||||
ourOneTimePreKey *ecc.ECKeyPair
|
||||
ourRatchetKey *ecc.ECKeyPair
|
||||
|
||||
theirBaseKey ecc.ECPublicKeyable
|
||||
theirIdentityKey *identity.Key
|
||||
}
|
||||
|
||||
// OurIdentityKeyPair returns the identity key of the receiver.
|
||||
func (r *ReceiverParameters) OurIdentityKeyPair() *identity.KeyPair {
|
||||
return r.ourIdentityKeyPair
|
||||
}
|
||||
|
||||
// OurSignedPreKey returns the signed prekey of the receiver.
|
||||
func (r *ReceiverParameters) OurSignedPreKey() *ecc.ECKeyPair {
|
||||
return r.ourSignedPreKey
|
||||
}
|
||||
|
||||
// OurOneTimePreKey returns the one time prekey of the receiver.
|
||||
func (r *ReceiverParameters) OurOneTimePreKey() *ecc.ECKeyPair {
|
||||
return r.ourOneTimePreKey
|
||||
}
|
||||
|
||||
// OurRatchetKey returns the ratchet key of the receiver.
|
||||
func (r *ReceiverParameters) OurRatchetKey() *ecc.ECKeyPair {
|
||||
return r.ourRatchetKey
|
||||
}
|
||||
|
||||
// TheirBaseKey returns the base key of the sender.
|
||||
func (r *ReceiverParameters) TheirBaseKey() ecc.ECPublicKeyable {
|
||||
return r.theirBaseKey
|
||||
}
|
||||
|
||||
// TheirIdentityKey returns the identity key of the sender.
|
||||
func (r *ReceiverParameters) TheirIdentityKey() *identity.Key {
|
||||
return r.theirIdentityKey
|
||||
}
|
||||
|
||||
// SetOurIdentityKeyPair sets the identity key of the receiver.
|
||||
func (r *ReceiverParameters) SetOurIdentityKeyPair(ourIdentityKey *identity.KeyPair) {
|
||||
r.ourIdentityKeyPair = ourIdentityKey
|
||||
}
|
||||
|
||||
// SetOurSignedPreKey sets the signed prekey of the receiver.
|
||||
func (r *ReceiverParameters) SetOurSignedPreKey(ourSignedPreKey *ecc.ECKeyPair) {
|
||||
r.ourSignedPreKey = ourSignedPreKey
|
||||
}
|
||||
|
||||
// SetOurOneTimePreKey sets the one time prekey of the receiver.
|
||||
func (r *ReceiverParameters) SetOurOneTimePreKey(ourOneTimePreKey *ecc.ECKeyPair) {
|
||||
r.ourOneTimePreKey = ourOneTimePreKey
|
||||
}
|
||||
|
||||
// SetOurRatchetKey sets the ratchet key of the receiver.
|
||||
func (r *ReceiverParameters) SetOurRatchetKey(ourRatchetKey *ecc.ECKeyPair) {
|
||||
r.ourRatchetKey = ourRatchetKey
|
||||
}
|
||||
|
||||
// SetTheirBaseKey sets the base key of the sender.
|
||||
func (r *ReceiverParameters) SetTheirBaseKey(theirBaseKey ecc.ECPublicKeyable) {
|
||||
r.theirBaseKey = theirBaseKey
|
||||
}
|
||||
|
||||
// SetTheirIdentityKey sets the identity key of the sender.
|
||||
func (r *ReceiverParameters) SetTheirIdentityKey(theirIdentityKey *identity.Key) {
|
||||
r.theirIdentityKey = theirIdentityKey
|
||||
}
|
Reference in New Issue
Block a user