aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--libhal.py19
2 files changed, 17 insertions, 3 deletions
diff --git a/.gitignore b/.gitignore
index 01c1858..764f6fb 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,5 @@
*.[ao]
+*.pyc
*~
Makefile
TAGS
diff --git a/libhal.py b/libhal.py
index fa01ffc..0924863 100644
--- a/libhal.py
+++ b/libhal.py
@@ -158,7 +158,7 @@ def_enum('''
''')
def_enum('''
- HAL_KEY_TYPE_NONE = 0,
+ HAL_KEY_TYPE_NONE,
HAL_KEY_TYPE_RSA_PRIVATE,
HAL_KEY_TYPE_RSA_PUBLIC,
HAL_KEY_TYPE_EC_PRIVATE,
@@ -185,6 +185,17 @@ HAL_KEY_FLAG_USAGE_DATAENCIPHERMENT = (1 << 2)
HAL_KEY_FLAG_TOKEN = (1 << 3)
+class Attribute(object):
+
+ def __init__(self, type, value):
+ self.type = type
+ self.value = value
+
+ def xdr_packer(self, packer):
+ packer.pack_uint(self.type)
+ packer.pack_bytes(self.value)
+
+
def cached_property(func):
attr_name = "_" + func.__name__
@@ -280,7 +291,7 @@ class PKey(Handle):
class HSM(object):
- debug = True
+ debug = False
def _raise_if_error(self, status):
if status != 0:
@@ -352,7 +363,9 @@ class HSM(object):
def _pack(self, packer, args):
for arg in args:
- if isinstance(arg, (int, long, Handle)):
+ if hasattr(arg, "xdr_packer"):
+ arg.xdr_packer(packer)
+ elif isinstance(arg, (int, long, Handle)):
packer.pack_uint(arg)
elif isinstance(arg, str):
packer.pack_bytes(arg)