Skip to content
This repository has been archived by the owner on May 13, 2020. It is now read-only.

Commit

Permalink
put package in it new found home
Browse files Browse the repository at this point in the history
  • Loading branch information
janwijbrand committed Feb 18, 2010
0 parents commit 5dfb3bd
Show file tree
Hide file tree
Showing 13 changed files with 420 additions and 0 deletions.
82 changes: 82 additions & 0 deletions .installed.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
[buildout]
installed_develop_eggs = /home/jw/project/grokdev/z3c.bcrypt/develop-eggs/z3c.bcrypt.egg-link
parts = devtools test

[devtools]
__buildout_installed__ = /home/jw/project/grokdev/z3c.bcrypt/bin/ezmerge
/home/jw/project/grokdev/z3c.bcrypt/bin/ezrevert
/home/jw/project/grokdev/z3c.bcrypt/bin/eazysvn
/home/jw/project/grokdev/z3c.bcrypt/bin/ezswitch
/home/jw/project/grokdev/z3c.bcrypt/bin/ezbranch
/home/jw/project/grokdev/z3c.bcrypt/bin/iptest
/home/jw/project/grokdev/z3c.bcrypt/bin/ipythonx
/home/jw/project/grokdev/z3c.bcrypt/bin/ipcluster
/home/jw/project/grokdev/z3c.bcrypt/bin/ipython
/home/jw/project/grokdev/z3c.bcrypt/bin/pycolor
/home/jw/project/grokdev/z3c.bcrypt/bin/ipcontroller
/home/jw/project/grokdev/z3c.bcrypt/bin/ipengine
/home/jw/project/grokdev/z3c.bcrypt/bin/easy_install
/home/jw/project/grokdev/z3c.bcrypt/bin/easy_install-2.5
/home/jw/project/grokdev/z3c.bcrypt/bin/fullrelease
/home/jw/project/grokdev/z3c.bcrypt/bin/postrelease
/home/jw/project/grokdev/z3c.bcrypt/bin/lasttagdiff
/home/jw/project/grokdev/z3c.bcrypt/bin/prerelease
/home/jw/project/grokdev/z3c.bcrypt/bin/release
/home/jw/project/grokdev/z3c.bcrypt/bin/longtest
/home/jw/project/grokdev/z3c.bcrypt/bin/python
__buildout_signature__ = zc.recipe.egg-1.2.2-py2.5.egg setuptools-0.6c11-py2.5.egg zc.buildout-1.4.3-py2.5.egg
_b = /home/jw/project/grokdev/z3c.bcrypt/bin
_d = /home/jw/project/grokdev/z3c.bcrypt/develop-eggs
_e = /home/jw/.buildout/eggs
bin-directory = /home/jw/project/grokdev/z3c.bcrypt/bin
develop-eggs-directory = /home/jw/project/grokdev/z3c.bcrypt/develop-eggs
eggs = %(__buildout_space_n__)sz3c.bcrypt
z3c.bcrypt [test]
cryptacular
eazysvn
ipython
setuptools
zest.releaser
eggs-directory = /home/jw/.buildout/eggs
executable = /home/jw/py2.5/bin/python
interpreter = python
recipe = zc.recipe.egg

[test]
__buildout_installed__ = /home/jw/project/grokdev/z3c.bcrypt/parts/test
/home/jw/project/grokdev/z3c.bcrypt/bin/test
__buildout_signature__ = zc.recipe.testrunner-1.2.0-py2.5.egg zc.recipe.egg-1.2.2-py2.5.egg setuptools-0.6c11-py2.5.egg zope.testing-3.8.7-py2.5.egg zc.buildout-1.4.3-py2.5.egg zope.interface-3.5.2-py2.5-linux-i686.egg zope.exceptions-3.5.2-py2.5.egg
_b = /home/jw/project/grokdev/z3c.bcrypt/bin
_d = /home/jw/project/grokdev/z3c.bcrypt/develop-eggs
_e = /home/jw/.buildout/eggs
bin-directory = /home/jw/project/grokdev/z3c.bcrypt/bin
defaults = ['-v']
develop-eggs-directory = /home/jw/project/grokdev/z3c.bcrypt/develop-eggs
eggs = %(__buildout_space_n__)sz3c.bcrypt
z3c.bcrypt [test]
eggs-directory = /home/jw/.buildout/eggs
executable = /home/jw/py2.5/bin/python
location = /home/jw/project/grokdev/z3c.bcrypt/parts/test
recipe = zc.recipe.testrunner
script = /home/jw/project/grokdev/z3c.bcrypt/bin/test

[buildout]
parts = test devtools

[buildout]
installed_develop_eggs = /home/jw/project/grokdev/z3c.bcrypt/develop-eggs/z3c.bcrypt.egg-link

[buildout]
parts = devtools test

[buildout]
parts = test devtools

[buildout]
installed_develop_eggs = /home/jw/project/grokdev/z3c.bcrypt/develop-eggs/z3c.bcrypt.egg-link

[buildout]
parts = devtools test

[buildout]
parts = test devtools
7 changes: 7 additions & 0 deletions CHANGES.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
Changelog of z3c.bcrypt
=======================

1.0 (unreleased)
----------------

- Initial public release.
54 changes: 54 additions & 0 deletions LICENSE.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
Zope Public License (ZPL) Version 2.1
-------------------------------------

A copyright notice accompanies this license document that
identifies the copyright holders.

This license has been certified as open source. It has also
been designated as GPL compatible by the Free Software
Foundation (FSF).

Redistribution and use in source and binary forms, with or
without modification, are permitted provided that the
following conditions are met:

1. Redistributions in source code must retain the
accompanying copyright notice, this list of conditions,
and the following disclaimer.

2. Redistributions in binary form must reproduce the accompanying
copyright notice, this list of conditions, and the
following disclaimer in the documentation and/or other
materials provided with the distribution.

3. Names of the copyright holders must not be used to
endorse or promote products derived from this software
without prior written permission from the copyright
holders.

4. The right to distribute this software or to use it for
any purpose does not give you the right to use
Servicemarks (sm) or Trademarks (tm) of the copyright
holders. Use of them is covered by separate agreement
with the copyright holders.

5. If any files are modified, you must cause the modified
files to carry prominent notices stating that you changed
the files and the date of any change.

Disclaimer

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS''
AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT
NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
NO EVENT SHALL THE COPYRIGHT HOLDERS BE
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
DAMAGE.
11 changes: 11 additions & 0 deletions README.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
z3c.bcrypt
==========

z3c.bcrypt provides `zope.password`_ compatible "password manager" utilities
that use bcrypt (or alternatively pbkdf2) encoding for storing passwords.

Both encoding schemes are implemented in the cryptacular_ library that is
a dependency for this pacakge.

.. _`zope.password`: http://pypi.python.org/pypi/zope.password
.. _cryptacular: http://pypi.python.org/pypi/cryptacular
55 changes: 55 additions & 0 deletions bootstrap.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
##############################################################################
#
# Copyright (c) 2006 Zope Corporation and Contributors.
# All Rights Reserved.
#
# This software is subject to the provisions of the Zope Public License,
# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
# FOR A PARTICULAR PURPOSE.
#
##############################################################################
"""Bootstrap a buildout-based project
Simply run this script in a directory containing a buildout.cfg.
The script accepts buildout command-line options, so you can
use the -c option to specify an alternate configuration file.
$Id$
"""

import os, shutil, sys, tempfile, urllib2

tmpeggs = tempfile.mkdtemp()

try:
import pkg_resources
except ImportError:
ez = {}
exec urllib2.urlopen('http://peak.telecommunity.com/dist/ez_setup.py'
).read() in ez
ez['use_setuptools'](to_dir=tmpeggs, download_delay=0)

import pkg_resources

cmd = 'from setuptools.command.easy_install import main; main()'
if sys.platform == 'win32':
cmd = '"%s"' % cmd # work around spawn lamosity on windows

ws = pkg_resources.working_set
assert os.spawnle(
os.P_WAIT, sys.executable, sys.executable,
'-c', cmd, '-mqNxd', tmpeggs, 'zc.buildout',
dict(os.environ,
PYTHONPATH=
ws.find(pkg_resources.Requirement.parse('setuptools')).location
),
) == 0

ws.add_entry(tmpeggs)
ws.require('zc.buildout')
import zc.buildout.buildout
zc.buildout.buildout.main(sys.argv[1:] + ['bootstrap'])
shutil.rmtree(tmpeggs)
25 changes: 25 additions & 0 deletions buildout.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
[buildout]
develop = .
extensions = buildout.dumppickedversions
parts = test devtools
prefer-final = true
unzip = true

[test]
recipe = zc.recipe.testrunner
defaults = ['-v']
eggs =
z3c.bcrypt
z3c.bcrypt [test]

[devtools]
recipe = zc.recipe.egg
interpreter = python
eggs =
z3c.bcrypt
z3c.bcrypt [test]
cryptacular
eazysvn
ipython
setuptools
zest.releaser
53 changes: 53 additions & 0 deletions setup.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
from setuptools import setup, find_packages
import os.path

version = '1.0dev'

readme = open('README.txt').read()
changes = open('CHANGES.txt').read()
usage = open(os.path.join(
'src', 'z3c', 'bcrypt', 'USAGE.txt')).read()

long_description = '\n\n'.join([readme, usage, changes, ''])

setup(name='z3c.bcrypt',
version=version,
description=(
"Password manager utility using bcrypt or pbkdf2 encoding. "
"Useful in combination with zope.password"),
long_description=long_description,
classifiers = [
'Development Status :: 5 - Production/Stable',
'Environment :: Web Environment',
'Intended Audience :: Developers',
'License :: OSI Approved :: Zope Public License',
'Programming Language :: Python',
'Natural Language :: English',
'Operating System :: OS Independent',
'Topic :: Internet :: WWW/HTTP',
'Framework :: Zope3'],
keywords='zope authentication password bcrypy pbkdf2',
author = "The Health Agency and the Zope Community",
author_email = "zope3-dev@zope.org",
url='http://pypi.python.org/pypi/z3c.bcrypt',
license='ZPL 2.1',
package_dir={'': 'src'},
packages=find_packages('src'),
namespace_packages=['z3c'],
include_package_data=True,
zip_safe=False,
install_requires=[
'setuptools',
'cryptacular',
'zope.interface',
'zope.password',
],
extras_require = dict(
test = [
'zope.testing',
],
),
entry_points={
'console_scripts': []
},
)
1 change: 1 addition & 0 deletions src/z3c/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
__import__('pkg_resources').declare_namespace(__name__)
42 changes: 42 additions & 0 deletions src/z3c/bcrypt/USAGE.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
z3c.bcrypt
===========

>>> from zope.interface.verify import verifyObject
>>> from zope.password.interfaces import IPasswordManager
>>> from z3c.bcrypt import BcryptPasswordManager
>>> manager = BcryptPasswordManager()
>>> verifyObject(IPasswordManager, manager)
True

>>> password = u"right \N{CYRILLIC CAPITAL LETTER A}"

>>> encoded = manager.encodePassword(password)
>>> encoded
'$2a$...'
>>> manager.checkPassword(encoded, password)
True
>>> manager.checkPassword(encoded, password + u"wrong")
False

>>> from z3c.bcrypt import PBKDF2PasswordManager
>>> manager = PBKDF2PasswordManager()
>>> verifyObject(IPasswordManager, manager)
True

>>> encoded = manager.encodePassword(password)
>>> encoded
'$p5k2$...'
>>> manager.checkPassword(encoded, password)
True
>>> manager.checkPassword(encoded, password + u"wrong")
False

>>> # A previously encoded password, should be decodable even if the
>>> # current encoding of the same password is different::
>>> previouslyencoded = (
... '$p5k2$1000$LgAFPIlc9CgrlSaxHyTUMA='
... '=$IuUYplhMkR4qCl8-ONRVjEgJNwE=')
>>> encoded == previouslyencoded
False
>>> manager.checkPassword(previouslyencoded , password)
True
2 changes: 2 additions & 0 deletions src/z3c/bcrypt/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
from z3c.bcrypt.passwordmanager import BcryptPasswordManager
from z3c.bcrypt.passwordmanager import PBKDF2PasswordManager
26 changes: 26 additions & 0 deletions src/z3c/bcrypt/configure.zcml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
<configure
xmlns="http://namespaces.zope.org/zope"
xmlns:grok="http://namespaces.zope.org/grok">

<include package="zope.password" />

<utility
name="bcrypt"
provides="zope.password.interfaces.IPasswordManager"
factory=".passwordmanager.BcryptPasswordManager"
/>
<utility
name="pbkdf2"
provides="zope.password.interfaces.IPasswordManager"
factory=".passwordmanager.PBKDF2PasswordManager"
/>

<configure zcml:condition="installed zope.security">
<class class=".passwordmanager.BcryptPasswordManager">
<allow interface="zope.password.interfaces.IPasswordManager" />
</class>
<class class=".passwordmanager.PBKDF2PasswordManager">
<allow interface=".interfaces.IPasswordManager" />
</class>
</configure>
</configure>
Loading

0 comments on commit 5dfb3bd

Please sign in to comment.