Skip to content
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

Support for x25519 #90

Open
jackivanov opened this issue Dec 1, 2020 · 13 comments
Open

Support for x25519 #90

jackivanov opened this issue Dec 1, 2020 · 13 comments

Comments

@jackivanov
Copy link

jackivanov commented Dec 1, 2020

Hi there,

I would be nice to have curve25519 supported

https://godoc.org/golang.org/x/crypto/curve25519

edit:

I have published a custom provider for now https://registry.terraform.io/providers/jackivanov/x25519/latest/docs

@azrdev
Copy link

azrdev commented Mar 18, 2021

duplicate(?) of #26

@detro
Copy link
Contributor

detro commented Feb 21, 2022

This sounds like it's covered by the work ongoing in #150.
Closing, but if it's different, please provide a lot more details of how the desired feature would look like.

Thank you :)

@detro detro closed this as completed Feb 21, 2022
@jackivanov
Copy link
Author

jackivanov commented Feb 21, 2022

@detro curve25519 is kinda different feature than just ED25519

@jackivanov
Copy link
Author

@detro Take a look at my draft in this fork

@detro
Copy link
Contributor

detro commented Feb 22, 2022

OK, I gave a quick read to the RFC but I won't pretend to be "an expert" or anything on the topic.

From what I gather, it's describe a Curve and can be used for implementing Cryptographic functions/tools.

Sorry, but the reason it feels out of place here, is because it's too "low level" compared to what this Provider does: even if we expose the data of such a curve, what would then be the use? It's not a certificate or a key, something that can be fed to other systems during a Terraform Apply.

But if you can document/describe a more concrete end-2-end example of where having such a resource in Terraform would be usable and beneficial, we could revisit this.

Hope it makes sense.

thank you

@jackivanov
Copy link
Author

@detro We can use that to generate a private/public key pair and feed to any application that supports it. For example, WireGuard. I'm not an expert too, but you can take a look at my PoC, and the resource codebase in in my previous comment.
WireGuard code has been recently added to the linux kernel natively, and I'm pretty sure there'll be more systems in future.

@detro
Copy link
Contributor

detro commented Feb 23, 2022

So, I did a quick googling to learn a bit more about X25519 and it's relationship with ED25519: https://words.filippo.io/using-ed25519-keys-for-encryption/

What I'm concerned about here at this point, is that we (HashiCorp) don't want to add new features to this provider unless they are absolutely well established features that "should be here".

It's a delicate balance to chose when something is common enough to be needed. So, what I could do is to re-open the issue, waiting for more input/interest from the community.

@detro detro reopened this Feb 23, 2022
@jackivanov
Copy link
Author

I can definitely contribute and file a PR for your review if you'd like

@AlexHunterCodes
Copy link

If implementing Curve25519 generically would allow Terraform to work with Wireguard keys in the same vein as other SSL/TLS/SSH keys, that would be a huge win for me. Being able to do all this in Vault too without having to use Key/Value would be even better.

@thekev
Copy link

thekev commented Sep 6, 2023

What happened to this? PR closed but not merged.

@jackivanov
Copy link
Author

It seems that the project maintainers may not have shown much interest in contributions from the community. I'll be happy to rework whatever's required to get this merged.

@jackivanov
Copy link
Author

For everyone interested I have published a provider - https://registry.terraform.io/providers/jackivanov/x25519/latest/docs

@ptwohig
Copy link

ptwohig commented Dec 29, 2023

ZeroMQ also uses the Curve25519 and being able to generate the keys would be helpful to me as well.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

7 participants