ikskuh / gurl

A curl-like cli application to interact with Gemini sites.
MIT License
16 stars 3 forks source link
gemini zig ziglang

👧 gurl

A Gemini command line interface similar to curl written in Zig.

Project State

Dependencies

Build Instructions

  1. Refresh submodules (git submodule init, git submodule update)
  2. Build gurl (zig build)
  3. Run ./zig-cache/bin/gurl

Design Considerations

Give the user control over their system and make configuration easy.

Certificate Trust

Future Plans

Correctly adhere to XDG standards and use xdg-open

TOFU Notes

Current implementation just stores the public key of the server and not the certificate with fingerprint and everything

That certificate's fingerprint and expiry date are saved in a persistent database (like the .known_hosts file for SSH), associated with the server's hostname.

Client Certificate Process

Tools

Connect with OpenSSL:

openssl s_client --connect domain.name -quiet -verify_quiet

Dump DER certificate information:

openssl x509 -in trust-store/mozz.us/cert-1.der -inform der -text

Convert DER to PEM:

openssl x509 -inform der -in trust-store/gemini.conman.org/cert-0.der -out conman.pem