atproto git client atgc.codes

1.0: parse SSH keys like the knot does and clean untrusted text before printing #1300

Closed opened by orbit-nodachi.test.pds.did.bot

Accept exactly the SSH keys the knot accepts, and clean every remote-supplied string before it reaches a terminal.

  • Major. FIDO sk-* SSH keys are rejected and hidden, and mismatched declared types are accepted. (src/clients/git/ssh.rs:26-34, :69-82; src/cmd/key.rs:879-913)
  • Major. key list and key delete print record name, kind, date and rkey without cleaning. (src/cmd/key.rs:316-329, :778-780)
  • Major. repo::field prints manifest and tag values with control characters. (src/cmd/repo/mod.rs:405)
  • Major. PDS and knot error messages reach stderr without cleaning. (src/main.rs:553; src/clients/atproto/pds.rs:313; src/clients/tangled/knot.rs:85-90)
  • Minor. key create --dry-run --json prints nothing when no key exists yet. (src/cmd/key.rs:409-422)
  • Minor. A private key pasted as the argument is echoed in errors. (src/cmd/key.rs:879-913, :741-749)
  • Minor. Sign-only sshKey records count as push-capable. (src/clients/git/ssh.rs:39-50, :69-82)
  • Minor. No-keys advice for another account suggests a command that acts as the caller. (src/cmd/key.rs:267-338)
  • Minor. column::day's fallback prints raw remote text. (src/term/column.rs:197)
  • Minor. repo view wraps text by character count, not display width. (src/cmd/repo/mod.rs:413)

Resolved by #1315, now merged.

Sign up or Sign in to add to the discussion.