mirror of
https://git.libssh.org/projects/libssh.git
synced 2025-07-31 00:03:07 +03:00
buffer: use ssh_buffer_get() instead of ssh_buffer_get_begin()
This commit is a preparatory stage for removing ssh_buffer_get_begin(). Note that removing ssh_buffer_get_begin() doesn't break API compatibility, as this functions has never been exposed (it only has the LIBSSH_API prefix). Signed-off-by: Fabiano Fidêncio <fidencio@redhat.com> Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
This commit is contained in:
@ -252,7 +252,7 @@ static void select_loop(ssh_session session,ssh_channel channel){
|
|||||||
ssh_channel_free(channel);
|
ssh_channel_free(channel);
|
||||||
channel=channels[0]=NULL;
|
channel=channels[0]=NULL;
|
||||||
} else
|
} else
|
||||||
if (write(1,ssh_buffer_get_begin(readbuf),lus) < 0) {
|
if (write(1,ssh_buffer_get(readbuf),lus) < 0) {
|
||||||
fprintf(stderr, "Error writing to buffer\n");
|
fprintf(stderr, "Error writing to buffer\n");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -268,7 +268,7 @@ static void select_loop(ssh_session session,ssh_channel channel){
|
|||||||
ssh_channel_free(channel);
|
ssh_channel_free(channel);
|
||||||
channel=channels[0]=NULL;
|
channel=channels[0]=NULL;
|
||||||
} else
|
} else
|
||||||
if (write(2,ssh_buffer_get_begin(readbuf),lus) < 0) {
|
if (write(2,ssh_buffer_get(readbuf),lus) < 0) {
|
||||||
fprintf(stderr, "Error writing to buffer\n");
|
fprintf(stderr, "Error writing to buffer\n");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
2
src/dh.c
2
src/dh.c
@ -630,7 +630,7 @@ int ssh_make_sessionid(ssh_session session) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifdef DEBUG_CRYPTO
|
#ifdef DEBUG_CRYPTO
|
||||||
ssh_print_hexa("hash buffer", ssh_buffer_get_begin(buf), ssh_buffer_get_len(buf));
|
ssh_print_hexa("hash buffer", ssh_buffer_get(buf), ssh_buffer_get_len(buf));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
switch (session->next_crypto->kex_type) {
|
switch (session->next_crypto->kex_type) {
|
||||||
|
@ -427,14 +427,14 @@ SSH_PACKET_CALLBACK(ssh_packet_userauth_gssapi_mic)
|
|||||||
}
|
}
|
||||||
if (ssh_callbacks_exists(session->server_callbacks, gssapi_verify_mic_function)){
|
if (ssh_callbacks_exists(session->server_callbacks, gssapi_verify_mic_function)){
|
||||||
int rc = session->server_callbacks->gssapi_verify_mic_function(session, mic_token,
|
int rc = session->server_callbacks->gssapi_verify_mic_function(session, mic_token,
|
||||||
ssh_buffer_get_begin(mic_buffer), ssh_buffer_get_len(mic_buffer),
|
ssh_buffer_get(mic_buffer), ssh_buffer_get_len(mic_buffer),
|
||||||
session->server_callbacks->userdata);
|
session->server_callbacks->userdata);
|
||||||
if (rc != SSH_OK) {
|
if (rc != SSH_OK) {
|
||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
mic_buf.length = ssh_buffer_get_len(mic_buffer);
|
mic_buf.length = ssh_buffer_get_len(mic_buffer);
|
||||||
mic_buf.value = ssh_buffer_get_begin(mic_buffer);
|
mic_buf.value = ssh_buffer_get(mic_buffer);
|
||||||
mic_token_buf.length = ssh_string_len(mic_token);
|
mic_token_buf.length = ssh_string_len(mic_token);
|
||||||
mic_token_buf.value = ssh_string_data(mic_token);
|
mic_token_buf.value = ssh_string_data(mic_token);
|
||||||
|
|
||||||
@ -792,7 +792,7 @@ static int ssh_gssapi_send_mic(ssh_session session){
|
|||||||
return SSH_ERROR;
|
return SSH_ERROR;
|
||||||
}
|
}
|
||||||
mic_buf.length = ssh_buffer_get_len(mic_buffer);
|
mic_buf.length = ssh_buffer_get_len(mic_buffer);
|
||||||
mic_buf.value = ssh_buffer_get_begin(mic_buffer);
|
mic_buf.value = ssh_buffer_get(mic_buffer);
|
||||||
|
|
||||||
maj_stat = gss_get_mic(&min_stat,session->gssapi->ctx, GSS_C_QOP_DEFAULT, &mic_buf, &mic_token_buf);
|
maj_stat = gss_get_mic(&min_stat,session->gssapi->ctx, GSS_C_QOP_DEFAULT, &mic_buf, &mic_token_buf);
|
||||||
if (GSS_ERROR(maj_stat)){
|
if (GSS_ERROR(maj_stat)){
|
||||||
|
@ -66,7 +66,7 @@ static ssh_string make_rsa1_string(ssh_string e, ssh_string n){
|
|||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
|
|
||||||
ssh_string_fill(ret, ssh_buffer_get_begin(buffer), ssh_buffer_get_len(buffer));
|
ssh_string_fill(ret, ssh_buffer_get(buffer), ssh_buffer_get_len(buffer));
|
||||||
error:
|
error:
|
||||||
ssh_buffer_free(buffer);
|
ssh_buffer_free(buffer);
|
||||||
ssh_string_free(rsa);
|
ssh_string_free(rsa);
|
||||||
|
@ -145,7 +145,7 @@ void buffer_free(ssh_buffer buffer){
|
|||||||
ssh_buffer_free(buffer);
|
ssh_buffer_free(buffer);
|
||||||
}
|
}
|
||||||
void *buffer_get(ssh_buffer buffer){
|
void *buffer_get(ssh_buffer buffer){
|
||||||
return ssh_buffer_get_begin(buffer);
|
return ssh_buffer_get(buffer);
|
||||||
}
|
}
|
||||||
uint32_t buffer_get_len(ssh_buffer buffer){
|
uint32_t buffer_get_len(ssh_buffer buffer){
|
||||||
return ssh_buffer_get_len(buffer);
|
return ssh_buffer_get_len(buffer);
|
||||||
|
@ -160,7 +160,7 @@ int ssh_packet_socket_callback1(const void *data, size_t receivedlen, void *user
|
|||||||
}
|
}
|
||||||
processed += to_be_read;
|
processed += to_be_read;
|
||||||
#ifdef DEBUG_CRYPTO
|
#ifdef DEBUG_CRYPTO
|
||||||
ssh_print_hexa("read packet:", ssh_buffer_get_begin(session->in_buffer),
|
ssh_print_hexa("read packet:", ssh_buffer_get(session->in_buffer),
|
||||||
ssh_buffer_get_len(session->in_buffer));
|
ssh_buffer_get_len(session->in_buffer));
|
||||||
#endif
|
#endif
|
||||||
if (session->current_crypto) {
|
if (session->current_crypto) {
|
||||||
@ -172,7 +172,7 @@ int ssh_packet_socket_callback1(const void *data, size_t receivedlen, void *user
|
|||||||
if (buffer_len > 0) {
|
if (buffer_len > 0) {
|
||||||
int rc;
|
int rc;
|
||||||
rc = ssh_packet_decrypt(session,
|
rc = ssh_packet_decrypt(session,
|
||||||
ssh_buffer_get_begin(session->in_buffer),
|
ssh_buffer_get(session->in_buffer),
|
||||||
buffer_len);
|
buffer_len);
|
||||||
if (rc < 0) {
|
if (rc < 0) {
|
||||||
ssh_set_error(session, SSH_FATAL, "Packet decrypt error");
|
ssh_set_error(session, SSH_FATAL, "Packet decrypt error");
|
||||||
@ -181,7 +181,7 @@ int ssh_packet_socket_callback1(const void *data, size_t receivedlen, void *user
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
#ifdef DEBUG_CRYPTO
|
#ifdef DEBUG_CRYPTO
|
||||||
ssh_print_hexa("read packet decrypted:", ssh_buffer_get_begin(session->in_buffer),
|
ssh_print_hexa("read packet decrypted:", ssh_buffer_get(session->in_buffer),
|
||||||
ssh_buffer_get_len(session->in_buffer));
|
ssh_buffer_get_len(session->in_buffer));
|
||||||
#endif
|
#endif
|
||||||
SSH_LOG(SSH_LOG_PACKET, "%d bytes padding", padding);
|
SSH_LOG(SSH_LOG_PACKET, "%d bytes padding", padding);
|
||||||
@ -293,7 +293,7 @@ int ssh_packet_send1(ssh_session session) {
|
|||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
|
|
||||||
crc = ssh_crc32((char *)ssh_buffer_get_begin(session->out_buffer) + sizeof(uint32_t),
|
crc = ssh_crc32((char *)ssh_buffer_get(session->out_buffer) + sizeof(uint32_t),
|
||||||
ssh_buffer_get_len(session->out_buffer) - sizeof(uint32_t));
|
ssh_buffer_get_len(session->out_buffer) - sizeof(uint32_t));
|
||||||
|
|
||||||
if (ssh_buffer_add_u32(session->out_buffer, ntohl(crc)) < 0) {
|
if (ssh_buffer_add_u32(session->out_buffer, ntohl(crc)) < 0) {
|
||||||
@ -301,20 +301,20 @@ int ssh_packet_send1(ssh_session session) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifdef DEBUG_CRYPTO
|
#ifdef DEBUG_CRYPTO
|
||||||
ssh_print_hexa("Clear packet", ssh_buffer_get_begin(session->out_buffer),
|
ssh_print_hexa("Clear packet", ssh_buffer_get(session->out_buffer),
|
||||||
ssh_buffer_get_len(session->out_buffer));
|
ssh_buffer_get_len(session->out_buffer));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* session->out_buffer should have more than sizeof(uint32_t) bytes
|
/* session->out_buffer should have more than sizeof(uint32_t) bytes
|
||||||
in it as required for ssh_packet_encrypt */
|
in it as required for ssh_packet_encrypt */
|
||||||
ssh_packet_encrypt(session, (unsigned char *)ssh_buffer_get_begin(session->out_buffer) + sizeof(uint32_t),
|
ssh_packet_encrypt(session, (unsigned char *)ssh_buffer_get(session->out_buffer) + sizeof(uint32_t),
|
||||||
ssh_buffer_get_len(session->out_buffer) - sizeof(uint32_t));
|
ssh_buffer_get_len(session->out_buffer) - sizeof(uint32_t));
|
||||||
|
|
||||||
#ifdef DEBUG_CRYPTO
|
#ifdef DEBUG_CRYPTO
|
||||||
ssh_print_hexa("encrypted packet",ssh_buffer_get_begin(session->out_buffer),
|
ssh_print_hexa("encrypted packet",ssh_buffer_get(session->out_buffer),
|
||||||
ssh_buffer_get_len(session->out_buffer));
|
ssh_buffer_get_len(session->out_buffer));
|
||||||
#endif
|
#endif
|
||||||
rc=ssh_socket_write(session->socket, ssh_buffer_get_begin(session->out_buffer),
|
rc=ssh_socket_write(session->socket, ssh_buffer_get(session->out_buffer),
|
||||||
ssh_buffer_get_len(session->out_buffer));
|
ssh_buffer_get_len(session->out_buffer));
|
||||||
if(rc== SSH_ERROR) {
|
if(rc== SSH_ERROR) {
|
||||||
goto error;
|
goto error;
|
||||||
|
@ -1659,7 +1659,7 @@ ssh_string ssh_pki_do_sign(ssh_session session,
|
|||||||
}
|
}
|
||||||
|
|
||||||
sig = pki_do_sign(privkey,
|
sig = pki_do_sign(privkey,
|
||||||
ssh_buffer_get_begin(buf),
|
ssh_buffer_get(buf),
|
||||||
ssh_buffer_get_len(buf));
|
ssh_buffer_get_len(buf));
|
||||||
ssh_buffer_free(buf);
|
ssh_buffer_free(buf);
|
||||||
} else {
|
} else {
|
||||||
|
@ -543,8 +543,8 @@ static int pki_private_key_encrypt(ssh_buffer privkey_buffer,
|
|||||||
key_material,
|
key_material,
|
||||||
key_material + cipher.keysize/8);
|
key_material + cipher.keysize/8);
|
||||||
cipher.encrypt(&cipher,
|
cipher.encrypt(&cipher,
|
||||||
ssh_buffer_get_begin(privkey_buffer),
|
ssh_buffer_get(privkey_buffer),
|
||||||
ssh_buffer_get_begin(privkey_buffer),
|
ssh_buffer_get(privkey_buffer),
|
||||||
ssh_buffer_get_len(privkey_buffer));
|
ssh_buffer_get_len(privkey_buffer));
|
||||||
ssh_cipher_clear(&cipher);
|
ssh_cipher_clear(&cipher);
|
||||||
BURN_BUFFER(passphrase_buffer, sizeof(passphrase_buffer));
|
BURN_BUFFER(passphrase_buffer, sizeof(passphrase_buffer));
|
||||||
@ -642,7 +642,7 @@ ssh_string ssh_pki_openssh_privkey_export(const ssh_key privkey,
|
|||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
memcpy(ssh_string_data(kdf_options),
|
memcpy(ssh_string_data(kdf_options),
|
||||||
ssh_buffer_get_begin(kdf_buf),
|
ssh_buffer_get(kdf_buf),
|
||||||
ssh_buffer_get_len(kdf_buf));
|
ssh_buffer_get_len(kdf_buf));
|
||||||
ssh_buffer_free(kdf_buf);
|
ssh_buffer_free(kdf_buf);
|
||||||
rc = pki_private_key_encrypt(privkey_buffer,
|
rc = pki_private_key_encrypt(privkey_buffer,
|
||||||
@ -670,12 +670,12 @@ ssh_string ssh_pki_openssh_privkey_export(const ssh_key privkey,
|
|||||||
pubkey_s,
|
pubkey_s,
|
||||||
(uint32_t)ssh_buffer_get_len(privkey_buffer),
|
(uint32_t)ssh_buffer_get_len(privkey_buffer),
|
||||||
/* rest of buffer is a string */
|
/* rest of buffer is a string */
|
||||||
(size_t)ssh_buffer_get_len(privkey_buffer), ssh_buffer_get_begin(privkey_buffer));
|
(size_t)ssh_buffer_get_len(privkey_buffer), ssh_buffer_get(privkey_buffer));
|
||||||
if (rc != SSH_OK) {
|
if (rc != SSH_OK) {
|
||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
|
|
||||||
b64 = bin_to_base64(ssh_buffer_get_begin(buffer),
|
b64 = bin_to_base64(ssh_buffer_get(buffer),
|
||||||
ssh_buffer_get_len(buffer));
|
ssh_buffer_get_len(buffer));
|
||||||
if (b64 == NULL){
|
if (b64 == NULL){
|
||||||
goto error;
|
goto error;
|
||||||
@ -712,7 +712,7 @@ ssh_string ssh_pki_openssh_privkey_export(const ssh_key privkey,
|
|||||||
|
|
||||||
error:
|
error:
|
||||||
if (privkey_buffer != NULL) {
|
if (privkey_buffer != NULL) {
|
||||||
void *bufptr = ssh_buffer_get_begin(privkey_buffer);
|
void *bufptr = ssh_buffer_get(privkey_buffer);
|
||||||
BURN_BUFFER(bufptr, ssh_buffer_get_len(privkey_buffer));
|
BURN_BUFFER(bufptr, ssh_buffer_get_len(privkey_buffer));
|
||||||
ssh_buffer_free(privkey_buffer);
|
ssh_buffer_free(privkey_buffer);
|
||||||
}
|
}
|
||||||
|
@ -152,7 +152,7 @@ static int asn1_check_sequence(ssh_buffer buffer) {
|
|||||||
size = asn1_get_len(buffer);
|
size = asn1_get_len(buffer);
|
||||||
if ((padding = ssh_buffer_get_len(buffer) - size) > 0) {
|
if ((padding = ssh_buffer_get_len(buffer) - size) > 0) {
|
||||||
for (i = ssh_buffer_get_len(buffer) - size,
|
for (i = ssh_buffer_get_len(buffer) - size,
|
||||||
j = (unsigned char*)ssh_buffer_get_begin(buffer) + size + buffer->pos;
|
j = (unsigned char*)ssh_buffer_get(buffer) + size;
|
||||||
i;
|
i;
|
||||||
i--, j++)
|
i--, j++)
|
||||||
{
|
{
|
||||||
@ -235,12 +235,12 @@ static int privatekey_decrypt(int algo, int mode, unsigned int key_len,
|
|||||||
|| gcry_cipher_setiv(cipher, iv, iv_len)
|
|| gcry_cipher_setiv(cipher, iv, iv_len)
|
||||||
|| (tmp = malloc(ssh_buffer_get_len(data) * sizeof (char))) == NULL
|
|| (tmp = malloc(ssh_buffer_get_len(data) * sizeof (char))) == NULL
|
||||||
|| gcry_cipher_decrypt(cipher, tmp, ssh_buffer_get_len(data),
|
|| gcry_cipher_decrypt(cipher, tmp, ssh_buffer_get_len(data),
|
||||||
ssh_buffer_get_begin(data), ssh_buffer_get_len(data))) {
|
ssh_buffer_get(data), ssh_buffer_get_len(data))) {
|
||||||
gcry_cipher_close(cipher);
|
gcry_cipher_close(cipher);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
memcpy(ssh_buffer_get_begin(data), tmp, ssh_buffer_get_len(data));
|
memcpy(ssh_buffer_get(data), tmp, ssh_buffer_get_len(data));
|
||||||
|
|
||||||
SAFE_FREE(tmp);
|
SAFE_FREE(tmp);
|
||||||
gcry_cipher_close(cipher);
|
gcry_cipher_close(cipher);
|
||||||
@ -418,7 +418,7 @@ static ssh_buffer privatekey_string_to_buffer(const char *pkey, int type,
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
out = base64_to_bin(ssh_buffer_get_begin(buffer));
|
out = base64_to_bin(ssh_buffer_get(buffer));
|
||||||
ssh_buffer_free(buffer);
|
ssh_buffer_free(buffer);
|
||||||
if (out == NULL) {
|
if (out == NULL) {
|
||||||
SAFE_FREE(iv);
|
SAFE_FREE(iv);
|
||||||
|
Reference in New Issue
Block a user