Skip to content

Commit 69df9c0

Browse files
author
Panos
committed
Removing embedded lib
1 parent acc7c25 commit 69df9c0

File tree

7 files changed

+138
-149
lines changed

7 files changed

+138
-149
lines changed

setup.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,6 @@
4747
# _comp_args = ["-ggdb"]
4848
_fwd_default = 0
4949
_comp_args = ["-O2"] if not ON_WINDOWS else None
50-
_embedded_lib = bool(int(os.environ.get('EMBEDDED_LIB', 1)))
5150
_have_agent_fwd = bool(int(os.environ.get('HAVE_AGENT_FWD', _fwd_default)))
5251

5352
cython_directives = {'embedsignature': True,
@@ -59,7 +58,6 @@
5958
cython_args = {
6059
'cython_directives': cython_directives,
6160
'cython_compile_time_env': {
62-
'EMBEDDED_LIB': _embedded_lib,
6361
'HAVE_AGENT_FWD': _have_agent_fwd,
6462
}} \
6563
if USING_CYTHON else {}

ssh2/c_ssh2.pxd

Lines changed: 20 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -39,23 +39,21 @@ cdef extern from "libssh2.h" nogil:
3939
LIBSSH2_HOSTKEY_TYPE_UNKNOWN
4040
LIBSSH2_HOSTKEY_TYPE_RSA
4141
LIBSSH2_HOSTKEY_TYPE_DSS
42-
IF EMBEDDED_LIB:
43-
enum:
44-
LIBSSH2_HOSTKEY_HASH_SHA256
45-
LIBSSH2_HOSTKEY_TYPE_ECDSA_256
46-
LIBSSH2_HOSTKEY_TYPE_ECDSA_384
47-
LIBSSH2_HOSTKEY_TYPE_ECDSA_521
48-
LIBSSH2_HOSTKEY_TYPE_ED25519
49-
LIBSSH2_METHOD_KEX
50-
LIBSSH2_METHOD_HOSTKEY
51-
LIBSSH2_METHOD_CRYPT_CS
52-
LIBSSH2_METHOD_CRYPT_SC
53-
LIBSSH2_METHOD_MAC_CS
54-
LIBSSH2_METHOD_MAC_SC
55-
LIBSSH2_METHOD_COMP_CS
56-
LIBSSH2_METHOD_COMP_SC
57-
LIBSSH2_METHOD_LANG_CS
58-
LIBSSH2_METHOD_LANG_SC
42+
LIBSSH2_HOSTKEY_HASH_SHA256
43+
LIBSSH2_HOSTKEY_TYPE_ECDSA_256
44+
LIBSSH2_HOSTKEY_TYPE_ECDSA_384
45+
LIBSSH2_HOSTKEY_TYPE_ECDSA_521
46+
LIBSSH2_HOSTKEY_TYPE_ED25519
47+
LIBSSH2_METHOD_KEX
48+
LIBSSH2_METHOD_HOSTKEY
49+
LIBSSH2_METHOD_CRYPT_CS
50+
LIBSSH2_METHOD_CRYPT_SC
51+
LIBSSH2_METHOD_MAC_CS
52+
LIBSSH2_METHOD_MAC_SC
53+
LIBSSH2_METHOD_COMP_CS
54+
LIBSSH2_METHOD_COMP_SC
55+
LIBSSH2_METHOD_LANG_CS
56+
LIBSSH2_METHOD_LANG_SC
5957

6058
# ctypedef libssh2_uint64_t libssh2_struct_stat_size
6159
ctypedef struct libssh2_struct_stat:
@@ -436,13 +434,11 @@ cdef extern from "libssh2.h" nogil:
436434
LIBSSH2_KNOWNHOST_KEY_RSA1
437435
LIBSSH2_KNOWNHOST_KEY_SSHRSA
438436
LIBSSH2_KNOWNHOST_KEY_SSHDSS
439-
IF EMBEDDED_LIB:
440-
enum:
441-
LIBSSH2_KNOWNHOST_KEY_ECDSA_256
442-
LIBSSH2_KNOWNHOST_KEY_ECDSA_384
443-
LIBSSH2_KNOWNHOST_KEY_ECDSA_521
444-
LIBSSH2_KNOWNHOST_KEY_ED25519
445-
LIBSSH2_KNOWNHOST_KEY_UNKNOWN
437+
LIBSSH2_KNOWNHOST_KEY_ECDSA_256
438+
LIBSSH2_KNOWNHOST_KEY_ECDSA_384
439+
LIBSSH2_KNOWNHOST_KEY_ECDSA_521
440+
LIBSSH2_KNOWNHOST_KEY_ED25519
441+
LIBSSH2_KNOWNHOST_KEY_UNKNOWN
446442

447443
# Public Key API
448444
struct libssh2_agent_publickey:

ssh2/error_codes.pyx

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -72,13 +72,11 @@ LIBSSH2_ERROR_AGENT_PROTOCOL = error_codes._LIBSSH2_ERROR_AGENT_PROTOCOL
7272
LIBSSH2_ERROR_SOCKET_RECV = error_codes._LIBSSH2_ERROR_SOCKET_RECV
7373
LIBSSH2_ERROR_ENCRYPT = error_codes._LIBSSH2_ERROR_ENCRYPT
7474
LIBSSH2_ERROR_BAD_SOCKET = error_codes._LIBSSH2_ERROR_BAD_SOCKET
75-
IF EMBEDDED_LIB:
76-
LIBSSH2_ERROR_INVALID_MAC = error_codes._LIBSSH2_ERROR_INVALID_MAC
77-
LIBSSH2_ERROR_KEX_FAILURE = error_codes._LIBSSH2_ERROR_KEX_FAILURE
78-
LIBSSH2_ERROR_ALLOC = error_codes._LIBSSH2_ERROR_ALLOC
79-
80-
LIBSSH2_ERROR_KNOWN_HOSTS = error_codes._LIBSSH2_ERROR_KNOWN_HOSTS
81-
LIBSSH2_ERROR_CHANNEL_WINDOW_FULL = \
82-
error_codes._LIBSSH2_ERROR_CHANNEL_WINDOW_FULL
83-
LIBSSH2_ERROR_KEYFILE_AUTH_FAILED = \
84-
error_codes._LIBSSH2_ERROR_KEYFILE_AUTH_FAILED
75+
LIBSSH2_ERROR_INVALID_MAC = error_codes._LIBSSH2_ERROR_INVALID_MAC
76+
LIBSSH2_ERROR_KEX_FAILURE = error_codes._LIBSSH2_ERROR_KEX_FAILURE
77+
LIBSSH2_ERROR_ALLOC = error_codes._LIBSSH2_ERROR_ALLOC
78+
LIBSSH2_ERROR_KNOWN_HOSTS = error_codes._LIBSSH2_ERROR_KNOWN_HOSTS
79+
LIBSSH2_ERROR_CHANNEL_WINDOW_FULL = \
80+
error_codes._LIBSSH2_ERROR_CHANNEL_WINDOW_FULL
81+
LIBSSH2_ERROR_KEYFILE_AUTH_FAILED = \
82+
error_codes._LIBSSH2_ERROR_KEYFILE_AUTH_FAILED

ssh2/fileinfo.pxd

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616

1717
cimport c_ssh2
1818

19-
IF EMBEDDED_LIB:
20-
cdef class FileInfo:
21-
"""Representation of stat structure"""
22-
cdef c_ssh2.libssh2_struct_stat* _stat
19+
cdef class FileInfo:
20+
"""Representation of stat structure"""
21+
cdef c_ssh2.libssh2_struct_stat* _stat

ssh2/knownhost.pyx

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -45,12 +45,11 @@ LIBSSH2_KNOWNHOST_KEY_SHIFT = c_ssh2.LIBSSH2_KNOWNHOST_KEY_SHIFT
4545
LIBSSH2_KNOWNHOST_KEY_RSA1 = c_ssh2.LIBSSH2_KNOWNHOST_KEY_RSA1
4646
LIBSSH2_KNOWNHOST_KEY_SSHRSA = c_ssh2.LIBSSH2_KNOWNHOST_KEY_SSHRSA
4747
LIBSSH2_KNOWNHOST_KEY_SSHDSS = c_ssh2.LIBSSH2_KNOWNHOST_KEY_SSHDSS
48-
IF EMBEDDED_LIB:
49-
LIBSSH2_KNOWNHOST_KEY_ECDSA_256 = c_ssh2.LIBSSH2_KNOWNHOST_KEY_ECDSA_256
50-
LIBSSH2_KNOWNHOST_KEY_ECDSA_384 = c_ssh2.LIBSSH2_KNOWNHOST_KEY_ECDSA_384
51-
LIBSSH2_KNOWNHOST_KEY_ECDSA_521 = c_ssh2.LIBSSH2_KNOWNHOST_KEY_ECDSA_521
52-
LIBSSH2_KNOWNHOST_KEY_ED25519 = c_ssh2.LIBSSH2_KNOWNHOST_KEY_ED25519
53-
LIBSSH2_KNOWNHOST_KEY_UNKNOWN = c_ssh2.LIBSSH2_KNOWNHOST_KEY_UNKNOWN
48+
LIBSSH2_KNOWNHOST_KEY_ECDSA_256 = c_ssh2.LIBSSH2_KNOWNHOST_KEY_ECDSA_256
49+
LIBSSH2_KNOWNHOST_KEY_ECDSA_384 = c_ssh2.LIBSSH2_KNOWNHOST_KEY_ECDSA_384
50+
LIBSSH2_KNOWNHOST_KEY_ECDSA_521 = c_ssh2.LIBSSH2_KNOWNHOST_KEY_ECDSA_521
51+
LIBSSH2_KNOWNHOST_KEY_ED25519 = c_ssh2.LIBSSH2_KNOWNHOST_KEY_ED25519
52+
LIBSSH2_KNOWNHOST_KEY_UNKNOWN = c_ssh2.LIBSSH2_KNOWNHOST_KEY_UNKNOWN
5453

5554

5655
cdef KnownHost PyKnownHost(Session session, c_ssh2.LIBSSH2_KNOWNHOSTS *_ptr):

ssh2/session.pyx

Lines changed: 65 additions & 79 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,7 @@ from publickey cimport PyPublicKeySystem
2929
from utils cimport to_bytes, to_str, handle_error_codes
3030
from statinfo cimport StatInfo
3131
from knownhost cimport PyKnownHost
32-
IF EMBEDDED_LIB:
33-
from fileinfo cimport FileInfo
32+
from fileinfo cimport FileInfo
3433

3534

3635
cimport c_ssh2
@@ -43,20 +42,12 @@ LIBSSH2_SESSION_BLOCK_OUTBOUND = c_ssh2.LIBSSH2_SESSION_BLOCK_OUTBOUND
4342

4443
LIBSSH2_HOSTKEY_HASH_MD5 = c_ssh2.LIBSSH2_HOSTKEY_HASH_MD5
4544
LIBSSH2_HOSTKEY_HASH_SHA1 = c_ssh2.LIBSSH2_HOSTKEY_HASH_SHA1
46-
IF EMBEDDED_LIB:
47-
LIBSSH2_HOSTKEY_HASH_SHA256 = c_ssh2.LIBSSH2_HOSTKEY_HASH_SHA256
48-
LIBSSH2_HOSTKEY_TYPE_ECDSA_256 = c_ssh2.LIBSSH2_HOSTKEY_TYPE_ECDSA_256
49-
LIBSSH2_HOSTKEY_TYPE_ECDSA_384 = c_ssh2.LIBSSH2_HOSTKEY_TYPE_ECDSA_384
50-
LIBSSH2_HOSTKEY_TYPE_ECDSA_521 = c_ssh2.LIBSSH2_HOSTKEY_TYPE_ECDSA_521
51-
LIBSSH2_HOSTKEY_TYPE_ED25519 = c_ssh2.LIBSSH2_HOSTKEY_TYPE_ED25519
52-
ELSE:
53-
LIBSSH2_HOSTKEY_HASH_SHA256 = None
54-
LIBSSH2_HOSTKEY_HASH_SHA256 = None
55-
LIBSSH2_HOSTKEY_TYPE_ECDSA_256 = None
56-
LIBSSH2_HOSTKEY_TYPE_ECDSA_384 = None
57-
LIBSSH2_HOSTKEY_TYPE_ECDSA_521 = None
58-
LIBSSH2_HOSTKEY_TYPE_ED25519 = None
45+
LIBSSH2_HOSTKEY_HASH_SHA256 = c_ssh2.LIBSSH2_HOSTKEY_HASH_SHA256
5946

47+
LIBSSH2_HOSTKEY_TYPE_ECDSA_256 = c_ssh2.LIBSSH2_HOSTKEY_TYPE_ECDSA_256
48+
LIBSSH2_HOSTKEY_TYPE_ECDSA_384 = c_ssh2.LIBSSH2_HOSTKEY_TYPE_ECDSA_384
49+
LIBSSH2_HOSTKEY_TYPE_ECDSA_521 = c_ssh2.LIBSSH2_HOSTKEY_TYPE_ECDSA_521
50+
LIBSSH2_HOSTKEY_TYPE_ED25519 = c_ssh2.LIBSSH2_HOSTKEY_TYPE_ED25519
6051
LIBSSH2_HOSTKEY_TYPE_UNKNOWN = c_ssh2.LIBSSH2_HOSTKEY_TYPE_UNKNOWN
6152
LIBSSH2_HOSTKEY_TYPE_RSA = c_ssh2.LIBSSH2_HOSTKEY_TYPE_RSA
6253
LIBSSH2_HOSTKEY_TYPE_DSS = c_ssh2.LIBSSH2_HOSTKEY_TYPE_DSS
@@ -67,17 +58,16 @@ cdef class MethodType:
6758
self.value = value
6859

6960

70-
IF EMBEDDED_LIB:
71-
LIBSSH2_METHOD_KEX = MethodType(c_ssh2.LIBSSH2_METHOD_KEX)
72-
LIBSSH2_METHOD_HOSTKEY = MethodType(c_ssh2.LIBSSH2_METHOD_HOSTKEY)
73-
LIBSSH2_METHOD_CRYPT_CS = MethodType(c_ssh2.LIBSSH2_METHOD_CRYPT_CS)
74-
LIBSSH2_METHOD_CRYPT_SC = MethodType(c_ssh2.LIBSSH2_METHOD_CRYPT_SC)
75-
LIBSSH2_METHOD_MAC_CS = MethodType(c_ssh2.LIBSSH2_METHOD_MAC_CS)
76-
LIBSSH2_METHOD_MAC_SC = MethodType(c_ssh2.LIBSSH2_METHOD_MAC_SC)
77-
LIBSSH2_METHOD_COMP_CS = MethodType(c_ssh2.LIBSSH2_METHOD_COMP_CS)
78-
LIBSSH2_METHOD_COMP_SC = MethodType(c_ssh2.LIBSSH2_METHOD_COMP_SC)
79-
LIBSSH2_METHOD_LANG_CS = MethodType(c_ssh2.LIBSSH2_METHOD_LANG_CS)
80-
LIBSSH2_METHOD_LANG_SC = MethodType(c_ssh2.LIBSSH2_METHOD_LANG_SC)
61+
LIBSSH2_METHOD_KEX = MethodType(c_ssh2.LIBSSH2_METHOD_KEX)
62+
LIBSSH2_METHOD_HOSTKEY = MethodType(c_ssh2.LIBSSH2_METHOD_HOSTKEY)
63+
LIBSSH2_METHOD_CRYPT_CS = MethodType(c_ssh2.LIBSSH2_METHOD_CRYPT_CS)
64+
LIBSSH2_METHOD_CRYPT_SC = MethodType(c_ssh2.LIBSSH2_METHOD_CRYPT_SC)
65+
LIBSSH2_METHOD_MAC_CS = MethodType(c_ssh2.LIBSSH2_METHOD_MAC_CS)
66+
LIBSSH2_METHOD_MAC_SC = MethodType(c_ssh2.LIBSSH2_METHOD_MAC_SC)
67+
LIBSSH2_METHOD_COMP_CS = MethodType(c_ssh2.LIBSSH2_METHOD_COMP_CS)
68+
LIBSSH2_METHOD_COMP_SC = MethodType(c_ssh2.LIBSSH2_METHOD_COMP_SC)
69+
LIBSSH2_METHOD_LANG_CS = MethodType(c_ssh2.LIBSSH2_METHOD_LANG_CS)
70+
LIBSSH2_METHOD_LANG_SC = MethodType(c_ssh2.LIBSSH2_METHOD_LANG_SC)
8171

8272

8373
cdef void kbd_callback(const char *name, int name_len,
@@ -278,30 +268,29 @@ cdef class Session:
278268
_privatekey, _passphrase, _hostname)
279269
return handle_error_codes(rc)
280270

281-
IF EMBEDDED_LIB:
282-
def userauth_publickey_frommemory(
283-
self, username, bytes privatekeyfiledata,
284-
passphrase='', bytes publickeyfiledata=None):
285-
cdef int rc
286-
cdef bytes b_username = to_bytes(username)
287-
cdef bytes b_passphrase = to_bytes(passphrase)
288-
cdef char *_username = b_username
289-
cdef char *_passphrase = b_passphrase
290-
cdef char *_publickeyfiledata = NULL
291-
cdef char *_privatekeyfiledata = privatekeyfiledata
292-
cdef size_t username_len, privatekeydata_len
293-
cdef size_t pubkeydata_len = 0
294-
username_len, privatekeydata_len = \
295-
len(b_username), len(privatekeyfiledata)
296-
if publickeyfiledata is not None:
297-
_publickeyfiledata = publickeyfiledata
298-
pubkeydata_len = len(publickeyfiledata)
299-
with nogil:
300-
rc = c_ssh2.libssh2_userauth_publickey_frommemory(
301-
self._session, _username, username_len, _publickeyfiledata,
302-
pubkeydata_len, _privatekeyfiledata,
303-
privatekeydata_len, _passphrase)
304-
return handle_error_codes(rc)
271+
def userauth_publickey_frommemory(
272+
self, username, bytes privatekeyfiledata,
273+
passphrase='', bytes publickeyfiledata=None):
274+
cdef int rc
275+
cdef bytes b_username = to_bytes(username)
276+
cdef bytes b_passphrase = to_bytes(passphrase)
277+
cdef char *_username = b_username
278+
cdef char *_passphrase = b_passphrase
279+
cdef char *_publickeyfiledata = NULL
280+
cdef char *_privatekeyfiledata = privatekeyfiledata
281+
cdef size_t username_len, privatekeydata_len
282+
cdef size_t pubkeydata_len = 0
283+
username_len, privatekeydata_len = \
284+
len(b_username), len(privatekeyfiledata)
285+
if publickeyfiledata is not None:
286+
_publickeyfiledata = publickeyfiledata
287+
pubkeydata_len = len(publickeyfiledata)
288+
with nogil:
289+
rc = c_ssh2.libssh2_userauth_publickey_frommemory(
290+
self._session, _username, username_len, _publickeyfiledata,
291+
pubkeydata_len, _privatekeyfiledata,
292+
privatekeydata_len, _passphrase)
293+
return handle_error_codes(rc)
305294

306295
def userauth_password(self, username not None, password not None):
307296
"""Perform password authentication
@@ -557,15 +546,14 @@ cdef class Session:
557546
self._session)
558547
return rc
559548

560-
IF EMBEDDED_LIB:
561-
def set_last_error(self, int errcode, errmsg not None):
562-
cdef bytes b_errmsg = to_bytes(errmsg)
563-
cdef char *_errmsg = b_errmsg
564-
cdef int rc
565-
with nogil:
566-
rc = c_ssh2.libssh2_session_set_last_error(
567-
self._session, errcode, _errmsg)
568-
return rc
549+
def set_last_error(self, int errcode, errmsg not None):
550+
cdef bytes b_errmsg = to_bytes(errmsg)
551+
cdef char *_errmsg = b_errmsg
552+
cdef int rc
553+
with nogil:
554+
rc = c_ssh2.libssh2_session_set_last_error(
555+
self._session, errcode, _errmsg)
556+
return rc
569557

570558
def scp_recv(self, path not None):
571559
"""Receive file via SCP.
@@ -589,28 +577,26 @@ cdef class Session:
589577
self._session))
590578
return PyChannel(channel, self), statinfo
591579

592-
IF EMBEDDED_LIB:
593-
def scp_recv2(self, path not None):
594-
"""Receive file via SCP.
595-
596-
Available only on libssh2 >= 1.7.
580+
def scp_recv2(self, path not None):
581+
"""Receive file via SCP.
597582
598-
:param path: File path to receive.
599-
:type path: str
583+
:param path: File path to receive.
584+
:type path: str
600585
601-
:rtype: tuple(:py:class:`ssh2.channel.Channel`,
602-
:py:class:`ssh2.fileinfo.FileInfo`) or ``None``"""
603-
cdef FileInfo fileinfo = FileInfo()
604-
cdef bytes b_path = to_bytes(path)
605-
cdef char *_path = b_path
606-
cdef c_ssh2.LIBSSH2_CHANNEL *channel
607-
with nogil:
608-
channel = c_ssh2.libssh2_scp_recv2(
609-
self._session, _path, fileinfo._stat)
610-
if channel is NULL:
611-
return handle_error_codes(c_ssh2.libssh2_session_last_errno(
612-
self._session))
613-
return PyChannel(channel, self), fileinfo
586+
:rtype: tuple(:py:class:`ssh2.channel.Channel`,
587+
:py:class:`ssh2.fileinfo.FileInfo`) or ``None``
588+
"""
589+
cdef FileInfo fileinfo = FileInfo()
590+
cdef bytes b_path = to_bytes(path)
591+
cdef char *_path = b_path
592+
cdef c_ssh2.LIBSSH2_CHANNEL *channel
593+
with nogil:
594+
channel = c_ssh2.libssh2_scp_recv2(
595+
self._session, _path, fileinfo._stat)
596+
if channel is NULL:
597+
return handle_error_codes(c_ssh2.libssh2_session_last_errno(
598+
self._session))
599+
return PyChannel(channel, self), fileinfo
614600

615601
def scp_send(self, path not None, int mode, size_t size):
616602
"""Deprecated in favour of scp_send64. Send file via SCP.

0 commit comments

Comments
 (0)