Arthur de Jong

Open Source / Free Software developer

summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArthur de Jong <arthur@arthurdejong.org>2016-04-05 18:35:35 +0200
committerArthur de Jong <arthur@arthurdejong.org>2016-04-05 18:35:40 +0200
commit5dbfefdd05133448c91f1ef014f71f3dc001dcd7 (patch)
tree89058c4efab8b1d20c283bfce0dce54539acfd35
parent0d7caf150e646724fbca54ac60f4d027b2b34aad (diff)
Remove parse call from constructors
This makes the creation if internal instances a litte more consistent.
-rw-r--r--pskc/__init__.py4
-rw-r--r--pskc/encryption.py3
-rw-r--r--pskc/key.py9
-rw-r--r--pskc/policy.py3
4 files changed, 7 insertions, 12 deletions
diff --git a/pskc/__init__.py b/pskc/__init__.py
index 843a919..17021c7 100644
--- a/pskc/__init__.py
+++ b/pskc/__init__.py
@@ -99,7 +99,9 @@ class PSKC(object):
self.mac.parse(find(container, 'MACMethod'))
# handle KeyPackage entries
for key_package in findall(container, 'KeyPackage'):
- self.keys.append(Key(self, key_package))
+ key = Key(self)
+ key.parse(key_package)
+ self.keys.append(key)
def make_xml(self):
from pskc.xml import mk_elem
diff --git a/pskc/encryption.py b/pskc/encryption.py
index aeeb33c..f63bf7b 100644
--- a/pskc/encryption.py
+++ b/pskc/encryption.py
@@ -41,14 +41,13 @@ class KeyDerivation(object):
pbkdf2_prf: name of pseudorandom function used
"""
- def __init__(self, key_derivation=None):
+ def __init__(self):
self.algorithm = None
# PBKDF2 properties
self.pbkdf2_salt = None
self.pbkdf2_iterations = None
self.pbkdf2_key_length = None
self.pbkdf2_prf = None
- self.parse(key_derivation)
def parse(self, key_derivation):
"""Read derivation parameters from a <KeyDerivationMethod> element."""
diff --git a/pskc/key.py b/pskc/key.py
index d7d1cb0..56120ea 100644
--- a/pskc/key.py
+++ b/pskc/key.py
@@ -40,13 +40,12 @@ class DataType(object):
value_mac: MAC of the encrypted value
"""
- def __init__(self, key, element=None):
+ def __init__(self, key):
self.pskc = key.pskc
self.value = None
self.cipher_value = None
self.algorithm = None
self.value_mac = None
- self.parse(element)
def parse(self, element):
"""Read information from the provided element.
@@ -261,7 +260,7 @@ class Key(object):
policy: reference to policy information (see Policy class)
"""
- def __init__(self, pskc, key_package=None):
+ def __init__(self, pskc):
self.pskc = pskc
@@ -304,13 +303,9 @@ class Key(object):
self.policy = Policy(self)
- self.parse(key_package)
-
def parse(self, key_package):
"""Read key information from the provided <KeyPackage> tree."""
from pskc.xml import find, findtext, findtime, getint, getbool
- if key_package is None:
- return
key = find(key_package, 'Key')
if key is not None:
diff --git a/pskc/policy.py b/pskc/policy.py
index 87af698..20f5795 100644
--- a/pskc/policy.py
+++ b/pskc/policy.py
@@ -99,7 +99,7 @@ class Policy(object):
# The PIN is used in the algorithm computation.
PIN_USE_ALGORITHMIC = 'Algorithmic'
- def __init__(self, key=None, policy=None):
+ def __init__(self, key=None):
"""Create a new policy, optionally linked to the key and parsed."""
self.key = key
self.start_date = None
@@ -113,7 +113,6 @@ class Policy(object):
self.pin_max_length = None
self.pin_encoding = None
self.unknown_policy_elements = False
- self.parse(policy)
def parse(self, policy):
"""Read key policy information from the provided <Policy> tree."""