mirror of
https://git.libssh.org/projects/libssh.git
synced 2025-12-11 03:42:35 +03:00
libgcrypt: Reformat
Signed-off-by: Jakub Jelen <jjelen@redhat.com> Reviewed-by: Sahana Prasad <sahana@redhat.com>
This commit is contained in:
193
src/pki_gcrypt.c
193
src/pki_gcrypt.c
@@ -548,90 +548,109 @@ static ssh_buffer privatekey_string_to_buffer(const char *pkey, int type,
|
|||||||
return out;
|
return out;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int b64decode_rsa_privatekey(const char *pkey, gcry_sexp_t *r,
|
static int
|
||||||
ssh_auth_callback cb, void *userdata, const char *desc) {
|
b64decode_rsa_privatekey(const char *pkey,
|
||||||
const unsigned char *data;
|
gcry_sexp_t *r,
|
||||||
ssh_string n = NULL;
|
ssh_auth_callback cb,
|
||||||
ssh_string e = NULL;
|
void *userdata,
|
||||||
ssh_string d = NULL;
|
const char *desc)
|
||||||
ssh_string p = NULL;
|
{
|
||||||
ssh_string q = NULL;
|
const unsigned char *data = NULL;
|
||||||
ssh_string unused1 = NULL;
|
ssh_string n = NULL;
|
||||||
ssh_string unused2 = NULL;
|
ssh_string e = NULL;
|
||||||
ssh_string u = NULL;
|
ssh_string d = NULL;
|
||||||
ssh_string v = NULL;
|
ssh_string p = NULL;
|
||||||
ssh_buffer buffer = NULL;
|
ssh_string q = NULL;
|
||||||
int rc = 1;
|
ssh_string unused1 = NULL;
|
||||||
|
ssh_string unused2 = NULL;
|
||||||
|
ssh_string u = NULL;
|
||||||
|
ssh_string v = NULL;
|
||||||
|
ssh_buffer buffer = NULL;
|
||||||
|
int rc = 1;
|
||||||
|
gcry_error_t rv = 0;
|
||||||
|
|
||||||
buffer = privatekey_string_to_buffer(pkey, SSH_KEYTYPE_RSA, cb, userdata, desc);
|
buffer = privatekey_string_to_buffer(pkey,
|
||||||
if (buffer == NULL) {
|
SSH_KEYTYPE_RSA,
|
||||||
return 0;
|
cb,
|
||||||
}
|
userdata,
|
||||||
|
desc);
|
||||||
|
if (buffer == NULL) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!asn1_check_sequence(buffer)) {
|
||||||
|
SSH_BUFFER_FREE(buffer);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
v = asn1_get_int(buffer);
|
||||||
|
if (v == NULL) {
|
||||||
|
SSH_BUFFER_FREE(buffer);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
data = ssh_string_data(v);
|
||||||
|
if (ssh_string_len(v) != 1 || data[0] != 0) {
|
||||||
|
SSH_STRING_FREE(v);
|
||||||
|
SSH_BUFFER_FREE(buffer);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
n = asn1_get_int(buffer);
|
||||||
|
e = asn1_get_int(buffer);
|
||||||
|
d = asn1_get_int(buffer);
|
||||||
|
q = asn1_get_int(buffer);
|
||||||
|
p = asn1_get_int(buffer);
|
||||||
|
unused1 = asn1_get_int(buffer);
|
||||||
|
unused2 = asn1_get_int(buffer);
|
||||||
|
u = asn1_get_int(buffer);
|
||||||
|
|
||||||
if (!asn1_check_sequence(buffer)) {
|
|
||||||
SSH_BUFFER_FREE(buffer);
|
SSH_BUFFER_FREE(buffer);
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
v = asn1_get_int(buffer);
|
if (n == NULL || e == NULL || d == NULL || p == NULL || q == NULL ||
|
||||||
if (v == NULL) {
|
unused1 == NULL || unused2 == NULL || u == NULL) {
|
||||||
SSH_BUFFER_FREE(buffer);
|
rc = 0;
|
||||||
return 0;
|
goto error;
|
||||||
}
|
}
|
||||||
|
|
||||||
data = ssh_string_data(v);
|
rv = gcry_sexp_build(
|
||||||
if (ssh_string_len(v) != 1 || data[0] != 0) {
|
r,
|
||||||
SSH_STRING_FREE(v);
|
NULL,
|
||||||
SSH_BUFFER_FREE(buffer);
|
"(private-key(rsa(n %b)(e %b)(d %b)(p %b)(q %b)(u %b)))",
|
||||||
return 0;
|
ssh_string_len(n),
|
||||||
}
|
ssh_string_data(n),
|
||||||
|
ssh_string_len(e),
|
||||||
n = asn1_get_int(buffer);
|
ssh_string_data(e),
|
||||||
e = asn1_get_int(buffer);
|
ssh_string_len(d),
|
||||||
d = asn1_get_int(buffer);
|
ssh_string_data(d),
|
||||||
q = asn1_get_int(buffer);
|
ssh_string_len(p),
|
||||||
p = asn1_get_int(buffer);
|
ssh_string_data(p),
|
||||||
unused1 = asn1_get_int(buffer);
|
ssh_string_len(q),
|
||||||
unused2 = asn1_get_int(buffer);
|
ssh_string_data(q),
|
||||||
u = asn1_get_int(buffer);
|
ssh_string_len(u),
|
||||||
|
ssh_string_data(u));
|
||||||
SSH_BUFFER_FREE(buffer);
|
if (rv) {
|
||||||
|
rc = 0;
|
||||||
if (n == NULL || e == NULL || d == NULL || p == NULL || q == NULL ||
|
}
|
||||||
unused1 == NULL || unused2 == NULL|| u == NULL) {
|
|
||||||
rc = 0;
|
|
||||||
goto error;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (gcry_sexp_build(r, NULL,
|
|
||||||
"(private-key(rsa(n %b)(e %b)(d %b)(p %b)(q %b)(u %b)))",
|
|
||||||
ssh_string_len(n), ssh_string_data(n),
|
|
||||||
ssh_string_len(e), ssh_string_data(e),
|
|
||||||
ssh_string_len(d), ssh_string_data(d),
|
|
||||||
ssh_string_len(p), ssh_string_data(p),
|
|
||||||
ssh_string_len(q), ssh_string_data(q),
|
|
||||||
ssh_string_len(u), ssh_string_data(u))) {
|
|
||||||
rc = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
error:
|
error:
|
||||||
ssh_string_burn(n);
|
ssh_string_burn(n);
|
||||||
SSH_STRING_FREE(n);
|
SSH_STRING_FREE(n);
|
||||||
ssh_string_burn(e);
|
ssh_string_burn(e);
|
||||||
SSH_STRING_FREE(e);
|
SSH_STRING_FREE(e);
|
||||||
ssh_string_burn(d);
|
ssh_string_burn(d);
|
||||||
SSH_STRING_FREE(d);
|
SSH_STRING_FREE(d);
|
||||||
ssh_string_burn(p);
|
ssh_string_burn(p);
|
||||||
SSH_STRING_FREE(p);
|
SSH_STRING_FREE(p);
|
||||||
ssh_string_burn(q);
|
ssh_string_burn(q);
|
||||||
SSH_STRING_FREE(q);
|
SSH_STRING_FREE(q);
|
||||||
SSH_STRING_FREE(unused1);
|
SSH_STRING_FREE(unused1);
|
||||||
SSH_STRING_FREE(unused2);
|
SSH_STRING_FREE(unused2);
|
||||||
ssh_string_burn(u);
|
ssh_string_burn(u);
|
||||||
SSH_STRING_FREE(u);
|
SSH_STRING_FREE(u);
|
||||||
SSH_STRING_FREE(v);
|
SSH_STRING_FREE(v);
|
||||||
|
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef HAVE_GCRYPT_ECC
|
#ifdef HAVE_GCRYPT_ECC
|
||||||
@@ -1200,16 +1219,20 @@ ssh_key pki_key_dup(const ssh_key key, int demote)
|
|||||||
return new;
|
return new;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int pki_key_generate(ssh_key key, int parameter, const char *type_s, int type){
|
static int
|
||||||
gcry_sexp_t params;
|
pki_key_generate(ssh_key key, int parameter, const char *type_s, int type)
|
||||||
|
{
|
||||||
|
gcry_sexp_t params = NULL;
|
||||||
int rc;
|
int rc;
|
||||||
rc = gcry_sexp_build(¶ms,
|
rc = gcry_sexp_build(¶ms,
|
||||||
NULL,
|
NULL,
|
||||||
"(genkey(%s(nbits %d)(transient-key)))",
|
"(genkey(%s(nbits %d)(transient-key)))",
|
||||||
type_s,
|
type_s,
|
||||||
parameter);
|
parameter);
|
||||||
if (rc != 0)
|
if (rc != 0) {
|
||||||
return SSH_ERROR;
|
return SSH_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case SSH_KEYTYPE_RSA:
|
case SSH_KEYTYPE_RSA:
|
||||||
rc = gcry_pk_genkey(&key->rsa, params);
|
rc = gcry_pk_genkey(&key->rsa, params);
|
||||||
@@ -1228,7 +1251,9 @@ static int pki_key_generate(ssh_key key, int parameter, const char *type_s, int
|
|||||||
return SSH_OK;
|
return SSH_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
int pki_key_generate_rsa(ssh_key key, int parameter){
|
int
|
||||||
|
pki_key_generate_rsa(ssh_key key, int parameter)
|
||||||
|
{
|
||||||
return pki_key_generate(key, parameter, "rsa", SSH_KEYTYPE_RSA);
|
return pki_key_generate(key, parameter, "rsa", SSH_KEYTYPE_RSA);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user