FiloSottile / age

A simple, modern and secure encryption tool (and Go library) with small explicit keys, no config options, and UNIX-style composability.
https://age-encryption.org
BSD 3-Clause "New" or "Revised" License
15.79k stars 477 forks source link

feat: move internal to plugin #422

Closed tomberek closed 2 years ago

tomberek commented 2 years ago

This is not pretty, but was a very rough attempt to see if it would work to expose the plugin system to sops

It results in a sops binary capable of age1yubikey/AGE-PLUGIN-YUBIKEY plugin actions. So that is promising. Is there continued work to do something along these lines?

FiloSottile commented 2 years ago

Hey! Yeah, the plan is to expose this API, indeed. Seeing it used is extremely helpful, thank you!

Looks like besides the current internal plugin package, you'd want a function to parse both native and plugin recipients and identities, and a TUI implementation of the callbacks, is that right? Does the age TUI work as-is for SOPS?

tomberek commented 2 years ago

Yes! Surprisingly these two sets of changes allowed me to use sops + age + age-plugin-yubikey. (warning: I did extremely minimal testing.)

FiloSottile commented 2 years ago

Thank you for experimenting with this! I plan to expose the plugin API after some cleanup. Closing this because the filippo/plugins branch is being deleted.

tomberek commented 11 months ago

Is it happening? https://github.com/FiloSottile/age/commit/6976c5fca5d828b3e74e3a9721583af5478e8244

FiloSottile commented 11 months ago

Hi! Yeah you should find everything but the TUI in https://pkg.go.dev/filippo.io/age/plugin@v1.1.2-0.20230805193447-c89f0b932ecd. Let me know if it looks good, ideally before the next release :)

Kranzes commented 11 months ago

Awesome! So here's a question, when are we getting a release with this? :wink: