X-Git-Url: https://git.distorted.org.uk/u/mdw/putty/blobdiff_plain/2f92b7170f74a58d1e33d7913e154f9f47852683..1d009ae71b849a95c86c3117d1b8f063fda8aae5:/ssh.h diff --git a/ssh.h b/ssh.h index 4ad0543a..766e2e3c 100644 --- a/ssh.h +++ b/ssh.h @@ -4,6 +4,7 @@ #include "puttymem.h" #include "network.h" #include "int64.h" +#include "misc.h" struct ssh_channel; @@ -256,9 +257,10 @@ void *new_sock_channel(void *handle, Socket s); void ssh_send_port_open(void *channel, char *hostname, int port, char *org); /* Exports from portfwd.c */ -extern char *pfd_newconnect(Socket * s, char *hostname, int port, void *c); +extern char *pfd_newconnect(Socket * s, char *hostname, int port, void *c, + const Config *cfg); extern char *pfd_addforward(char *desthost, int destport, char *srcaddr, - int port, void *backhandle); + int port, void *backhandle, const Config *cfg); extern void pfd_close(Socket s); extern int pfd_send(Socket s, char *data, int len); extern void pfd_confirm(Socket s); @@ -266,15 +268,21 @@ extern void pfd_unthrottle(Socket s); extern void pfd_override_throttle(Socket s, int enable); /* Exports from x11fwd.c */ -extern char *x11_init(Socket *, char *, void *, void *); +extern char *x11_init(Socket *, char *, void *, void *, const char *, int, + const Config *); extern void x11_close(Socket); extern int x11_send(Socket, char *, int); -extern void *x11_invent_auth(char *, int, char *, int); +extern void *x11_invent_auth(char *, int, char *, int, int); +extern void x11_free_auth(void *); extern void x11_unthrottle(Socket s); extern void x11_override_throttle(Socket s, int enable); extern int x11_get_screen_number(char *display); void x11_get_real_auth(void *authv, char *display); +/* Platfdorm-dependent X11 function */ +extern void platform_get_x11_auth(char *display, int *proto, + unsigned char *data, int *datalen); + Bignum copybn(Bignum b); Bignum bn_power_2(int n); void bn_restore_invariant(Bignum b); @@ -312,11 +320,12 @@ void dh_cleanup(void *); Bignum dh_create_e(void *, int nbits); Bignum dh_find_K(void *, Bignum f); -int loadrsakey(char *filename, struct RSAKey *key, char *passphrase); -int rsakey_encrypted(char *filename, char **comment); -int rsakey_pubblob(char *filename, void **blob, int *bloblen); +int loadrsakey(const Filename *filename, struct RSAKey *key, + char *passphrase); +int rsakey_encrypted(const Filename *filename, char **comment); +int rsakey_pubblob(const Filename *filename, void **blob, int *bloblen); -int saversakey(char *filename, struct RSAKey *key, char *passphrase); +int saversakey(const Filename *filename, struct RSAKey *key, char *passphrase); extern int base64_decode_atom(char *atom, unsigned char *out); extern int base64_lines(int datalen); @@ -327,11 +336,12 @@ extern void base64_encode(FILE *fp, unsigned char *data, int datalen, int cpl); extern struct ssh2_userkey ssh2_wrong_passphrase; #define SSH2_WRONG_PASSPHRASE (&ssh2_wrong_passphrase) -int ssh2_userkey_encrypted(char *filename, char **comment); -struct ssh2_userkey *ssh2_load_userkey(char *filename, char *passphrase); -char *ssh2_userkey_loadpub(char *filename, char **algorithm, +int ssh2_userkey_encrypted(const Filename *filename, char **comment); +struct ssh2_userkey *ssh2_load_userkey(const Filename *filename, + char *passphrase); +char *ssh2_userkey_loadpub(const Filename *filename, char **algorithm, int *pub_blob_len); -int ssh2_save_userkey(char *filename, struct ssh2_userkey *key, +int ssh2_save_userkey(const Filename *filename, struct ssh2_userkey *key, char *passphrase); enum { @@ -340,16 +350,19 @@ enum { SSH_KEYTYPE_SSH1, SSH_KEYTYPE_SSH2, SSH_KEYTYPE_OPENSSH, SSH_KEYTYPE_SSHCOM }; -int key_type(char *filename); +int key_type(const Filename *filename); char *key_type_to_str(int type); int import_possible(int type); int import_target_type(int type); -int import_encrypted(char *filename, int type, char **comment); -int import_ssh1(char *filename, int type, struct RSAKey *key,char *passphrase); -struct ssh2_userkey *import_ssh2(char *filename, int type, char *passphrase); -int export_ssh1(char *filename, int type, struct RSAKey *key,char *passphrase); -int export_ssh2(char *filename, int type, +int import_encrypted(const Filename *filename, int type, char **comment); +int import_ssh1(const Filename *filename, int type, + struct RSAKey *key, char *passphrase); +struct ssh2_userkey *import_ssh2(const Filename *filename, int type, + char *passphrase); +int export_ssh1(const Filename *filename, int type, + struct RSAKey *key, char *passphrase); +int export_ssh2(const Filename *filename, int type, struct ssh2_userkey *key, char *passphrase); void des3_decrypt_pubkey(unsigned char *key, unsigned char *blk, int len); @@ -364,6 +377,7 @@ void aes256_decrypt_pubkey(unsigned char *key, unsigned char *blk, int len); void des_encrypt_xdmauth(unsigned char *key, unsigned char *blk, int len); +void des_decrypt_xdmauth(unsigned char *key, unsigned char *blk, int len); /* * For progress updates in the key generation utility.