mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-07-15 01:57:40 -05:00
Support for detached certificates in userauth.
This is triggered by a new config option, or alternatively a -cert command-line option. You provide a certificate file (i.e. a public key containing one of the cert key formats), and then, whenever you authenticate with a private key that matches the public key inside that certificate, the certificate will be sent to the server in place of whatever public key it would have used before. I expect this to be more convenient for some users than the approach of baking the certificate into a modified version of the PPK file - especially users who want to use different certificates on the same key, either in sequence (if a CA continually reissues certificates with short lifetimes) or in parallel (if different hosts trust different CAs). In particular, this substitution is applied consistently, even when doing authentication via an agent. So if your bare private key is held in Pageant, you can _still_ specify a detached certificate, and PuTTY will spot that the key it's picked from Pageant matches that certificate, and do the same substitution. The detached certificate also overrides an existing certificate, if there was one on the public key already.
This commit is contained in:
@ -110,10 +110,10 @@ PacketProtocolLayer *ssh2_transport_new(
|
||||
PacketProtocolLayer *ssh2_userauth_new(
|
||||
PacketProtocolLayer *successor_layer,
|
||||
const char *hostname, const char *fullhostname,
|
||||
Filename *keyfile, bool show_banner, bool tryagent, bool notrivialauth,
|
||||
Filename *keyfile, Filename *detached_cert,
|
||||
bool show_banner, bool tryagent, bool notrivialauth,
|
||||
const char *default_username, bool change_username,
|
||||
bool try_ki_auth,
|
||||
bool try_gssapi_auth, bool try_gssapi_kex_auth,
|
||||
bool try_ki_auth, bool try_gssapi_auth, bool try_gssapi_kex_auth,
|
||||
bool gssapi_fwd, struct ssh_connection_shared_gss_state *shgss);
|
||||
PacketProtocolLayer *ssh2_connection_new(
|
||||
Ssh *ssh, ssh_sharing_state *connshare, bool is_simple,
|
||||
|
Reference in New Issue
Block a user