Pageant interface changes. You can now do `pageant -c command' to
[u/mdw/putty] / ssh.h
diff --git a/ssh.h b/ssh.h
index ca9e550..3c4791f 100644 (file)
--- a/ssh.h
+++ b/ssh.h
@@ -51,6 +51,7 @@ void rsasanitise(struct RSAKey *key);
 int rsastr_len(struct RSAKey *key);
 void rsastr_fmt(char *str, struct RSAKey *key);
 void rsa_fingerprint(char *str, int len, struct RSAKey *key);
+int rsa_verify(struct RSAKey *key);
 void freersakey(struct RSAKey *key);
 
 typedef unsigned int word32;
@@ -142,6 +143,8 @@ struct ssh_signkey {
     unsigned char *(*private_blob)(void *key, int *len);
     void *(*createkey)(unsigned char *pub_blob, int pub_len,
                       unsigned char *priv_blob, int priv_len);
+    void *(*openssh_createkey)(unsigned char **blob, int *len);
+    int (*openssh_fmtkey)(void *key, unsigned char *blob, int len);
     char *(*fingerprint)(void *key);
     int (*verifysig)(void *key, char *sig, int siglen,
                     char *data, int datalen);
@@ -158,6 +161,7 @@ struct ssh_compress {
     void (*decompress_init)(void);
     int (*decompress)(unsigned char *block, int len,
                      unsigned char **outblock, int *outlen);
+    int (*disable_compression)(void);
 };
 
 struct ssh2_userkey {
@@ -180,6 +184,11 @@ extern const struct ssh_mac ssh_md5;
 extern const struct ssh_mac ssh_sha1;
 extern const struct ssh_mac ssh_sha1_buggy;
 
+/*
+ * PuTTY version number formatted as an SSH version string. 
+ */
+extern char sshver[];
+
 #ifndef MSCRYPTOAPI
 void SHATransform(word32 *digest, word32 *data);
 #endif
@@ -201,7 +210,7 @@ void decbn(Bignum n);
 extern Bignum Zero, One;
 Bignum bignum_from_bytes(unsigned char *data, int nbytes);
 int ssh1_read_bignum(unsigned char *data, Bignum *result);
-int ssh1_bignum_bitcount(Bignum bn);
+int bignum_bitcount(Bignum bn);
 int ssh1_bignum_length(Bignum bn);
 int bignum_byte(Bignum bn, int i);
 int bignum_bit(Bignum bn, int i);
@@ -220,7 +229,7 @@ char *bignum_decimal(Bignum x);
 void dh_setup_group1(void);
 void dh_setup_group(Bignum pval, Bignum gval);
 void dh_cleanup(void);
-Bignum dh_create_e(void);
+Bignum dh_create_e(int nbits);
 Bignum dh_find_K(Bignum f);
 
 int loadrsakey(char *filename, struct RSAKey *key, char *passphrase);
@@ -264,3 +273,31 @@ int zlib_compress_block(unsigned char *block, int len,
                        unsigned char **outblock, int *outlen);
 int zlib_decompress_block(unsigned char *block, int len,
                          unsigned char **outblock, int *outlen);
+
+/*
+ * SSH1 agent messages.
+ */
+#define SSH1_AGENTC_REQUEST_RSA_IDENTITIES    1
+#define SSH1_AGENT_RSA_IDENTITIES_ANSWER      2
+#define SSH1_AGENTC_RSA_CHALLENGE             3
+#define SSH1_AGENT_RSA_RESPONSE               4
+#define SSH1_AGENTC_ADD_RSA_IDENTITY          7
+#define SSH1_AGENTC_REMOVE_RSA_IDENTITY       8
+#define SSH1_AGENTC_REMOVE_ALL_RSA_IDENTITIES 9   /* openssh private? */
+
+/*
+ * Messages common to SSH1 and OpenSSH's SSH2.
+ */
+#define SSH_AGENT_FAILURE                    5
+#define SSH_AGENT_SUCCESS                    6
+
+/*
+ * OpenSSH's SSH2 agent messages.
+ */
+#define SSH2_AGENTC_REQUEST_IDENTITIES          11
+#define SSH2_AGENT_IDENTITIES_ANSWER            12
+#define SSH2_AGENTC_SIGN_REQUEST                13
+#define SSH2_AGENT_SIGN_RESPONSE                14
+#define SSH2_AGENTC_ADD_IDENTITY                17
+#define SSH2_AGENTC_REMOVE_IDENTITY             18
+#define SSH2_AGENTC_REMOVE_ALL_IDENTITIES       19