knotserver: filter by known dids in processPublicKey #478

closed
opened by anirudh.fi targeting master from push-wzlvlnywrxrs
Changed files
+13
knotserver
+13
knotserver/ingester.go
···
func (h *Handle) processPublicKey(ctx context.Context, did string, record tangled.PublicKey) error {
l := log.FromContext(ctx)
+
+
allDids, err := h.db.GetAllDids()
+
if err != nil {
+
return err
+
}
+
+
// only process public keys from known DIDs
+
if !slices.Contains(allDids, did) {
+
reason := "not a known did"
+
l.Info("rejecting public key record", "reason", reason, "did", did)
+
return fmt.Errorf("rejected public key record: %s, %s", reason, did)
+
}
+
pk := db.PublicKey{
Did: did,
PublicKey: record,