|
|
@ -16,17 +16,17 @@ type Identity struct { |
|
|
|
edpubk *ed25519.PublicKey |
|
|
|
} |
|
|
|
|
|
|
|
// Initialize is a courtesy function for initializing a V3 Identity in-code.
|
|
|
|
func Initialize(name string, pk *ed25519.PrivateKey, pubk *ed25519.PublicKey) Identity { |
|
|
|
// InitializeIdentity is a courtesy function for initializing a V3 Identity in-code.
|
|
|
|
func InitializeIdentity(name string, pk *ed25519.PrivateKey, pubk *ed25519.PublicKey) Identity { |
|
|
|
return Identity{name, pk, pubk} |
|
|
|
} |
|
|
|
|
|
|
|
// InitializeEphemeral generates a new ephemeral identity, the private key of this identity is provided in the response.
|
|
|
|
func InitializeEphemeral() (Identity, ed25519.PrivateKey) { |
|
|
|
// InitializeEphemeralIdentity generates a new ephemeral identity, the private key of this identity is provided in the response.
|
|
|
|
func InitializeEphemeralIdentity() (Identity, ed25519.PrivateKey) { |
|
|
|
epk, esk, _ := ed25519.GenerateKey(rand.Reader) |
|
|
|
ephemeralPublicKey := ed25519.PublicKey(epk) |
|
|
|
ephemeralPrivateKey := ed25519.PrivateKey(esk) |
|
|
|
ephemeralIdentity := Initialize("", &ephemeralPrivateKey, &ephemeralPublicKey) |
|
|
|
ephemeralIdentity := InitializeIdentity("", &ephemeralPrivateKey, &ephemeralPublicKey) |
|
|
|
return ephemeralIdentity, ephemeralPrivateKey |
|
|
|
} |
|
|
|
|
|
|
@ -41,7 +41,7 @@ func (i *Identity) PublicKey() ed25519.PublicKey { |
|
|
|
return *i.edpubk |
|
|
|
} |
|
|
|
|
|
|
|
// EDH performs a diffie helman operation on this identities private key with the given public key.
|
|
|
|
// EDH performs a diffie-helman operation on this identities private key with the given public key.
|
|
|
|
func (i *Identity) EDH(key ed25519.PublicKey) []byte { |
|
|
|
secret := utils.EDH(*i.edpk, key) |
|
|
|
return secret[:] |
|
|
|