mirror of
https://github.com/libssh2/libssh2.git
synced 2025-11-20 02:42:09 +03:00
src: fix indentation of macro definitions
And some comment cleanup. Closes #958
This commit is contained in:
18
src/agent.c
18
src/agent.c
@@ -679,7 +679,7 @@ agent_free_identities(LIBSSH2_AGENT *agent)
|
||||
|
||||
#define AGENT_PUBLICKEY_MAGIC 0x3bdefed2
|
||||
/*
|
||||
* agent_publickey_to_external()
|
||||
* agent_publickey_to_external
|
||||
*
|
||||
* Copies data from the internal to the external representation struct.
|
||||
*
|
||||
@@ -727,7 +727,7 @@ libssh2_agent_init(LIBSSH2_SESSION *session)
|
||||
}
|
||||
|
||||
/*
|
||||
* libssh2_agent_connect()
|
||||
* libssh2_agent_connect
|
||||
*
|
||||
* Connect to an ssh-agent.
|
||||
*
|
||||
@@ -747,7 +747,7 @@ libssh2_agent_connect(LIBSSH2_AGENT *agent)
|
||||
}
|
||||
|
||||
/*
|
||||
* libssh2_agent_list_identities()
|
||||
* libssh2_agent_list_identities
|
||||
*
|
||||
* Request ssh-agent to list identities.
|
||||
*
|
||||
@@ -763,7 +763,7 @@ libssh2_agent_list_identities(LIBSSH2_AGENT *agent)
|
||||
}
|
||||
|
||||
/*
|
||||
* libssh2_agent_get_identity()
|
||||
* libssh2_agent_get_identity
|
||||
*
|
||||
* Traverse the internal list of public keys. Pass NULL to 'prev' to get
|
||||
* the first one. Or pass a pointer to the previously returned one to get the
|
||||
@@ -800,7 +800,7 @@ libssh2_agent_get_identity(LIBSSH2_AGENT *agent,
|
||||
}
|
||||
|
||||
/*
|
||||
* libssh2_agent_userauth()
|
||||
* libssh2_agent_userauth
|
||||
*
|
||||
* Do publickey user authentication with the help of ssh-agent.
|
||||
*
|
||||
@@ -830,7 +830,7 @@ libssh2_agent_userauth(LIBSSH2_AGENT *agent,
|
||||
}
|
||||
|
||||
/*
|
||||
* libssh2_agent_disconnect()
|
||||
* libssh2_agent_disconnect
|
||||
*
|
||||
* Close a connection to an ssh-agent.
|
||||
*
|
||||
@@ -845,7 +845,7 @@ libssh2_agent_disconnect(LIBSSH2_AGENT *agent)
|
||||
}
|
||||
|
||||
/*
|
||||
* libssh2_agent_free()
|
||||
* libssh2_agent_free
|
||||
*
|
||||
* Free an ssh-agent handle. This function also frees the internal
|
||||
* collection of public keys.
|
||||
@@ -866,7 +866,7 @@ libssh2_agent_free(LIBSSH2_AGENT *agent)
|
||||
}
|
||||
|
||||
/*
|
||||
* libssh2_agent_set_identity_path()
|
||||
* libssh2_agent_set_identity_path
|
||||
*
|
||||
* Allows a custom agent socket path beyond SSH_AUTH_SOCK env
|
||||
*
|
||||
@@ -891,7 +891,7 @@ libssh2_agent_set_identity_path(LIBSSH2_AGENT *agent, const char *path)
|
||||
}
|
||||
|
||||
/*
|
||||
* libssh2_agent_get_identity_path()
|
||||
* libssh2_agent_get_identity_path
|
||||
*
|
||||
* Returns the custom agent socket path if set
|
||||
*
|
||||
|
||||
@@ -1207,13 +1207,14 @@ static int channel_request_auth_agent(LIBSSH2_CHANNEL *channel,
|
||||
"Unable to complete request for auth-agent");
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* libssh2_channel_request_auth_agent
|
||||
*
|
||||
* Requests that agent forwarding be enabled for the session. The
|
||||
* request must be sent over a specific channel, which starts the agent
|
||||
* listener on the remote side. Once the channel is closed, the agent
|
||||
* listener continues to exist.
|
||||
* */
|
||||
*/
|
||||
LIBSSH2_API int
|
||||
libssh2_channel_request_auth_agent(LIBSSH2_CHANNEL *channel)
|
||||
{
|
||||
@@ -2017,7 +2018,7 @@ _libssh2_channel_extended_data(LIBSSH2_CHANNEL *channel, int ignore_mode)
|
||||
}
|
||||
|
||||
/*
|
||||
* libssh2_channel_handle_extended_data2()
|
||||
* libssh2_channel_handle_extended_data2
|
||||
*
|
||||
*/
|
||||
LIBSSH2_API int
|
||||
|
||||
@@ -1367,7 +1367,7 @@ static int hostkey_type(const unsigned char *hostkey, size_t len)
|
||||
}
|
||||
|
||||
/*
|
||||
* libssh2_session_hostkey()
|
||||
* libssh2_session_hostkey
|
||||
*
|
||||
* Returns the server key and length.
|
||||
*
|
||||
|
||||
@@ -2196,7 +2196,6 @@ clean_exit:
|
||||
* supports SHA256/384/512 hashes based on negotiated ecdh method
|
||||
*
|
||||
*/
|
||||
|
||||
static int
|
||||
kex_method_ecdh_key_exchange
|
||||
(LIBSSH2_SESSION * session, key_exchange_state_low_t * key_state)
|
||||
@@ -3052,6 +3051,7 @@ typedef struct _LIBSSH2_COMMON_METHOD
|
||||
} LIBSSH2_COMMON_METHOD;
|
||||
|
||||
/* kex_method_strlen
|
||||
*
|
||||
* Calculate the length of a particular method list's resulting string
|
||||
* Includes SUM(strlen() of each individual method plus 1 (for coma)) - 1
|
||||
* (because the last coma isn't used)
|
||||
@@ -3296,7 +3296,7 @@ static int kexinit(LIBSSH2_SESSION * session)
|
||||
|
||||
/* kex_agree_instr
|
||||
* Kex specific variant of strstr()
|
||||
* Needle must be precede by BOL or ',', and followed by ',' or EOL
|
||||
* Needle must be preceded by BOL or ',', and followed by ',' or EOL
|
||||
*/
|
||||
static unsigned char *
|
||||
kex_agree_instr(unsigned char *haystack, size_t haystack_len,
|
||||
@@ -4055,7 +4055,7 @@ libssh2_session_method_pref(LIBSSH2_SESSION * session, int method_type,
|
||||
}
|
||||
|
||||
/*
|
||||
* libssh2_session_supported_algs()
|
||||
* libssh2_session_supported_algs
|
||||
* returns a number of returned algorithms (a positive number) on success,
|
||||
* a negative number on failure
|
||||
*/
|
||||
|
||||
@@ -110,7 +110,7 @@ libssh2_knownhost_init(LIBSSH2_SESSION *session)
|
||||
|
||||
#define KNOWNHOST_MAGIC 0xdeadcafe
|
||||
/*
|
||||
* knownhost_to_external()
|
||||
* knownhost_to_external
|
||||
*
|
||||
* Copies data from the internal to the external representation struct.
|
||||
*
|
||||
@@ -726,7 +726,7 @@ static int hashed_hostline(LIBSSH2_KNOWNHOSTS *hosts,
|
||||
}
|
||||
|
||||
/*
|
||||
* hostline()
|
||||
* hostline
|
||||
*
|
||||
* Parse a single known_host line pre-split into host and key.
|
||||
*
|
||||
@@ -840,7 +840,7 @@ static int hostline(LIBSSH2_KNOWNHOSTS *hosts,
|
||||
}
|
||||
|
||||
/*
|
||||
* libssh2_knownhost_readline()
|
||||
* libssh2_knownhost_readline
|
||||
*
|
||||
* Pass in a line of a file of 'type'.
|
||||
*
|
||||
@@ -982,7 +982,7 @@ libssh2_knownhost_readfile(LIBSSH2_KNOWNHOSTS *hosts,
|
||||
}
|
||||
|
||||
/*
|
||||
* knownhost_writeline()
|
||||
* knownhost_writeline
|
||||
*
|
||||
* Ask libssh2 to convert a known host to an output line for storage.
|
||||
*
|
||||
@@ -1156,7 +1156,7 @@ knownhost_writeline(LIBSSH2_KNOWNHOSTS *hosts,
|
||||
}
|
||||
|
||||
/*
|
||||
* libssh2_knownhost_writeline()
|
||||
* libssh2_knownhost_writeline
|
||||
*
|
||||
* Ask libssh2 to convert a known host to an output line for storage.
|
||||
*
|
||||
@@ -1182,7 +1182,7 @@ libssh2_knownhost_writeline(LIBSSH2_KNOWNHOSTS *hosts,
|
||||
}
|
||||
|
||||
/*
|
||||
* libssh2_knownhost_writefile()
|
||||
* libssh2_knownhost_writefile
|
||||
*
|
||||
* Write hosts+key pairs to the given file.
|
||||
*/
|
||||
@@ -1233,7 +1233,7 @@ libssh2_knownhost_writefile(LIBSSH2_KNOWNHOSTS *hosts,
|
||||
|
||||
|
||||
/*
|
||||
* libssh2_knownhost_get()
|
||||
* libssh2_knownhost_get
|
||||
*
|
||||
* Traverse the internal list of known hosts. Pass NULL to 'prev' to get
|
||||
* the first one.
|
||||
|
||||
106
src/libgcrypt.h
106
src/libgcrypt.h
@@ -70,8 +70,8 @@
|
||||
|
||||
#define EC_MAX_POINT_LEN ((528 * 2 / 8) + 1)
|
||||
|
||||
#define _libssh2_random(buf, len) \
|
||||
(gcry_randomize ((buf), (len), GCRY_STRONG_RANDOM), 0)
|
||||
#define _libssh2_random(buf, len) \
|
||||
(gcry_randomize((buf), (len), GCRY_STRONG_RANDOM), 0)
|
||||
|
||||
#define libssh2_prepare_iovec(vec, len) /* Empty. */
|
||||
|
||||
@@ -79,94 +79,94 @@
|
||||
|
||||
/* returns 0 in case of failure */
|
||||
#define libssh2_sha1_init(ctx) \
|
||||
(GPG_ERR_NO_ERROR == gcry_md_open(ctx, GCRY_MD_SHA1, 0))
|
||||
(GPG_ERR_NO_ERROR == gcry_md_open(ctx, GCRY_MD_SHA1, 0))
|
||||
#define libssh2_sha1_update(ctx, data, len) \
|
||||
gcry_md_write(ctx, (unsigned char *) data, len)
|
||||
gcry_md_write(ctx, (unsigned char *) data, len)
|
||||
#define libssh2_sha1_final(ctx, out) \
|
||||
memcpy(out, gcry_md_read(ctx, 0), SHA_DIGEST_LENGTH), gcry_md_close(ctx)
|
||||
memcpy(out, gcry_md_read(ctx, 0), SHA_DIGEST_LENGTH), gcry_md_close(ctx)
|
||||
#define libssh2_sha1(message, len, out) \
|
||||
gcry_md_hash_buffer(GCRY_MD_SHA1, out, message, len)
|
||||
gcry_md_hash_buffer(GCRY_MD_SHA1, out, message, len)
|
||||
|
||||
#define libssh2_sha256_ctx gcry_md_hd_t
|
||||
|
||||
#define libssh2_sha256_init(ctx) \
|
||||
(GPG_ERR_NO_ERROR == gcry_md_open(ctx, GCRY_MD_SHA256, 0))
|
||||
(GPG_ERR_NO_ERROR == gcry_md_open(ctx, GCRY_MD_SHA256, 0))
|
||||
#define libssh2_sha256_update(ctx, data, len) \
|
||||
gcry_md_write(ctx, (unsigned char *) data, len)
|
||||
gcry_md_write(ctx, (unsigned char *) data, len)
|
||||
#define libssh2_sha256_final(ctx, out) \
|
||||
memcpy(out, gcry_md_read(ctx, 0), SHA256_DIGEST_LENGTH), gcry_md_close(ctx)
|
||||
memcpy(out, gcry_md_read(ctx, 0), SHA256_DIGEST_LENGTH), gcry_md_close(ctx)
|
||||
#define libssh2_sha256(message, len, out) \
|
||||
gcry_md_hash_buffer(GCRY_MD_SHA256, out, message, len)
|
||||
gcry_md_hash_buffer(GCRY_MD_SHA256, out, message, len)
|
||||
|
||||
#define libssh2_sha384_ctx gcry_md_hd_t
|
||||
|
||||
#define libssh2_sha384_init(ctx) \
|
||||
(GPG_ERR_NO_ERROR == gcry_md_open(ctx, GCRY_MD_SHA384, 0))
|
||||
(GPG_ERR_NO_ERROR == gcry_md_open(ctx, GCRY_MD_SHA384, 0))
|
||||
#define libssh2_sha384_update(ctx, data, len) \
|
||||
gcry_md_write(ctx, (unsigned char *) data, len)
|
||||
gcry_md_write(ctx, (unsigned char *) data, len)
|
||||
#define libssh2_sha384_final(ctx, out) \
|
||||
memcpy(out, gcry_md_read(ctx, 0), SHA384_DIGEST_LENGTH), gcry_md_close(ctx)
|
||||
memcpy(out, gcry_md_read(ctx, 0), SHA384_DIGEST_LENGTH), gcry_md_close(ctx)
|
||||
#define libssh2_sha384(message, len, out) \
|
||||
gcry_md_hash_buffer(GCRY_MD_SHA384, out, message, len)
|
||||
gcry_md_hash_buffer(GCRY_MD_SHA384, out, message, len)
|
||||
|
||||
#define libssh2_sha512_ctx gcry_md_hd_t
|
||||
|
||||
#define libssh2_sha512_init(ctx) \
|
||||
(GPG_ERR_NO_ERROR == gcry_md_open(ctx, GCRY_MD_SHA512, 0))
|
||||
(GPG_ERR_NO_ERROR == gcry_md_open(ctx, GCRY_MD_SHA512, 0))
|
||||
#define libssh2_sha512_update(ctx, data, len) \
|
||||
gcry_md_write(ctx, (unsigned char *) data, len)
|
||||
gcry_md_write(ctx, (unsigned char *) data, len)
|
||||
#define libssh2_sha512_final(ctx, out) \
|
||||
memcpy(out, gcry_md_read(ctx, 0), SHA512_DIGEST_LENGTH), gcry_md_close(ctx)
|
||||
memcpy(out, gcry_md_read(ctx, 0), SHA512_DIGEST_LENGTH), gcry_md_close(ctx)
|
||||
#define libssh2_sha512(message, len, out) \
|
||||
gcry_md_hash_buffer(GCRY_MD_SHA512, out, message, len)
|
||||
gcry_md_hash_buffer(GCRY_MD_SHA512, out, message, len)
|
||||
|
||||
#define libssh2_md5_ctx gcry_md_hd_t
|
||||
|
||||
/* returns 0 in case of failure */
|
||||
#define libssh2_md5_init(ctx) \
|
||||
(GPG_ERR_NO_ERROR == gcry_md_open(ctx, GCRY_MD_MD5, 0))
|
||||
(GPG_ERR_NO_ERROR == gcry_md_open(ctx, GCRY_MD_MD5, 0))
|
||||
|
||||
#define libssh2_md5_update(ctx, data, len) \
|
||||
gcry_md_write(ctx, (unsigned char *) data, len)
|
||||
gcry_md_write(ctx, (unsigned char *) data, len)
|
||||
#define libssh2_md5_final(ctx, out) \
|
||||
memcpy(out, gcry_md_read(ctx, 0), MD5_DIGEST_LENGTH), gcry_md_close(ctx)
|
||||
memcpy(out, gcry_md_read(ctx, 0), MD5_DIGEST_LENGTH), gcry_md_close(ctx)
|
||||
#define libssh2_md5(message, len, out) \
|
||||
gcry_md_hash_buffer(GCRY_MD_MD5, out, message, len)
|
||||
gcry_md_hash_buffer(GCRY_MD_MD5, out, message, len)
|
||||
|
||||
#define libssh2_hmac_ctx gcry_md_hd_t
|
||||
#define libssh2_hmac_ctx_init(ctx)
|
||||
#define libssh2_hmac_sha1_init(ctx, key, keylen) \
|
||||
gcry_md_open(ctx, GCRY_MD_SHA1, GCRY_MD_FLAG_HMAC), \
|
||||
gcry_md_open(ctx, GCRY_MD_SHA1, GCRY_MD_FLAG_HMAC), \
|
||||
gcry_md_setkey(*ctx, key, keylen)
|
||||
#define libssh2_hmac_md5_init(ctx, key, keylen) \
|
||||
gcry_md_open(ctx, GCRY_MD_MD5, GCRY_MD_FLAG_HMAC), \
|
||||
gcry_md_open(ctx, GCRY_MD_MD5, GCRY_MD_FLAG_HMAC), \
|
||||
gcry_md_setkey(*ctx, key, keylen)
|
||||
#define libssh2_hmac_ripemd160_init(ctx, key, keylen) \
|
||||
gcry_md_open(ctx, GCRY_MD_RMD160, GCRY_MD_FLAG_HMAC), \
|
||||
gcry_md_open(ctx, GCRY_MD_RMD160, GCRY_MD_FLAG_HMAC), \
|
||||
gcry_md_setkey(*ctx, key, keylen)
|
||||
#define libssh2_hmac_sha256_init(ctx, key, keylen) \
|
||||
gcry_md_open(ctx, GCRY_MD_SHA256, GCRY_MD_FLAG_HMAC), \
|
||||
gcry_md_open(ctx, GCRY_MD_SHA256, GCRY_MD_FLAG_HMAC), \
|
||||
gcry_md_setkey(*ctx, key, keylen)
|
||||
#define libssh2_hmac_sha512_init(ctx, key, keylen) \
|
||||
gcry_md_open(ctx, GCRY_MD_SHA512, GCRY_MD_FLAG_HMAC), \
|
||||
gcry_md_open(ctx, GCRY_MD_SHA512, GCRY_MD_FLAG_HMAC), \
|
||||
gcry_md_setkey(*ctx, key, keylen)
|
||||
#define libssh2_hmac_update(ctx, data, datalen) \
|
||||
gcry_md_write(ctx, (unsigned char *) data, datalen)
|
||||
gcry_md_write(ctx, (unsigned char *) data, datalen)
|
||||
#define libssh2_hmac_final(ctx, data) \
|
||||
memcpy(data, gcry_md_read(ctx, 0), \
|
||||
gcry_md_get_algo_dlen(gcry_md_get_algo(ctx)))
|
||||
memcpy(data, gcry_md_read(ctx, 0), \
|
||||
gcry_md_get_algo_dlen(gcry_md_get_algo(ctx)))
|
||||
#define libssh2_hmac_cleanup(ctx) gcry_md_close(*ctx)
|
||||
|
||||
#define libssh2_crypto_init() gcry_control (GCRYCTL_DISABLE_SECMEM)
|
||||
#define libssh2_crypto_init() gcry_control(GCRYCTL_DISABLE_SECMEM)
|
||||
#define libssh2_crypto_exit()
|
||||
|
||||
#define libssh2_rsa_ctx struct gcry_sexp
|
||||
|
||||
#define _libssh2_rsa_free(rsactx) gcry_sexp_release (rsactx)
|
||||
#define _libssh2_rsa_free(rsactx) gcry_sexp_release(rsactx)
|
||||
|
||||
#define libssh2_dsa_ctx struct gcry_sexp
|
||||
|
||||
#define _libssh2_dsa_free(dsactx) gcry_sexp_release (dsactx)
|
||||
#define _libssh2_dsa_free(dsactx) gcry_sexp_release(dsactx)
|
||||
|
||||
#if LIBSSH2_ECDSA
|
||||
#else
|
||||
@@ -181,25 +181,25 @@
|
||||
#define _libssh2_gcry_mode(m) (m & 0xFF)
|
||||
|
||||
#define _libssh2_cipher_aes256ctr \
|
||||
_libssh2_gcry_ciphermode(GCRY_CIPHER_AES256, GCRY_CIPHER_MODE_CTR)
|
||||
_libssh2_gcry_ciphermode(GCRY_CIPHER_AES256, GCRY_CIPHER_MODE_CTR)
|
||||
#define _libssh2_cipher_aes192ctr \
|
||||
_libssh2_gcry_ciphermode(GCRY_CIPHER_AES192, GCRY_CIPHER_MODE_CTR)
|
||||
_libssh2_gcry_ciphermode(GCRY_CIPHER_AES192, GCRY_CIPHER_MODE_CTR)
|
||||
#define _libssh2_cipher_aes128ctr \
|
||||
_libssh2_gcry_ciphermode(GCRY_CIPHER_AES128, GCRY_CIPHER_MODE_CTR)
|
||||
_libssh2_gcry_ciphermode(GCRY_CIPHER_AES128, GCRY_CIPHER_MODE_CTR)
|
||||
#define _libssh2_cipher_aes256 \
|
||||
_libssh2_gcry_ciphermode(GCRY_CIPHER_AES256, GCRY_CIPHER_MODE_CBC)
|
||||
_libssh2_gcry_ciphermode(GCRY_CIPHER_AES256, GCRY_CIPHER_MODE_CBC)
|
||||
#define _libssh2_cipher_aes192 \
|
||||
_libssh2_gcry_ciphermode(GCRY_CIPHER_AES192, GCRY_CIPHER_MODE_CBC)
|
||||
_libssh2_gcry_ciphermode(GCRY_CIPHER_AES192, GCRY_CIPHER_MODE_CBC)
|
||||
#define _libssh2_cipher_aes128 \
|
||||
_libssh2_gcry_ciphermode(GCRY_CIPHER_AES128, GCRY_CIPHER_MODE_CBC)
|
||||
_libssh2_gcry_ciphermode(GCRY_CIPHER_AES128, GCRY_CIPHER_MODE_CBC)
|
||||
#define _libssh2_cipher_blowfish \
|
||||
_libssh2_gcry_ciphermode(GCRY_CIPHER_BLOWFISH, GCRY_CIPHER_MODE_CBC)
|
||||
_libssh2_gcry_ciphermode(GCRY_CIPHER_BLOWFISH, GCRY_CIPHER_MODE_CBC)
|
||||
#define _libssh2_cipher_arcfour \
|
||||
_libssh2_gcry_ciphermode(GCRY_CIPHER_ARCFOUR, GCRY_CIPHER_MODE_STREAM)
|
||||
_libssh2_gcry_ciphermode(GCRY_CIPHER_ARCFOUR, GCRY_CIPHER_MODE_STREAM)
|
||||
#define _libssh2_cipher_cast5 \
|
||||
_libssh2_gcry_ciphermode(GCRY_CIPHER_CAST5, GCRY_CIPHER_MODE_CBC)
|
||||
_libssh2_gcry_ciphermode(GCRY_CIPHER_CAST5, GCRY_CIPHER_MODE_CBC)
|
||||
#define _libssh2_cipher_3des \
|
||||
_libssh2_gcry_ciphermode(GCRY_CIPHER_3DES, GCRY_CIPHER_MODE_CBC)
|
||||
_libssh2_gcry_ciphermode(GCRY_CIPHER_3DES, GCRY_CIPHER_MODE_CBC)
|
||||
|
||||
|
||||
#define _libssh2_cipher_dtor(ctx) gcry_cipher_close(*(ctx))
|
||||
@@ -209,17 +209,17 @@
|
||||
#define _libssh2_bn_ctx_new() 0
|
||||
#define _libssh2_bn_ctx_free(bnctx) ((void)0)
|
||||
#define _libssh2_bn_init() gcry_mpi_new(0)
|
||||
#define _libssh2_bn_init_from_bin() NULL /* because gcry_mpi_scan() creates a
|
||||
new bignum */
|
||||
#define _libssh2_bn_init_from_bin() NULL /* because gcry_mpi_scan() creates a
|
||||
new bignum */
|
||||
#define _libssh2_bn_set_word(bn, val) gcry_mpi_set_ui(bn, val)
|
||||
#define _libssh2_bn_from_bin(bn, len, val) \
|
||||
#define _libssh2_bn_from_bin(bn, len, val) \
|
||||
gcry_mpi_scan(&((bn)), GCRYMPI_FMT_USG, val, len, NULL)
|
||||
#define _libssh2_bn_to_bin(bn, val) \
|
||||
#define _libssh2_bn_to_bin(bn, val) \
|
||||
gcry_mpi_print(GCRYMPI_FMT_USG, val, _libssh2_bn_bytes(bn), NULL, bn)
|
||||
#define _libssh2_bn_bytes(bn) \
|
||||
(gcry_mpi_get_nbits (bn) / 8 + \
|
||||
((gcry_mpi_get_nbits (bn) % 8 == 0) ? 0 : 1))
|
||||
#define _libssh2_bn_bits(bn) gcry_mpi_get_nbits (bn)
|
||||
#define _libssh2_bn_bytes(bn) \
|
||||
(gcry_mpi_get_nbits(bn) / 8 + \
|
||||
((gcry_mpi_get_nbits(bn) % 8 == 0) ? 0 : 1))
|
||||
#define _libssh2_bn_bits(bn) gcry_mpi_get_nbits(bn)
|
||||
#define _libssh2_bn_free(bn) gcry_mpi_release(bn)
|
||||
|
||||
/* Default generate and safe prime sizes for
|
||||
@@ -233,9 +233,9 @@
|
||||
#define _libssh2_dh_ctx struct gcry_mpi *
|
||||
#define libssh2_dh_init(dhctx) _libssh2_dh_init(dhctx)
|
||||
#define libssh2_dh_key_pair(dhctx, public, g, p, group_order, bnctx) \
|
||||
_libssh2_dh_key_pair(dhctx, public, g, p, group_order)
|
||||
_libssh2_dh_key_pair(dhctx, public, g, p, group_order)
|
||||
#define libssh2_dh_secret(dhctx, secret, f, p, bnctx) \
|
||||
_libssh2_dh_secret(dhctx, secret, f, p)
|
||||
_libssh2_dh_secret(dhctx, secret, f, p)
|
||||
#define libssh2_dh_dtor(dhctx) _libssh2_dh_dtor(dhctx)
|
||||
extern void _libssh2_init_aes_ctr(void);
|
||||
extern void _libssh2_dh_init(_libssh2_dh_ctx *dhctx);
|
||||
|
||||
@@ -978,7 +978,7 @@ _libssh2_debug_low(LIBSSH2_SESSION * session, int context, const char *format,
|
||||
...);
|
||||
#define _libssh2_debug(x) _libssh2_debug_low x
|
||||
#else
|
||||
#define _libssh2_debug(x) do {} while (0)
|
||||
#define _libssh2_debug(x) do {} while(0)
|
||||
#endif
|
||||
|
||||
#define LIBSSH2_SOCKET_UNKNOWN 1
|
||||
|
||||
@@ -40,6 +40,7 @@
|
||||
|
||||
#if defined(LIBSSH2DEBUG) && defined(LIBSSH2_MAC_NONE_INSECURE)
|
||||
/* mac_none_MAC
|
||||
*
|
||||
* Minimalist MAC: No MAC. DO NOT USE.
|
||||
*
|
||||
* The SSH2 Transport allows implementations to forego a message
|
||||
|
||||
266
src/mbedtls.h
266
src/mbedtls.h
@@ -105,12 +105,12 @@
|
||||
*/
|
||||
|
||||
#define libssh2_crypto_init() \
|
||||
_libssh2_mbedtls_init()
|
||||
_libssh2_mbedtls_init()
|
||||
#define libssh2_crypto_exit() \
|
||||
_libssh2_mbedtls_free()
|
||||
_libssh2_mbedtls_free()
|
||||
|
||||
#define _libssh2_random(buf, len) \
|
||||
_libssh2_mbedtls_random(buf, len)
|
||||
_libssh2_mbedtls_random(buf, len)
|
||||
|
||||
#define libssh2_prepare_iovec(vec, len) /* Empty. */
|
||||
|
||||
@@ -124,24 +124,24 @@
|
||||
|
||||
#define libssh2_hmac_ctx_init(ctx)
|
||||
#define libssh2_hmac_cleanup(pctx) \
|
||||
mbedtls_md_free(pctx)
|
||||
mbedtls_md_free(pctx)
|
||||
#define libssh2_hmac_update(ctx, data, datalen) \
|
||||
mbedtls_md_hmac_update(&ctx, (const unsigned char *) data, datalen)
|
||||
mbedtls_md_hmac_update(&ctx, (const unsigned char *) data, datalen)
|
||||
#define libssh2_hmac_final(ctx, hash) \
|
||||
mbedtls_md_hmac_finish(&ctx, hash)
|
||||
mbedtls_md_hmac_finish(&ctx, hash)
|
||||
|
||||
#define libssh2_hmac_sha1_init(pctx, key, keylen) \
|
||||
_libssh2_mbedtls_hash_init(pctx, MBEDTLS_MD_SHA1, key, keylen)
|
||||
_libssh2_mbedtls_hash_init(pctx, MBEDTLS_MD_SHA1, key, keylen)
|
||||
#define libssh2_hmac_md5_init(pctx, key, keylen) \
|
||||
_libssh2_mbedtls_hash_init(pctx, MBEDTLS_MD_MD5, key, keylen)
|
||||
_libssh2_mbedtls_hash_init(pctx, MBEDTLS_MD_MD5, key, keylen)
|
||||
#define libssh2_hmac_ripemd160_init(pctx, key, keylen) \
|
||||
_libssh2_mbedtls_hash_init(pctx, MBEDTLS_MD_RIPEMD160, key, keylen)
|
||||
_libssh2_mbedtls_hash_init(pctx, MBEDTLS_MD_RIPEMD160, key, keylen)
|
||||
#define libssh2_hmac_sha256_init(pctx, key, keylen) \
|
||||
_libssh2_mbedtls_hash_init(pctx, MBEDTLS_MD_SHA256, key, keylen)
|
||||
_libssh2_mbedtls_hash_init(pctx, MBEDTLS_MD_SHA256, key, keylen)
|
||||
#define libssh2_hmac_sha384_init(pctx, key, keylen) \
|
||||
_libssh2_mbedtls_hash_init(pctx, MBEDTLS_MD_SHA384, key, keylen)
|
||||
_libssh2_mbedtls_hash_init(pctx, MBEDTLS_MD_SHA384, key, keylen)
|
||||
#define libssh2_hmac_sha512_init(pctx, key, keylen) \
|
||||
_libssh2_mbedtls_hash_init(pctx, MBEDTLS_MD_SHA512, key, keylen)
|
||||
_libssh2_mbedtls_hash_init(pctx, MBEDTLS_MD_SHA512, key, keylen)
|
||||
|
||||
|
||||
/*******************************************************************/
|
||||
@@ -152,13 +152,13 @@
|
||||
#define libssh2_sha1_ctx mbedtls_md_context_t
|
||||
|
||||
#define libssh2_sha1_init(pctx) \
|
||||
_libssh2_mbedtls_hash_init(pctx, MBEDTLS_MD_SHA1, NULL, 0)
|
||||
_libssh2_mbedtls_hash_init(pctx, MBEDTLS_MD_SHA1, NULL, 0)
|
||||
#define libssh2_sha1_update(ctx, data, datalen) \
|
||||
mbedtls_md_update(&ctx, (const unsigned char *) data, datalen)
|
||||
mbedtls_md_update(&ctx, (const unsigned char *) data, datalen)
|
||||
#define libssh2_sha1_final(ctx, hash) \
|
||||
_libssh2_mbedtls_hash_final(&ctx, hash)
|
||||
_libssh2_mbedtls_hash_final(&ctx, hash)
|
||||
#define libssh2_sha1(data, datalen, hash) \
|
||||
_libssh2_mbedtls_hash(data, datalen, MBEDTLS_MD_SHA1, hash)
|
||||
_libssh2_mbedtls_hash(data, datalen, MBEDTLS_MD_SHA1, hash)
|
||||
|
||||
/*******************************************************************/
|
||||
/*
|
||||
@@ -168,13 +168,13 @@
|
||||
#define libssh2_sha256_ctx mbedtls_md_context_t
|
||||
|
||||
#define libssh2_sha256_init(pctx) \
|
||||
_libssh2_mbedtls_hash_init(pctx, MBEDTLS_MD_SHA256, NULL, 0)
|
||||
_libssh2_mbedtls_hash_init(pctx, MBEDTLS_MD_SHA256, NULL, 0)
|
||||
#define libssh2_sha256_update(ctx, data, datalen) \
|
||||
mbedtls_md_update(&ctx, (const unsigned char *) data, datalen)
|
||||
mbedtls_md_update(&ctx, (const unsigned char *) data, datalen)
|
||||
#define libssh2_sha256_final(ctx, hash) \
|
||||
_libssh2_mbedtls_hash_final(&ctx, hash)
|
||||
_libssh2_mbedtls_hash_final(&ctx, hash)
|
||||
#define libssh2_sha256(data, datalen, hash) \
|
||||
_libssh2_mbedtls_hash(data, datalen, MBEDTLS_MD_SHA256, hash)
|
||||
_libssh2_mbedtls_hash(data, datalen, MBEDTLS_MD_SHA256, hash)
|
||||
|
||||
|
||||
/*******************************************************************/
|
||||
@@ -185,13 +185,13 @@
|
||||
#define libssh2_sha384_ctx mbedtls_md_context_t
|
||||
|
||||
#define libssh2_sha384_init(pctx) \
|
||||
_libssh2_mbedtls_hash_init(pctx, MBEDTLS_MD_SHA384, NULL, 0)
|
||||
_libssh2_mbedtls_hash_init(pctx, MBEDTLS_MD_SHA384, NULL, 0)
|
||||
#define libssh2_sha384_update(ctx, data, datalen) \
|
||||
mbedtls_md_update(&ctx, (const unsigned char *) data, datalen)
|
||||
mbedtls_md_update(&ctx, (const unsigned char *) data, datalen)
|
||||
#define libssh2_sha384_final(ctx, hash) \
|
||||
_libssh2_mbedtls_hash_final(&ctx, hash)
|
||||
_libssh2_mbedtls_hash_final(&ctx, hash)
|
||||
#define libssh2_sha384(data, datalen, hash) \
|
||||
_libssh2_mbedtls_hash(data, datalen, MBEDTLS_MD_SHA384, hash)
|
||||
_libssh2_mbedtls_hash(data, datalen, MBEDTLS_MD_SHA384, hash)
|
||||
|
||||
|
||||
/*******************************************************************/
|
||||
@@ -202,13 +202,13 @@
|
||||
#define libssh2_sha512_ctx mbedtls_md_context_t
|
||||
|
||||
#define libssh2_sha512_init(pctx) \
|
||||
_libssh2_mbedtls_hash_init(pctx, MBEDTLS_MD_SHA512, NULL, 0)
|
||||
_libssh2_mbedtls_hash_init(pctx, MBEDTLS_MD_SHA512, NULL, 0)
|
||||
#define libssh2_sha512_update(ctx, data, datalen) \
|
||||
mbedtls_md_update(&ctx, (const unsigned char *) data, datalen)
|
||||
mbedtls_md_update(&ctx, (const unsigned char *) data, datalen)
|
||||
#define libssh2_sha512_final(ctx, hash) \
|
||||
_libssh2_mbedtls_hash_final(&ctx, hash)
|
||||
_libssh2_mbedtls_hash_final(&ctx, hash)
|
||||
#define libssh2_sha512(data, datalen, hash) \
|
||||
_libssh2_mbedtls_hash(data, datalen, MBEDTLS_MD_SHA512, hash)
|
||||
_libssh2_mbedtls_hash(data, datalen, MBEDTLS_MD_SHA512, hash)
|
||||
|
||||
|
||||
/*******************************************************************/
|
||||
@@ -219,13 +219,13 @@
|
||||
#define libssh2_md5_ctx mbedtls_md_context_t
|
||||
|
||||
#define libssh2_md5_init(pctx) \
|
||||
_libssh2_mbedtls_hash_init(pctx, MBEDTLS_MD_MD5, NULL, 0)
|
||||
_libssh2_mbedtls_hash_init(pctx, MBEDTLS_MD_MD5, NULL, 0)
|
||||
#define libssh2_md5_update(ctx, data, datalen) \
|
||||
mbedtls_md_update(&ctx, (const unsigned char *) data, datalen)
|
||||
mbedtls_md_update(&ctx, (const unsigned char *) data, datalen)
|
||||
#define libssh2_md5_final(ctx, hash) \
|
||||
_libssh2_mbedtls_hash_final(&ctx, hash)
|
||||
_libssh2_mbedtls_hash_final(&ctx, hash)
|
||||
#define libssh2_md5(data, datalen, hash) \
|
||||
_libssh2_mbedtls_hash(data, datalen, MBEDTLS_MD_MD5, hash)
|
||||
_libssh2_mbedtls_hash(data, datalen, MBEDTLS_MD_MD5, hash)
|
||||
|
||||
|
||||
/*******************************************************************/
|
||||
@@ -238,33 +238,33 @@
|
||||
#define _libssh2_rsa_new(rsactx, e, e_len, n, n_len, \
|
||||
d, d_len, p, p_len, q, q_len, \
|
||||
e1, e1_len, e2, e2_len, c, c_len) \
|
||||
_libssh2_mbedtls_rsa_new(rsactx, e, e_len, n, n_len, \
|
||||
d, d_len, p, p_len, q, q_len, \
|
||||
e1, e1_len, e2, e2_len, c, c_len)
|
||||
_libssh2_mbedtls_rsa_new(rsactx, e, e_len, n, n_len, \
|
||||
d, d_len, p, p_len, q, q_len, \
|
||||
e1, e1_len, e2, e2_len, c, c_len)
|
||||
|
||||
#define _libssh2_rsa_new_private(rsactx, s, filename, passphrase) \
|
||||
_libssh2_mbedtls_rsa_new_private(rsactx, s, filename, passphrase)
|
||||
_libssh2_mbedtls_rsa_new_private(rsactx, s, filename, passphrase)
|
||||
|
||||
#define _libssh2_rsa_new_private_frommemory(rsactx, s, filedata, \
|
||||
filedata_len, passphrase) \
|
||||
_libssh2_mbedtls_rsa_new_private_frommemory(rsactx, s, filedata, \
|
||||
filedata_len, passphrase)
|
||||
_libssh2_mbedtls_rsa_new_private_frommemory(rsactx, s, filedata, \
|
||||
filedata_len, passphrase)
|
||||
|
||||
#define _libssh2_rsa_sha1_sign(s, rsactx, hash, hash_len, sig, sig_len) \
|
||||
_libssh2_mbedtls_rsa_sha1_sign(s, rsactx, hash, hash_len, sig, sig_len)
|
||||
_libssh2_mbedtls_rsa_sha1_sign(s, rsactx, hash, hash_len, sig, sig_len)
|
||||
|
||||
#define _libssh2_rsa_sha2_sign(s, rsactx, hash, hash_len, sig, sig_len) \
|
||||
_libssh2_mbedtls_rsa_sha2_sign(s, rsactx, hash, hash_len, sig, sig_len)
|
||||
_libssh2_mbedtls_rsa_sha2_sign(s, rsactx, hash, hash_len, sig, sig_len)
|
||||
|
||||
|
||||
#define _libssh2_rsa_sha1_verify(rsactx, sig, sig_len, m, m_len) \
|
||||
_libssh2_mbedtls_rsa_sha1_verify(rsactx, sig, sig_len, m, m_len)
|
||||
_libssh2_mbedtls_rsa_sha1_verify(rsactx, sig, sig_len, m, m_len)
|
||||
|
||||
#define _libssh2_rsa_sha2_verify(rsactx, hash_len, sig, sig_len, m, m_len) \
|
||||
_libssh2_mbedtls_rsa_sha2_verify(rsactx, hash_len, sig, sig_len, m, m_len)
|
||||
_libssh2_mbedtls_rsa_sha2_verify(rsactx, hash_len, sig, sig_len, m, m_len)
|
||||
|
||||
#define _libssh2_rsa_free(rsactx) \
|
||||
_libssh2_mbedtls_rsa_free(rsactx)
|
||||
_libssh2_mbedtls_rsa_free(rsactx)
|
||||
|
||||
|
||||
/*******************************************************************/
|
||||
@@ -309,34 +309,34 @@ typedef enum {
|
||||
|
||||
#define _libssh2_ecdsa_create_key(session, privkey, pubkey_octal, \
|
||||
pubkey_octal_len, curve) \
|
||||
_libssh2_mbedtls_ecdsa_create_key(session, privkey, pubkey_octal, \
|
||||
pubkey_octal_len, curve)
|
||||
_libssh2_mbedtls_ecdsa_create_key(session, privkey, pubkey_octal, \
|
||||
pubkey_octal_len, curve)
|
||||
|
||||
#define _libssh2_ecdsa_curve_name_with_octal_new(ctx, k, k_len, curve) \
|
||||
_libssh2_mbedtls_ecdsa_curve_name_with_octal_new(ctx, k, k_len, curve)
|
||||
_libssh2_mbedtls_ecdsa_curve_name_with_octal_new(ctx, k, k_len, curve)
|
||||
|
||||
#define _libssh2_ecdh_gen_k(k, privkey, server_pubkey, server_pubkey_len) \
|
||||
_libssh2_mbedtls_ecdh_gen_k(k, privkey, server_pubkey, server_pubkey_len)
|
||||
_libssh2_mbedtls_ecdh_gen_k(k, privkey, server_pubkey, server_pubkey_len)
|
||||
|
||||
#define _libssh2_ecdsa_verify(ctx, r, r_len, s, s_len, m, m_len) \
|
||||
_libssh2_mbedtls_ecdsa_verify(ctx, r, r_len, s, s_len, m, m_len)
|
||||
_libssh2_mbedtls_ecdsa_verify(ctx, r, r_len, s, s_len, m, m_len)
|
||||
|
||||
#define _libssh2_ecdsa_new_private(ctx, session, filename, passphrase) \
|
||||
_libssh2_mbedtls_ecdsa_new_private(ctx, session, filename, passphrase)
|
||||
_libssh2_mbedtls_ecdsa_new_private(ctx, session, filename, passphrase)
|
||||
|
||||
#define _libssh2_ecdsa_new_private_frommemory(ctx, session, filedata, \
|
||||
filedata_len, passphrase) \
|
||||
_libssh2_mbedtls_ecdsa_new_private_frommemory(ctx, session, filedata, \
|
||||
filedata_len, passphrase)
|
||||
_libssh2_mbedtls_ecdsa_new_private_frommemory(ctx, session, filedata, \
|
||||
filedata_len, passphrase)
|
||||
|
||||
#define _libssh2_ecdsa_sign(session, ctx, hash, hash_len, sign, sign_len) \
|
||||
_libssh2_mbedtls_ecdsa_sign(session, ctx, hash, hash_len, sign, sign_len)
|
||||
_libssh2_mbedtls_ecdsa_sign(session, ctx, hash, hash_len, sign, sign_len)
|
||||
|
||||
#define _libssh2_ecdsa_get_curve_type(ctx) \
|
||||
_libssh2_mbedtls_ecdsa_get_curve_type(ctx)
|
||||
_libssh2_mbedtls_ecdsa_get_curve_type(ctx)
|
||||
|
||||
#define _libssh2_ecdsa_free(ctx) \
|
||||
_libssh2_mbedtls_ecdsa_free(ctx)
|
||||
_libssh2_mbedtls_ecdsa_free(ctx)
|
||||
|
||||
#endif /* LIBSSH2_ECDSA */
|
||||
|
||||
@@ -347,15 +347,15 @@ typedef enum {
|
||||
*/
|
||||
|
||||
#define _libssh2_pub_priv_keyfile(s, m, m_len, p, p_len, pk, pw) \
|
||||
_libssh2_mbedtls_pub_priv_keyfile(s, m, m_len, p, p_len, pk, pw)
|
||||
_libssh2_mbedtls_pub_priv_keyfile(s, m, m_len, p, p_len, pk, pw)
|
||||
#define _libssh2_pub_priv_keyfilememory(s, m, m_len, p, p_len, \
|
||||
pk, pk_len, pw) \
|
||||
_libssh2_mbedtls_pub_priv_keyfilememory(s, m, m_len, p, p_len, \
|
||||
pk, pk_len, pw)
|
||||
pk, pk_len, pw) \
|
||||
_libssh2_mbedtls_pub_priv_keyfilememory(s, m, m_len, p, p_len, \
|
||||
pk, pk_len, pw)
|
||||
#define _libssh2_sk_pub_keyfilememory(s, m, m_len, p, p_len, alg, app, \
|
||||
f, kh, kh_len, pk, pk_len, pw) \
|
||||
_libssh2_mbedtls_sk_pub_keyfilememory(s, m, m_len, p, p_len, alg, app, \
|
||||
f, kh, kh_len, pk, pk_len, pw)
|
||||
_libssh2_mbedtls_sk_pub_keyfilememory(s, m, m_len, p, p_len, alg, app, \
|
||||
f, kh, kh_len, pk, pk_len, pw)
|
||||
|
||||
|
||||
/*******************************************************************/
|
||||
@@ -388,11 +388,11 @@ typedef enum {
|
||||
*/
|
||||
|
||||
#define _libssh2_cipher_init(ctx, type, iv, secret, encrypt) \
|
||||
_libssh2_mbedtls_cipher_init(ctx, type, iv, secret, encrypt)
|
||||
_libssh2_mbedtls_cipher_init(ctx, type, iv, secret, encrypt)
|
||||
#define _libssh2_cipher_crypt(ctx, type, encrypt, block, blocklen) \
|
||||
_libssh2_mbedtls_cipher_crypt(ctx, type, encrypt, block, blocklen)
|
||||
_libssh2_mbedtls_cipher_crypt(ctx, type, encrypt, block, blocklen)
|
||||
#define _libssh2_cipher_dtor(ctx) \
|
||||
_libssh2_mbedtls_cipher_dtor(ctx)
|
||||
_libssh2_mbedtls_cipher_dtor(ctx)
|
||||
|
||||
|
||||
/*******************************************************************/
|
||||
@@ -407,21 +407,21 @@ typedef enum {
|
||||
#define _libssh2_bn mbedtls_mpi
|
||||
|
||||
#define _libssh2_bn_init() \
|
||||
_libssh2_mbedtls_bignum_init()
|
||||
_libssh2_mbedtls_bignum_init()
|
||||
#define _libssh2_bn_init_from_bin() \
|
||||
_libssh2_mbedtls_bignum_init()
|
||||
_libssh2_mbedtls_bignum_init()
|
||||
#define _libssh2_bn_set_word(bn, word) \
|
||||
mbedtls_mpi_lset(bn, word)
|
||||
mbedtls_mpi_lset(bn, word)
|
||||
#define _libssh2_bn_from_bin(bn, len, bin) \
|
||||
mbedtls_mpi_read_binary(bn, bin, len)
|
||||
mbedtls_mpi_read_binary(bn, bin, len)
|
||||
#define _libssh2_bn_to_bin(bn, bin) \
|
||||
mbedtls_mpi_write_binary(bn, bin, mbedtls_mpi_size(bn))
|
||||
mbedtls_mpi_write_binary(bn, bin, mbedtls_mpi_size(bn))
|
||||
#define _libssh2_bn_bytes(bn) \
|
||||
mbedtls_mpi_size(bn)
|
||||
mbedtls_mpi_size(bn)
|
||||
#define _libssh2_bn_bits(bn) \
|
||||
mbedtls_mpi_bitlen(bn)
|
||||
mbedtls_mpi_bitlen(bn)
|
||||
#define _libssh2_bn_free(bn) \
|
||||
_libssh2_mbedtls_bignum_free(bn)
|
||||
_libssh2_mbedtls_bignum_free(bn)
|
||||
|
||||
|
||||
/*******************************************************************/
|
||||
@@ -440,9 +440,9 @@ typedef enum {
|
||||
#define _libssh2_dh_ctx mbedtls_mpi *
|
||||
#define libssh2_dh_init(dhctx) _libssh2_dh_init(dhctx)
|
||||
#define libssh2_dh_key_pair(dhctx, public, g, p, group_order, bnctx) \
|
||||
_libssh2_dh_key_pair(dhctx, public, g, p, group_order)
|
||||
_libssh2_dh_key_pair(dhctx, public, g, p, group_order)
|
||||
#define libssh2_dh_secret(dhctx, secret, f, p, bnctx) \
|
||||
_libssh2_dh_secret(dhctx, secret, f, p)
|
||||
_libssh2_dh_secret(dhctx, secret, f, p)
|
||||
#define libssh2_dh_dtor(dhctx) _libssh2_dh_dtor(dhctx)
|
||||
|
||||
|
||||
@@ -462,23 +462,23 @@ _libssh2_mbedtls_random(unsigned char *buf, size_t len);
|
||||
|
||||
int
|
||||
_libssh2_mbedtls_cipher_init(_libssh2_cipher_ctx *ctx,
|
||||
_libssh2_cipher_type(type),
|
||||
unsigned char *iv,
|
||||
unsigned char *secret,
|
||||
int encrypt);
|
||||
_libssh2_cipher_type(type),
|
||||
unsigned char *iv,
|
||||
unsigned char *secret,
|
||||
int encrypt);
|
||||
int
|
||||
_libssh2_mbedtls_cipher_crypt(_libssh2_cipher_ctx *ctx,
|
||||
_libssh2_cipher_type(type),
|
||||
int encrypt,
|
||||
unsigned char *block,
|
||||
size_t blocklen);
|
||||
_libssh2_cipher_type(type),
|
||||
int encrypt,
|
||||
unsigned char *block,
|
||||
size_t blocklen);
|
||||
void
|
||||
_libssh2_mbedtls_cipher_dtor(_libssh2_cipher_ctx *ctx);
|
||||
|
||||
int
|
||||
_libssh2_mbedtls_hash_init(mbedtls_md_context_t *ctx,
|
||||
mbedtls_md_type_t mdtype,
|
||||
const unsigned char *key, unsigned long keylen);
|
||||
mbedtls_md_type_t mdtype,
|
||||
const unsigned char *key, unsigned long keylen);
|
||||
|
||||
int
|
||||
_libssh2_mbedtls_hash_final(mbedtls_md_context_t *ctx, unsigned char *hash);
|
||||
@@ -494,68 +494,68 @@ _libssh2_mbedtls_bignum_free(_libssh2_bn *bn);
|
||||
|
||||
int
|
||||
_libssh2_mbedtls_rsa_new(libssh2_rsa_ctx **rsa,
|
||||
const unsigned char *edata,
|
||||
unsigned long elen,
|
||||
const unsigned char *ndata,
|
||||
unsigned long nlen,
|
||||
const unsigned char *ddata,
|
||||
unsigned long dlen,
|
||||
const unsigned char *pdata,
|
||||
unsigned long plen,
|
||||
const unsigned char *qdata,
|
||||
unsigned long qlen,
|
||||
const unsigned char *e1data,
|
||||
unsigned long e1len,
|
||||
const unsigned char *e2data,
|
||||
unsigned long e2len,
|
||||
const unsigned char *coeffdata,
|
||||
unsigned long coefflen);
|
||||
const unsigned char *edata,
|
||||
unsigned long elen,
|
||||
const unsigned char *ndata,
|
||||
unsigned long nlen,
|
||||
const unsigned char *ddata,
|
||||
unsigned long dlen,
|
||||
const unsigned char *pdata,
|
||||
unsigned long plen,
|
||||
const unsigned char *qdata,
|
||||
unsigned long qlen,
|
||||
const unsigned char *e1data,
|
||||
unsigned long e1len,
|
||||
const unsigned char *e2data,
|
||||
unsigned long e2len,
|
||||
const unsigned char *coeffdata,
|
||||
unsigned long coefflen);
|
||||
|
||||
int
|
||||
_libssh2_mbedtls_rsa_new_private(libssh2_rsa_ctx **rsa,
|
||||
LIBSSH2_SESSION *session,
|
||||
const char *filename,
|
||||
const unsigned char *passphrase);
|
||||
LIBSSH2_SESSION *session,
|
||||
const char *filename,
|
||||
const unsigned char *passphrase);
|
||||
|
||||
int
|
||||
_libssh2_mbedtls_rsa_new_private_frommemory(libssh2_rsa_ctx **rsa,
|
||||
LIBSSH2_SESSION *session,
|
||||
const char *filedata,
|
||||
size_t filedata_len,
|
||||
unsigned const char *passphrase);
|
||||
LIBSSH2_SESSION *session,
|
||||
const char *filedata,
|
||||
size_t filedata_len,
|
||||
unsigned const char *passphrase);
|
||||
int
|
||||
_libssh2_mbedtls_rsa_sha1_verify(libssh2_rsa_ctx *rsa,
|
||||
const unsigned char *sig,
|
||||
unsigned long sig_len,
|
||||
const unsigned char *m,
|
||||
unsigned long m_len);
|
||||
const unsigned char *sig,
|
||||
unsigned long sig_len,
|
||||
const unsigned char *m,
|
||||
unsigned long m_len);
|
||||
int
|
||||
_libssh2_mbedtls_rsa_sha1_sign(LIBSSH2_SESSION *session,
|
||||
libssh2_rsa_ctx *rsa,
|
||||
const unsigned char *hash,
|
||||
size_t hash_len,
|
||||
unsigned char **signature,
|
||||
size_t *signature_len);
|
||||
libssh2_rsa_ctx *rsa,
|
||||
const unsigned char *hash,
|
||||
size_t hash_len,
|
||||
unsigned char **signature,
|
||||
size_t *signature_len);
|
||||
void
|
||||
_libssh2_mbedtls_rsa_free(libssh2_rsa_ctx *rsa);
|
||||
|
||||
int
|
||||
_libssh2_mbedtls_pub_priv_keyfile(LIBSSH2_SESSION *session,
|
||||
unsigned char **method,
|
||||
size_t *method_len,
|
||||
unsigned char **pubkeydata,
|
||||
size_t *pubkeydata_len,
|
||||
const char *privatekey,
|
||||
const char *passphrase);
|
||||
unsigned char **method,
|
||||
size_t *method_len,
|
||||
unsigned char **pubkeydata,
|
||||
size_t *pubkeydata_len,
|
||||
const char *privatekey,
|
||||
const char *passphrase);
|
||||
int
|
||||
_libssh2_mbedtls_pub_priv_keyfilememory(LIBSSH2_SESSION *session,
|
||||
unsigned char **method,
|
||||
size_t *method_len,
|
||||
unsigned char **pubkeydata,
|
||||
size_t *pubkeydata_len,
|
||||
const char *privatekeydata,
|
||||
size_t privatekeydata_len,
|
||||
const char *passphrase);
|
||||
unsigned char **method,
|
||||
size_t *method_len,
|
||||
unsigned char **pubkeydata,
|
||||
size_t *pubkeydata_len,
|
||||
const char *privatekeydata,
|
||||
size_t privatekeydata_len,
|
||||
const char *passphrase);
|
||||
#if LIBSSH2_ECDSA
|
||||
int
|
||||
_libssh2_mbedtls_ecdsa_create_key(LIBSSH2_SESSION *session,
|
||||
@@ -580,9 +580,9 @@ _libssh2_mbedtls_ecdsa_verify(libssh2_ecdsa_ctx *ctx,
|
||||
const unsigned char *m, size_t m_len);
|
||||
int
|
||||
_libssh2_mbedtls_ecdsa_new_private(libssh2_ecdsa_ctx **ctx,
|
||||
LIBSSH2_SESSION *session,
|
||||
const char *filename,
|
||||
const unsigned char *passphrase);
|
||||
LIBSSH2_SESSION *session,
|
||||
const char *filename,
|
||||
const unsigned char *passphrase);
|
||||
int
|
||||
_libssh2_mbedtls_ecdsa_new_private_frommemory(libssh2_ecdsa_ctx **ctx,
|
||||
LIBSSH2_SESSION *session,
|
||||
@@ -611,10 +611,10 @@ extern void
|
||||
_libssh2_dh_init(_libssh2_dh_ctx *dhctx);
|
||||
extern int
|
||||
_libssh2_dh_key_pair(_libssh2_dh_ctx *dhctx, _libssh2_bn *public,
|
||||
_libssh2_bn *g, _libssh2_bn *p, int group_order);
|
||||
_libssh2_bn *g, _libssh2_bn *p, int group_order);
|
||||
extern int
|
||||
_libssh2_dh_secret(_libssh2_dh_ctx *dhctx, _libssh2_bn *secret,
|
||||
_libssh2_bn *f, _libssh2_bn *p);
|
||||
_libssh2_bn *f, _libssh2_bn *p);
|
||||
extern void
|
||||
_libssh2_dh_dtor(_libssh2_dh_ctx *dhctx);
|
||||
|
||||
|
||||
@@ -375,7 +375,7 @@ static const char table64[]=
|
||||
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
|
||||
|
||||
/*
|
||||
* _libssh2_base64_encode()
|
||||
* _libssh2_base64_encode
|
||||
*
|
||||
* Returns the length of the newly created base64 string. The third argument
|
||||
* is a pointer to an allocated area holding the base64 data. If something
|
||||
@@ -656,7 +656,7 @@ void _libssh2_list_insert(struct list_node *after, /* insert before this */
|
||||
/* this define is defined in misc.h for the correct platforms */
|
||||
#ifdef LIBSSH2_GETTIMEOFDAY_WIN32
|
||||
/*
|
||||
* gettimeofday
|
||||
* _libssh2_gettimeofday
|
||||
* Implementation according to:
|
||||
* The Open Group Base Specifications Issue 6
|
||||
* IEEE Std 1003.1, 2004 Edition
|
||||
|
||||
@@ -184,7 +184,7 @@
|
||||
#define EC_MAX_POINT_LEN ((528 * 2 / 8) + 1)
|
||||
|
||||
#define _libssh2_random(buf, len) \
|
||||
_libssh2_openssl_random((buf), (len))
|
||||
_libssh2_openssl_random((buf), (len))
|
||||
|
||||
#define libssh2_prepare_iovec(vec, len) /* Empty. */
|
||||
|
||||
@@ -307,43 +307,43 @@ int _libssh2_md5_init(libssh2_md5_ctx *ctx);
|
||||
#define libssh2_hmac_ctx HMAC_CTX *
|
||||
#define libssh2_hmac_ctx_init(ctx) ctx = HMAC_CTX_new()
|
||||
#define libssh2_hmac_sha1_init(ctx, key, keylen) \
|
||||
HMAC_Init_ex(*(ctx), key, (int)keylen, EVP_sha1(), NULL)
|
||||
HMAC_Init_ex(*(ctx), key, (int)keylen, EVP_sha1(), NULL)
|
||||
#define libssh2_hmac_md5_init(ctx, key, keylen) \
|
||||
HMAC_Init_ex(*(ctx), key, (int)keylen, EVP_md5(), NULL)
|
||||
HMAC_Init_ex(*(ctx), key, (int)keylen, EVP_md5(), NULL)
|
||||
#define libssh2_hmac_ripemd160_init(ctx, key, keylen) \
|
||||
HMAC_Init_ex(*(ctx), key, (int)keylen, EVP_ripemd160(), NULL)
|
||||
HMAC_Init_ex(*(ctx), key, (int)keylen, EVP_ripemd160(), NULL)
|
||||
#define libssh2_hmac_sha256_init(ctx, key, keylen) \
|
||||
HMAC_Init_ex(*(ctx), key, (int)keylen, EVP_sha256(), NULL)
|
||||
HMAC_Init_ex(*(ctx), key, (int)keylen, EVP_sha256(), NULL)
|
||||
#define libssh2_hmac_sha512_init(ctx, key, keylen) \
|
||||
HMAC_Init_ex(*(ctx), key, (int)keylen, EVP_sha512(), NULL)
|
||||
HMAC_Init_ex(*(ctx), key, (int)keylen, EVP_sha512(), NULL)
|
||||
|
||||
#ifdef LIBSSH2_WOLFSSL
|
||||
/* FIXME: upstream bug as of v5.6.0: datalen is int instead of size_t */
|
||||
#define libssh2_hmac_update(ctx, data, datalen) \
|
||||
HMAC_Update(ctx, data, (int)datalen)
|
||||
HMAC_Update(ctx, data, (int)datalen)
|
||||
#else
|
||||
#define libssh2_hmac_update(ctx, data, datalen) \
|
||||
HMAC_Update(ctx, data, datalen)
|
||||
HMAC_Update(ctx, data, datalen)
|
||||
#endif /* LIBSSH2_WOLFSSL */
|
||||
#define libssh2_hmac_final(ctx, data) HMAC_Final(ctx, data, NULL)
|
||||
#define libssh2_hmac_cleanup(ctx) HMAC_CTX_free(*(ctx))
|
||||
#else
|
||||
#define libssh2_hmac_ctx HMAC_CTX
|
||||
#define libssh2_hmac_ctx_init(ctx) \
|
||||
HMAC_CTX_init(&ctx)
|
||||
HMAC_CTX_init(&ctx)
|
||||
#define libssh2_hmac_sha1_init(ctx, key, keylen) \
|
||||
HMAC_Init_ex(ctx, key, (int)keylen, EVP_sha1(), NULL)
|
||||
HMAC_Init_ex(ctx, key, (int)keylen, EVP_sha1(), NULL)
|
||||
#define libssh2_hmac_md5_init(ctx, key, keylen) \
|
||||
HMAC_Init_ex(ctx, key, (int)keylen, EVP_md5(), NULL)
|
||||
HMAC_Init_ex(ctx, key, (int)keylen, EVP_md5(), NULL)
|
||||
#define libssh2_hmac_ripemd160_init(ctx, key, keylen) \
|
||||
HMAC_Init_ex(ctx, key, (int)keylen, EVP_ripemd160(), NULL)
|
||||
HMAC_Init_ex(ctx, key, (int)keylen, EVP_ripemd160(), NULL)
|
||||
#define libssh2_hmac_sha256_init(ctx, key, keylen) \
|
||||
HMAC_Init_ex(ctx, key, (int)keylen, EVP_sha256(), NULL)
|
||||
HMAC_Init_ex(ctx, key, (int)keylen, EVP_sha256(), NULL)
|
||||
#define libssh2_hmac_sha512_init(ctx, key, keylen) \
|
||||
HMAC_Init_ex(ctx, key, (int)keylen, EVP_sha512(), NULL)
|
||||
HMAC_Init_ex(ctx, key, (int)keylen, EVP_sha512(), NULL)
|
||||
|
||||
#define libssh2_hmac_update(ctx, data, datalen) \
|
||||
HMAC_Update(&(ctx), data, datalen)
|
||||
HMAC_Update(&(ctx), data, datalen)
|
||||
#define libssh2_hmac_final(ctx, data) HMAC_Final(&(ctx), data, NULL)
|
||||
#define libssh2_hmac_cleanup(ctx) HMAC_cleanup(ctx)
|
||||
#endif
|
||||
@@ -430,9 +430,9 @@ libssh2_curve_type;
|
||||
#define _libssh2_dh_ctx BIGNUM *
|
||||
#define libssh2_dh_init(dhctx) _libssh2_dh_init(dhctx)
|
||||
#define libssh2_dh_key_pair(dhctx, public, g, p, group_order, bnctx) \
|
||||
_libssh2_dh_key_pair(dhctx, public, g, p, group_order, bnctx)
|
||||
_libssh2_dh_key_pair(dhctx, public, g, p, group_order, bnctx)
|
||||
#define libssh2_dh_secret(dhctx, secret, f, p, bnctx) \
|
||||
_libssh2_dh_secret(dhctx, secret, f, p, bnctx)
|
||||
_libssh2_dh_secret(dhctx, secret, f, p, bnctx)
|
||||
#define libssh2_dh_dtor(dhctx) _libssh2_dh_dtor(dhctx)
|
||||
extern void _libssh2_dh_init(_libssh2_dh_ctx *dhctx);
|
||||
extern int _libssh2_dh_key_pair(_libssh2_dh_ctx *dhctx, _libssh2_bn *public,
|
||||
|
||||
@@ -606,7 +606,7 @@ _libssh2_packet_add(LIBSSH2_SESSION * session, unsigned char *data,
|
||||
}
|
||||
|
||||
/*
|
||||
* _libssh2_debug will actually truncate this for us so
|
||||
* _libssh2_debug() will actually truncate this for us so
|
||||
* that it's not an inordinate about of data
|
||||
*/
|
||||
_libssh2_debug((session, LIBSSH2_TRACE_TRANS,
|
||||
|
||||
@@ -826,7 +826,7 @@ libssh2_scp_recv2(LIBSSH2_SESSION *session, const char *path,
|
||||
}
|
||||
|
||||
/*
|
||||
* scp_send()
|
||||
* scp_send
|
||||
*
|
||||
* Send a file using SCP
|
||||
*
|
||||
|
||||
@@ -356,7 +356,7 @@ session_nonblock(libssh2_socket_t sockfd, /* operate on this */
|
||||
}
|
||||
|
||||
/*
|
||||
* get_socket_nonblocking()
|
||||
* get_socket_nonblocking
|
||||
*
|
||||
* gets the given blocking or non-blocking state of the socket.
|
||||
*/
|
||||
@@ -602,7 +602,7 @@ libssh2_session_callback_set(LIBSSH2_SESSION * session,
|
||||
#endif
|
||||
|
||||
/*
|
||||
* _libssh2_wait_socket()
|
||||
* _libssh2_wait_socket
|
||||
*
|
||||
* Utility function that waits for action on the socket. Returns 0 when ready
|
||||
* to run again or error on timeout.
|
||||
@@ -853,7 +853,7 @@ session_startup(LIBSSH2_SESSION *session, libssh2_socket_t sock)
|
||||
}
|
||||
|
||||
/*
|
||||
* libssh2_session_handshake()
|
||||
* libssh2_session_handshake
|
||||
*
|
||||
* session: LIBSSH2_SESSION struct allocated and owned by the calling program
|
||||
* sock: *must* be populated with an opened and connected socket.
|
||||
@@ -871,7 +871,7 @@ libssh2_session_handshake(LIBSSH2_SESSION *session, libssh2_socket_t sock)
|
||||
}
|
||||
|
||||
/*
|
||||
* libssh2_session_startup()
|
||||
* libssh2_session_startup
|
||||
*
|
||||
* DEPRECATED. Use libssh2_session_handshake() instead! This function is not
|
||||
* portable enough.
|
||||
@@ -888,7 +888,7 @@ libssh2_session_startup(LIBSSH2_SESSION *session, int sock)
|
||||
}
|
||||
|
||||
/*
|
||||
* libssh2_session_free
|
||||
* session_free
|
||||
*
|
||||
* Frees the memory allocated to the session
|
||||
* Also closes and frees any channels attached to this session
|
||||
@@ -1164,7 +1164,7 @@ libssh2_session_free(LIBSSH2_SESSION * session)
|
||||
}
|
||||
|
||||
/*
|
||||
* libssh2_session_disconnect_ex
|
||||
* session_disconnect
|
||||
*/
|
||||
static int
|
||||
session_disconnect(LIBSSH2_SESSION *session, int reason,
|
||||
|
||||
58
src/sftp.c
58
src/sftp.c
@@ -180,9 +180,7 @@ add_zombie_request(LIBSSH2_SFTP *sftp, uint32_t request_id)
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* sftp_packet_add
|
||||
*
|
||||
/* sftp_packet_add
|
||||
* Add a packet to the SFTP packet brigade
|
||||
*/
|
||||
static int
|
||||
@@ -276,9 +274,7 @@ sftp_packet_add(LIBSSH2_SFTP *sftp, unsigned char *data,
|
||||
return LIBSSH2_ERROR_NONE;
|
||||
}
|
||||
|
||||
/*
|
||||
* sftp_packet_read
|
||||
*
|
||||
/* sftp_packet_read
|
||||
* Frame an SFTP packet off the channel
|
||||
*/
|
||||
static int
|
||||
@@ -421,8 +417,8 @@ sftp_packet_read(LIBSSH2_SFTP *sftp)
|
||||
}
|
||||
/* WON'T REACH */
|
||||
}
|
||||
/*
|
||||
* sftp_packetlist_flush
|
||||
|
||||
/* sftp_packetlist_flush
|
||||
*
|
||||
* Remove all pending packets in the packet_list and the corresponding one(s)
|
||||
* in the SFTP packet brigade.
|
||||
@@ -463,7 +459,7 @@ static void sftp_packetlist_flush(LIBSSH2_SFTP_HANDLE *handle)
|
||||
|
||||
|
||||
/*
|
||||
* sftp_packet_ask()
|
||||
* sftp_packet_ask
|
||||
*
|
||||
* Checks if there's a matching SFTP packet available.
|
||||
*/
|
||||
@@ -761,9 +757,7 @@ LIBSSH2_CHANNEL_CLOSE_FUNC(libssh2_sftp_dtor)
|
||||
LIBSSH2_FREE(session, sftp);
|
||||
}
|
||||
|
||||
/*
|
||||
* sftp_init
|
||||
*
|
||||
/* sftp_init
|
||||
* Startup an SFTP session
|
||||
*/
|
||||
static LIBSSH2_SFTP *sftp_init(LIBSSH2_SESSION *session)
|
||||
@@ -987,9 +981,7 @@ static LIBSSH2_SFTP *sftp_init(LIBSSH2_SESSION *session)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/*
|
||||
* libssh2_sftp_init
|
||||
*
|
||||
/* libssh2_sftp_init
|
||||
* Startup an SFTP session
|
||||
*/
|
||||
LIBSSH2_API LIBSSH2_SFTP *libssh2_sftp_init(LIBSSH2_SESSION *session)
|
||||
@@ -1009,9 +1001,7 @@ LIBSSH2_API LIBSSH2_SFTP *libssh2_sftp_init(LIBSSH2_SESSION *session)
|
||||
return ptr;
|
||||
}
|
||||
|
||||
/*
|
||||
* sftp_shutdown
|
||||
*
|
||||
/* sftp_shutdown
|
||||
* Shuts down the SFTP subsystem
|
||||
*/
|
||||
static int
|
||||
@@ -1357,11 +1347,8 @@ libssh2_sftp_open_ex_r(LIBSSH2_SFTP *sftp, const char *filename,
|
||||
return hnd;
|
||||
}
|
||||
|
||||
/*
|
||||
* sftp_read
|
||||
*
|
||||
/* sftp_read
|
||||
* Read from an SFTP file handle
|
||||
*
|
||||
*/
|
||||
static ssize_t sftp_read(LIBSSH2_SFTP_HANDLE * handle, char *buffer,
|
||||
size_t buffer_size)
|
||||
@@ -2006,8 +1993,7 @@ libssh2_sftp_readdir_ex(LIBSSH2_SFTP_HANDLE *hnd, char *buffer,
|
||||
return (int)rc; /* FIXME: -> ssize_t */
|
||||
}
|
||||
|
||||
/*
|
||||
* sftp_write
|
||||
/* sftp_write
|
||||
*
|
||||
* Write data to an SFTP handle. Returns the number of bytes written, or
|
||||
* a negative error code.
|
||||
@@ -2375,9 +2361,7 @@ libssh2_sftp_fsync(LIBSSH2_SFTP_HANDLE *hnd)
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* sftp_fstat
|
||||
*
|
||||
/* sftp_fstat
|
||||
* Get or Set stat on a file
|
||||
*/
|
||||
static int sftp_fstat(LIBSSH2_SFTP_HANDLE *handle,
|
||||
@@ -2842,9 +2826,7 @@ libssh2_sftp_unlink_ex(LIBSSH2_SFTP *sftp, const char *filename,
|
||||
return rc;
|
||||
}
|
||||
|
||||
/*
|
||||
* sftp_rename
|
||||
*
|
||||
/* sftp_rename
|
||||
* Rename a file on the remote server
|
||||
*/
|
||||
static int sftp_rename(LIBSSH2_SFTP *sftp, const char *source_filename,
|
||||
@@ -2986,9 +2968,7 @@ libssh2_sftp_rename_ex(LIBSSH2_SFTP *sftp, const char *source_filename,
|
||||
return rc;
|
||||
}
|
||||
|
||||
/*
|
||||
* sftp_fstatvfs
|
||||
*
|
||||
/* sftp_fstatvfs
|
||||
* Get file system statistics
|
||||
*/
|
||||
static int sftp_fstatvfs(LIBSSH2_SFTP_HANDLE *handle, LIBSSH2_SFTP_STATVFS *st)
|
||||
@@ -3124,9 +3104,7 @@ libssh2_sftp_fstatvfs(LIBSSH2_SFTP_HANDLE *handle, LIBSSH2_SFTP_STATVFS *st)
|
||||
return rc;
|
||||
}
|
||||
|
||||
/*
|
||||
* sftp_statvfs
|
||||
*
|
||||
/* sftp_statvfs
|
||||
* Get file system statistics
|
||||
*/
|
||||
static int sftp_statvfs(LIBSSH2_SFTP *sftp, const char *path,
|
||||
@@ -3263,9 +3241,7 @@ libssh2_sftp_statvfs(LIBSSH2_SFTP *sftp, const char *path,
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* sftp_mkdir
|
||||
*
|
||||
/* sftp_mkdir
|
||||
* Create an SFTP directory
|
||||
*/
|
||||
static int sftp_mkdir(LIBSSH2_SFTP *sftp, const char *path,
|
||||
@@ -3369,9 +3345,7 @@ static int sftp_mkdir(LIBSSH2_SFTP *sftp, const char *path,
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* libssh2_sftp_mkdir_ex
|
||||
*
|
||||
/* libssh2_sftp_mkdir_ex
|
||||
* Create an SFTP directory
|
||||
*/
|
||||
LIBSSH2_API int
|
||||
|
||||
@@ -605,7 +605,7 @@ int _libssh2_transport_read(LIBSSH2_SESSION * session)
|
||||
|
||||
if(session->packAdd_state != libssh2_NB_state_idle) {
|
||||
/* fullpacket only returns LIBSSH2_ERROR_EAGAIN if
|
||||
* libssh2_packet_add returns LIBSSH2_ERROR_EAGAIN. If
|
||||
* libssh2_packet_add() returns LIBSSH2_ERROR_EAGAIN. If
|
||||
* that returns LIBSSH2_ERROR_EAGAIN but the packAdd_state
|
||||
* is idle, then the packet has been added to the brigade,
|
||||
* but some immediate action that was taken based on the
|
||||
|
||||
@@ -43,7 +43,6 @@
|
||||
#include "libssh2_priv.h"
|
||||
#include "packet.h"
|
||||
|
||||
|
||||
/*
|
||||
* libssh2_transport_send
|
||||
*
|
||||
|
||||
@@ -54,7 +54,7 @@
|
||||
#include "userauth.h"
|
||||
#include "userauth_kbd_packet.h"
|
||||
|
||||
/* libssh2_userauth_list
|
||||
/* userauth_list
|
||||
*
|
||||
* List authentication methods
|
||||
* Will yield successful login if "none" happens to be allowable for this user
|
||||
@@ -1037,7 +1037,7 @@ userauth_hostbased_fromfile(LIBSSH2_SESSION *session,
|
||||
&pubkeydata, &pubkeydata_len,
|
||||
privatekey, passphrase);
|
||||
if(rc)
|
||||
/* libssh2_pub_priv_keyfile calls _libssh2_error() */
|
||||
/* libssh2_pub_priv_keyfile() calls _libssh2_error() */
|
||||
return rc;
|
||||
}
|
||||
|
||||
@@ -1798,10 +1798,10 @@ _libssh2_userauth_publickey(LIBSSH2_SESSION *session,
|
||||
"username/public key combination");
|
||||
}
|
||||
|
||||
/*
|
||||
* userauth_publickey_frommemory
|
||||
* Authenticate using a keypair from memory
|
||||
*/
|
||||
/*
|
||||
* userauth_publickey_frommemory
|
||||
* Authenticate using a keypair from memory
|
||||
*/
|
||||
static int
|
||||
userauth_publickey_frommemory(LIBSSH2_SESSION *session,
|
||||
const char *username,
|
||||
@@ -2282,7 +2282,9 @@ libssh2_userauth_keyboard_interactive_ex(LIBSSH2_SESSION *session,
|
||||
return rc;
|
||||
}
|
||||
|
||||
/* libssh2_userauth_publickey_sk
|
||||
/*
|
||||
* libssh2_userauth_publickey_sk
|
||||
*
|
||||
* Authenticate using an external callback function
|
||||
*/
|
||||
LIBSSH2_API int
|
||||
|
||||
@@ -45,7 +45,7 @@ _libssh2_userauth_publickey(LIBSSH2_SESSION *session,
|
||||
const unsigned char *pubkeydata,
|
||||
size_t pubkeydata_len,
|
||||
LIBSSH2_USERAUTH_PUBLICKEY_SIGN_FUNC
|
||||
((*sign_callback)),
|
||||
((*sign_callback)),
|
||||
void *abstract);
|
||||
|
||||
#endif /* __LIBSSH2_USERAUTH_H */
|
||||
|
||||
@@ -40,9 +40,9 @@
|
||||
/*
|
||||
libssh2_version() can be used like this:
|
||||
|
||||
if (!libssh2_version(LIBSSH2_VERSION_NUM)) {
|
||||
fprintf (stderr, "Runtime libssh2 version too old!\n");
|
||||
exit(1);
|
||||
if(!libssh2_version(LIBSSH2_VERSION_NUM)) {
|
||||
fprintf(stderr, "Runtime libssh2 version too old!\n");
|
||||
exit(1);
|
||||
}
|
||||
*/
|
||||
LIBSSH2_API
|
||||
|
||||
@@ -2447,7 +2447,7 @@ _libssh2_dh_key_pair(_libssh2_dh_ctx *dhctx, _libssh2_bn *public,
|
||||
/* Pass ownership to dhctx; these parameters will be freed when
|
||||
* the context is destroyed. We need to keep the parameters more
|
||||
* easily available so that we have access to the `g` value when
|
||||
* _libssh2_dh_secret is called later. */
|
||||
* _libssh2_dh_secret() is called later. */
|
||||
dhctx->dh_params = dh_params;
|
||||
}
|
||||
dh_params = NULL;
|
||||
|
||||
221
src/wincng.h
221
src/wincng.h
@@ -122,12 +122,12 @@ void _libssh2_wincng_init(void);
|
||||
void _libssh2_wincng_free(void);
|
||||
|
||||
#define libssh2_crypto_init() \
|
||||
_libssh2_wincng_init()
|
||||
_libssh2_wincng_init()
|
||||
#define libssh2_crypto_exit() \
|
||||
_libssh2_wincng_free()
|
||||
_libssh2_wincng_free()
|
||||
|
||||
#define _libssh2_random(buf, len) \
|
||||
_libssh2_wincng_random(buf, len)
|
||||
_libssh2_wincng_random(buf, len)
|
||||
|
||||
#define libssh2_prepare_iovec(vec, len) /* Empty. */
|
||||
|
||||
@@ -150,68 +150,73 @@ typedef struct __libssh2_wincng_hash_ctx {
|
||||
|
||||
#define libssh2_sha1_ctx _libssh2_wincng_hash_ctx
|
||||
#define libssh2_sha1_init(ctx) \
|
||||
(_libssh2_wincng_hash_init(ctx, _libssh2_wincng.hAlgHashSHA1, \
|
||||
SHA_DIGEST_LENGTH, NULL, 0) == 0)
|
||||
(_libssh2_wincng_hash_init(ctx, _libssh2_wincng.hAlgHashSHA1, \
|
||||
SHA_DIGEST_LENGTH, NULL, 0) == 0)
|
||||
#define libssh2_sha1_update(ctx, data, datalen) \
|
||||
_libssh2_wincng_hash_update(&ctx, (const unsigned char *) data, \
|
||||
(unsigned long) datalen)
|
||||
_libssh2_wincng_hash_update(&ctx, \
|
||||
(const unsigned char *) data, \
|
||||
(unsigned long) datalen)
|
||||
#define libssh2_sha1_final(ctx, hash) \
|
||||
_libssh2_wincng_hash_final(&ctx, hash)
|
||||
_libssh2_wincng_hash_final(&ctx, hash)
|
||||
#define libssh2_sha1(data, datalen, hash) \
|
||||
_libssh2_wincng_hash(data, datalen, _libssh2_wincng.hAlgHashSHA1, \
|
||||
hash, SHA_DIGEST_LENGTH)
|
||||
_libssh2_wincng_hash(data, datalen, _libssh2_wincng.hAlgHashSHA1, \
|
||||
hash, SHA_DIGEST_LENGTH)
|
||||
|
||||
#define libssh2_sha256_ctx _libssh2_wincng_hash_ctx
|
||||
#define libssh2_sha256_init(ctx) \
|
||||
(_libssh2_wincng_hash_init(ctx, _libssh2_wincng.hAlgHashSHA256, \
|
||||
SHA256_DIGEST_LENGTH, NULL, 0) == 0)
|
||||
(_libssh2_wincng_hash_init(ctx, _libssh2_wincng.hAlgHashSHA256, \
|
||||
SHA256_DIGEST_LENGTH, NULL, 0) == 0)
|
||||
#define libssh2_sha256_update(ctx, data, datalen) \
|
||||
_libssh2_wincng_hash_update(&ctx, (const unsigned char *) data, \
|
||||
(unsigned long) datalen)
|
||||
_libssh2_wincng_hash_update(&ctx, \
|
||||
(const unsigned char *) data, \
|
||||
(unsigned long) datalen)
|
||||
#define libssh2_sha256_final(ctx, hash) \
|
||||
_libssh2_wincng_hash_final(&ctx, hash)
|
||||
_libssh2_wincng_hash_final(&ctx, hash)
|
||||
#define libssh2_sha256(data, datalen, hash) \
|
||||
_libssh2_wincng_hash(data, datalen, _libssh2_wincng.hAlgHashSHA256, \
|
||||
hash, SHA256_DIGEST_LENGTH)
|
||||
_libssh2_wincng_hash(data, datalen, _libssh2_wincng.hAlgHashSHA256, \
|
||||
hash, SHA256_DIGEST_LENGTH)
|
||||
|
||||
#define libssh2_sha384_ctx _libssh2_wincng_hash_ctx
|
||||
#define libssh2_sha384_init(ctx) \
|
||||
(_libssh2_wincng_hash_init(ctx, _libssh2_wincng.hAlgHashSHA384, \
|
||||
SHA384_DIGEST_LENGTH, NULL, 0) == 0)
|
||||
(_libssh2_wincng_hash_init(ctx, _libssh2_wincng.hAlgHashSHA384, \
|
||||
SHA384_DIGEST_LENGTH, NULL, 0) == 0)
|
||||
#define libssh2_sha384_update(ctx, data, datalen) \
|
||||
_libssh2_wincng_hash_update(&ctx, (const unsigned char *) data, \
|
||||
(unsigned long) datalen)
|
||||
_libssh2_wincng_hash_update(&ctx, \
|
||||
(const unsigned char *) data, \
|
||||
(unsigned long) datalen)
|
||||
#define libssh2_sha384_final(ctx, hash) \
|
||||
_libssh2_wincng_hash_final(&ctx, hash)
|
||||
_libssh2_wincng_hash_final(&ctx, hash)
|
||||
#define libssh2_sha384(data, datalen, hash) \
|
||||
_libssh2_wincng_hash(data, datalen, _libssh2_wincng.hAlgHashSHA384, \
|
||||
hash, SHA384_DIGEST_LENGTH)
|
||||
_libssh2_wincng_hash(data, datalen, _libssh2_wincng.hAlgHashSHA384, \
|
||||
hash, SHA384_DIGEST_LENGTH)
|
||||
|
||||
#define libssh2_sha512_ctx _libssh2_wincng_hash_ctx
|
||||
#define libssh2_sha512_init(ctx) \
|
||||
(_libssh2_wincng_hash_init(ctx, _libssh2_wincng.hAlgHashSHA512, \
|
||||
SHA512_DIGEST_LENGTH, NULL, 0) == 0)
|
||||
(_libssh2_wincng_hash_init(ctx, _libssh2_wincng.hAlgHashSHA512, \
|
||||
SHA512_DIGEST_LENGTH, NULL, 0) == 0)
|
||||
#define libssh2_sha512_update(ctx, data, datalen) \
|
||||
_libssh2_wincng_hash_update(&ctx, (const unsigned char *) data, \
|
||||
(unsigned long) datalen)
|
||||
_libssh2_wincng_hash_update(&ctx, \
|
||||
(const unsigned char *) data, \
|
||||
(unsigned long) datalen)
|
||||
#define libssh2_sha512_final(ctx, hash) \
|
||||
_libssh2_wincng_hash_final(&ctx, hash)
|
||||
_libssh2_wincng_hash_final(&ctx, hash)
|
||||
#define libssh2_sha512(data, datalen, hash) \
|
||||
_libssh2_wincng_hash(data, datalen, _libssh2_wincng.hAlgHashSHA512, \
|
||||
hash, SHA512_DIGEST_LENGTH)
|
||||
_libssh2_wincng_hash(data, datalen, _libssh2_wincng.hAlgHashSHA512, \
|
||||
hash, SHA512_DIGEST_LENGTH)
|
||||
|
||||
#define libssh2_md5_ctx _libssh2_wincng_hash_ctx
|
||||
#define libssh2_md5_init(ctx) \
|
||||
(_libssh2_wincng_hash_init(ctx, _libssh2_wincng.hAlgHashMD5, \
|
||||
MD5_DIGEST_LENGTH, NULL, 0) == 0)
|
||||
(_libssh2_wincng_hash_init(ctx, _libssh2_wincng.hAlgHashMD5, \
|
||||
MD5_DIGEST_LENGTH, NULL, 0) == 0)
|
||||
#define libssh2_md5_update(ctx, data, datalen) \
|
||||
_libssh2_wincng_hash_update(&ctx, (const unsigned char *) data, \
|
||||
(unsigned long) datalen)
|
||||
_libssh2_wincng_hash_update(&ctx, \
|
||||
(const unsigned char *) data, \
|
||||
(unsigned long) datalen)
|
||||
#define libssh2_md5_final(ctx, hash) \
|
||||
_libssh2_wincng_hash_final(&ctx, hash)
|
||||
_libssh2_wincng_hash_final(&ctx, hash)
|
||||
#define libssh2_md5(data, datalen, hash) \
|
||||
_libssh2_wincng_hash(data, datalen, _libssh2_wincng.hAlgHashMD5, \
|
||||
hash, MD5_DIGEST_LENGTH)
|
||||
_libssh2_wincng_hash(data, datalen, _libssh2_wincng.hAlgHashMD5, \
|
||||
hash, MD5_DIGEST_LENGTH)
|
||||
|
||||
/*
|
||||
* Windows CNG backend: HMAC functions
|
||||
@@ -220,30 +225,30 @@ typedef struct __libssh2_wincng_hash_ctx {
|
||||
#define libssh2_hmac_ctx _libssh2_wincng_hash_ctx
|
||||
#define libssh2_hmac_ctx_init(ctx)
|
||||
#define libssh2_hmac_sha1_init(ctx, key, keylen) \
|
||||
_libssh2_wincng_hash_init(ctx, _libssh2_wincng.hAlgHmacSHA1, \
|
||||
SHA_DIGEST_LENGTH, \
|
||||
key, (unsigned long) keylen)
|
||||
_libssh2_wincng_hash_init(ctx, _libssh2_wincng.hAlgHmacSHA1, \
|
||||
SHA_DIGEST_LENGTH, \
|
||||
key, (unsigned long) keylen)
|
||||
#define libssh2_hmac_md5_init(ctx, key, keylen) \
|
||||
_libssh2_wincng_hash_init(ctx, _libssh2_wincng.hAlgHmacMD5, \
|
||||
MD5_DIGEST_LENGTH, \
|
||||
key, (unsigned long) keylen)
|
||||
_libssh2_wincng_hash_init(ctx, _libssh2_wincng.hAlgHmacMD5, \
|
||||
MD5_DIGEST_LENGTH, \
|
||||
key, (unsigned long) keylen)
|
||||
#define libssh2_hmac_ripemd160_init(ctx, key, keylen)
|
||||
/* not implemented */
|
||||
/* not implemented */
|
||||
#define libssh2_hmac_sha256_init(ctx, key, keylen) \
|
||||
_libssh2_wincng_hash_init(ctx, _libssh2_wincng.hAlgHmacSHA256, \
|
||||
SHA256_DIGEST_LENGTH, \
|
||||
key, (unsigned long) keylen)
|
||||
_libssh2_wincng_hash_init(ctx, _libssh2_wincng.hAlgHmacSHA256, \
|
||||
SHA256_DIGEST_LENGTH, \
|
||||
key, (unsigned long) keylen)
|
||||
#define libssh2_hmac_sha512_init(ctx, key, keylen) \
|
||||
_libssh2_wincng_hash_init(ctx, _libssh2_wincng.hAlgHmacSHA512, \
|
||||
SHA512_DIGEST_LENGTH, \
|
||||
key, (unsigned long) keylen)
|
||||
_libssh2_wincng_hash_init(ctx, _libssh2_wincng.hAlgHmacSHA512, \
|
||||
SHA512_DIGEST_LENGTH, \
|
||||
key, (unsigned long) keylen)
|
||||
#define libssh2_hmac_update(ctx, data, datalen) \
|
||||
_libssh2_wincng_hash_update(&ctx, (const unsigned char *) data, \
|
||||
(unsigned long) datalen)
|
||||
_libssh2_wincng_hash_update(&ctx, (const unsigned char *) data, \
|
||||
(unsigned long) datalen)
|
||||
#define libssh2_hmac_final(ctx, hash) \
|
||||
_libssh2_wincng_hmac_final(&ctx, hash)
|
||||
_libssh2_wincng_hmac_final(&ctx, hash)
|
||||
#define libssh2_hmac_cleanup(ctx) \
|
||||
_libssh2_wincng_hmac_cleanup(ctx)
|
||||
_libssh2_wincng_hmac_cleanup(ctx)
|
||||
|
||||
|
||||
/*******************************************************************/
|
||||
@@ -266,25 +271,25 @@ typedef struct __libssh2_wincng_key_ctx {
|
||||
#define _libssh2_rsa_new(rsactx, e, e_len, n, n_len, \
|
||||
d, d_len, p, p_len, q, q_len, \
|
||||
e1, e1_len, e2, e2_len, c, c_len) \
|
||||
_libssh2_wincng_rsa_new(rsactx, e, e_len, n, n_len, \
|
||||
d, d_len, p, p_len, q, q_len, \
|
||||
e1, e1_len, e2, e2_len, c, c_len)
|
||||
_libssh2_wincng_rsa_new(rsactx, e, e_len, n, n_len, \
|
||||
d, d_len, p, p_len, q, q_len, \
|
||||
e1, e1_len, e2, e2_len, c, c_len)
|
||||
#define _libssh2_rsa_new_private(rsactx, s, filename, passphrase) \
|
||||
_libssh2_wincng_rsa_new_private(rsactx, s, filename, passphrase)
|
||||
_libssh2_wincng_rsa_new_private(rsactx, s, filename, passphrase)
|
||||
#define _libssh2_rsa_new_private_frommemory(rsactx, s, filedata, \
|
||||
filedata_len, passphrase) \
|
||||
_libssh2_wincng_rsa_new_private_frommemory(rsactx, s, filedata, \
|
||||
filedata_len, passphrase)
|
||||
_libssh2_wincng_rsa_new_private_frommemory(rsactx, s, filedata, \
|
||||
filedata_len, passphrase)
|
||||
#define _libssh2_rsa_sha1_sign(s, rsactx, hash, hash_len, sig, sig_len) \
|
||||
_libssh2_wincng_rsa_sha_sign(s, rsactx, hash, hash_len, sig, sig_len)
|
||||
_libssh2_wincng_rsa_sha_sign(s, rsactx, hash, hash_len, sig, sig_len)
|
||||
#define _libssh2_rsa_sha2_sign(s, rsactx, hash, hash_len, sig, sig_len) \
|
||||
_libssh2_wincng_rsa_sha_sign(s, rsactx, hash, hash_len, sig, sig_len)
|
||||
_libssh2_wincng_rsa_sha_sign(s, rsactx, hash, hash_len, sig, sig_len)
|
||||
#define _libssh2_rsa_sha1_verify(rsactx, sig, sig_len, m, m_len) \
|
||||
_libssh2_wincng_rsa_sha1_verify(rsactx, sig, sig_len, m, m_len)
|
||||
_libssh2_wincng_rsa_sha1_verify(rsactx, sig, sig_len, m, m_len)
|
||||
#define _libssh2_rsa_sha2_verify(rsactx, hash_len, sig, sig_len, m, m_len) \
|
||||
_libssh2_wincng_rsa_sha2_verify(rsactx, hash_len, sig, sig_len, m, m_len)
|
||||
_libssh2_wincng_rsa_sha2_verify(rsactx, hash_len, sig, sig_len, m, m_len)
|
||||
#define _libssh2_rsa_free(rsactx) \
|
||||
_libssh2_wincng_rsa_free(rsactx)
|
||||
_libssh2_wincng_rsa_free(rsactx)
|
||||
|
||||
/*
|
||||
* Windows CNG backend: DSA functions
|
||||
@@ -293,35 +298,35 @@ typedef struct __libssh2_wincng_key_ctx {
|
||||
#define libssh2_dsa_ctx _libssh2_wincng_key_ctx
|
||||
#define _libssh2_dsa_new(dsactx, p, p_len, q, q_len, \
|
||||
g, g_len, y, y_len, x, x_len) \
|
||||
_libssh2_wincng_dsa_new(dsactx, p, p_len, q, q_len, \
|
||||
g, g_len, y, y_len, x, x_len)
|
||||
_libssh2_wincng_dsa_new(dsactx, p, p_len, q, q_len, \
|
||||
g, g_len, y, y_len, x, x_len)
|
||||
#define _libssh2_dsa_new_private(dsactx, s, filename, passphrase) \
|
||||
_libssh2_wincng_dsa_new_private(dsactx, s, filename, passphrase)
|
||||
_libssh2_wincng_dsa_new_private(dsactx, s, filename, passphrase)
|
||||
#define _libssh2_dsa_new_private_frommemory(dsactx, s, filedata, \
|
||||
filedata_len, passphrase) \
|
||||
_libssh2_wincng_dsa_new_private_frommemory(dsactx, s, filedata, \
|
||||
filedata_len, passphrase)
|
||||
_libssh2_wincng_dsa_new_private_frommemory(dsactx, s, filedata, \
|
||||
filedata_len, passphrase)
|
||||
#define _libssh2_dsa_sha1_sign(dsactx, hash, hash_len, sig) \
|
||||
_libssh2_wincng_dsa_sha1_sign(dsactx, hash, hash_len, sig)
|
||||
_libssh2_wincng_dsa_sha1_sign(dsactx, hash, hash_len, sig)
|
||||
#define _libssh2_dsa_sha1_verify(dsactx, sig, m, m_len) \
|
||||
_libssh2_wincng_dsa_sha1_verify(dsactx, sig, m, m_len)
|
||||
_libssh2_wincng_dsa_sha1_verify(dsactx, sig, m, m_len)
|
||||
#define _libssh2_dsa_free(dsactx) \
|
||||
_libssh2_wincng_dsa_free(dsactx)
|
||||
_libssh2_wincng_dsa_free(dsactx)
|
||||
|
||||
/*
|
||||
* Windows CNG backend: Key functions
|
||||
*/
|
||||
|
||||
#define _libssh2_pub_priv_keyfile(s, m, m_len, p, p_len, pk, pw) \
|
||||
_libssh2_wincng_pub_priv_keyfile(s, m, m_len, p, p_len, pk, pw)
|
||||
_libssh2_wincng_pub_priv_keyfile(s, m, m_len, p, p_len, pk, pw)
|
||||
#define _libssh2_pub_priv_keyfilememory(s, m, m_len, p, p_len, \
|
||||
pk, pk_len, pw) \
|
||||
_libssh2_wincng_pub_priv_keyfilememory(s, m, m_len, p, p_len, \
|
||||
pk, pk_len, pw)
|
||||
pk, pk_len, pw) \
|
||||
_libssh2_wincng_pub_priv_keyfilememory(s, m, m_len, p, p_len, \
|
||||
pk, pk_len, pw)
|
||||
#define _libssh2_sk_pub_keyfilememory(s, m, m_len, p, p_len, alg, app, \
|
||||
f, kh, kh_len, pk, pk_len, pw) \
|
||||
_libssh2_wincng_sk_pub_keyfilememory(s, m, m_len, p, p_len, alg, app, \
|
||||
f, kh, kh_len, pk, pk_len, pw)
|
||||
_libssh2_wincng_sk_pub_keyfilememory(s, m, m_len, p, p_len, alg, app, \
|
||||
f, kh, kh_len, pk, pk_len, pw)
|
||||
|
||||
/*******************************************************************/
|
||||
/*
|
||||
@@ -358,22 +363,22 @@ struct _libssh2_wincng_cipher_type {
|
||||
#define _libssh2_cipher_aes256ctr { &_libssh2_wincng.hAlgAES_ECB, 32, 0, 1 }
|
||||
#define _libssh2_cipher_aes192ctr { &_libssh2_wincng.hAlgAES_ECB, 24, 0, 1 }
|
||||
#define _libssh2_cipher_aes128ctr { &_libssh2_wincng.hAlgAES_ECB, 16, 0, 1 }
|
||||
#define _libssh2_cipher_aes256 { &_libssh2_wincng.hAlgAES_CBC, 32, 1, 0 }
|
||||
#define _libssh2_cipher_aes192 { &_libssh2_wincng.hAlgAES_CBC, 24, 1, 0 }
|
||||
#define _libssh2_cipher_aes128 { &_libssh2_wincng.hAlgAES_CBC, 16, 1, 0 }
|
||||
#define _libssh2_cipher_arcfour { &_libssh2_wincng.hAlgRC4_NA, 16, 0, 0 }
|
||||
#define _libssh2_cipher_3des { &_libssh2_wincng.hAlg3DES_CBC, 24, 1, 0 }
|
||||
#define _libssh2_cipher_aes256 { &_libssh2_wincng.hAlgAES_CBC, 32, 1, 0 }
|
||||
#define _libssh2_cipher_aes192 { &_libssh2_wincng.hAlgAES_CBC, 24, 1, 0 }
|
||||
#define _libssh2_cipher_aes128 { &_libssh2_wincng.hAlgAES_CBC, 16, 1, 0 }
|
||||
#define _libssh2_cipher_arcfour { &_libssh2_wincng.hAlgRC4_NA, 16, 0, 0 }
|
||||
#define _libssh2_cipher_3des { &_libssh2_wincng.hAlg3DES_CBC, 24, 1, 0 }
|
||||
|
||||
/*
|
||||
* Windows CNG backend: Cipher functions
|
||||
*/
|
||||
|
||||
#define _libssh2_cipher_init(ctx, type, iv, secret, encrypt) \
|
||||
_libssh2_wincng_cipher_init(ctx, type, iv, secret, encrypt)
|
||||
_libssh2_wincng_cipher_init(ctx, type, iv, secret, encrypt)
|
||||
#define _libssh2_cipher_crypt(ctx, type, encrypt, block, blocklen) \
|
||||
_libssh2_wincng_cipher_crypt(ctx, type, encrypt, block, blocklen)
|
||||
_libssh2_wincng_cipher_crypt(ctx, type, encrypt, block, blocklen)
|
||||
#define _libssh2_cipher_dtor(ctx) \
|
||||
_libssh2_wincng_cipher_dtor(ctx)
|
||||
_libssh2_wincng_cipher_dtor(ctx)
|
||||
|
||||
/*******************************************************************/
|
||||
/*
|
||||
@@ -404,20 +409,20 @@ struct _libssh2_wincng_bignum {
|
||||
_libssh2_bn *_libssh2_wincng_bignum_init(void);
|
||||
|
||||
#define _libssh2_bn_init() \
|
||||
_libssh2_wincng_bignum_init()
|
||||
_libssh2_wincng_bignum_init()
|
||||
#define _libssh2_bn_init_from_bin() \
|
||||
_libssh2_bn_init()
|
||||
_libssh2_bn_init()
|
||||
#define _libssh2_bn_set_word(bn, word) \
|
||||
_libssh2_wincng_bignum_set_word(bn, word)
|
||||
_libssh2_wincng_bignum_set_word(bn, word)
|
||||
#define _libssh2_bn_from_bin(bn, len, bin) \
|
||||
_libssh2_wincng_bignum_from_bin(bn, (unsigned long) len, bin)
|
||||
_libssh2_wincng_bignum_from_bin(bn, (unsigned long) len, bin)
|
||||
#define _libssh2_bn_to_bin(bn, bin) \
|
||||
_libssh2_wincng_bignum_to_bin(bn, bin)
|
||||
_libssh2_wincng_bignum_to_bin(bn, bin)
|
||||
#define _libssh2_bn_bytes(bn) bn->length
|
||||
#define _libssh2_bn_bits(bn) \
|
||||
_libssh2_wincng_bignum_bits(bn)
|
||||
_libssh2_wincng_bignum_bits(bn)
|
||||
#define _libssh2_bn_free(bn) \
|
||||
_libssh2_wincng_bignum_free(bn)
|
||||
_libssh2_wincng_bignum_free(bn)
|
||||
|
||||
/*
|
||||
* Windows CNG backend: Diffie-Hellman support
|
||||
@@ -444,9 +449,9 @@ typedef struct {
|
||||
|
||||
#define libssh2_dh_init(dhctx) _libssh2_dh_init(dhctx)
|
||||
#define libssh2_dh_key_pair(dhctx, public, g, p, group_order, bnctx) \
|
||||
_libssh2_dh_key_pair(dhctx, public, g, p, group_order)
|
||||
_libssh2_dh_key_pair(dhctx, public, g, p, group_order)
|
||||
#define libssh2_dh_secret(dhctx, secret, f, p, bnctx) \
|
||||
_libssh2_dh_secret(dhctx, secret, f, p)
|
||||
_libssh2_dh_secret(dhctx, secret, f, p)
|
||||
#define libssh2_dh_dtor(dhctx) _libssh2_dh_dtor(dhctx)
|
||||
|
||||
/*******************************************************************/
|
||||
@@ -480,12 +485,12 @@ _libssh2_wincng_hmac_cleanup(_libssh2_wincng_hash_ctx *ctx);
|
||||
|
||||
int
|
||||
_libssh2_wincng_key_sha_verify(_libssh2_wincng_key_ctx *ctx,
|
||||
unsigned long hashlen,
|
||||
const unsigned char *sig,
|
||||
unsigned long sig_len,
|
||||
const unsigned char *m,
|
||||
unsigned long m_len,
|
||||
unsigned long flags);
|
||||
unsigned long hashlen,
|
||||
const unsigned char *sig,
|
||||
unsigned long sig_len,
|
||||
const unsigned char *m,
|
||||
unsigned long m_len,
|
||||
unsigned long flags);
|
||||
|
||||
int
|
||||
_libssh2_wincng_rsa_new(libssh2_rsa_ctx **rsa,
|
||||
@@ -524,11 +529,11 @@ _libssh2_wincng_rsa_sha1_verify(libssh2_rsa_ctx *rsa,
|
||||
size_t m_len);
|
||||
int
|
||||
_libssh2_wincng_rsa_sha_sign(LIBSSH2_SESSION *session,
|
||||
libssh2_rsa_ctx *rsa,
|
||||
const unsigned char *hash,
|
||||
size_t hash_len,
|
||||
unsigned char **signature,
|
||||
size_t *signature_len);
|
||||
libssh2_rsa_ctx *rsa,
|
||||
const unsigned char *hash,
|
||||
size_t hash_len,
|
||||
unsigned char **signature,
|
||||
size_t *signature_len);
|
||||
void
|
||||
_libssh2_wincng_rsa_free(libssh2_rsa_ctx *rsa);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user