From 511a737c5de2e1f1b3f64936e3d37254b9e40841 Mon Sep 17 00:00:00 2001 From: Sarah Jamie Lewis Date: Tue, 18 May 2021 12:09:11 -0700 Subject: [PATCH] Update iteration counter --- model/group.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/model/group.go b/model/group.go index d901b87..dd64182 100644 --- a/model/group.go +++ b/model/group.go @@ -83,10 +83,15 @@ func NewGroup(server string) (*Group, error) { return group, nil } +// CheckGroup returns true only if the ID of the group is cryptographically valid. +func (g *Group) CheckGroup() bool { + return g.GroupID == deriveGroupID(g.GroupKey[:], g.GroupServer) +} + func deriveGroupID(groupKey []byte, serverHostname string) string { data, _ := base32.StdEncoding.DecodeString(strings.ToUpper(serverHostname)) pubkey := data[0:ed25519.PublicKeySize] - return hex.EncodeToString(pbkdf2.Key(groupKey, pubkey, 4, 16, sha512.New)) + return hex.EncodeToString(pbkdf2.Key(groupKey, pubkey, 4096, 16, sha512.New)) } // Compromised should be called if we detect a a groupkey leak