{ "info": { "author": "Jordan Borean", "author_email": "jborean93@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "smbprotocol\n===========\n\nSMBv2 and v3 Client for both Python 2 and 3.\n\n`License `__\n`Travis Build `__ `AppVeyor\nBuild `__\n`Coverage `__\n\nSMB is a network file sharing protocol and has numerous iterations over\nthe years. This library implements the SMBv2 and SMBv3 protocol based on\nthe `MS-SMB2 `__\ndocument.\n\nFeatures\n--------\n\n- Negotiation of the SMB 2.0.2 protocol to SMB 3.1.1 (Windows 10/Server\n 2016)\n- Authentication with both NTLM and Kerberos\n- Message signing\n- Message encryption (SMB 3.x.x+)\n- Connect to a Tree/Share\n- Opening of files, pipes and directories\n- Set create contexts when opening files\n- Read and writing of files and pipes\n- Sending IOCTL commands\n- Sending of multiple messages in one packet (compounding)\n\nThis is definitely not feature complete as SMB is quite a complex\nprotocol, see backlog for features that would be nice to have in this\nlibrary.\n\nRequirements\n------------\n\n- Python 2.6, 2.7, 3.4+\n- For Kerberos auth\n\n - `python-gssapi `__\n on Linux\n - `pywin32 `__ on Windows\n\nTo use Kerberos authentication, further dependencies are required, to\ninstall these dependencies run\n\n::\n\n # for Debian/Ubuntu/etc:\n sudo apt-get install gcc python-dev libkrb5-dev\n pip install smbprotocol[kerberos]\n\n # for RHEL/CentOS/etc:\n sudo yum install gcc python-devel krb5-devel krb5-workstation python-devel\n pip install smbprotocol[kerberos]\n\nKerberos auth with Windows just requires the ``pywin32`` package to be\ninstalled and the Windows host to be joined to that domain. On Linux the\npython-gssapi library must be installed and smbprotocol requires a\nparticular GSSAPI extension to be available to work. This extension\nshould be installed on the majority of MIT or Heimdal Kerberos installs\nbut it isn\u2019t guaranteed. To verify that Kerberos is available on Linux\nyou can run the following check in a Python console:\n\n::\n\n try:\n from gssapi.raw import inquire_sec_context_by_oid\n print(\"python-gssapi extension is available\")\n except ImportError as exc:\n print(\"python-gssapi extension is not available: %s\" % str(exc))\n\nIf it isn\u2019t available, then either a newer version of the system\u2019s\ngssapi implementation needs to be setup and python-gssapi compiled\nagainst that newer version.\n\nInstallation\n------------\n\nTo install smbprotocol, simply run\n\n::\n\n pip install smbprotocol\n\n # To install with Kerberos support\n pip install smbprotocol[kerberos]\n\nThis will download the required packages that are used in this package\nand get your Python environment ready to go.\n\nAdditional Info\n---------------\n\nOne of the first steps as part of the SMB protocol is to negotiate the\ndialect used and other features that are available. Currently\nsmbprotocol supports the following dialects;\n\n- ``2.0.0``: Added with Server 2008/Windows Vista\n- ``2.1.0``: Added with Server 2008 R2/Windows 7\n- ``3.0.0``: Added with Server 2012/Windows 8\n- ``3.0.2``: Added with Server 2012 R2/Windows 8.1\n- ``3.1.1``: Added with Server 2016/Windows10\n\nEach dialect adds in more features to the protocol where some are minor\nbut some are major. One major changes is in Dialect 3.x where it added\nmessage encryption. Message encryption is set to True by default and\nneeds to be overridden when creating a Session object for the older\ndialects.\n\nBy default, the negotiation process will use the latest dialect that is\nsupported by the server but this can be overridden if required. When\nthis is done by the following code\n\n::\n\n import uuid\n\n from smbprotocol.connection import Connection, Dialects\n\n connection = Connection(uuid.uuid4(), \"server\", 445)\n connection.connect(Dialects.SMB_3_0_2)\n\nWhile you shouldn\u2019t want to downgrade to an earlier version, this does\nallow you to set a minimum dialect version if required.\n\nExamples\n--------\n\nCurrently the existing classes expose a very low level interface to the\nSMB protocol which can make things quite complex for people starting to\nuse this package. I do plan on making a high-level interface to make\nthings easier for users but that\u2019s in the backlog.\n\nFor now, the ``examples`` folder contains some examples of how this\npackage can be used.\n\nLogging\n-------\n\nThis library makes use of the builtin Python logging facilities. Log\nmessages are logged to the ``smbprotocol`` named logger as well as\n``smbprotocol.*`` where ``*`` is each python script in the\n``smbprotocol`` directory.\n\nThese logs are really useful when debugging issues as they give you a\nmore step by step snapshot of what it is doing and what may be going\nwrong. The debug side will also print out a human readable string of\neach SMB packet that is sent out from the client so it can get very\nverbose.\n\nTesting\n-------\n\nTo this module, you need to install some pre-requisites first. This can\nbe done by running;\n\n::\n\n pip install -r requirements-test.txt\n\n # you can also run tox by installing tox\n pip install tox\n\nFrom there to run the basic tests run;\n\n::\n\n py.test -v --pep8 --cov smbprotocol --cov-report term-missing\n\n # or with tox 2.7, 2.7, 3.4, 3.5, and 3.6\n tox\n\nThere are extra tests that only run when certain environment variables\nare set. To run these tests set the following variables;\n\n- ``SMB_USER``: The username to authenticate with\n- ``SMB_PASSWORD``: The password to authenticate with\n- ``SMB_SERVER``: The IP or hostname of the server to authenticate with\n- ``SMB_PORT``: The port the SMB server is listening on, default is\n ``445``\n- ``SMB_SHARE``: The name of the share to connect to, a share with this\n name must exist as well as a share with the\n name\\ ``$SMB_SHARE-encrypted`` must also exist that forces encryption\n\nFrom here running ``tox`` or ``py.test`` with these environment\nvariables set will activate the integration tests.\n\nTo set up a Windows host that will work with these tests run the\nfollowing in PowerShell;\n\n.. code:: powershell\n\n New-Item -Path C:\\share -ItemType Directory > $null\n New-Item -Path C:\\share-encrypted -ItemType Directory > $null\n New-SmbShare -Name $env:SMB_SHARE -Path C:\\share -EncryptData $false -FullAccess Everyone > $null\n New-SmbShare -Name \"$($env:SMB_SHARE)-encrypted\" -Path C:\\share-encrypted -EncryptData $true -FullAccess Everyone > $null\n\nThis requires either Windows 10 or Server 2016 as they support Dialect\n3.1.1 which is required by the tests.\n\nIf you don\u2019t have access to a Windows host, you can use Docker to setup\na Samba container and use that as part of the tests. To do so run the\nfollowing bash commands;\n\n.. code:: bash\n\n export SMB_USER=smbuser\n export SMB_PASSWORD=smbpassword\n export SMB_PORT=445\n export SMB_SERVER=127.0.0.1\n export SMB_SHARE=share\n\n docker run -d -p $SMB_PORT:445 -v $(pwd)/build-scripts:/app -w /app -e SMB_USER=$SMB_USER -e SMB_PASSWORD=$SMB_PASSWORD -e SMB_SHARE=$SMB_SHARE centos:7 /bin/bash /app/setup_samba.sh;\n\nBacklog\n-------\n\nHere is a list of features that I would like to incorporate, PRs are\nwelcome if you want to implement them yourself;\n\n- Test and support DFS mounts and not just server shares\n- Multiple channel support to speed up large data transfers\n- Create an easier API on top of the ``raw`` SMB calls that currently\n exist\n- Lots and lots more\u2026\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/jborean93/smbprotocol", "keywords": "smb smb2 smb3 cifs python", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "smbprotocol", "package_url": "https://pypi.org/project/smbprotocol/", "platform": "", "project_url": "https://pypi.org/project/smbprotocol/", "project_urls": { "Homepage": "https://github.com/jborean93/smbprotocol" }, "release_url": "https://pypi.org/project/smbprotocol/0.2.0/", "requires_dist": [ "cryptography (>=2.0)", "ntlm-auth (>=1.2.0)", "pyasn1", "six", "ordereddict ; python_version<\"2.7\"", "gssapi (>=1.4.1) ; (sys_platform!=\"win32\") and extra == 'kerberos'", "pywin32 ; (sys_platform==\"win32\") and extra == 'kerberos'" ], "requires_python": "", "summary": "Interact with a server using the SMB 2/3 Protocol", "version": "0.2.0" }, "last_serial": 5853600, "releases": { "0.0.1.dev0": [ { "comment_text": "", "digests": { "md5": "ef76600a462a04dce19f6e2902953ece", "sha256": "984eda5f6f80da0081e853421b8c64f695b56dc8cac6d7ef02613b9e84b48cb6" }, "downloads": -1, "filename": "smbprotocol-0.0.1.dev0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ef76600a462a04dce19f6e2902953ece", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 65283, "upload_time": "2018-02-20T02:34:02", "url": "https://files.pythonhosted.org/packages/78/ed/2c608fb4521efe600d45a8d62b0f854822d74bec2a8255a857cba2d59db6/smbprotocol-0.0.1.dev0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6f78c0549539fdf38653c98292168390", "sha256": "838c81a84806c48984fcf13aa89cdd285827c3961ab6ef0674052dfd7c1b4bd0" }, "downloads": -1, "filename": "smbprotocol-0.0.1.dev0.tar.gz", "has_sig": false, "md5_digest": "6f78c0549539fdf38653c98292168390", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 55638, "upload_time": "2018-02-20T02:34:04", "url": "https://files.pythonhosted.org/packages/67/19/017d994c1032c1b24f9bc412c2a201314ccbda17ccec41129ae88714d89b/smbprotocol-0.0.1.dev0.tar.gz" } ], "0.0.1.dev1": [ { "comment_text": "", "digests": { "md5": "e27894193c752ac0b18ba95d2a80ae22", "sha256": "72f2a73a3e9acc626a6fde5d9c59ca9c05a0bd4145ce5a3159e5487e1a9e456b" }, "downloads": -1, "filename": "smbprotocol-0.0.1.dev1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e27894193c752ac0b18ba95d2a80ae22", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 66595, "upload_time": "2018-02-20T20:56:40", "url": "https://files.pythonhosted.org/packages/fd/6c/b658ccf98b1e7bf452c380f7bce156cbce4acb61c3ca833889033c0c6caf/smbprotocol-0.0.1.dev1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9d31f12283b90c66ed66e0f3e620c0de", "sha256": "8ab62829ace2950d5d6fad78a948d0f22b2c72d2d14eeb900607b8b1f94469ef" }, "downloads": -1, "filename": "smbprotocol-0.0.1.dev1.tar.gz", "has_sig": false, "md5_digest": "9d31f12283b90c66ed66e0f3e620c0de", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 55960, "upload_time": "2018-02-20T20:56:48", "url": "https://files.pythonhosted.org/packages/56/f1/8272eec0cd89db895e967641446be20b38b9abfecfb32c43425908925843/smbprotocol-0.0.1.dev1.tar.gz" } ], "0.0.1.dev2": [ { "comment_text": "", "digests": { "md5": "d14765d66047fb6832ee828837d5824d", "sha256": "52b96c7d49f96add839c9ab4f76372cc174365490d95a2d0e4c9a7d2f52d5b4c" }, "downloads": -1, "filename": "smbprotocol-0.0.1.dev2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d14765d66047fb6832ee828837d5824d", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 66583, "upload_time": "2018-02-22T08:53:12", "url": "https://files.pythonhosted.org/packages/4f/65/91c7cc9107425de36cad2cb6da82400954b180f8727efa36d3d7417c2390/smbprotocol-0.0.1.dev2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7812b3a9a3e1afe04b1de7eaf7132bb9", "sha256": "941ed6370851c70fd5d9944282e785e13e3c7252d4daf54f97d1d6389335a8c0" }, "downloads": -1, "filename": "smbprotocol-0.0.1.dev2.tar.gz", "has_sig": false, "md5_digest": "7812b3a9a3e1afe04b1de7eaf7132bb9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 55963, "upload_time": "2018-02-22T08:53:13", "url": "https://files.pythonhosted.org/packages/6e/cc/b43cead429928d5e448d11d9c4b6be339f151c12f7696e6ff9c310abfa99/smbprotocol-0.0.1.dev2.tar.gz" } ], "0.0.1.dev3": [ { "comment_text": "", "digests": { "md5": "671574366202072df33a3f0a994200c7", "sha256": "ef2f497ee6bb91876ccf25bb14fc6cebbf471b02fe84f1b395f17d82a6afeb9a" }, "downloads": -1, "filename": "smbprotocol-0.0.1.dev3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "671574366202072df33a3f0a994200c7", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 66792, "upload_time": "2018-02-23T01:48:33", "url": "https://files.pythonhosted.org/packages/6c/71/5a35b4cbde6c4fd0acd38c8a077c2f0cc13c2aa216da6d4e1acbab76f79a/smbprotocol-0.0.1.dev3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "887ca5d81c52fd66c9901d3974057edb", "sha256": "8344b073f7dc12965e57ac7623ef4d35820239b04bbf4ef309f41bf27415bac7" }, "downloads": -1, "filename": "smbprotocol-0.0.1.dev3.tar.gz", "has_sig": false, "md5_digest": "887ca5d81c52fd66c9901d3974057edb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 56256, "upload_time": "2018-02-23T01:48:36", "url": "https://files.pythonhosted.org/packages/ca/90/c5b339366a206bcc5bac90ad3b8e131ea3e4ecfb78f3a8ff587a0bec2479/smbprotocol-0.0.1.dev3.tar.gz" } ], "0.0.1.dev4": [ { "comment_text": "", "digests": { "md5": "ea06617405ec41e4419a4e39c07726f5", "sha256": "623ec0466b3ac34910a4766d0e2fb5ffffcce96344a1ae31818644407bc0c138" }, "downloads": -1, "filename": "smbprotocol-0.0.1.dev4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ea06617405ec41e4419a4e39c07726f5", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 66800, "upload_time": "2018-02-24T06:20:05", "url": "https://files.pythonhosted.org/packages/1c/31/627e842eb469446ed5dc61023f926b6e7a4fea799d862086dac052b6588f/smbprotocol-0.0.1.dev4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "43ecb4046d96f7ec9985c10bb2bac93c", "sha256": "b90c5c52d6b7e1a967e903b2e88d38394fcda8c7ca8229c940cfbf19e823f7a8" }, "downloads": -1, "filename": "smbprotocol-0.0.1.dev4.tar.gz", "has_sig": false, "md5_digest": "43ecb4046d96f7ec9985c10bb2bac93c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 56271, "upload_time": "2018-02-24T06:20:08", "url": "https://files.pythonhosted.org/packages/46/7b/bd231315477d5f1d44c83ed8db19a0964122126fa041be59b8cd64b96cb0/smbprotocol-0.0.1.dev4.tar.gz" } ], "0.0.1.dev5": [ { "comment_text": "", "digests": { "md5": "2c4518c1c253651a658e31b85b75f5a9", "sha256": "db0bef09567b19cde0355df11934297bbe4dde9876229afae710e4c3a594208c" }, "downloads": -1, "filename": "smbprotocol-0.0.1.dev5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2c4518c1c253651a658e31b85b75f5a9", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 67681, "upload_time": "2018-02-26T04:56:57", "url": "https://files.pythonhosted.org/packages/32/ba/dc6e31631e76b074ca39abd80992181bbd021642f4a5d9e0e72a4bb1bb17/smbprotocol-0.0.1.dev5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "80ae63f4276407e1aa67e337c15be8a2", "sha256": "779640ad247ec26101d8fc770b492d6425e36d3fe118e1e64d0db8ae7fe7588e" }, "downloads": -1, "filename": "smbprotocol-0.0.1.dev5.tar.gz", "has_sig": false, "md5_digest": "80ae63f4276407e1aa67e337c15be8a2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 57105, "upload_time": "2018-02-26T04:56:59", "url": "https://files.pythonhosted.org/packages/b6/e2/a3105e1aad5bd109790d8b17c38af199e13065274f0f4d037667ce15e60c/smbprotocol-0.0.1.dev5.tar.gz" } ], "0.0.1.dev6": [ { "comment_text": "", "digests": { "md5": "3a78aa4df10bc1ec9796a4973fb8625e", "sha256": "c6e8fb2f4e0ba565457bf131ab3f0a49393c8358c00832d3331002927df5f272" }, "downloads": -1, "filename": "smbprotocol-0.0.1.dev6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "3a78aa4df10bc1ec9796a4973fb8625e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 67678, "upload_time": "2018-02-26T05:27:19", "url": "https://files.pythonhosted.org/packages/7d/11/b8747f49ec2839a6f53c3bae2ad4561acf3b7012364996f77297b2f3634e/smbprotocol-0.0.1.dev6-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b70db0af50e45ef951aa49813532c18e", "sha256": "41ff5fdacc33b59bba9fcc285e2122017a570975aed4ac636cba99e82e134bb7" }, "downloads": -1, "filename": "smbprotocol-0.0.1.dev6.tar.gz", "has_sig": false, "md5_digest": "b70db0af50e45ef951aa49813532c18e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 57103, "upload_time": "2018-02-26T05:27:20", "url": "https://files.pythonhosted.org/packages/9d/e6/687fb43766451c9f58b6824256992fd7d7974d1a0c95e4dd44c07ef0c2a7/smbprotocol-0.0.1.dev6.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "c0f6145b9a2fbacda122002ca51ad0e0", "sha256": "628fff51c9784dc4fcf25de576e782bb111d28d3b380fd412030318281ba3147" }, "downloads": -1, "filename": "smbprotocol-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c0f6145b9a2fbacda122002ca51ad0e0", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 67569, "upload_time": "2018-03-07T00:09:19", "url": "https://files.pythonhosted.org/packages/fb/29/857bb2bfb8a11687d095571d12f4c992ac973e28dcca0fda9745f5b3f238/smbprotocol-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "07bf72659ac547f93532482ed5f726e5", "sha256": "b5027dc4a3d31c418599f6029f583ac5a6408d36999a02f944b18444312d137c" }, "downloads": -1, "filename": "smbprotocol-0.1.0.tar.gz", "has_sig": false, "md5_digest": "07bf72659ac547f93532482ed5f726e5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 57073, "upload_time": "2018-03-07T00:09:21", "url": "https://files.pythonhosted.org/packages/e3/88/0d98d4b3e3a41cf22138722a07ad0c177d584497febd8c74d5472d54c870/smbprotocol-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "c120ec562a4aed650d82d45ca27ef750", "sha256": "9edf79eaf8145a2a302e52e12eda75fa4acf6a320f2e569299dde458149bcb84" }, "downloads": -1, "filename": "smbprotocol-0.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c120ec562a4aed650d82d45ca27ef750", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 63279, "upload_time": "2018-09-14T00:49:07", "url": "https://files.pythonhosted.org/packages/1d/67/374cec410c846bb2e4408c05263a0c7711d49420237b9f9460a1d45ee7a0/smbprotocol-0.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a26670cf5a63fe576bc8254f6071dddf", "sha256": "1c219312f0417d7f2abe4094be1fbc8fe2ea727d2a6702f78f24d462bafb2cea" }, "downloads": -1, "filename": "smbprotocol-0.1.1.tar.gz", "has_sig": false, "md5_digest": "a26670cf5a63fe576bc8254f6071dddf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 57189, "upload_time": "2018-09-14T00:49:09", "url": "https://files.pythonhosted.org/packages/29/f9/66f1e33b1ea10c7a465315086fa975126d558c3499a2889dff1d7c3d3e10/smbprotocol-0.1.1.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "8a7b0cc576c368be59fd02b5a92577c9", "sha256": "50c8e864d24943f8cd5e57a7a2582d31f2130b6046bf931545ad8d9dde1466ff" }, "downloads": -1, "filename": "smbprotocol-0.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8a7b0cc576c368be59fd02b5a92577c9", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 64088, "upload_time": "2019-09-19T02:26:19", "url": "https://files.pythonhosted.org/packages/fc/e0/acb6a5112d364e3e279b3da3454b60e852d7dbf3e926193864f62244d03a/smbprotocol-0.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4812f5c096f22753f2df9a8b13de73ec", "sha256": "69e26197502baa61865061aa4854f9098c552f7ac14c957be8fd63e527a6e3fa" }, "downloads": -1, "filename": "smbprotocol-0.2.0.tar.gz", "has_sig": false, "md5_digest": "4812f5c096f22753f2df9a8b13de73ec", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 61896, "upload_time": "2019-09-19T02:26:22", "url": "https://files.pythonhosted.org/packages/f5/b1/98fc4b3534f266f1e012e2d5740236ee4b29a8540557d3af62fa8c5a069b/smbprotocol-0.2.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "8a7b0cc576c368be59fd02b5a92577c9", "sha256": "50c8e864d24943f8cd5e57a7a2582d31f2130b6046bf931545ad8d9dde1466ff" }, "downloads": -1, "filename": "smbprotocol-0.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8a7b0cc576c368be59fd02b5a92577c9", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 64088, "upload_time": "2019-09-19T02:26:19", "url": "https://files.pythonhosted.org/packages/fc/e0/acb6a5112d364e3e279b3da3454b60e852d7dbf3e926193864f62244d03a/smbprotocol-0.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4812f5c096f22753f2df9a8b13de73ec", "sha256": "69e26197502baa61865061aa4854f9098c552f7ac14c957be8fd63e527a6e3fa" }, "downloads": -1, "filename": "smbprotocol-0.2.0.tar.gz", "has_sig": false, "md5_digest": "4812f5c096f22753f2df9a8b13de73ec", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 61896, "upload_time": "2019-09-19T02:26:22", "url": "https://files.pythonhosted.org/packages/f5/b1/98fc4b3534f266f1e012e2d5740236ee4b29a8540557d3af62fa8c5a069b/smbprotocol-0.2.0.tar.gz" } ] }