From a2e08697b1a24066c9870fe4bd61133de7f2663c Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Mon, 22 Aug 2011 12:57:01 +0200 Subject: messages: Move ssh_userauth_build_digest() and make it static. --- src/keys.c | 64 -------------------------------------------------------------- 1 file changed, 64 deletions(-) (limited to 'src/keys.c') diff --git a/src/keys.c b/src/keys.c index 86c4a57..f4e8e2c 100644 --- a/src/keys.c +++ b/src/keys.c @@ -379,70 +379,6 @@ ssh_string ssh_do_sign_with_agent(ssh_session session, } #endif /* _WIN32 */ -/* - * This function concats in a buffer the values needed to do a signature - * verification. */ -ssh_buffer ssh_userauth_build_digest(ssh_session session, ssh_message msg, char *service) { -/* - The value of 'signature' is a signature by the corresponding private - key over the following data, in the following order: - - string session identifier - byte SSH_MSG_USERAUTH_REQUEST - string user name - string service name - string "publickey" - boolean TRUE - string public key algorithm name - string public key to be used for authentication -*/ - struct ssh_crypto_struct *crypto = session->current_crypto ? session->current_crypto : - session->next_crypto; - ssh_buffer buffer = NULL; - ssh_string session_id = NULL; - uint8_t type = SSH2_MSG_USERAUTH_REQUEST; - ssh_string username = ssh_string_from_char(msg->auth_request.username); - ssh_string servicename = ssh_string_from_char(service); - ssh_string method = ssh_string_from_char("publickey"); - uint8_t has_sign = 1; - ssh_string algo = ssh_string_from_char(msg->auth_request.public_key->type_c); - ssh_string publickey = publickey_to_string(msg->auth_request.public_key); - - buffer = ssh_buffer_new(); - if (buffer == NULL) { - goto error; - } - session_id = ssh_string_new(SHA_DIGEST_LEN); - if (session_id == NULL) { - ssh_buffer_free(buffer); - buffer = NULL; - goto error; - } - ssh_string_fill(session_id, crypto->session_id, SHA_DIGEST_LEN); - - if(buffer_add_ssh_string(buffer, session_id) < 0 || - buffer_add_u8(buffer, type) < 0 || - buffer_add_ssh_string(buffer, username) < 0 || - buffer_add_ssh_string(buffer, servicename) < 0 || - buffer_add_ssh_string(buffer, method) < 0 || - buffer_add_u8(buffer, has_sign) < 0 || - buffer_add_ssh_string(buffer, algo) < 0 || - buffer_add_ssh_string(buffer, publickey) < 0) { - ssh_buffer_free(buffer); - buffer = NULL; - goto error; - } - -error: - if(session_id) ssh_string_free(session_id); - if(username) ssh_string_free(username); - if(servicename) ssh_string_free(servicename); - if(method) ssh_string_free(method); - if(algo) ssh_string_free(algo); - if(publickey) ssh_string_free(publickey); - return buffer; -} - /* * This function signs the session id (known as H) as a string then * the content of sigbuf */ -- cgit