-
Notifications
You must be signed in to change notification settings - Fork 51
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
GPG support #26
Comments
Aren't we supporting PKCS8 keys already? Doesn't this mean that we support loading GPG keys from disk, too? I read through https://tools.ietf.org/html/rfc4880 and it mentions PKCS1-5 as key format.. I think we can load such keys already, because we are using the pkcs/pem golang libraries. Maybe we should generate a few test keys with GPG? |
Chiming in on this issue because I am interested in this as well. SummaryI believe the intent of this issue is to point out that the reference implementation supports using GPG signatures for signing and verification (and for storing in the in-toto JSON), and the golang implementation is not interoperable with that. The current support for RSA keys can be used in cases where you can export the GPG private key, but it does not support use cases that involve hardware tokens that generate and store GPG keys and perform GPG signature operations but don't allow exporting the private keys (for example, YubiKeys) -- this is presumably why the support for GPG signing and verification exists in the reference implementation. The Python reference implementation has implemented this feature, but the manner in which GPG signatures are represented and interpreted in the generated in-toto JSON is not part of the specification. Documenting these format/expectations more explicitly should probably be done as part of this work so that other future implementations that want to add this support (like Java) can refer to the spec rather than having to read through and match the behavior of the reference implementation. The actual GPG signing/invocations is pretty straightforward (the reference implementation calls Full detailsThe Python reference implementation basically implements a parallel code path to handle GPG signing. The actual GPG operations are done by executing the local However, beyond just calling out to
Note the presence of the Implementing this would effectively consist of:
The baseline for feature completion would be that the Golang and Python implementation can sign and verify GPG signatures produced by each other. However, it would also be helpful to formalize the expectations as part of the specification (or at least to document them) so that it's not necessary for all implementations to check against each other. |
Description of issue or feature request:
The in-toto python implementation supports gpg keys and signatures. We could add this feature using the existing golang pgp support. (the module exists, but finding it is a pain...)
Current behavior: any metadata with rfc4880 packets will fail to load
Expected behavior: They should be parsed and handled appropriately
The text was updated successfully, but these errors were encountered: