mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-06-30 19:12:48 -05:00
cmdgen: add a --dump option.
Also spelled '-O text', this takes a public or private key as input, and produces on standard output a dump of all the actual numbers involved in the key: the exponent and modulus for RSA, the p,q,g,y parameters for DSA, the affine x and y coordinates of the public elliptic curve point for ECC keys, and all the extra bits and pieces in the private keys too. Partly I expect this to be useful to me for debugging: I've had to paste key files a few too many times through base64 decoders and hex dump tools, then manually decode SSH marshalling and paste the result into the Python REPL to get an integer object. Now I should be able to get _straight_ to text I can paste into Python. But also, it's a way that other applications can use the key generator: if you need to generate, say, an RSA key in some format I don't support (I've recently heard of an XML-based one, for example), then you can run 'puttygen -t rsa --dump' and have it print the elements of a freshly generated keypair on standard output, and then all you have to do is understand the output format.
This commit is contained in:
@ -157,8 +157,17 @@ FUNC2(void, ssh_key_public_blob, val_key, out_val_string_binarysink)
|
||||
FUNC2(void, ssh_key_private_blob, val_key, out_val_string_binarysink)
|
||||
FUNC2(void, ssh_key_openssh_blob, val_key, out_val_string_binarysink)
|
||||
FUNC1(val_string_asciz, ssh_key_cache_str, val_key)
|
||||
FUNC1(val_keycomponents, ssh_key_components, val_key)
|
||||
FUNC2(uint, ssh_key_public_bits, keyalg, val_string_ptrlen)
|
||||
|
||||
/*
|
||||
* Accessors to retrieve the innards of a 'key_components'.
|
||||
*/
|
||||
FUNC1(uint, key_components_count, val_keycomponents)
|
||||
FUNC2(opt_val_string_asciz_const, key_components_nth_name, val_keycomponents, uint)
|
||||
FUNC2(opt_val_string_asciz_const, key_components_nth_str, val_keycomponents, uint)
|
||||
FUNC2(opt_val_mpint, key_components_nth_mp, val_keycomponents, uint)
|
||||
|
||||
/*
|
||||
* The ssh_cipher abstraction. The in-place encrypt and decrypt
|
||||
* functions are wrapped to replace them with versions that take one
|
||||
|
Reference in New Issue
Block a user