X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=blobdiff_plain;f=ssh.h;h=4e36ad4584ae8aa2893ab7e154926fcce11ca746;hb=eef0235a0f79e92f25f34782fc486c101fa703ee;hp=256478cbace54465dab14640448effb15dc0d6d7;hpb=8c4ce6d8c62a8301932d3eb0ae00f02280a68207;p=PuTTY.git diff --git a/ssh.h b/ssh.h index 256478cb..4e36ad45 100644 --- a/ssh.h +++ b/ssh.h @@ -630,6 +630,7 @@ Bignum bignum_rshift(Bignum number, int shift); Bignum bignum_lshift(Bignum number, int shift); int bignum_cmp(Bignum a, Bignum b); char *bignum_decimal(Bignum x); +Bignum bignum_from_decimal(const char *decimal); #ifdef DEBUG void diagbn(char *prefix, Bignum md); @@ -650,10 +651,11 @@ int rsakey_pubblob(const Filename *filename, void **blob, int *bloblen, int saversakey(const Filename *filename, struct RSAKey *key, char *passphrase); -extern int base64_decode_atom(char *atom, unsigned char *out); +extern int base64_decode_atom(const char *atom, unsigned char *out); extern int base64_lines(int datalen); -extern void base64_encode_atom(unsigned char *data, int n, char *out); -extern void base64_encode(FILE *fp, unsigned char *data, int datalen, int cpl); +extern void base64_encode_atom(const unsigned char *data, int n, char *out); +extern void base64_encode(FILE *fp, const unsigned char *data, int datalen, + int cpl); /* ssh2_load_userkey can return this as an error */ extern struct ssh2_userkey ssh2_wrong_passphrase; @@ -705,8 +707,21 @@ enum { SSH_KEYTYPE_OPENSSH_AUTO, SSH_KEYTYPE_OPENSSH_PEM, SSH_KEYTYPE_OPENSSH_NEW, - SSH_KEYTYPE_SSHCOM + SSH_KEYTYPE_SSHCOM, + /* + * Public-key-only formats, which we still want to be able to read + * for various purposes. + */ + SSH_KEYTYPE_SSH1_PUBLIC, + SSH_KEYTYPE_SSH2_PUBLIC_RFC4716, + SSH_KEYTYPE_SSH2_PUBLIC_OPENSSH }; +char *ssh1_pubkey_str(struct RSAKey *ssh1key); +void ssh1_write_pubkey(FILE *fp, struct RSAKey *ssh1key); +char *ssh2_pubkey_openssh_str(struct ssh2_userkey *key); +void ssh2_write_pubkey(FILE *fp, const char *comment, + const void *v_pub_blob, int pub_len, + int keytype); int key_type(const Filename *filename); char *key_type_to_str(int type);