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
··· 27 27 28 28 func (h *Handle) processPublicKey(ctx context.Context, did string, record tangled.PublicKey) error { 29 29 l := log.FromContext(ctx) 30 + 31 + allDids, err := h.db.GetAllDids() 32 + if err != nil { 33 + return err 34 + } 35 + 36 + // only process public keys from known DIDs 37 + if !slices.Contains(allDids, did) { 38 + reason := "not a known did" 39 + l.Info("rejecting public key record", "reason", reason, "did", did) 40 + return fmt.Errorf("rejected public key record: %s, %s", reason, did) 41 + } 42 + 30 43 pk := db.PublicKey{ 31 44 Did: did, 32 45 PublicKey: record,