aboutsummaryrefslogtreecommitdiffstats
path: root/abusectl
AgeCommit message (Expand)AuthorFilesLines
12 hoursfeat: build the machine-readable feedback report partDanilo M.1-0/+177
12 hoursfix: escape the continuation marker so a value cannot forge oneDanilo M.1-9/+109
12 hoursfeat: build the human-readable part of a reportDanilo M.1-0/+196
13 hoursfeat: list the indicators no abuse desk was found forDanilo M.1-3/+88
13 hoursfix: fold a role mailbox's case, and test the half that was not testedDanilo M.1-7/+29
13 hoursfix: derive a destination id from its address, not its positionDanilo M.1-14/+39
13 hoursfeat: group abuse contacts into one destination per addressDanilo M.1-0/+99
13 hoursfix: strip the envelope recipient in every shape the grammar allowsDanilo M.2-4/+39
13 hoursfeat: store a whitelist of publishable headers in the manifestDanilo M.2-0/+100
22 hoursdocs: record the fourth property and the contacts commandDanilo M.1-9/+5
22 hoursfix: keep ":" literal so an IPv6 query is not over-encodedDanilo M.1-6/+15
22 hoursfeat: add the contacts subcommandDanilo M.1-1/+53
22 hoursfix: percent-encode the component interpolated into an RDAP queryDanilo M.1-2/+23
22 hoursfix: refuse an ipv6 scope id, and say why a value was refusedDanilo M.1-9/+49
22 hoursfix: validate a query host at the one point a query is admittedDanilo M.1-1/+54
22 hoursfix: treat the IANA bootstrap as hostile, not as trusted inputDanilo M.1-9/+60
22 hoursfeat: resolve the worklist to abuse contactsDanilo M.1-0/+60
22 hoursfeat: build the contacts worklist, host onlyDanilo M.1-0/+108
23 hoursfeat: query RDAP, walking up the labels for a registrable domainDanilo M.1-0/+53
23 hoursfeat: read abuse addresses from a jCard, strictlyDanilo M.1-0/+87
23 hoursfeat: select an RDAP server by longest prefix and by TLDDanilo M.1-0/+52
23 hoursfeat: cache the IANA bootstrap, and prefer a stale copy to noneDanilo M.1-0/+59
23 hoursfeat: add the RDAP transport, with a redirect cap and no downgradeDanilo M.1-0/+72
39 hoursfeat: report List-Unsubscribe urls and a differing SenderDanilo M.2-2/+34
39 hoursfeat: flag an address spoofed into a display nameDanilo M.1-1/+48
39 hoursfix: take the sender domain from the address, not the display nameDanilo M.1-3/+30
40 hoursfix: prefer the observed address over an attacker's HELO literalDanilo M.1-9/+27
40 hoursfix: re-bracket an IPv6 host when stripping URL userinfoDanilo M.1-2/+12
41 hoursfix: redact a valueless query token whole, not as a kept nameDanilo M.2-5/+49
41 hoursfix: validate each setup answer at the prompt that asked for itDanilo M.1-34/+101
42 hoursfeat: command line for init and parseDanilo M.2-0/+234
42 hoursfeat: first-run config builderDanilo M.1-0/+295
42 hoursfix: reject non-list relays and empty cases valuesDanilo M.1-2/+20
42 hoursfeat: read and validate the configDanilo M.1-0/+86
42 hoursrefactor: one URL scan serving both the report and the flaggingDanilo M.1-29/+24
42 hoursfeat: assemble IOCs in the manifest's shapeDanilo M.1-0/+105
42 hoursfeat: case directory with an atomically written manifestDanilo M.1-0/+132
42 hoursfeat: extract URLs and attachment hashes, fetching nothingDanilo M.1-0/+120
42 hoursfeat: extract sender domains and auth verdictsDanilo M.1-1/+68
42 hoursfeat: walk the Received chain to the trust boundaryDanilo M.1-0/+114
42 hoursfix: redact fragment and strip userinfo, flag hidden query in pathDanilo M.1-11/+69
42 hoursfeat: redact recipient identifiers inside URLsDanilo M.1-0/+105
42 hoursfeat: package skeletonDanilo M.1-0/+17