matterbridge/vendor/go.mau.fi/libsignal/ecc/DjbECPublicKey.go

30 lines
734 B
Go
Raw Normal View History

2022-01-30 23:27:37 +00:00
package ecc
// NewDjbECPublicKey creates a new Curve25519 public key with the given bytes.
func NewDjbECPublicKey(publicKey [32]byte) *DjbECPublicKey {
key := DjbECPublicKey{
publicKey: publicKey,
}
return &key
}
// DjbECPublicKey implements the ECPublicKey interface and uses Curve25519.
type DjbECPublicKey struct {
publicKey [32]byte
}
// PublicKey returns the EC public key as a byte array.
func (d *DjbECPublicKey) PublicKey() [32]byte {
return d.publicKey
}
// Serialize returns the public key prepended by the DjbType value.
func (d *DjbECPublicKey) Serialize() []byte {
return append([]byte{DjbType}, d.publicKey[:]...)
}
// Type returns the DjbType value.
func (d *DjbECPublicKey) Type() int {
return DjbType
}