mirror of
https://git.libssh.org/projects/libssh.git
synced 2025-11-30 13:01:23 +03:00
pki_mbedcrypto: Use SSH_BUFFER_FREE()
Fixes T183 Signed-off-by: Andreas Schneider <asn@cryptomilk.org> Reviewed-by: Jakub Jelen <jjelen@redhat.com>
This commit is contained in:
@@ -653,7 +653,7 @@ ssh_string pki_publickey_to_blob(const ssh_key key)
|
|||||||
if (key->cert != NULL) {
|
if (key->cert != NULL) {
|
||||||
rc = ssh_buffer_add_buffer(buffer, key->cert);
|
rc = ssh_buffer_add_buffer(buffer, key->cert);
|
||||||
if (rc < 0) {
|
if (rc < 0) {
|
||||||
ssh_buffer_free(buffer);
|
SSH_BUFFER_FREE(buffer);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -662,14 +662,14 @@ ssh_string pki_publickey_to_blob(const ssh_key key)
|
|||||||
|
|
||||||
type_s = ssh_string_from_char(key->type_c);
|
type_s = ssh_string_from_char(key->type_c);
|
||||||
if (type_s == NULL) {
|
if (type_s == NULL) {
|
||||||
ssh_buffer_free(buffer);
|
SSH_BUFFER_FREE(buffer);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
rc = ssh_buffer_add_ssh_string(buffer, type_s);
|
rc = ssh_buffer_add_ssh_string(buffer, type_s);
|
||||||
SSH_STRING_FREE(type_s);
|
SSH_STRING_FREE(type_s);
|
||||||
if (rc < 0) {
|
if (rc < 0) {
|
||||||
ssh_buffer_free(buffer);
|
SSH_BUFFER_FREE(buffer);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -677,7 +677,7 @@ ssh_string pki_publickey_to_blob(const ssh_key key)
|
|||||||
case SSH_KEYTYPE_RSA: {
|
case SSH_KEYTYPE_RSA: {
|
||||||
mbedtls_rsa_context *rsa;
|
mbedtls_rsa_context *rsa;
|
||||||
if (mbedtls_pk_can_do(key->rsa, MBEDTLS_PK_RSA) == 0) {
|
if (mbedtls_pk_can_do(key->rsa, MBEDTLS_PK_RSA) == 0) {
|
||||||
ssh_buffer_free(buffer);
|
SSH_BUFFER_FREE(buffer);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -716,21 +716,21 @@ ssh_string pki_publickey_to_blob(const ssh_key key)
|
|||||||
type_s =
|
type_s =
|
||||||
ssh_string_from_char(pki_key_ecdsa_nid_to_char(key->ecdsa_nid));
|
ssh_string_from_char(pki_key_ecdsa_nid_to_char(key->ecdsa_nid));
|
||||||
if (type_s == NULL) {
|
if (type_s == NULL) {
|
||||||
ssh_buffer_free(buffer);
|
SSH_BUFFER_FREE(buffer);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
rc = ssh_buffer_add_ssh_string(buffer, type_s);
|
rc = ssh_buffer_add_ssh_string(buffer, type_s);
|
||||||
SSH_STRING_FREE(type_s);
|
SSH_STRING_FREE(type_s);
|
||||||
if (rc < 0) {
|
if (rc < 0) {
|
||||||
ssh_buffer_free(buffer);
|
SSH_BUFFER_FREE(buffer);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
e = make_ecpoint_string(&key->ecdsa->grp, &key->ecdsa->Q);
|
e = make_ecpoint_string(&key->ecdsa->grp, &key->ecdsa->Q);
|
||||||
|
|
||||||
if (e == NULL) {
|
if (e == NULL) {
|
||||||
ssh_buffer_free(buffer);
|
SSH_BUFFER_FREE(buffer);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -765,10 +765,10 @@ makestring:
|
|||||||
goto fail;
|
goto fail;
|
||||||
}
|
}
|
||||||
|
|
||||||
ssh_buffer_free(buffer);
|
SSH_BUFFER_FREE(buffer);
|
||||||
return str;
|
return str;
|
||||||
fail:
|
fail:
|
||||||
ssh_buffer_free(buffer);
|
SSH_BUFFER_FREE(buffer);
|
||||||
ssh_string_burn(str);
|
ssh_string_burn(str);
|
||||||
SSH_STRING_FREE(str);
|
SSH_STRING_FREE(str);
|
||||||
ssh_string_burn(e);
|
ssh_string_burn(e);
|
||||||
@@ -802,38 +802,38 @@ ssh_string pki_signature_to_blob(const ssh_signature sig)
|
|||||||
|
|
||||||
r = ssh_make_bignum_string(sig->ecdsa_sig.r);
|
r = ssh_make_bignum_string(sig->ecdsa_sig.r);
|
||||||
if (r == NULL) {
|
if (r == NULL) {
|
||||||
ssh_buffer_free(b);
|
SSH_BUFFER_FREE(b);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
rc = ssh_buffer_add_ssh_string(b, r);
|
rc = ssh_buffer_add_ssh_string(b, r);
|
||||||
SSH_STRING_FREE(r);
|
SSH_STRING_FREE(r);
|
||||||
if (rc < 0) {
|
if (rc < 0) {
|
||||||
ssh_buffer_free(b);
|
SSH_BUFFER_FREE(b);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
s = ssh_make_bignum_string(sig->ecdsa_sig.s);
|
s = ssh_make_bignum_string(sig->ecdsa_sig.s);
|
||||||
if (s == NULL) {
|
if (s == NULL) {
|
||||||
ssh_buffer_free(b);
|
SSH_BUFFER_FREE(b);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
rc = ssh_buffer_add_ssh_string(b, s);
|
rc = ssh_buffer_add_ssh_string(b, s);
|
||||||
SSH_STRING_FREE(s);
|
SSH_STRING_FREE(s);
|
||||||
if (rc < 0) {
|
if (rc < 0) {
|
||||||
ssh_buffer_free(b);
|
SSH_BUFFER_FREE(b);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
sig_blob = ssh_string_new(ssh_buffer_get_len(b));
|
sig_blob = ssh_string_new(ssh_buffer_get_len(b));
|
||||||
if (sig_blob == NULL) {
|
if (sig_blob == NULL) {
|
||||||
ssh_buffer_free(b);
|
SSH_BUFFER_FREE(b);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
ssh_string_fill(sig_blob, ssh_buffer_get(b), ssh_buffer_get_len(b));
|
ssh_string_fill(sig_blob, ssh_buffer_get(b), ssh_buffer_get_len(b));
|
||||||
ssh_buffer_free(b);
|
SSH_BUFFER_FREE(b);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case SSH_KEYTYPE_ED25519:
|
case SSH_KEYTYPE_ED25519:
|
||||||
@@ -955,14 +955,14 @@ ssh_signature pki_signature_from_blob(const ssh_key pubkey,
|
|||||||
ssh_string_len(sig_blob));
|
ssh_string_len(sig_blob));
|
||||||
|
|
||||||
if (rc < 0) {
|
if (rc < 0) {
|
||||||
ssh_buffer_free(b);
|
SSH_BUFFER_FREE(b);
|
||||||
ssh_signature_free(sig);
|
ssh_signature_free(sig);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
r = ssh_buffer_get_ssh_string(b);
|
r = ssh_buffer_get_ssh_string(b);
|
||||||
if (r == NULL) {
|
if (r == NULL) {
|
||||||
ssh_buffer_free(b);
|
SSH_BUFFER_FREE(b);
|
||||||
ssh_signature_free(sig);
|
ssh_signature_free(sig);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
@@ -973,14 +973,14 @@ ssh_signature pki_signature_from_blob(const ssh_key pubkey,
|
|||||||
ssh_string_burn(r);
|
ssh_string_burn(r);
|
||||||
SSH_STRING_FREE(r);
|
SSH_STRING_FREE(r);
|
||||||
if (sig->ecdsa_sig.r == NULL) {
|
if (sig->ecdsa_sig.r == NULL) {
|
||||||
ssh_buffer_free(b);
|
SSH_BUFFER_FREE(b);
|
||||||
ssh_signature_free(sig);
|
ssh_signature_free(sig);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
s = ssh_buffer_get_ssh_string(b);
|
s = ssh_buffer_get_ssh_string(b);
|
||||||
rlen = ssh_buffer_get_len(b);
|
rlen = ssh_buffer_get_len(b);
|
||||||
ssh_buffer_free(b);
|
SSH_BUFFER_FREE(b);
|
||||||
if (s == NULL) {
|
if (s == NULL) {
|
||||||
ssh_signature_free(sig);
|
ssh_signature_free(sig);
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|||||||
Reference in New Issue
Block a user