diff options
author | Rob Austein <sra@hactrn.net> | 2016-10-20 00:58:23 -0400 |
---|---|---|
committer | Rob Austein <sra@hactrn.net> | 2016-10-20 00:58:23 -0400 |
commit | 7c47b5772bb2846fc6193b3c8128b376637c32e7 (patch) | |
tree | 52ffd7ca1d100f5c2731faf5a07f17e522e8b2db | |
parent | d7157081e8edd10d15b0686429d9323a584c7133 (diff) |
Fix HAL_KEY_TYPE_* symbols, add Attribute class.
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | libhal.py | 19 |
2 files changed, 17 insertions, 3 deletions
@@ -1,4 +1,5 @@ *.[ao] +*.pyc *~ Makefile TAGS @@ -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) |