mirror of
https://github.com/libssh2/libssh2.git
synced 2025-11-20 02:42:09 +03:00
When using ed25519 host keys and a custom memory allocator.
This commit is contained in:
@@ -828,7 +828,7 @@ hostkey_method_ssh_ed25519_init(LIBSSH2_SESSION * session,
|
|||||||
return _libssh2_error(session, LIBSSH2_ERROR_PROTO, "could not create ED25519 public key");
|
return _libssh2_error(session, LIBSSH2_ERROR_PROTO, "could not create ED25519 public key");
|
||||||
}
|
}
|
||||||
|
|
||||||
ctx = LIBSSH2_CALLOC(session, sizeof(libssh2_ed25519_ctx));
|
ctx = _libssh2_ed25519_new_ctx();
|
||||||
if(ctx == NULL) {
|
if(ctx == NULL) {
|
||||||
return _libssh2_error(session, LIBSSH2_ERROR_ALLOC, "could not alloc public/private key");
|
return _libssh2_error(session, LIBSSH2_ERROR_ALLOC, "could not alloc public/private key");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1590,7 +1590,7 @@ gen_publickey_from_ed25519_openssh_priv_data(LIBSSH2_SESSION *session,
|
|||||||
goto clean_exit;
|
goto clean_exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
ctx = LIBSSH2_CALLOC(session, sizeof(libssh2_ed25519_ctx));
|
ctx = _libssh2_ed25519_new_ctx();
|
||||||
if (ctx == NULL) {
|
if (ctx == NULL) {
|
||||||
_libssh2_error(session, LIBSSH2_ERROR_ALLOC,
|
_libssh2_error(session, LIBSSH2_ERROR_ALLOC,
|
||||||
"Unable to allocate memory for ed25519 key");
|
"Unable to allocate memory for ed25519 key");
|
||||||
|
|||||||
@@ -325,6 +325,7 @@ typedef struct {
|
|||||||
#define libssh2_ed25519_ctx libssh2_curve25519_keys
|
#define libssh2_ed25519_ctx libssh2_curve25519_keys
|
||||||
#define libssh2_x25519_ctx libssh2_curve25519_keys
|
#define libssh2_x25519_ctx libssh2_curve25519_keys
|
||||||
|
|
||||||
|
#define _libssh2_ed25519_new_ctx() malloc(sizeof(libssh2_ed25519_ctx))
|
||||||
#define _libssh2_ed25519_free(ctx) do { \
|
#define _libssh2_ed25519_free(ctx) do { \
|
||||||
if(ctx) { \
|
if(ctx) { \
|
||||||
if(ctx->public_key) EVP_PKEY_free(ctx->public_key); \
|
if(ctx->public_key) EVP_PKEY_free(ctx->public_key); \
|
||||||
|
|||||||
Reference in New Issue
Block a user