Posted by kohsuke
on May 18, 2008 at 8:36 PM PDT
I wrote a small Java library that converts a ssh key file in the PuTTY format into the OpenSSH format.
I wrote a small Java library that converts a ssh key file in the PuTTY format into the OpenSSH format, which is much more widely used. The original motivation for this was that I saw some Hudson users who seemed to be using the PuTTY key file whereas Hudson (or more presicely the trilead ssh library that Hudson uses) only handles the OpenSSH format.
The key conversion requires several cryptographic operations (as well as base64 encoding/decoding), but unfortunately these algorithms are not available out of the box from JDK, and even worth Java cryptographic API has no source in src.zip and obfuscated, so IDEs cannot display any helpful usage tooltip, and stack traces make no sense at all. If I understand it correctly, this is due to the U.S. government regulation, but I never understood why anyone could honestly believe in the effectiveness of this regulation.
Any way, this tool relies on the trilead ssh library for those cryptographic operations. But if you need to use this with other libraries, you should be able to port it fairly easily.
I also didn't know that both formats use ASN.1. I have a bit of experience with ASN.1 as the FastInfoset project relies on it, and it appears that ASN.1 is more commonly used than I thought.