[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