[Checkins] SVN: keas.kmi/tags/0.3.0/ Release keas.kmi 0.3.0.
Marius Gedminas
marius at pov.lt
Thu Sep 4 20:00:41 EDT 2008
Log message for revision 90854:
Release keas.kmi 0.3.0.
Changed:
A keas.kmi/tags/0.3.0/
D keas.kmi/tags/0.3.0/CHANGES.txt
A keas.kmi/tags/0.3.0/CHANGES.txt
D keas.kmi/tags/0.3.0/setup.py
A keas.kmi/tags/0.3.0/setup.py
A keas.kmi/tags/0.3.0/src/keas/kmi/keyholder.py
A keas.kmi/tags/0.3.0/src/keas/kmi/keyholder.txt
D keas.kmi/tags/0.3.0/src/keas/kmi/tests.py
A keas.kmi/tags/0.3.0/src/keas/kmi/tests.py
-=-
Copied: keas.kmi/tags/0.3.0 (from rev 90847, keas.kmi/trunk)
Deleted: keas.kmi/tags/0.3.0/CHANGES.txt
===================================================================
--- keas.kmi/trunk/CHANGES.txt 2008-09-04 21:08:50 UTC (rev 90847)
+++ keas.kmi/tags/0.3.0/CHANGES.txt 2008-09-05 00:00:41 UTC (rev 90854)
@@ -1,34 +0,0 @@
-=======
-CHANGES
-=======
-
-0.2.1 (unreleased)
-------------------
-
-
-0.2.0 (2008-09-04)
-------------------
-
-- Sample server shows how to enable SSL
-
-- Front page now shows the number of stored keys instead of a
- ComponentLookupError message.
-
-- Command-line client for testing a remote Key Management Server
-
-- Bugfix: LocalKeyManagementFacility was broken (AttributeError: 'RESTClient'
- object has no attribute 'POST')
-
-
-0.1.0 (2008-09-03)
-------------------
-
-- Initial Release
-
- * Key Generation Service
-
- * Encryption Service (Master and Local)
-
- * REST API for key communication between encryption services
-
- * Encrypted Persistent Storage
Copied: keas.kmi/tags/0.3.0/CHANGES.txt (from rev 90853, keas.kmi/trunk/CHANGES.txt)
===================================================================
--- keas.kmi/tags/0.3.0/CHANGES.txt (rev 0)
+++ keas.kmi/tags/0.3.0/CHANGES.txt 2008-09-05 00:00:41 UTC (rev 90854)
@@ -0,0 +1,36 @@
+=======
+CHANGES
+=======
+
+0.3.0 (2008-09-04)
+------------------
+
+- A simple KeyHolder utility is available in keas.kmi.keyholder.
+
+
+0.2.0 (2008-09-04)
+------------------
+
+- Sample server shows how to enable SSL
+
+- Front page now shows the number of stored keys instead of a
+ ComponentLookupError message.
+
+- Command-line client for testing a remote Key Management Server
+
+- Bugfix: LocalKeyManagementFacility was broken (AttributeError: 'RESTClient'
+ object has no attribute 'POST')
+
+
+0.1.0 (2008-09-03)
+------------------
+
+- Initial Release
+
+ * Key Generation Service
+
+ * Encryption Service (Master and Local)
+
+ * REST API for key communication between encryption services
+
+ * Encrypted Persistent Storage
Deleted: keas.kmi/tags/0.3.0/setup.py
===================================================================
--- keas.kmi/trunk/setup.py 2008-09-04 21:08:50 UTC (rev 90847)
+++ keas.kmi/tags/0.3.0/setup.py 2008-09-05 00:00:41 UTC (rev 90854)
@@ -1,78 +0,0 @@
-##############################################################################
-#
-# Copyright (c) 2008 Zope Foundation 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.
-#
-##############################################################################
-"""
-$Id$
-"""
-import os
-from setuptools import setup, find_packages
-
-def read(*rnames):
- return open(os.path.join(os.path.dirname(__file__), *rnames)).read()
-
-setup (
- name='keas.kmi',
- version='0.2.1dev',
- author = "Stephan Richter and the Zope Community",
- author_email = "zope-dev at zope.org",
- description = "A Key Management Infrastructure",
- long_description=(
- read('README.txt')
- + '\n\n' +
- read('src', 'keas', 'kmi', 'README.txt')
- + '\n\n' +
- read('src', 'keas', 'kmi', 'persistent.txt')
- + '\n\n' +
- read('CHANGES.txt')
- ),
- license = "ZPL 2.1",
- keywords = "zope3 security key management infrastructure nist 800-57",
- classifiers = [
- 'Development Status :: 4 - Beta',
- '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'],
- url = 'http://pypi.python.org/pypi/keas.kmi',
- packages = find_packages('src'),
- include_package_data = True,
- package_dir = {'':'src'},
- namespace_packages = ['keas'],
- extras_require = dict(
- test = [
- 'zope.testing',
- 'zope.app.testing',
- ],
- ),
- install_requires = [
- 'M2Crypto==0.18',
- 'setuptools',
- 'z3c.rest',
- 'zope.component',
- 'zope.interface',
- 'zope.schema',
- 'ZODB3',
- ],
- zip_safe = False,
- entry_points = """
- [console_scripts]
- testclient = keas.kmi.testclient:main
-
- [paste.app_factory]
- main = keas.kmi.wsgi:application_factory
- """,
-)
Copied: keas.kmi/tags/0.3.0/setup.py (from rev 90853, keas.kmi/trunk/setup.py)
===================================================================
--- keas.kmi/tags/0.3.0/setup.py (rev 0)
+++ keas.kmi/tags/0.3.0/setup.py 2008-09-05 00:00:41 UTC (rev 90854)
@@ -0,0 +1,78 @@
+##############################################################################
+#
+# Copyright (c) 2008 Zope Foundation 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.
+#
+##############################################################################
+"""
+$Id$
+"""
+import os
+from setuptools import setup, find_packages
+
+def read(*rnames):
+ return open(os.path.join(os.path.dirname(__file__), *rnames)).read()
+
+setup (
+ name='keas.kmi',
+ version='0.3.0',
+ author = "Stephan Richter and the Zope Community",
+ author_email = "zope-dev at zope.org",
+ description = "A Key Management Infrastructure",
+ long_description=(
+ read('README.txt')
+ + '\n\n' +
+ read('src', 'keas', 'kmi', 'README.txt')
+ + '\n\n' +
+ read('src', 'keas', 'kmi', 'persistent.txt')
+ + '\n\n' +
+ read('CHANGES.txt')
+ ),
+ license = "ZPL 2.1",
+ keywords = "zope3 security key management infrastructure nist 800-57",
+ classifiers = [
+ 'Development Status :: 4 - Beta',
+ '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'],
+ url = 'http://pypi.python.org/pypi/keas.kmi',
+ packages = find_packages('src'),
+ include_package_data = True,
+ package_dir = {'':'src'},
+ namespace_packages = ['keas'],
+ extras_require = dict(
+ test = [
+ 'zope.testing',
+ 'zope.app.testing',
+ ],
+ ),
+ install_requires = [
+ 'M2Crypto==0.18',
+ 'setuptools',
+ 'z3c.rest',
+ 'zope.component',
+ 'zope.interface',
+ 'zope.schema',
+ 'ZODB3',
+ ],
+ zip_safe = False,
+ entry_points = """
+ [console_scripts]
+ testclient = keas.kmi.testclient:main
+
+ [paste.app_factory]
+ main = keas.kmi.wsgi:application_factory
+ """,
+)
Copied: keas.kmi/tags/0.3.0/src/keas/kmi/keyholder.py (from rev 90851, keas.kmi/trunk/src/keas/kmi/keyholder.py)
===================================================================
--- keas.kmi/tags/0.3.0/src/keas/kmi/keyholder.py (rev 0)
+++ keas.kmi/tags/0.3.0/src/keas/kmi/keyholder.py 2008-09-05 00:00:41 UTC (rev 90854)
@@ -0,0 +1,31 @@
+##############################################################################
+#
+# Copyright (c) 2008 Zope Foundation 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.
+#
+##############################################################################
+"""
+$Id
+"""
+__docformat__ = "reStructuredText"
+
+from zope.interface import implements
+
+from keas.kmi.interfaces import IKeyHolder
+
+
+class KeyHolder(object):
+ """A key holder utility that loads the key from a file and keeps it in RAM."""
+
+ implements(IKeyHolder)
+
+ def __init__(self, filename):
+ self.key = file(filename, 'rb').read()
+
Copied: keas.kmi/tags/0.3.0/src/keas/kmi/keyholder.txt (from rev 90851, keas.kmi/trunk/src/keas/kmi/keyholder.txt)
===================================================================
--- keas.kmi/tags/0.3.0/src/keas/kmi/keyholder.txt (rev 0)
+++ keas.kmi/tags/0.3.0/src/keas/kmi/keyholder.txt 2008-09-05 00:00:41 UTC (rev 90854)
@@ -0,0 +1,42 @@
+===================
+Database key holder
+===================
+
+If you want to have encrypted objects in the database, you need to store the
+key encrypting key somewhere. A DatabaseKeyHolder stores it in the database
+alongside your encrypted objects. This is convenient, and slightly secure:
+If someone steals your database, they won't be able to decrypt your data
+without gaining access to the Key Management Server.
+
+ >>> from keas.kmi.keyholder import DatabaseKeyHolder
+ >>> from keas.kmi.interfaces import IKeyHolder
+ >>> from zope.interface.verify import verifyObject
+ >>> holder = DatabaseKeyHolder()
+ >>> verifyObject(IKeyHolder, holder)
+ True
+
+Initially there is no key
+
+ >>> holder.key
+
+We can set it
+
+ >>> holder.key = 'xyzzy'
+ >>> holder.key
+ 'xyzzy'
+
+It is actually stored in the database
+
+ >>> from keas.kmi.keyholder improt KEY
+ >>> from zope.component import getUtility
+ >>> from ZODB.interfaces import IDatabase
+ >>> getUtility(IDatabase).open().root()[KEY]
+ 'xyzzy'
+
+You cannot change the key once it's set
+
+ >>> holder.key = 'wubawuba'
+ Traceback (most recent call last):
+ ...
+ ValueError: waaah
+
Deleted: keas.kmi/tags/0.3.0/src/keas/kmi/tests.py
===================================================================
--- keas.kmi/trunk/src/keas/kmi/tests.py 2008-09-04 21:08:50 UTC (rev 90847)
+++ keas.kmi/tags/0.3.0/src/keas/kmi/tests.py 2008-09-05 00:00:41 UTC (rev 90854)
@@ -1,51 +0,0 @@
-##############################################################################
-#
-# Copyright (c) 2008 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.
-#
-##############################################################################
-"""
-$Id$
-"""
-import unittest
-
-import transaction
-from zope.testing import doctest
-from zope.app.testing import setup
-from zope.component import provideUtility
-
-from keas.kmi.testing import TestingKeyManagementFacility
-from keas.kmi.interfaces import IKeyManagementFacility
-
-
-def setUpPersistent(test):
- setup.setUpTestAsModule(test, name='keas.kmi.tests.doctestfile')
- setup.placelessSetUp()
- provideUtility(TestingKeyManagementFacility(),
- provides=IKeyManagementFacility)
-
-
-def tearDownPersistent(test):
- transaction.abort()
- setup.placelessTearDown()
- setup.tearDownTestAsModule(test)
-
-
-def test_suite():
- return unittest.TestSuite([
- doctest.DocFileSuite(
- 'README.txt',
- setUp=setup.placelessSetUp, tearDown=setup.placelessTearDown,
- optionflags=doctest.NORMALIZE_WHITESPACE|doctest.ELLIPSIS),
- doctest.DocFileSuite(
- 'persistent.txt',
- setUp=setUpPersistent, tearDown=tearDownPersistent,
- optionflags=doctest.NORMALIZE_WHITESPACE|doctest.ELLIPSIS),
- ])
Copied: keas.kmi/tags/0.3.0/src/keas/kmi/tests.py (from rev 90851, keas.kmi/trunk/src/keas/kmi/tests.py)
===================================================================
--- keas.kmi/tags/0.3.0/src/keas/kmi/tests.py (rev 0)
+++ keas.kmi/tags/0.3.0/src/keas/kmi/tests.py 2008-09-05 00:00:41 UTC (rev 90854)
@@ -0,0 +1,65 @@
+##############################################################################
+#
+# Copyright (c) 2008 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.
+#
+##############################################################################
+"""
+$Id$
+"""
+import unittest
+
+import transaction
+from zope.testing import doctest
+from zope.app.testing import setup
+from zope.component import provideUtility
+from zope.interface.verify import verifyObject
+
+from keas.kmi.testing import TestingKeyManagementFacility
+from keas.kmi.keyholder import KeyHolder
+from keas.kmi.interfaces import IKeyManagementFacility
+from keas.kmi.interfaces import IKeyHolder
+
+
+def setUpPersistent(test):
+ setup.setUpTestAsModule(test, name='keas.kmi.tests.doctestfile')
+ setup.placelessSetUp()
+ provideUtility(TestingKeyManagementFacility(),
+ provides=IKeyManagementFacility)
+
+
+def tearDownPersistent(test):
+ transaction.abort()
+ setup.placelessTearDown()
+ setup.tearDownTestAsModule(test)
+
+
+def doctest_KeyHolder():
+ """Smoke test for the KeyHolder class.
+
+ >>> holder = KeyHolder(__file__)
+ >>> verifyObject(IKeyHolder, holder)
+ True
+
+ """
+
+
+def test_suite():
+ return unittest.TestSuite([
+ doctest.DocFileSuite(
+ 'README.txt',
+ setUp=setup.placelessSetUp, tearDown=setup.placelessTearDown,
+ optionflags=doctest.NORMALIZE_WHITESPACE|doctest.ELLIPSIS),
+ doctest.DocFileSuite(
+ 'persistent.txt',
+ setUp=setUpPersistent, tearDown=tearDownPersistent,
+ optionflags=doctest.NORMALIZE_WHITESPACE|doctest.ELLIPSIS),
+ doctest.DocTestSuite(),
+ ])
More information about the Checkins
mailing list