{ "info": { "author": "Dusan Klinec", "author_email": "dusan.klinec@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: Security" ], "description": "ROCA detection tool\n===================\n\n|Build Status|\n\nThis tool is related to `ACM CCS 2017 conference paper #124 Return of\nthe Coppersmith\u2019s Attack: Practical Factorization of Widely Used RSA\nModuli `__.\n\nIt enables you to test public RSA keys for a presence of the described\nvulnerability.\n\n*Update 4.11.2017*: Python 2.7, 3.4+ supported.\n\n*Update 30.10.2017*: The\n`paper `__\nof the attack is already online, `ACM\nversion `__.\n\n*Update 30.10.2017*: The discrete logarithm detector is now implemented\nin the Python and used as a default. It detects the structure in the\nprimes exploited by the factorizing algorithm.\n\nCurrently the tool supports the following key formats:\n\n- X509 Certificate, DER encoded, one per file, ``*.der``, ``*.crt``\n- X509 Certificate, PEM encoded, more per file, ``*.pem``\n- X509 Certificate Signing Request, PEM encoded, more per file,\n ``*.pem``\n- RSA PEM encoded private key, public key, more per file, ``*.pem``\n (has to have correct header ``-----BEGIN RSA...``)\n- SSH public key, ``*.pub``, starting with \"ssh-rsa\", one per line\n- ASC encoded PGP key, ``*.pgp``, ``*.asc``. More per file, has to have\n correct header ``-----BEGIN PGP...``\n- APK android application, ``*.apk``\n- one modulus per line text file ``*.txt``, modulus can be\n\n a) base64 encoded number, b) hex coded number, c) decimal coded\n number\n\n- JSON file with moduli, one record per line, record with modulus has\n key \"mod\" (int, base64, hex, dec encoding supported) certificate(s)\n with key \"cert\" / array of certificates with key \"certs\" are\n supported, base64 encoded DER.\n- LDIFF file - LDAP database dump. Any field ending with ``;binary::``\n is attempted to decode as X509 certificate\n- Java Key Store file (JKS). Tries empty password & some common,\n specify more with ``--jks-pass-file``\n- PKCS7 signature with user certificate\n\nThe detection tool is intentionally one-file implementation for easy\nintegration / manipulation.\n\nFalse positive\n--------------\n\nFalse positive detection rates:\n\n- Moduli detector: 2^-27\n- Discrete logarithm detector: 2^-154\n\nDiscrete logarithm detector is implemented only in the Python code, used\nas the default detection method.\n\nJava and C# code ports are unmaintained since the original publication\nand we don't plan to upgrade these detectors to the more precise method.\nHowever PR are welcome!\n\nOnline checker\n--------------\n\nhttps://keychest.net/roca\n\nThe online checker is using the discrete logarithm detector algorithm.\n\nInstall with pip\n----------------\n\nInstall the detector library + tool with ``pip`` (installs all\ndependencies):\n\n::\n\n pip install roca-detect\n\nLocal install\n-------------\n\nExecute in the root folder of the package:\n\n::\n\n pip install --upgrade --find-links=. .\n\nDependencies\n------------\n\nIt may be required to install additional dependencies so ``pip`` can\ninstall e.g. cryptography package.\n\nCentOS / RHEL:\n\n::\n\n sudo yum install python-devel python-pip gcc gcc-c++ make automake autoreconf libtool openssl-devel libffi-devel dialog\n\nUbuntu:\n\n::\n\n sudo apt-get install python-pip python-dev build-essential libssl-dev libffi-dev swig\n\nUsage\n-----\n\nTo print the basic usage:\n\n::\n\n # If installed with pip / manually\n roca-detect --help\n\n # Without installation (can miss dependencies)\n python roca/detect.py\n\nThe testing tool accepts multiple file names / directories as the input\nargument. It returns the report showing how many files has been\nfingerprinted (and which are those).\n\n**Example (no vulnerabilities found):**\n\nRunning recursively on all my SSH keys and known\\_hosts:\n\n::\n\n $> roca-detect ~/.ssh\n 2017-10-16 13:39:21 [51272] INFO ### SUMMARY ####################\n 2017-10-16 13:39:21 [51272] INFO Records tested: 92\n 2017-10-16 13:39:21 [51272] INFO .. PEM certs: . . . 0\n 2017-10-16 13:39:21 [51272] INFO .. DER certs: . . . 0\n 2017-10-16 13:39:21 [51272] INFO .. RSA key files: . 16\n 2017-10-16 13:39:21 [51272] INFO .. PGP master keys: 0\n 2017-10-16 13:39:21 [51272] INFO .. PGP total keys: 0\n 2017-10-16 13:39:21 [51272] INFO .. SSH keys: . . . 76\n 2017-10-16 13:39:21 [51272] INFO .. APK keys: . . . 0\n 2017-10-16 13:39:21 [51272] INFO .. JSON keys: . . . 0\n 2017-10-16 13:39:21 [51272] INFO .. LDIFF certs: . . 0\n 2017-10-16 13:39:21 [51272] INFO .. JKS certs: . . . 0\n 2017-10-16 13:39:21 [51272] INFO .. PKCS7: . . . . . 0\n 2017-10-16 13:39:21 [51272] INFO No fingerprinted keys found (OK)\n 2017-10-16 13:39:21 [51272] INFO ################################\n\n**Example (vulnerabilities found):**\n\nRunning recursively on all my SSH keys and known\\_hosts:\n\n::\n\n $> roca-detect ~/.ssh\n 2017-10-16 13:39:21 [51272] WARNING Fingerprint found in the Certificate\n ...\n 2017-10-16 13:39:21 [51272] INFO ### SUMMARY ####################\n 2017-10-16 13:39:21 [51272] INFO Records tested: 92\n 2017-10-16 13:39:21 [51272] INFO .. PEM certs: . . . 0\n 2017-10-16 13:39:21 [51272] INFO .. DER certs: . . . 0\n 2017-10-16 13:39:21 [51272] INFO .. RSA key files: . 16\n 2017-10-16 13:39:21 [51272] INFO .. PGP master keys: 0\n 2017-10-16 13:39:21 [51272] INFO .. PGP total keys: 0\n 2017-10-16 13:39:21 [51272] INFO .. SSH keys: . . . 76\n 2017-10-16 13:39:21 [51272] INFO .. APK keys: . . . 0\n 2017-10-16 13:39:21 [51272] INFO .. JSON keys: . . . 0\n 2017-10-16 13:39:21 [51272] INFO .. LDIFF certs: . . 0\n 2017-10-16 13:39:21 [51272] INFO .. JKS certs: . . . 0\n 2017-10-16 13:39:21 [51272] INFO .. PKCS7: . . . . . 0\n 2017-10-16 13:39:21 [51272] INFO Fingerprinted keys found: 1\n 2017-10-16 13:39:21 [51272] INFO WARNING: Potential vulnerability\n 2017-10-16 13:39:21 [51272] INFO ################################\n\nPGP key\n-------\n\nIn order to test your PGP key you can export it from your email client\nor download it from the PGP key server such as https://pgp.mit.edu/\n\nYou can also use ``gpg`` command line utility to export your public key:\n\n.. code:: bash\n\n gpg --armor --export your@email.com > mykey.asc\n\nAdvanced use case\n-----------------\n\nDetection tool extracts information about the key which can be\ndisplayed:\n\n::\n\n roca-detect.py --dump --flatten --indent ~/.ssh/\n\nTLS/SSL detection\n-----------------\n\nThe ``roca-detect-tls`` detects certificates from remote TLS/SSL ports.\nProvide a file with a newline-delimited list of ``address:port`` entries\nand use that file as input.\n\nExample file: tls\\_list.txt\n\n::\n\n github.com:443\n google.com:443\n internal.example.com:8080\n\nThen run:\n\n``roca-detect-tls tls_list.txt``\n\nFake moduli\n-----------\n\nIt is possible to generate moduli that passes the moduli fingerprinting\ntest but actually do not contain structure the factorization algorithm\nis using. Dlog moduli test do not mark those as positive.\n\nAdvanced installation methods\n-----------------------------\n\nVirtual environment\n~~~~~~~~~~~~~~~~~~~\n\nIt is usually recommended to create a new python virtual environment for\nthe project:\n\n::\n\n virtualenv ~/pyenv\n source ~/pyenv/bin/activate\n pip install --upgrade pip\n pip install --upgrade --find-links=. .\n\nSeparate Python 2.7.13\n~~~~~~~~~~~~~~~~~~~~~~\n\nWe tested tool with Python 2.7.13 and it works (see Travis for more\ninfo). We have reports saying lower versions (<=2.6) do not work\nproperly so we highly recommend using up to date Python 2.7\n\nUse ``pyenv`` to install a new Python version locally if you cannot /\ndon't want to update system Python.\n\nIt internally downloads Python sources and installs it to ``~/.pyenv``.\n\n::\n\n git clone https://github.com/pyenv/pyenv.git ~/.pyenv\n echo 'export PYENV_ROOT=\"$HOME/.pyenv\"' >> ~/.bashrc\n echo 'export PATH=\"$PYENV_ROOT/bin:$PATH\"' >> ~/.bashrc\n echo 'eval \"$(pyenv init -)\"' >> ~/.bashrc\n exec $SHELL\n pyenv install 2.7.13\n pyenv local 2.7.13\n\nPython 3\n~~~~~~~~\n\nDetection tools works also with Python 3.4+\n\nDocker container\n~~~~~~~~~~~~~~~~\n\nRun via Docker container to avoid environment inconsistency. Dockerfile\nsource can be audited at https://hub.docker.com/r/unnawut/roca-detect/.\n\n::\n\n docker run --rm -v /path/to/your/keys:/keys --network none unnawut/roca-detect\n\nMake sure to use ``--rm`` and ``--network none`` flags to disable\ncontainer's network connection and delete the container after running.\n\nLicensing\n---------\n\nCode is licensed under permissive MIT license.\n\nAs there were requests on dual licensing under Apache 2.0 license (due\nto some doubts on compatibility) we are licensing the code also under\nApache 2.0 license.\n\nPick license that suits you better, either MIT or Apache 2.0.\n\nLanguage ports\n--------------\n\nThis section contains links to different GIT repositories with language\nports\n\n- `Go `__\n\n.. |Build Status| image:: https://travis-ci.org/crocs-muni/roca.svg?branch=master\n :target: https://travis-ci.org/crocs-muni/roca", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/crocs-muni/roca", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "roca-detect", "package_url": "https://pypi.org/project/roca-detect/", "platform": "", "project_url": "https://pypi.org/project/roca-detect/", "project_urls": { "Homepage": "https://github.com/crocs-muni/roca" }, "release_url": "https://pypi.org/project/roca-detect/1.2.12/", "requires_dist": null, "requires_python": ">=2.7.10,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*", "summary": "ROCA key detector / fingerprinter tool", "version": "1.2.12" }, "last_serial": 3632130, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "dcac9fcb6a0fcdb80a133e357f667e5b", "sha256": "4ac2001b06c67710cd5a3f6d2432461bdee2f7745c6f27318c0fbe4db06b08a0" }, "downloads": -1, "filename": "roca-detect-1.0.0.tar.gz", "has_sig": false, "md5_digest": "dcac9fcb6a0fcdb80a133e357f667e5b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20789, "upload_time": "2017-10-16T10:58:51", "url": "https://files.pythonhosted.org/packages/15/6d/8525ad75e40ae57d72c2a16a2f8fe63e7d2173805cd78e58f815f8a235c1/roca-detect-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "e1703c29bf5182ab035cba161dd62274", "sha256": "cb3e2db59575cc848937c8e35f4351117def107399ff01b33ab9150c33d6436e" }, "downloads": -1, "filename": "roca-detect-1.0.1.tar.gz", "has_sig": false, "md5_digest": "e1703c29bf5182ab035cba161dd62274", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20833, "upload_time": "2017-10-16T13:46:14", "url": "https://files.pythonhosted.org/packages/42/44/d48e9c2cab0628bda645a6293e1b63378bb7ee2675a7b53b781789ea6ba6/roca-detect-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "9b968fc77b7e55d39356491fc9e447ac", "sha256": "53d96dee4f64ac7ea59bdf864a7650757dc0997f72ec9db10995db19b08e6216" }, "downloads": -1, "filename": "roca-detect-1.0.2.tar.gz", "has_sig": false, "md5_digest": "9b968fc77b7e55d39356491fc9e447ac", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20841, "upload_time": "2017-10-16T15:20:37", "url": "https://files.pythonhosted.org/packages/1f/62/976d28e24b10fd067ddb4d96dabe3e87b4548abaa6eb5f891384e5d32179/roca-detect-1.0.2.tar.gz" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "fe2e66a9a067268786b896cd11f347f5", "sha256": "6915de1485c06d9dfa21b90aeef6988f146126154955734abd4eef39d31bbe7a" }, "downloads": -1, "filename": "roca-detect-1.0.3.tar.gz", "has_sig": false, "md5_digest": "fe2e66a9a067268786b896cd11f347f5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20811, "upload_time": "2017-10-16T15:57:33", "url": "https://files.pythonhosted.org/packages/36/bd/fa08c26f80fbcae853960b53822457807410c78dda95376f223df3a793ae/roca-detect-1.0.3.tar.gz" } ], "1.0.5": [ { "comment_text": "", "digests": { "md5": "737560f44276ccc5dfc2d0230cd4500e", "sha256": "9a44c53de4cbf435d9d2ddb119d92d5f3fd4ef69fa9e36f154aa9990bf37fee2" }, "downloads": -1, "filename": "roca-detect-1.0.5.tar.gz", "has_sig": false, "md5_digest": "737560f44276ccc5dfc2d0230cd4500e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21246, "upload_time": "2017-10-17T12:17:05", "url": "https://files.pythonhosted.org/packages/a1/39/0532ad3d199a5880df2bfde8832f33b88c135260d8a7646348c1a87ffade/roca-detect-1.0.5.tar.gz" } ], "1.0.6": [ { "comment_text": "", "digests": { "md5": "e65f6a050f8ae7d1cf318d7c13820d3d", "sha256": "65bf8eafd48f67336ca49636258d31f494eee35053506c11aeda709509718fa9" }, "downloads": -1, "filename": "roca-detect-1.0.6.tar.gz", "has_sig": false, "md5_digest": "e65f6a050f8ae7d1cf318d7c13820d3d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21705, "upload_time": "2017-10-17T17:10:38", "url": "https://files.pythonhosted.org/packages/8a/88/21f3cdfb78f6f2b71d1cdf3600c2c65207f929c6874235e9ae5d3481ff98/roca-detect-1.0.6.tar.gz" } ], "1.0.7": [ { "comment_text": "", "digests": { "md5": "1c85571a20cd606328a5beaa95c5fc25", "sha256": "794bfb7a9ed67a85e4c1833494ae0771234acf2accd1b0f294b36687a1cc23e2" }, "downloads": -1, "filename": "roca-detect-1.0.7.tar.gz", "has_sig": false, "md5_digest": "1c85571a20cd606328a5beaa95c5fc25", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7.10, <3", "size": 21720, "upload_time": "2017-10-18T06:09:28", "url": "https://files.pythonhosted.org/packages/48/37/da3db919e79844180e175d2608c5ab195753c4c92405d4a650ba42a1231b/roca-detect-1.0.7.tar.gz" } ], "1.0.8": [ { "comment_text": "", "digests": { "md5": "12efedb42c9c49b2c9808d50a23cd529", "sha256": "4770fb8caa5cd6a51cc7ea65631679684bf4699cd06fee3ecac551c1fd5424b6" }, "downloads": -1, "filename": "roca-detect-1.0.8.tar.gz", "has_sig": false, "md5_digest": "12efedb42c9c49b2c9808d50a23cd529", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7.10, <3", "size": 22680, "upload_time": "2017-10-19T13:06:42", "url": "https://files.pythonhosted.org/packages/5e/13/cfc08a3dd63ed73733598f7ffe118d954b098590fde720b8dda1c4c8be60/roca-detect-1.0.8.tar.gz" } ], "1.0.9": [ { "comment_text": "", "digests": { "md5": "ed110fc7b96c67adc2b6a9820bc8050e", "sha256": "a6e36172143f80cee35c01c739aaacb4dc9883f43a434cc791e124a5a9a690e6" }, "downloads": -1, "filename": "roca-detect-1.0.9.tar.gz", "has_sig": false, "md5_digest": "ed110fc7b96c67adc2b6a9820bc8050e", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7.10, <3", "size": 25143, "upload_time": "2017-10-30T21:42:52", "url": "https://files.pythonhosted.org/packages/03/63/9e2a6e6e3603fe7683b529c251825806cbbd934250615b1b75f89a343c04/roca-detect-1.0.9.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "e9beb226655edd5a6bf2092f5b33ead1", "sha256": "cf78a3bccf08f14348b346124a3322581b8defa9b9d4af197d6b4cdc3cba1576" }, "downloads": -1, "filename": "roca-detect-1.1.0.tar.gz", "has_sig": false, "md5_digest": "e9beb226655edd5a6bf2092f5b33ead1", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7.10, <3", "size": 25134, "upload_time": "2017-10-30T21:46:24", "url": "https://files.pythonhosted.org/packages/9c/eb/c8540dfc80cea2865e461f0bc81ecead4bec3a3df82df8316463dd92414d/roca-detect-1.1.0.tar.gz" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "8d35867764e5efa00670385da9f730d0", "sha256": "c5e7ebe5f1829b25c036629ab3151f38df9a3325b61d31f70db9edf273a93733" }, "downloads": -1, "filename": "roca-detect-1.1.1.tar.gz", "has_sig": false, "md5_digest": "8d35867764e5efa00670385da9f730d0", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7.10, <3", "size": 27723, "upload_time": "2017-10-31T17:16:36", "url": "https://files.pythonhosted.org/packages/2d/a8/5d1644599526f5f5978689d0b4a163911316697ad9acaaead40b612ed29f/roca-detect-1.1.1.tar.gz" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "51f0d821457bc0d4b72cc0f4d5706087", "sha256": "1c235f23e563899e8fbbc649e36b5c5c96b578ce79911993b26e7bcd1cfd787f" }, "downloads": -1, "filename": "roca-detect-1.2.0.tar.gz", "has_sig": false, "md5_digest": "51f0d821457bc0d4b72cc0f4d5706087", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7.10,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*", "size": 28251, "upload_time": "2017-11-04T18:56:32", "url": "https://files.pythonhosted.org/packages/13/ab/c3f364093a21dc6ce99a4c4e076d68f0a7b41fd9ac423006b8c492ccc190/roca-detect-1.2.0.tar.gz" } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "18e70801251f3091308efaa736ba50b2", "sha256": "f2c7fd05bd68028a6bc177d5a018f6ee2260b3dcd40487932f2dceb2092d2754" }, "downloads": -1, "filename": "roca-detect-1.2.1.tar.gz", "has_sig": false, "md5_digest": "18e70801251f3091308efaa736ba50b2", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7.10,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*", "size": 29286, "upload_time": "2017-11-04T23:13:21", "url": "https://files.pythonhosted.org/packages/53/77/fbe94e7bcef4e709a73fa08dd4ba4db1b9c8289538a6f3400d673a578c8d/roca-detect-1.2.1.tar.gz" } ], "1.2.10": [ { "comment_text": "", "digests": { "md5": "d40a6d77ce0ad3857d09b15b6f17cd6e", "sha256": "b954bc2702888ed8a21c61058f99156d698037a21dd749863d14ab7783dfcf74" }, "downloads": -1, "filename": "roca-detect-1.2.10.tar.gz", "has_sig": false, "md5_digest": "d40a6d77ce0ad3857d09b15b6f17cd6e", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7.10,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*", "size": 64554, "upload_time": "2018-02-04T22:15:34", "url": "https://files.pythonhosted.org/packages/67/96/575d0230e2703d077722c0cdcee806408827af010d296b7a1901102af7eb/roca-detect-1.2.10.tar.gz" } ], "1.2.11": [ { "comment_text": "", "digests": { "md5": "fb2d04cb6baffb0ab00717843e2706b9", "sha256": "8459f8811393ae00d7e6a39e9d1b23289ce541a44b87d07a9515134226affd0e" }, "downloads": -1, "filename": "roca-detect-1.2.11.tar.gz", "has_sig": false, "md5_digest": "fb2d04cb6baffb0ab00717843e2706b9", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7.10,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*", "size": 65901, "upload_time": "2018-02-05T00:50:10", "url": "https://files.pythonhosted.org/packages/5a/c5/2fdb76afc800e82bd14676f6144274052d6aab866d15e18f9cbc87d2b389/roca-detect-1.2.11.tar.gz" } ], "1.2.12": [ { "comment_text": "", "digests": { "md5": "d2f41ecac2fafc528b7f234b078c95b9", "sha256": "07a172c5cc8f1a9b46aa7744bd607c8237938bb1541d8e5be9098877d3a98003" }, "downloads": -1, "filename": "roca-detect-1.2.12.tar.gz", "has_sig": false, "md5_digest": "d2f41ecac2fafc528b7f234b078c95b9", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7.10,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*", "size": 66143, "upload_time": "2018-03-02T14:30:06", "url": "https://files.pythonhosted.org/packages/75/99/5e1d21ba51da24db4cd084bba39c2192b068c975b442a2663b70019bd21e/roca-detect-1.2.12.tar.gz" } ], "1.2.2": [ { "comment_text": "", "digests": { "md5": "7ef5a15b6806fcb85c1e5b5749d5dcf6", "sha256": "ba3913db7965ff7f001af38c583786831bab5235f3179441f2dce56c2e167e56" }, "downloads": -1, "filename": "roca-detect-1.2.2.tar.gz", "has_sig": false, "md5_digest": "7ef5a15b6806fcb85c1e5b5749d5dcf6", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7.10,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*", "size": 29768, "upload_time": "2017-11-07T09:24:11", "url": "https://files.pythonhosted.org/packages/48/a3/0677f7a2b27916cfb3a84b283b8036ffba24d7352ce3e0d7d58c62629171/roca-detect-1.2.2.tar.gz" } ], "1.2.3": [ { "comment_text": "", "digests": { "md5": "e33b89b7df28720a6127e97b062ac138", "sha256": "f8ba24c8f5be1547d52d314443d72fbbb1ad7a5ed335892587af2e67f7538b00" }, "downloads": -1, "filename": "roca-detect-1.2.3.tar.gz", "has_sig": false, "md5_digest": "e33b89b7df28720a6127e97b062ac138", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7.10,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*", "size": 29908, "upload_time": "2017-11-07T15:14:21", "url": "https://files.pythonhosted.org/packages/c9/33/58d566f566ded1e787ca95f683b148002722e854885bfb9f520b3b3697b4/roca-detect-1.2.3.tar.gz" } ], "1.2.4": [ { "comment_text": "", "digests": { "md5": "a4094fb582761ac28f3959d54fa95d30", "sha256": "e7964d947e95d1530e767b498cfae7344f53a3a160b874932eed042cbc03e66c" }, "downloads": -1, "filename": "roca-detect-1.2.4.tar.gz", "has_sig": false, "md5_digest": "a4094fb582761ac28f3959d54fa95d30", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7.10,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*", "size": 29817, "upload_time": "2017-11-07T15:32:40", "url": "https://files.pythonhosted.org/packages/15/7d/2c3fcfac2ec5c9c7adc9e3492a6433a13c4f6dac96c9e90540c5c9171a6c/roca-detect-1.2.4.tar.gz" } ], "1.2.5": [ { "comment_text": "", "digests": { "md5": "46c52d940cb24deba357ccdeb46abaf1", "sha256": "5a10c50bd6a0fdf5a891788d0aa48b6a239fb62e28afeb94a2e2a2fed9ace203" }, "downloads": -1, "filename": "roca-detect-1.2.5.tar.gz", "has_sig": false, "md5_digest": "46c52d940cb24deba357ccdeb46abaf1", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7.10,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*", "size": 29832, "upload_time": "2017-11-07T15:40:34", "url": "https://files.pythonhosted.org/packages/0f/f9/4f5b20522556e7487fe52c0bb38eee47bb0841f5430f9a27dd0aa17a6203/roca-detect-1.2.5.tar.gz" } ], "1.2.6": [ { "comment_text": "", "digests": { "md5": "f7232ee4673c0163bb9eda6dea5152ab", "sha256": "15e950a489bb418235591d27e69deb9b3c77a89fc66196201ffebc44fe025af0" }, "downloads": -1, "filename": "roca-detect-1.2.6.tar.gz", "has_sig": false, "md5_digest": "f7232ee4673c0163bb9eda6dea5152ab", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7.10,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*", "size": 30202, "upload_time": "2017-11-08T12:31:02", "url": "https://files.pythonhosted.org/packages/0b/7c/e52372d26e7fa42d909e68c2816016e3329371a3f72952fc7a4e6e2fdbc7/roca-detect-1.2.6.tar.gz" } ], "1.2.7": [ { "comment_text": "", "digests": { "md5": "e6e1c06b0c2d31724a40bd6c454a003a", "sha256": "1df57b5f68a69bea2084e5e6c01451ca0242828bdde91a43d7649c5b7fdebcd5" }, "downloads": -1, "filename": "roca-detect-1.2.7.tar.gz", "has_sig": false, "md5_digest": "e6e1c06b0c2d31724a40bd6c454a003a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7.10,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*", "size": 62820, "upload_time": "2017-11-08T19:36:11", "url": "https://files.pythonhosted.org/packages/2e/bb/c85aa485c3cc4b92c4fb52ef5c0de84c466e88b76e15f9204c604400d71e/roca-detect-1.2.7.tar.gz" } ], "1.2.8": [ { "comment_text": "", "digests": { "md5": "f7828c4176bdad2aa161d8ba3f527988", "sha256": "6105f2b166418b4947b601d4115ed9eabf62c84a00bc9571204505183ba4d13b" }, "downloads": -1, "filename": "roca-detect-1.2.8.tar.gz", "has_sig": false, "md5_digest": "f7828c4176bdad2aa161d8ba3f527988", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7.10,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*", "size": 64255, "upload_time": "2018-01-15T09:05:38", "url": "https://files.pythonhosted.org/packages/05/de/7d6a3c27b6fbd01ee5b85f5152a77a29e62ebdf18b3997b915ff2bcca816/roca-detect-1.2.8.tar.gz" } ], "1.2.9": [ { "comment_text": "", "digests": { "md5": "31f7df5be792830ebc86200eeb272ac6", "sha256": "123c5a0540f346d6cbc08ca8dc12f198899e0196125fcfe78ba5c67a5053087c" }, "downloads": -1, "filename": "roca-detect-1.2.9.tar.gz", "has_sig": false, "md5_digest": "31f7df5be792830ebc86200eeb272ac6", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7.10,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*", "size": 64537, "upload_time": "2018-02-04T22:04:33", "url": "https://files.pythonhosted.org/packages/12/4f/b62274f7a76034284f4eccd7fb434fad31e49642ece3374ee6b791a3344f/roca-detect-1.2.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "d2f41ecac2fafc528b7f234b078c95b9", "sha256": "07a172c5cc8f1a9b46aa7744bd607c8237938bb1541d8e5be9098877d3a98003" }, "downloads": -1, "filename": "roca-detect-1.2.12.tar.gz", "has_sig": false, "md5_digest": "d2f41ecac2fafc528b7f234b078c95b9", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7.10,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*", "size": 66143, "upload_time": "2018-03-02T14:30:06", "url": "https://files.pythonhosted.org/packages/75/99/5e1d21ba51da24db4cd084bba39c2192b068c975b442a2663b70019bd21e/roca-detect-1.2.12.tar.gz" } ] }