Mercurial > dropbear
comparison svr-authpubkey.c @ 1511:5916af64acd4 fuzz
merge from main
author | Matt Johnston <matt@ucc.asn.au> |
---|---|
date | Sat, 17 Feb 2018 19:29:51 +0800 |
parents | 35f38af1238b |
children | 2f64cb3d3007 |
comparison
equal
deleted
inserted
replaced
1457:32f990cc96b1 | 1511:5916af64acd4 |
---|---|
68 #if DROPBEAR_SVR_PUBKEY_AUTH | 68 #if DROPBEAR_SVR_PUBKEY_AUTH |
69 | 69 |
70 #define MIN_AUTHKEYS_LINE 10 /* "ssh-rsa AB" - short but doesn't matter */ | 70 #define MIN_AUTHKEYS_LINE 10 /* "ssh-rsa AB" - short but doesn't matter */ |
71 #define MAX_AUTHKEYS_LINE 4200 /* max length of a line in authkeys */ | 71 #define MAX_AUTHKEYS_LINE 4200 /* max length of a line in authkeys */ |
72 | 72 |
73 static int checkpubkey(char* algo, unsigned int algolen, | 73 static int checkpubkey(const char* algo, unsigned int algolen, |
74 unsigned char* keyblob, unsigned int keybloblen); | 74 const unsigned char* keyblob, unsigned int keybloblen); |
75 static int checkpubkeyperms(void); | 75 static int checkpubkeyperms(void); |
76 static void send_msg_userauth_pk_ok(char* algo, unsigned int algolen, | 76 static void send_msg_userauth_pk_ok(const char* algo, unsigned int algolen, |
77 unsigned char* keyblob, unsigned int keybloblen); | 77 const unsigned char* keyblob, unsigned int keybloblen); |
78 static int checkfileperm(char * filename); | 78 static int checkfileperm(char * filename); |
79 | 79 |
80 /* process a pubkey auth request, sending success or failure message as | 80 /* process a pubkey auth request, sending success or failure message as |
81 * appropriate */ | 81 * appropriate */ |
82 void svr_auth_pubkey() { | 82 void svr_auth_pubkey() { |
171 } | 171 } |
172 | 172 |
173 /* Reply that the key is valid for auth, this is sent when the user sends | 173 /* Reply that the key is valid for auth, this is sent when the user sends |
174 * a straight copy of their pubkey to test, to avoid having to perform | 174 * a straight copy of their pubkey to test, to avoid having to perform |
175 * expensive signing operations with a worthless key */ | 175 * expensive signing operations with a worthless key */ |
176 static void send_msg_userauth_pk_ok(char* algo, unsigned int algolen, | 176 static void send_msg_userauth_pk_ok(const char* algo, unsigned int algolen, |
177 unsigned char* keyblob, unsigned int keybloblen) { | 177 const unsigned char* keyblob, unsigned int keybloblen) { |
178 | 178 |
179 TRACE(("enter send_msg_userauth_pk_ok")) | 179 TRACE(("enter send_msg_userauth_pk_ok")) |
180 CHECKCLEARTOWRITE(); | 180 CHECKCLEARTOWRITE(); |
181 | 181 |
182 buf_putbyte(ses.writepayload, SSH_MSG_USERAUTH_PK_OK); | 182 buf_putbyte(ses.writepayload, SSH_MSG_USERAUTH_PK_OK); |
186 encrypt_packet(); | 186 encrypt_packet(); |
187 TRACE(("leave send_msg_userauth_pk_ok")) | 187 TRACE(("leave send_msg_userauth_pk_ok")) |
188 | 188 |
189 } | 189 } |
190 | 190 |
191 static int checkpubkey_line(buffer* line, int line_num, char* filename, | 191 static int checkpubkey_line(buffer* line, int line_num, const char* filename, |
192 const char* algo, unsigned int algolen, | 192 const char* algo, unsigned int algolen, |
193 const unsigned char* keyblob, unsigned int keybloblen) { | 193 const unsigned char* keyblob, unsigned int keybloblen) { |
194 buffer *options_buf = NULL; | 194 buffer *options_buf = NULL; |
195 unsigned int pos, len; | 195 unsigned int pos, len; |
196 int ret = DROPBEAR_FAILURE; | 196 int ret = DROPBEAR_FAILURE; |
290 | 290 |
291 | 291 |
292 /* Checks whether a specified publickey (and associated algorithm) is an | 292 /* Checks whether a specified publickey (and associated algorithm) is an |
293 * acceptable key for authentication */ | 293 * acceptable key for authentication */ |
294 /* Returns DROPBEAR_SUCCESS if key is ok for auth, DROPBEAR_FAILURE otherwise */ | 294 /* Returns DROPBEAR_SUCCESS if key is ok for auth, DROPBEAR_FAILURE otherwise */ |
295 static int checkpubkey(char* algo, unsigned int algolen, | 295 static int checkpubkey(const char* algo, unsigned int algolen, |
296 unsigned char* keyblob, unsigned int keybloblen) { | 296 const unsigned char* keyblob, unsigned int keybloblen) { |
297 | 297 |
298 FILE * authfile = NULL; | 298 FILE * authfile = NULL; |
299 char * filename = NULL; | 299 char * filename = NULL; |
300 int ret = DROPBEAR_FAILURE; | 300 int ret = DROPBEAR_FAILURE; |
301 buffer * line = NULL; | 301 buffer * line = NULL; |