Metadata-Version: 1.1
Name: pylibscrypt
Version: 1.0.2
Summary: Scrypt for Python
Home-page: https://github.com/jvarho/pylibscrypt
Author: Jan Varho
Author-email: jan@varho.org
License: MIT License
Description: Scrypt for Python
        =================
        
        There are a lot of different scrypt modules for Python, but none of them
        have everything that I'd like, so here's One
        More\ `1 <https://xkcd.com/927/>`__.
        
        Features
        --------
        
        -  Uses system libscrypt\ `2 <https://github.com/technion/libscrypt>`__
           as the first choice.
        -  If that isn't available, tries the scrypt Python
           module\ `3 <https://bitbucket.org/mhallin/py-scrypt/src>`__.
        -  Offers a pure Python scrypt implementation for when there's no C
           scrypt.
        -  Not unusably slow, even in pure Python... at least with
           pypy\ `4 <http://pypy.org/>`__. (Around one fifth the C speed,
           anyway.)
        
        Requirements
        ------------
        
        -  Python 2.7 or 3.4 or so. Pypy 2.2 also works. Older versions may or
           may not.
        -  If you want speed: libscrypt 1.8+ (older may work) or py-scrypt 0.6+
        
        Usage
        -----
        
        ::
        
            from pylibscrypt import *
            # Print a raw scrypt hash in hex
            print(scrypt('Hello World', 'salt').encode('hex'))
            # Generate an MCF hash with random salt
            mcf = scrypt_mcf('Hello World')
            # Test it
            print(scrypt_mcf_check(mcf, 'Hello World'))
            print(scrypt_mcf_check(mcf, 'HelloPyWorld'))
        
        Versioning
        ----------
        
        The package has a version number that can be read from python like so:
        
        ::
        
            print(pylibscrypt.__version__)
        
        The version number is of the form X.Y.Z. The number X will only be
        incremented if an incompatible change is done, but this is not planned.
        The number Y will be incremented for new features or API for which a
        caller may wish to check. The last number will be incremented for
        bugfix-only releases.
        
        Development
        -----------
        
        Development happens on
        GitHub\ `2 <https://github.com/technion/libscrypt>`__. If you find a
        bug, please open an issue there.
        
        tests.py tests both implementations with some quick tests. Running
        either implementation directly will also compare to scrypt test vectors
        from the paper but this is slow for the Python version unless you have
        pypy. The best way to report a bug is to also provide a new test that
        fails, but that is not required.
        
        The run\_coverage.sh script calls
        coverage.py\ `5 <http://nedbatchelder.com/code/coverage/>`__ to report
        test coverage. If you would like to include a new feature, it should be
        adequately covered with tests.
        
        TODO
        ----
        
        -  Embed C implementation for when there's no system library?
        
        
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Topic :: Security :: Cryptography
Classifier: Topic :: Software Development :: Libraries
