version 1.69, 2018/09/13 02:08:33 |
version 1.70, 2018/09/14 04:17:44 |
|
|
return k; |
return k; |
} |
} |
|
|
/* XXX garbage-collect this API */ |
|
struct sshkey * |
|
sshkey_new_private(int type) |
|
{ |
|
struct sshkey *k = sshkey_new(type); |
|
|
|
if (k == NULL) |
|
return NULL; |
|
return k; |
|
} |
|
|
|
void |
void |
sshkey_free(struct sshkey *k) |
sshkey_free(struct sshkey *k) |
{ |
{ |
|
|
switch (type) { |
switch (type) { |
#ifdef WITH_OPENSSL |
#ifdef WITH_OPENSSL |
case KEY_DSA: |
case KEY_DSA: |
if ((k = sshkey_new_private(type)) == NULL) { |
if ((k = sshkey_new(type)) == NULL) { |
r = SSH_ERR_ALLOC_FAIL; |
r = SSH_ERR_ALLOC_FAIL; |
goto out; |
goto out; |
} |
} |
|
|
dsa_priv_key = NULL; /* transferred */ |
dsa_priv_key = NULL; /* transferred */ |
break; |
break; |
case KEY_ECDSA: |
case KEY_ECDSA: |
if ((k = sshkey_new_private(type)) == NULL) { |
if ((k = sshkey_new(type)) == NULL) { |
r = SSH_ERR_ALLOC_FAIL; |
r = SSH_ERR_ALLOC_FAIL; |
goto out; |
goto out; |
} |
} |
|
|
goto out; |
goto out; |
break; |
break; |
case KEY_RSA: |
case KEY_RSA: |
if ((k = sshkey_new_private(type)) == NULL) { |
if ((k = sshkey_new(type)) == NULL) { |
r = SSH_ERR_ALLOC_FAIL; |
r = SSH_ERR_ALLOC_FAIL; |
goto out; |
goto out; |
} |
} |
|
|
break; |
break; |
#endif /* WITH_OPENSSL */ |
#endif /* WITH_OPENSSL */ |
case KEY_ED25519: |
case KEY_ED25519: |
if ((k = sshkey_new_private(type)) == NULL) { |
if ((k = sshkey_new(type)) == NULL) { |
r = SSH_ERR_ALLOC_FAIL; |
r = SSH_ERR_ALLOC_FAIL; |
goto out; |
goto out; |
} |
} |
|
|
break; |
break; |
#ifdef WITH_XMSS |
#ifdef WITH_XMSS |
case KEY_XMSS: |
case KEY_XMSS: |
if ((k = sshkey_new_private(type)) == NULL) { |
if ((k = sshkey_new(type)) == NULL) { |
r = SSH_ERR_ALLOC_FAIL; |
r = SSH_ERR_ALLOC_FAIL; |
goto out; |
goto out; |
} |
} |