blob: 3a99cc5485996a94a5b5cb91d95f9403205f537b [file] [log] [blame]
#
# Copyright 2018,2020 NXP
# SPDX-License-Identifier: Apache-2.0
#
#
# Begin preamble
import ctypes, os, sys
from ctypes import *
_int_types = (c_int16, c_int32)
if hasattr(ctypes, 'c_int64'):
# Some builds of ctypes apparently do not have c_int64
# defined; it's a pretty good bet that these builds do not
# have 64-bit pointers.
_int_types += (c_int64,)
for t in _int_types:
if sizeof(t) == sizeof(c_size_t):
c_ptrdiff_t = t
del t
del _int_types
class c_void(Structure):
# c_void_p is a buggy return type, converting to int, so
# POINTER(None) == c_void_p is actually written as
# POINTER(c_void), so it can be treated as a real pointer.
_fields_ = [('dummy', c_int)]
def POINTER(obj):
p = ctypes.POINTER(obj)
# Convert None to a real NULL pointer to work around bugs
# in how ctypes handles None on 64-bit platforms
if not isinstance(p.from_param, classmethod):
def from_param(cls, x):
if x is None:
return cls()
else:
return x
p.from_param = classmethod(from_param)
return p
class UserString:
def __init__(self, seq):
if isinstance(seq, str):
self.data = seq
elif isinstance(seq, UserString):
self.data = seq.data[:]
else:
self.data = str(seq)
def __str__(self): return str(self.data)
def __repr__(self): return repr(self.data)
def __int__(self): return int(self.data)
def __long__(self): return int(self.data)
def __float__(self): return float(self.data)
def __complex__(self): return complex(self.data)
def __hash__(self): return hash(self.data)
def __cmp__(self, string):
if isinstance(string, UserString):
return cmp(self.data, string.data)
else:
return cmp(self.data, string)
def __contains__(self, char):
return char in self.data
def __len__(self): return len(self.data)
def __getitem__(self, index): return self.__class__(self.data[index])
def __getslice__(self, start, end):
start = max(start, 0); end = max(end, 0)
return self.__class__(self.data[start:end])
def __add__(self, other):
if isinstance(other, UserString):
return self.__class__(self.data + other.data)
elif isinstance(other, str):
return self.__class__(self.data + other)
else:
return self.__class__(self.data + str(other))
def __radd__(self, other):
if isinstance(other, str):
return self.__class__(other + self.data)
else:
return self.__class__(str(other) + self.data)
def __mul__(self, n):
return self.__class__(self.data*n)
__rmul__ = __mul__
def __mod__(self, args):
return self.__class__(self.data % args)
# the following methods are defined in alphabetical order:
def capitalize(self): return self.__class__(self.data.capitalize())
def center(self, width, *args):
return self.__class__(self.data.center(width, *args))
def count(self, sub, start=0, end=sys.maxsize):
return self.data.count(sub, start, end)
def decode(self, encoding=None, errors=None): # XXX improve this?
if encoding:
if errors:
return self.__class__(self.data.decode(encoding, errors))
else:
return self.__class__(self.data.decode(encoding))
else:
return self.__class__(self.data.decode())
def encode(self, encoding=None, errors=None): # XXX improve this?
if encoding:
if errors:
return self.__class__(self.data.encode(encoding, errors))
else:
return self.__class__(self.data.encode(encoding))
else:
return self.__class__(self.data.encode())
def endswith(self, suffix, start=0, end=sys.maxsize):
return self.data.endswith(suffix, start, end)
def expandtabs(self, tabsize=8):
return self.__class__(self.data.expandtabs(tabsize))
def find(self, sub, start=0, end=sys.maxsize):
return self.data.find(sub, start, end)
def index(self, sub, start=0, end=sys.maxsize):
return self.data.index(sub, start, end)
def isalpha(self): return self.data.isalpha()
def isalnum(self): return self.data.isalnum()
def isdecimal(self): return self.data.isdecimal()
def isdigit(self): return self.data.isdigit()
def islower(self): return self.data.islower()
def isnumeric(self): return self.data.isnumeric()
def isspace(self): return self.data.isspace()
def istitle(self): return self.data.istitle()
def isupper(self): return self.data.isupper()
def join(self, seq): return self.data.join(seq)
def ljust(self, width, *args):
return self.__class__(self.data.ljust(width, *args))
def lower(self): return self.__class__(self.data.lower())
def lstrip(self, chars=None): return self.__class__(self.data.lstrip(chars))
def partition(self, sep):
return self.data.partition(sep)
def replace(self, old, new, maxsplit=-1):
return self.__class__(self.data.replace(old, new, maxsplit))
def rfind(self, sub, start=0, end=sys.maxsize):
return self.data.rfind(sub, start, end)
def rindex(self, sub, start=0, end=sys.maxsize):
return self.data.rindex(sub, start, end)
def rjust(self, width, *args):
return self.__class__(self.data.rjust(width, *args))
def rpartition(self, sep):
return self.data.rpartition(sep)
def rstrip(self, chars=None): return self.__class__(self.data.rstrip(chars))
def split(self, sep=None, maxsplit=-1):
return self.data.split(sep, maxsplit)
def rsplit(self, sep=None, maxsplit=-1):
return self.data.rsplit(sep, maxsplit)
def splitlines(self, keepends=0): return self.data.splitlines(keepends)
def startswith(self, prefix, start=0, end=sys.maxsize):
return self.data.startswith(prefix, start, end)
def strip(self, chars=None): return self.__class__(self.data.strip(chars))
def swapcase(self): return self.__class__(self.data.swapcase())
def title(self): return self.__class__(self.data.title())
def translate(self, *args):
return self.__class__(self.data.translate(*args))
def upper(self): return self.__class__(self.data.upper())
def zfill(self, width): return self.__class__(self.data.zfill(width))
class MutableString(UserString):
"""mutable string objects
Python strings are immutable objects. This has the advantage, that
strings may be used as dictionary keys. If this property isn't needed
and you insist on changing string values in place instead, you may cheat
and use MutableString.
But the purpose of this class is an educational one: to prevent
people from inventing their own mutable string class derived
from UserString and than forget thereby to remove (override) the
__hash__ method inherited from UserString. This would lead to
errors that would be very hard to track down.
A faster and better solution is to rewrite your program using lists."""
def __init__(self, string=""):
self.data = string
def __hash__(self):
raise TypeError("unhashable type (it is mutable)")
def __setitem__(self, index, sub):
if index < 0:
index += len(self.data)
if index < 0 or index >= len(self.data): raise IndexError
self.data = self.data[:index] + sub + self.data[index+1:]
def __delitem__(self, index):
if index < 0:
index += len(self.data)
if index < 0 or index >= len(self.data): raise IndexError
self.data = self.data[:index] + self.data[index+1:]
def __setslice__(self, start, end, sub):
start = max(start, 0); end = max(end, 0)
if isinstance(sub, UserString):
self.data = self.data[:start]+sub.data+self.data[end:]
elif isinstance(sub, str):
self.data = self.data[:start]+sub+self.data[end:]
else:
self.data = self.data[:start]+str(sub)+self.data[end:]
def __delslice__(self, start, end):
start = max(start, 0); end = max(end, 0)
self.data = self.data[:start] + self.data[end:]
def immutable(self):
return UserString(self.data)
def __iadd__(self, other):
if isinstance(other, UserString):
self.data += other.data
elif isinstance(other, str):
self.data += other
else:
self.data += str(other)
return self
def __imul__(self, n):
self.data *= n
return self
class String(MutableString, Union):
_fields_ = [('raw', POINTER(c_char)),
('data', c_char_p)]
def __init__(self, obj=""):
if isinstance(obj, (str, UserString)):
self.data = str(obj)
else:
self.raw = obj
def __len__(self):
return self.data and len(self.data) or 0
def from_param(cls, obj):
# Convert None or 0
if obj is None or obj == 0:
return cls(POINTER(c_char)())
# Convert from String
elif isinstance(obj, String):
return obj
# Convert from str
elif isinstance(obj, str):
return cls(obj)
# Convert from c_char_p
elif isinstance(obj, c_char_p):
return obj
# Convert from POINTER(c_char)
elif isinstance(obj, POINTER(c_char)):
return obj
# Convert from raw pointer
elif isinstance(obj, int):
return cls(cast(obj, POINTER(c_char)))
# Convert from object
else:
return String.from_param(obj._as_parameter_)
from_param = classmethod(from_param)
def ReturnString(obj, func=None, arguments=None):
return String.from_param(obj)
# As of ctypes 1.0, ctypes does not support custom error-checking
# functions on callbacks, nor does it support custom datatypes on
# callbacks, so we must ensure that all callbacks return
# primitive datatypes.
#
# Non-primitive return values wrapped with UNCHECKED won't be
# typechecked, and will be converted to c_void_p.
def UNCHECKED(type):
if (hasattr(type, "_type_") and isinstance(type._type_, str)
and type._type_ != "P"):
return type
else:
return c_void_p
# ctypes doesn't have direct support for variadic functions, so we have to write
# our own wrapper class
class _variadic_function(object):
def __init__(self,func,restype,argtypes):
self.func=func
self.func.restype=restype
self.argtypes=argtypes
def _as_parameter_(self):
# So we can pass this variadic function as a function pointer
return self.func
def __call__(self,*args):
fixed_args=[]
i=0
for argtype in self.argtypes:
# Typecheck what we can
fixed_args.append(argtype.from_param(args[i]))
i+=1
return self.func(*fixed_args+list(args[i:]))
# End preamble
_libs = {}
_libdirs = ['/usr/local/lib']
# Begin loader
# ----------------------------------------------------------------------------
# Copyright (c) 2008 David James
# Copyright (c) 2006-2008 Alex Holkner
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
#
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in
# the documentation and/or other materials provided with the
# distribution.
# * Neither the name of pyglet nor the names of its
# contributors may be used to endorse or promote products
# derived from this software without specific prior written
# permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
# ----------------------------------------------------------------------------
import os.path, re, sys, glob
import platform
import ctypes
import logging
import ctypes.util
log = logging.getLogger(__name__)
def _environ_path(name):
if name in os.environ:
return os.environ[name].split(":")
else:
return []
class LibraryLoader(object):
def __init__(self):
self.other_dirs=[]
def load_library(self,libname):
"""Given the name of a library, load it."""
paths = self.getpaths(libname)
for path in paths:
if os.path.exists(path):
log.debug("loading library from path: %s" % path)
return self.load(path)
raise ImportError("%s not found." % libname)
def load(self,path):
"""Given a path to a library, load it."""
try:
# Darwin requires dlopen to be called with mode RTLD_GLOBAL instead
# of the default RTLD_LOCAL. Without this, you end up with
# libraries not being loadable, resulting in "Symbol not found"
# errors
if sys.platform == 'darwin':
return ctypes.CDLL(path, ctypes.RTLD_GLOBAL)
else:
return ctypes.cdll.LoadLibrary(path)
except OSError as e:
raise ImportError(e)
def getpaths(self,libname):
"""Return a list of paths where the library might be found."""
if os.path.isabs(libname):
yield libname
else:
# FIXME / TODO return '.' and os.path.dirname(__file__)
for path in self.getplatformpaths(libname):
yield path
path = ctypes.util.find_library(libname)
if path: yield path
def getplatformpaths(self, libname):
return []
# Darwin (Mac OS X)
class DarwinLibraryLoader(LibraryLoader):
name_formats = ["lib%s.dylib", "lib%s.so", "lib%s.bundle", "%s.dylib",
"%s.so", "%s.bundle", "%s"]
def getplatformpaths(self,libname):
if os.path.pathsep in libname:
names = [libname]
else:
names = [format % libname for format in self.name_formats]
for dir in self.getdirs(libname):
for name in names:
yield os.path.join(dir,name)
def getdirs(self,libname):
'''Implements the dylib search as specified in Apple documentation:
http://developer.apple.com/documentation/DeveloperTools/Conceptual/
DynamicLibraries/Articles/DynamicLibraryUsageGuidelines.html
Before commencing the standard search, the method first checks
the bundle's ``Frameworks`` directory if the application is running
within a bundle (OS X .app).
'''
dyld_fallback_library_path = _environ_path("DYLD_FALLBACK_LIBRARY_PATH")
if not dyld_fallback_library_path:
dyld_fallback_library_path = [os.path.expanduser('~/lib'),
'/usr/local/lib', '/usr/lib']
dirs = []
if '/' in libname:
dirs.extend(_environ_path("DYLD_LIBRARY_PATH"))
else:
dirs.extend(_environ_path("LD_LIBRARY_PATH"))
dirs.extend(_environ_path("DYLD_LIBRARY_PATH"))
dirs.extend(self.other_dirs)
dirs.append(".")
dirs.append(os.path.dirname(__file__))
if hasattr(sys, 'frozen') and sys.frozen == 'macosx_app':
dirs.append(os.path.join(
os.environ['RESOURCEPATH'],
'..',
'Frameworks'))
dirs.extend(dyld_fallback_library_path)
return dirs
# Posix
class PosixLibraryLoader(LibraryLoader):
_ld_so_cache = None
def _create_ld_so_cache(self):
# Recreate search path followed by ld.so. This is going to be
# slow to build, and incorrect (ld.so uses ld.so.cache, which may
# not be up-to-date). Used only as fallback for distros without
# /sbin/ldconfig.
#
# We assume the DT_RPATH and DT_RUNPATH binary sections are omitted.
directories = []
for name in ("LD_LIBRARY_PATH",
"SHLIB_PATH", # HPUX
"LIBPATH", # OS/2, AIX
"LIBRARY_PATH", # BE/OS
):
if name in os.environ:
directories.extend(os.environ[name].split(os.pathsep))
directories.extend("/usr/local/lib")
directories.extend(self.other_dirs)
directories.append(".")
directories.append(os.path.dirname(__file__))
try: directories.extend([dir.strip() for dir in open('/etc/ld.so.conf')])
except IOError: pass
unix_lib_dirs_list = ['/lib', '/usr/lib', '/lib64', '/usr/lib64']
if sys.platform.startswith('linux'):
# Try and support multiarch work in Ubuntu
# https://wiki.ubuntu.com/MultiarchSpec
bitage = platform.architecture()[0]
if bitage.startswith('32'):
# Assume Intel/AMD x86 compat
unix_lib_dirs_list += ['/lib/i386-linux-gnu', '/usr/lib/i386-linux-gnu']
elif bitage.startswith('64'):
# Assume Intel/AMD x86 compat
unix_lib_dirs_list += ['/lib/x86_64-linux-gnu', '/usr/lib/x86_64-linux-gnu']
else:
# guess...
unix_lib_dirs_list += glob.glob('/lib/*linux-gnu')
directories.extend(unix_lib_dirs_list)
cache = {}
lib_re = re.compile(r'lib(.*)\.s[ol]')
ext_re = re.compile(r'\.s[ol]$')
for dir in directories:
try:
for path in glob.glob("%s/*.s[ol]*" % dir):
file = os.path.basename(path)
# Index by filename
if file not in cache:
cache[file] = path
# Index by library name
match = lib_re.match(file)
if match:
library = match.group(1)
if library not in cache:
cache[library] = path
except OSError:
pass
self._ld_so_cache = cache
def getplatformpaths(self, libname):
if self._ld_so_cache is None:
self._create_ld_so_cache()
result = self._ld_so_cache.get(libname)
if result: yield result
path = ctypes.util.find_library(libname)
if path: yield os.path.join("/lib",path)
# Windows
class _WindowsLibrary(object):
def __init__(self, path):
self.cdll = ctypes.cdll.LoadLibrary(path)
self.windll = ctypes.windll.LoadLibrary(path)
def __getattr__(self, name):
try: return getattr(self.cdll,name)
except AttributeError:
try: return getattr(self.windll,name)
except AttributeError:
raise
class WindowsLibraryLoader(LibraryLoader):
name_formats = ["%s.dll", "lib%s.dll", "%slib.dll"]
def load_library(self, libname):
try:
result = LibraryLoader.load_library(self, libname)
except ImportError:
result = None
if os.path.sep not in libname:
for name in self.name_formats:
try:
result = getattr(ctypes.cdll, name % libname)
if result:
break
except OSError:
result = None
if result is None:
try:
result = getattr(ctypes.cdll, libname)
except OSError:
result = None
if result is None:
raise ImportError("%s not found." % libname)
return result
def load(self, path):
return _WindowsLibrary(path)
def getplatformpaths(self, libname):
if os.path.sep not in libname:
for name in self.name_formats:
dll_in_current_dir = os.path.abspath(name % libname)
if os.path.exists(dll_in_current_dir):
yield dll_in_current_dir
path = ctypes.util.find_library(name % libname)
if path:
yield path
# Platform switching
# If your value of sys.platform does not appear in this dict, please contact
# the Ctypesgen maintainers.
loaderclass = {
"darwin": DarwinLibraryLoader,
"cygwin": WindowsLibraryLoader,
"win32": WindowsLibraryLoader
}
loader = loaderclass.get(sys.platform, PosixLibraryLoader)()
def add_library_search_dirs(other_dirs):
loader.other_dirs = other_dirs
load_library = loader.load_library
del loaderclass
# End loader
add_library_search_dirs(['/usr/local/lib'])
# Begin libraries
_libs["sssapisw"] = load_library("sssapisw")
# 1 libraries
# End libraries
# No modules
U8 = c_uint8# ../../hostlib/hostLib/libCommon/infra/sm_types.h
U16 = c_uint16
U32 = c_uint32
enum_anon_6 = c_int # ../../sss/inc/fsl_sss_policy.h
KPolicy_None = 0
KPolicy_Session = (KPolicy_None + 1)
KPolicy_Sym_Key = (KPolicy_Session + 1)
KPolicy_Asym_Key = (KPolicy_Sym_Key + 1)
KPolicy_UserID = (KPolicy_Asym_Key + 1)
KPolicy_File = (KPolicy_UserID + 1)
KPolicy_Counter = (KPolicy_File + 1)
KPolicy_PCR = (KPolicy_Counter + 1)
KPolicy_Common = (KPolicy_PCR + 1)
KPolicy_Common_PCR_Value = (KPolicy_Common + 1)
sss_policy_type_u = enum_anon_6
class struct_anon_7(Structure):
pass
struct_anon_7.__slots__ = [
'maxOperationsInSession',
'maxDurationOfSession_sec',
'has_MaxOperationsInSession',
'has_MaxDurationOfSession_sec',
'allowRefresh',
]
struct_anon_7._fields_ = [
('maxOperationsInSession', c_uint16),
('maxDurationOfSession_sec', c_uint16),
('has_MaxOperationsInSession', c_uint8, 1),
('has_MaxDurationOfSession_sec', c_uint8, 1),
('allowRefresh', c_uint8, 1),
]
sss_policy_session_u = struct_anon_7
class struct_anon_8(Structure):
pass
struct_anon_8.__slots__ = [
'can_Sign',
'can_Verify',
'can_Encrypt',
'can_Decrypt',
'can_KD',
'can_Wrap',
'can_Write',
'can_Gen',
'can_Desfire_Auth',
'can_Desfire_Dump',
'can_Import_Export',
'forbid_Derived_Output',
'allow_kdf_ext_rnd',
]
struct_anon_8._fields_ = [
('can_Sign', c_uint8, 1),
('can_Verify', c_uint8, 1),
('can_Encrypt', c_uint8, 1),
('can_Decrypt', c_uint8, 1),
('can_KD', c_uint8, 1),
('can_Wrap', c_uint8, 1),
('can_Write', c_uint8, 1),
('can_Gen', c_uint8, 1),
('can_Desfire_Auth', c_uint8, 1),
('can_Desfire_Dump', c_uint8, 1),
('can_Import_Export', c_uint8, 1),
('forbid_Derived_Output', c_uint8, 1),
('allow_kdf_ext_rnd', c_uint8, 1),
]
sss_policy_sym_key_u = struct_anon_8
class struct_anon_9(Structure):
pass
struct_anon_9.__slots__ = [
'can_Sign',
'can_Verify',
'can_Encrypt',
'can_Decrypt',
'can_KD',
'can_Wrap',
'can_Write',
'can_Gen',
'can_Import_Export',
'can_KA',
'can_Read',
'can_Attest',
'forbid_Derived_Output',
]
struct_anon_9._fields_ = [
('can_Sign', c_uint8, 1),
('can_Verify', c_uint8, 1),
('can_Encrypt', c_uint8, 1),
('can_Decrypt', c_uint8, 1),
('can_KD', c_uint8, 1),
('can_Wrap', c_uint8, 1),
('can_Write', c_uint8, 1),
('can_Gen', c_uint8, 1),
('can_Import_Export', c_uint8, 1),
('can_KA', c_uint8, 1),
('can_Read', c_uint8, 1),
('can_Attest', c_uint8, 1),
('forbid_Derived_Output', c_uint8, 1),
]
sss_policy_asym_key_u = struct_anon_9
class struct_anon_10(Structure):
pass
struct_anon_10.__slots__ = [
'can_Write',
'can_Read',
]
struct_anon_10._fields_ = [
('can_Write', c_uint8, 1),
('can_Read', c_uint8, 1),
]
sss_policy_file_u = struct_anon_10
class struct_anon_11(Structure):
pass
struct_anon_11.__slots__ = [
'can_Write',
'can_Read',
]
struct_anon_11._fields_ = [
('can_Write', c_uint8, 1),
('can_Read', c_uint8, 1),
]
sss_policy_counter_u = struct_anon_11
class struct_anon_12(Structure):
pass
struct_anon_12.__slots__ = [
'can_Write',
'can_Read',
]
struct_anon_12._fields_ = [
('can_Write', c_uint8, 1),
('can_Read', c_uint8, 1),
]
sss_policy_pcr_u = struct_anon_12
class struct_anon_13(Structure):
pass
struct_anon_13.__slots__ = [
'can_Write',
]
struct_anon_13._fields_ = [
('can_Write', c_uint8, 1),
]
sss_policy_userid_u = struct_anon_13
class struct_anon_14(Structure):
pass
struct_anon_14.__slots__ = [
'forbid_All',
'can_Delete',
'req_Sm',
]
struct_anon_14._fields_ = [
('forbid_All', c_uint8, 1),
('can_Delete', c_uint8, 1),
('req_Sm', c_uint8, 1),
]
sss_policy_common_u = struct_anon_14
class struct_anon_15(Structure):
pass
struct_anon_15.__slots__ = [
'pcrObjId',
'pcrExpectedValue',
]
struct_anon_15._fields_ = [
('pcrObjId', c_uint32),
('pcrExpectedValue', c_uint8 * 32),
]
sss_policy_common_pcr_value_u = struct_anon_15
class union_anon_16(Union):
pass
union_anon_16.__slots__ = [
'file',
'counter',
'pcr',
'symmkey',
'asymmkey',
'pin',
'common',
'common_pcr_value',
'session',
]
union_anon_16._fields_ = [
('file', sss_policy_file_u),
('counter', sss_policy_counter_u),
('pcr', sss_policy_pcr_u),
('symmkey', sss_policy_sym_key_u),
('asymmkey', sss_policy_asym_key_u),
('pin', sss_policy_userid_u),
('common', sss_policy_common_u),
('common_pcr_value', sss_policy_common_pcr_value_u),
('session', sss_policy_session_u),
]
class struct_anon_17(Structure):
pass
struct_anon_17.__slots__ = [
'type',
'auth_obj_id',
'policy',
]
struct_anon_17._fields_ = [
('type', sss_policy_type_u),
('auth_obj_id', c_uint32),
('policy', union_anon_16),
]
sss_policy_u = struct_anon_17
class struct_anon_18(Structure):
pass
struct_anon_18.__slots__ = [
'policies',
'nPolicies',
]
struct_anon_18._fields_ = [
('policies', POINTER(sss_policy_u) * 10),
('nPolicies', c_size_t),
]
sss_policy_t = struct_anon_18
enum_anon_19 = c_int # ../../sss/inc/fsl_sss_api.h
kStatus_SSS_Success = 1515870810
kStatus_SSS_Fail = 1010565120
kStatus_SSS_InvalidArgument = 1010565121
kStatus_SSS_ResourceBusy = 1010565122
sss_status_t = enum_anon_19
enum_anon_20 = c_int
kType_SSS_SubSystem_NONE = 0
kType_SSS_Software = ((1 << 8) | 0)
kType_SSS_mbedTLS = (kType_SSS_Software | 1)
kType_SSS_OpenSSL = (kType_SSS_Software | 2)
kType_SSS_HW = ((2 << 8) | 0)
kType_SSS_SECO = (kType_SSS_HW | 1)
kType_SSS_Isolated_HW = ((4 << 8) | 0)
kType_SSS_Sentinel = (kType_SSS_Isolated_HW | 1)
kType_SSS_Sentinel200 = (kType_SSS_Isolated_HW | 2)
kType_SSS_Sentinel300 = (kType_SSS_Isolated_HW | 3)
kType_SSS_Sentinel400 = (kType_SSS_Isolated_HW | 4)
kType_SSS_Sentinel500 = (kType_SSS_Isolated_HW | 5)
kType_SSS_SecureElement = ((8 << 8) | 0)
kType_SSS_SE_A71CH = (kType_SSS_SecureElement | 1)
kType_SSS_SE_A71CL = (kType_SSS_SecureElement | 2)
kType_SSS_SE_SE05x = (kType_SSS_SecureElement | 3)
kType_SSS_SubSystem_LAST = (kType_SSS_SE_SE05x + 1)
sss_type_t = enum_anon_20
enum_anon_21 = c_int
kSSS_ConnectionType_Plain = 0
kSSS_ConnectionType_Password = (kSSS_ConnectionType_Plain + 1)
kSSS_ConnectionType_Encrypted = (kSSS_ConnectionType_Password + 1)
sss_connection_type_t = enum_anon_21
enum_anon_22 = c_int
kAlgorithm_None = 0
kAlgorithm_SSS_AES_ECB = ((0 << 8) | 1)
kAlgorithm_SSS_AES_CBC = ((0 << 8) | 2)
kAlgorithm_SSS_AES_CTR = ((0 << 8) | 3)
kAlgorithm_SSS_AES_GCM = ((0 << 8) | 4)
kAlgorithm_SSS_AES_CCM = ((0 << 8) | 5)
kAlgorithm_SSS_AES_GCM_INT_IV = ((0 << 8) | 6)
kAlgorithm_SSS_CHACHA_POLY = ((1 << 8) | 1)
kAlgorithm_SSS_DES_ECB = ((2 << 8) | 1)
kAlgorithm_SSS_DES_CBC = ((2 << 8) | 2)
kAlgorithm_SSS_DES3_ECB = ((2 << 8) | 3)
kAlgorithm_SSS_DES3_CBC = ((2 << 8) | 4)
kAlgorithm_SSS_SHA1 = ((3 << 8) | 1)
kAlgorithm_SSS_SHA224 = ((3 << 8) | 2)
kAlgorithm_SSS_SHA256 = ((3 << 8) | 3)
kAlgorithm_SSS_SHA384 = ((3 << 8) | 4)
kAlgorithm_SSS_SHA512 = ((3 << 8) | 5)
kAlgorithm_SSS_CMAC_AES = ((4 << 8) | 1)
kAlgorithm_SSS_HMAC_SHA1 = ((4 << 8) | 2)
kAlgorithm_SSS_HMAC_SHA224 = ((4 << 8) | 3)
kAlgorithm_SSS_HMAC_SHA256 = ((4 << 8) | 4)
kAlgorithm_SSS_HMAC_SHA384 = ((4 << 8) | 5)
kAlgorithm_SSS_HMAC_SHA512 = ((4 << 8) | 6)
kAlgorithm_SSS_DH = ((5 << 8) | 1)
kAlgorithm_SSS_ECDH = ((5 << 8) | 2)
kAlgorithm_SSS_DSA_SHA1 = ((6 << 8) | 1)
kAlgorithm_SSS_DSA_SHA224 = ((6 << 8) | 2)
kAlgorithm_SSS_DSA_SHA256 = ((6 << 8) | 3)
kAlgorithm_SSS_RSASSA_PKCS1_V1_5_NO_HASH = ((7 << 8) | 1)
kAlgorithm_SSS_RSASSA_PKCS1_V1_5_SHA1 = ((7 << 8) | 2)
kAlgorithm_SSS_RSASSA_PKCS1_V1_5_SHA224 = ((7 << 8) | 3)
kAlgorithm_SSS_RSASSA_PKCS1_V1_5_SHA256 = ((7 << 8) | 4)
kAlgorithm_SSS_RSASSA_PKCS1_V1_5_SHA384 = ((7 << 8) | 5)
kAlgorithm_SSS_RSASSA_PKCS1_V1_5_SHA512 = ((7 << 8) | 6)
kAlgorithm_SSS_RSASSA_PKCS1_PSS_MGF1_SHA1 = ((8 << 8) | 1)
kAlgorithm_SSS_RSASSA_PKCS1_PSS_MGF1_SHA224 = ((8 << 8) | 2)
kAlgorithm_SSS_RSASSA_PKCS1_PSS_MGF1_SHA256 = ((8 << 8) | 3)
kAlgorithm_SSS_RSASSA_PKCS1_PSS_MGF1_SHA384 = ((8 << 8) | 4)
kAlgorithm_SSS_RSASSA_PKCS1_PSS_MGF1_SHA512 = ((8 << 8) | 5)
kAlgorithm_SSS_RSAES_PKCS1_OAEP_SHA1 = ((9 << 8) | 1)
kAlgorithm_SSS_RSAES_PKCS1_OAEP_SHA224 = ((9 << 8) | 2)
kAlgorithm_SSS_RSAES_PKCS1_OAEP_SHA256 = ((9 << 8) | 3)
kAlgorithm_SSS_RSAES_PKCS1_OAEP_SHA384 = ((9 << 8) | 4)
kAlgorithm_SSS_RSAES_PKCS1_OAEP_SHA512 = ((9 << 8) | 5)
kAlgorithm_SSS_RSAES_PKCS1_V1_5 = ((10 << 8) | 1)
kAlgorithm_SSS_RSASSA_NO_PADDING = ((11 << 8) | 1)
kAlgorithm_SSS_ECDSA_SHA1 = ((12 << 8) | 1)
kAlgorithm_SSS_ECDSA_SHA224 = ((12 << 8) | 2)
kAlgorithm_SSS_ECDSA_SHA256 = ((12 << 8) | 3)
kAlgorithm_SSS_ECDSA_SHA384 = ((12 << 8) | 4)
kAlgorithm_SSS_ECDSA_SHA512 = ((12 << 8) | 5)
kAlgorithm_SSS_ECDAA = ((13 << 8) | 1)
sss_algorithm_t = enum_anon_22
enum_anon_23 = c_int
kMode_SSS_Encrypt = 1
kMode_SSS_Decrypt = 2
kMode_SSS_Sign = 3
kMode_SSS_Verify = 4
kMode_SSS_ComputeSharedSecret = 5
kMode_SSS_Digest = 6
kMode_SSS_Mac = 7
kMode_SSS_HKDF_ExpandOnly = 9
sss_mode_t = enum_anon_23
enum_anon_24 = c_int
kAccessPermission_SSS_Read = (1 << 0)
kAccessPermission_SSS_Write = (1 << 1)
kAccessPermission_SSS_Use = (1 << 2)
kAccessPermission_SSS_Delete = (1 << 3)
kAccessPermission_SSS_ChangeAttributes = (1 << 4)
sss_access_permission_t = enum_anon_24
enum_anon_25 = c_int
kKeyObject_Mode_None = 0
kKeyObject_Mode_Persistent = 1
kKeyObject_Mode_Transient = 2
sss_key_object_mode_t = enum_anon_25
enum_anon_26 = c_int
kSSS_KeyPart_NONE = 0
kSSS_KeyPart_Default = 1
kSSS_KeyPart_Public = 2
kSSS_KeyPart_Private = 3
kSSS_KeyPart_Pair = 4
sss_key_part_t = enum_anon_26
enum_anon_27 = c_int
kSSS_CipherType_NONE = 0
kSSS_CipherType_AES = 10
kSSS_CipherType_DES = 12
kSSS_CipherType_CMAC = 20
kSSS_CipherType_HMAC = 21
kSSS_CipherType_MAC = 30
kSSS_CipherType_RSA = 31
kSSS_CipherType_RSA_CRT = 32
kSSS_CipherType_EC_NIST_P = 40
kSSS_CipherType_EC_NIST_K = 41
kSSS_CipherType_EC_MONTGOMERY = 50
kSSS_CipherType_EC_TWISTED_ED = 51
kSSS_CipherType_EC_BRAINPOOL = 52
kSSS_CipherType_EC_BARRETO_NAEHRIG = 53
kSSS_CipherType_UserID = 70
kSSS_CipherType_Certificate = 71
kSSS_CipherType_Binary = 72
kSSS_CipherType_Count = 73
kSSS_CipherType_PCR = 74
kSSS_CipherType_ReservedPin = 75
sss_cipher_type_t = enum_anon_27
class struct_anon_28(Structure):
pass
struct_anon_28.__slots__ = [
'X',
'Y',
]
struct_anon_28._fields_ = [
('X', POINTER(c_uint8)),
('Y', POINTER(c_uint8)),
]
sss_ecc_point_t = struct_anon_28
class struct_anon_29(Structure):
pass
struct_anon_29.__slots__ = [
'p',
'a',
'b',
'G',
'n',
'h',
]
struct_anon_29._fields_ = [
('p', POINTER(c_uint8)),
('a', POINTER(c_uint8)),
('b', POINTER(c_uint8)),
('G', POINTER(sss_ecc_point_t)),
('n', POINTER(c_uint8)),
('h', POINTER(c_uint8)),
]
sss_eccgfp_group_t = struct_anon_29
enum_anon_30 = c_int
kSSS_SessionProp_u32_NA = 0
kSSS_SessionProp_VerMaj = (kSSS_SessionProp_u32_NA + 1)
kSSS_SessionProp_VerMin = (kSSS_SessionProp_VerMaj + 1)
kSSS_SessionProp_VerDev = (kSSS_SessionProp_VerMin + 1)
kSSS_SessionProp_UIDLen = (kSSS_SessionProp_VerDev + 1)
kSSS_SessionProp_u32_Optional_Start = 16777215
kSSS_KeyStoreProp_FreeMem_Persistant = (kSSS_SessionProp_u32_Optional_Start + 1)
kSSS_KeyStoreProp_FreeMem_Transient = (kSSS_KeyStoreProp_FreeMem_Persistant + 1)
kSSS_SessionProp_u32_Proprietary_Start = 33554431
sss_session_prop_u32_t = enum_anon_30
enum_anon_31 = c_int
kSSS_SessionProp_au8_NA = 0
kSSS_SessionProp_szName = (kSSS_SessionProp_au8_NA + 1)
kSSS_SessionProp_UID = (kSSS_SessionProp_szName + 1)
kSSS_SessionProp_au8_Optional_Start = 16777215
kSSS_SessionProp_au8_Proprietary_Start = 33554431
sss_session_prop_au8_t = enum_anon_31
class struct_anon_32(Structure):
pass
struct_anon_32.__slots__ = [
'data',
]
struct_anon_32._fields_ = [
('data', c_uint8 * ((((0 + (1 * sizeof(POINTER(None)))) + (1 * sizeof(POINTER(None)))) + (8 * sizeof(POINTER(None)))) + 16)),
]
class struct_anon_33(Structure):
pass
struct_anon_33.__slots__ = [
'subsystem',
'extension',
]
struct_anon_33._fields_ = [
('subsystem', sss_type_t),
('extension', struct_anon_32),
]
sss_session_t = struct_anon_33
class struct_anon_34(Structure):
pass
struct_anon_34.__slots__ = [
'data',
]
struct_anon_34._fields_ = [
('data', c_uint8 * (((0 + (1 * sizeof(POINTER(None)))) + (4 * sizeof(POINTER(None)))) + 16)),
]
class struct_anon_35(Structure):
pass
struct_anon_35.__slots__ = [
'session',
'extension',
]
struct_anon_35._fields_ = [
('session', POINTER(sss_session_t)),
('extension', struct_anon_34),
]
sss_key_store_t = struct_anon_35
enum_anon_36 = c_int
kSSS_KeyStoreProp_au8_Optional_Start = 16777215
sss_key_store_prop_au8_t = enum_anon_36
enum_anon_37 = c_int
kSSS_TunnelDest_None = 0
kSSS_TunnelType_Se05x_Iot_applet = (kSSS_TunnelDest_None + 1)
sss_tunnel_dest_t = enum_anon_37
class struct_anon_38(Structure):
pass
struct_anon_38.__slots__ = [
'data',
]
struct_anon_38._fields_ = [
('data', c_uint8 * ((((0 + (1 * sizeof(POINTER(None)))) + (2 * sizeof(c_int))) + (4 * sizeof(POINTER(None)))) + 16)),
]
class struct_anon_39(Structure):
pass
struct_anon_39.__slots__ = [
'keyStore',
'objectType',
'cipherType',
'keyId',
'extension',
]
struct_anon_39._fields_ = [
('keyStore', POINTER(sss_key_store_t)),
('objectType', c_uint32),
('cipherType', c_uint32),
('keyId', c_uint32),
('extension', struct_anon_38),
]
sss_object_t = struct_anon_39
class struct_anon_40(Structure):
pass
struct_anon_40.__slots__ = [
'data',
]
struct_anon_40._fields_ = [
('data', c_uint8 * ((((((0 + (2 * sizeof(POINTER(None)))) + (2 * sizeof(c_int))) + (2 * sizeof(POINTER(None)))) + 16) + 4) + 16)),
]
class struct_anon_41(Structure):
pass
struct_anon_41.__slots__ = [
'session',
'keyObject',
'algorithm',
'mode',
'extension',
]
struct_anon_41._fields_ = [
('session', POINTER(sss_session_t)),
('keyObject', POINTER(sss_object_t)),
('algorithm', sss_algorithm_t),
('mode', sss_mode_t),
('extension', struct_anon_40),
]
sss_symmetric_t = struct_anon_41
class struct_anon_42(Structure):
pass
struct_anon_42.__slots__ = [
'data',
]
struct_anon_42._fields_ = [
('data', c_uint8 * ((((0 + (5 * sizeof(POINTER(None)))) + (6 * sizeof(c_int))) + (5 * sizeof(POINTER(None)))) + 16)),
]
class struct_anon_43(Structure):
pass
struct_anon_43.__slots__ = [
'session',
'keyObject',
'algorithm',
'mode',
'extension',
]
struct_anon_43._fields_ = [
('session', POINTER(sss_session_t)),
('keyObject', POINTER(sss_object_t)),
('algorithm', sss_algorithm_t),
('mode', sss_mode_t),
('extension', struct_anon_42),
]
sss_aead_t = struct_anon_43
class struct_anon_44(Structure):
pass
struct_anon_44.__slots__ = [
'data',
]
struct_anon_44._fields_ = [
('data', c_uint8 * ((((0 + (1 * sizeof(POINTER(None)))) + (3 * sizeof(c_int))) + (2 * sizeof(POINTER(None)))) + 16)),
]
class struct_anon_45(Structure):
pass
struct_anon_45.__slots__ = [
'session',
'algorithm',
'mode',
'digestFullLen',
'extension',
]
struct_anon_45._fields_ = [
('session', POINTER(sss_session_t)),
('algorithm', sss_algorithm_t),
('mode', sss_mode_t),
('digestFullLen', c_size_t),
('extension', struct_anon_44),
]
sss_digest_t = struct_anon_45
class struct_anon_46(Structure):
pass
struct_anon_46.__slots__ = [
'data',
]
struct_anon_46._fields_ = [
('data', c_uint8 * ((((0 + (2 * sizeof(POINTER(None)))) + (2 * sizeof(c_int))) + (2 * sizeof(POINTER(None)))) + 32)),
]
class struct_anon_47(Structure):
pass
struct_anon_47.__slots__ = [
'session',
'keyObject',
'algorithm',
'mode',
'extension',
]
struct_anon_47._fields_ = [
('session', POINTER(sss_session_t)),
('keyObject', POINTER(sss_object_t)),
('algorithm', sss_algorithm_t),
('mode', sss_mode_t),
('extension', struct_anon_46),
]
sss_mac_t = struct_anon_47
class struct_anon_48(Structure):
pass
struct_anon_48.__slots__ = [
'data',
]
struct_anon_48._fields_ = [
('data', c_uint8 * ((((0 + (2 * sizeof(POINTER(None)))) + (3 * sizeof(c_int))) + (2 * sizeof(POINTER(None)))) + 16)),
]
class struct_anon_49(Structure):
pass
struct_anon_49.__slots__ = [
'session',
'keyObject',
'algorithm',
'mode',
'extension',
]
struct_anon_49._fields_ = [
('session', POINTER(sss_session_t)),
('keyObject', POINTER(sss_object_t)),
('algorithm', sss_algorithm_t),
('mode', sss_mode_t),
('extension', struct_anon_48),
]
sss_asymmetric_t = struct_anon_49
class struct_anon_50(Structure):
pass
struct_anon_50.__slots__ = [
'hdr',
]
struct_anon_50._fields_ = [
('hdr', c_uint8 * ((((0 + 1) + 1) + 1) + 1)),
]
tlvHeader_t = struct_anon_50
class struct_anon_51(Structure):
pass
struct_anon_51.__slots__ = [
'data',
]
struct_anon_51._fields_ = [
('data', c_uint8 * ((((0 + (1 * sizeof(POINTER(None)))) + (2 * sizeof(c_int))) + (2 * sizeof(POINTER(None)))) + 16)),
]
class struct_anon_52(Structure):
pass
struct_anon_52.__slots__ = [
'session',
'tunnelType',
'extension',
]
struct_anon_52._fields_ = [
('session', POINTER(sss_session_t)),
('tunnelType', c_uint32),
('extension', struct_anon_51),
]
sss_tunnel_t = struct_anon_52
class struct_anon_53(Structure):
pass
struct_anon_53.__slots__ = [
'data',
]
struct_anon_53._fields_ = [
('data', c_uint8 * ((((0 + (2 * sizeof(POINTER(None)))) + (2 * sizeof(c_int))) + (2 * sizeof(POINTER(None)))) + 16)),
]
class struct_anon_54(Structure):
pass
struct_anon_54.__slots__ = [
'session',
'keyObject',
'algorithm',
'mode',
'extension',
]
struct_anon_54._fields_ = [
('session', POINTER(sss_session_t)),
('keyObject', POINTER(sss_object_t)),
('algorithm', sss_algorithm_t),
('mode', sss_mode_t),
('extension', struct_anon_53),
]
sss_derive_key_t = struct_anon_54
class struct_anon_55(Structure):
pass
struct_anon_55.__slots__ = [
'data',
]
struct_anon_55._fields_ = [
('data', c_uint8 * (((0 + (1 * sizeof(POINTER(None)))) + (2 * sizeof(POINTER(None)))) + 16)),
]
class struct_anon_56(Structure):
pass
struct_anon_56.__slots__ = [
'session',
'context',
]
struct_anon_56._fields_ = [
('session', POINTER(sss_session_t)),
('context', struct_anon_55),
]
sss_rng_context_t = struct_anon_56
for _lib in list(_libs.values()):
if not hasattr(_lib, 'sss_session_create'):
continue
sss_session_create = _lib.sss_session_create
sss_session_create.argtypes = [POINTER(sss_session_t), sss_type_t, c_uint32, sss_connection_type_t, POINTER(None)]
sss_session_create.restype = sss_status_t
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'sss_session_open'):
continue
sss_session_open = _lib.sss_session_open
sss_session_open.argtypes = [POINTER(sss_session_t), sss_type_t, c_uint32, sss_connection_type_t, POINTER(None)]
sss_session_open.restype = sss_status_t
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'sss_session_prop_get_u32'):
continue
sss_session_prop_get_u32 = _lib.sss_session_prop_get_u32
sss_session_prop_get_u32.argtypes = [POINTER(sss_session_t), c_uint32, POINTER(c_uint32)]
sss_session_prop_get_u32.restype = sss_status_t
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'sss_session_prop_get_au8'):
continue
sss_session_prop_get_au8 = _lib.sss_session_prop_get_au8
sss_session_prop_get_au8.argtypes = [POINTER(sss_session_t), c_uint32, POINTER(c_uint8), POINTER(c_size_t)]
sss_session_prop_get_au8.restype = sss_status_t
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'sss_session_close'):
continue
sss_session_close = _lib.sss_session_close
sss_session_close.argtypes = [POINTER(sss_session_t)]
sss_session_close.restype = None
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'sss_session_delete'):
continue
sss_session_delete = _lib.sss_session_delete
sss_session_delete.argtypes = [POINTER(sss_session_t)]
sss_session_delete.restype = None
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'sss_key_store_context_init'):
continue
sss_key_store_context_init = _lib.sss_key_store_context_init
sss_key_store_context_init.argtypes = [POINTER(sss_key_store_t), POINTER(sss_session_t)]
sss_key_store_context_init.restype = sss_status_t
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'sss_key_store_allocate'):
continue
sss_key_store_allocate = _lib.sss_key_store_allocate
sss_key_store_allocate.argtypes = [POINTER(sss_key_store_t), c_uint32]
sss_key_store_allocate.restype = sss_status_t
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'sss_key_store_save'):
continue
sss_key_store_save = _lib.sss_key_store_save
sss_key_store_save.argtypes = [POINTER(sss_key_store_t)]
sss_key_store_save.restype = sss_status_t
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'sss_key_store_load'):
continue
sss_key_store_load = _lib.sss_key_store_load
sss_key_store_load.argtypes = [POINTER(sss_key_store_t)]
sss_key_store_load.restype = sss_status_t
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'sss_key_store_set_key'):
continue
sss_key_store_set_key = _lib.sss_key_store_set_key
sss_key_store_set_key.argtypes = [POINTER(sss_key_store_t), POINTER(sss_object_t), POINTER(c_uint8), c_size_t, c_size_t, POINTER(None), c_size_t]
sss_key_store_set_key.restype = sss_status_t
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'sss_key_store_generate_key'):
continue
sss_key_store_generate_key = _lib.sss_key_store_generate_key
sss_key_store_generate_key.argtypes = [POINTER(sss_key_store_t), POINTER(sss_object_t), c_size_t, POINTER(None)]
sss_key_store_generate_key.restype = sss_status_t
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'sss_key_store_get_key'):
continue
sss_key_store_get_key = _lib.sss_key_store_get_key
sss_key_store_get_key.argtypes = [POINTER(sss_key_store_t), POINTER(sss_object_t), POINTER(c_uint8), POINTER(c_size_t), POINTER(c_size_t)]
sss_key_store_get_key.restype = sss_status_t
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'sss_key_store_open_key'):
continue
sss_key_store_open_key = _lib.sss_key_store_open_key
sss_key_store_open_key.argtypes = [POINTER(sss_key_store_t), POINTER(sss_object_t)]
sss_key_store_open_key.restype = sss_status_t
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'sss_key_store_freeze_key'):
continue
sss_key_store_freeze_key = _lib.sss_key_store_freeze_key
sss_key_store_freeze_key.argtypes = [POINTER(sss_key_store_t), POINTER(sss_object_t)]
sss_key_store_freeze_key.restype = sss_status_t
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'sss_key_store_erase_key'):
continue
sss_key_store_erase_key = _lib.sss_key_store_erase_key
sss_key_store_erase_key.argtypes = [POINTER(sss_key_store_t), POINTER(sss_object_t)]
sss_key_store_erase_key.restype = sss_status_t
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'sss_key_store_context_free'):
continue
sss_key_store_context_free = _lib.sss_key_store_context_free
sss_key_store_context_free.argtypes = [POINTER(sss_key_store_t)]
sss_key_store_context_free.restype = None
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'sss_key_object_init'):
continue
sss_key_object_init = _lib.sss_key_object_init
sss_key_object_init.argtypes = [POINTER(sss_object_t), POINTER(sss_key_store_t)]
sss_key_object_init.restype = sss_status_t
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'sss_key_object_allocate_handle'):
continue
sss_key_object_allocate_handle = _lib.sss_key_object_allocate_handle
sss_key_object_allocate_handle.argtypes = [POINTER(sss_object_t), c_uint32, sss_key_part_t, sss_cipher_type_t, c_size_t, c_uint32]
sss_key_object_allocate_handle.restype = sss_status_t
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'sss_key_object_get_handle'):
continue
sss_key_object_get_handle = _lib.sss_key_object_get_handle
sss_key_object_get_handle.argtypes = [POINTER(sss_object_t), c_uint32]
sss_key_object_get_handle.restype = sss_status_t
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'sss_key_object_set_user'):
continue
sss_key_object_set_user = _lib.sss_key_object_set_user
sss_key_object_set_user.argtypes = [POINTER(sss_object_t), c_uint32, c_uint32]
sss_key_object_set_user.restype = sss_status_t
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'sss_key_object_set_purpose'):
continue
sss_key_object_set_purpose = _lib.sss_key_object_set_purpose
sss_key_object_set_purpose.argtypes = [POINTER(sss_object_t), sss_mode_t, c_uint32]
sss_key_object_set_purpose.restype = sss_status_t
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'sss_key_object_set_access'):
continue
sss_key_object_set_access = _lib.sss_key_object_set_access
sss_key_object_set_access.argtypes = [POINTER(sss_object_t), c_uint32, c_uint32]
sss_key_object_set_access.restype = sss_status_t
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'sss_key_object_set_eccgfp_group'):
continue
sss_key_object_set_eccgfp_group = _lib.sss_key_object_set_eccgfp_group
sss_key_object_set_eccgfp_group.argtypes = [POINTER(sss_object_t), POINTER(sss_eccgfp_group_t)]
sss_key_object_set_eccgfp_group.restype = sss_status_t
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'sss_key_object_get_user'):
continue
sss_key_object_get_user = _lib.sss_key_object_get_user
sss_key_object_get_user.argtypes = [POINTER(sss_object_t), POINTER(c_uint32)]
sss_key_object_get_user.restype = sss_status_t
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'sss_key_object_get_purpose'):
continue
sss_key_object_get_purpose = _lib.sss_key_object_get_purpose
sss_key_object_get_purpose.argtypes = [POINTER(sss_object_t), POINTER(sss_mode_t)]
sss_key_object_get_purpose.restype = sss_status_t
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'sss_key_object_get_access'):
continue
sss_key_object_get_access = _lib.sss_key_object_get_access
sss_key_object_get_access.argtypes = [POINTER(sss_object_t), POINTER(c_uint32)]
sss_key_object_get_access.restype = sss_status_t
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'sss_key_object_free'):
continue
sss_key_object_free = _lib.sss_key_object_free
sss_key_object_free.argtypes = [POINTER(sss_object_t)]
sss_key_object_free.restype = None
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'sss_symmetric_context_init'):
continue
sss_symmetric_context_init = _lib.sss_symmetric_context_init
sss_symmetric_context_init.argtypes = [POINTER(sss_symmetric_t), POINTER(sss_session_t), POINTER(sss_object_t), sss_algorithm_t, sss_mode_t]
sss_symmetric_context_init.restype = sss_status_t
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'sss_cipher_one_go'):
continue
sss_cipher_one_go = _lib.sss_cipher_one_go
sss_cipher_one_go.argtypes = [POINTER(sss_symmetric_t), POINTER(c_uint8), c_size_t, POINTER(c_uint8), POINTER(c_uint8), c_size_t]
sss_cipher_one_go.restype = sss_status_t
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'sss_cipher_init'):
continue
sss_cipher_init = _lib.sss_cipher_init
sss_cipher_init.argtypes = [POINTER(sss_symmetric_t), POINTER(c_uint8), c_size_t]
sss_cipher_init.restype = sss_status_t
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'sss_cipher_update'):
continue
sss_cipher_update = _lib.sss_cipher_update
sss_cipher_update.argtypes = [POINTER(sss_symmetric_t), POINTER(c_uint8), c_size_t, POINTER(c_uint8), POINTER(c_size_t)]
sss_cipher_update.restype = sss_status_t
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'sss_cipher_finish'):
continue
sss_cipher_finish = _lib.sss_cipher_finish
sss_cipher_finish.argtypes = [POINTER(sss_symmetric_t), POINTER(c_uint8), c_size_t, POINTER(c_uint8), POINTER(c_size_t)]
sss_cipher_finish.restype = sss_status_t
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'sss_cipher_crypt_ctr'):
continue
sss_cipher_crypt_ctr = _lib.sss_cipher_crypt_ctr
sss_cipher_crypt_ctr.argtypes = [POINTER(sss_symmetric_t), POINTER(c_uint8), POINTER(c_uint8), c_size_t, POINTER(c_uint8), POINTER(c_uint8), POINTER(c_size_t)]
sss_cipher_crypt_ctr.restype = sss_status_t
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'sss_symmetric_context_free'):
continue
sss_symmetric_context_free = _lib.sss_symmetric_context_free
sss_symmetric_context_free.argtypes = [POINTER(sss_symmetric_t)]
sss_symmetric_context_free.restype = None
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'sss_aead_context_init'):
continue
sss_aead_context_init = _lib.sss_aead_context_init
sss_aead_context_init.argtypes = [POINTER(sss_aead_t), POINTER(sss_session_t), POINTER(sss_object_t), sss_algorithm_t, sss_mode_t]
sss_aead_context_init.restype = sss_status_t
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'sss_aead_one_go'):
continue
sss_aead_one_go = _lib.sss_aead_one_go
sss_aead_one_go.argtypes = [POINTER(sss_aead_t), POINTER(c_uint8), POINTER(c_uint8), c_size_t, POINTER(c_uint8), c_size_t, POINTER(c_uint8), c_size_t, POINTER(c_uint8), POINTER(c_size_t)]
sss_aead_one_go.restype = sss_status_t
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'sss_aead_init'):
continue
sss_aead_init = _lib.sss_aead_init
sss_aead_init.argtypes = [POINTER(sss_aead_t), POINTER(c_uint8), c_size_t, c_size_t, c_size_t, c_size_t]
sss_aead_init.restype = sss_status_t
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'sss_aead_update_aad'):
continue
sss_aead_update_aad = _lib.sss_aead_update_aad
sss_aead_update_aad.argtypes = [POINTER(sss_aead_t), POINTER(c_uint8), c_size_t]
sss_aead_update_aad.restype = sss_status_t
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'sss_aead_update'):
continue
sss_aead_update = _lib.sss_aead_update
sss_aead_update.argtypes = [POINTER(sss_aead_t), POINTER(c_uint8), c_size_t, POINTER(c_uint8), POINTER(c_size_t)]
sss_aead_update.restype = sss_status_t
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'sss_aead_finish'):
continue
sss_aead_finish = _lib.sss_aead_finish
sss_aead_finish.argtypes = [POINTER(sss_aead_t), POINTER(c_uint8), c_size_t, POINTER(c_uint8), POINTER(c_size_t), POINTER(c_uint8), POINTER(c_size_t)]
sss_aead_finish.restype = sss_status_t
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'sss_aead_context_free'):
continue
sss_aead_context_free = _lib.sss_aead_context_free
sss_aead_context_free.argtypes = [POINTER(sss_aead_t)]
sss_aead_context_free.restype = None
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'sss_digest_context_init'):
continue
sss_digest_context_init = _lib.sss_digest_context_init
sss_digest_context_init.argtypes = [POINTER(sss_digest_t), POINTER(sss_session_t), sss_algorithm_t, sss_mode_t]
sss_digest_context_init.restype = sss_status_t
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'sss_digest_one_go'):
continue
sss_digest_one_go = _lib.sss_digest_one_go
sss_digest_one_go.argtypes = [POINTER(sss_digest_t), POINTER(c_uint8), c_size_t, POINTER(c_uint8), POINTER(c_size_t)]
sss_digest_one_go.restype = sss_status_t
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'sss_digest_init'):
continue
sss_digest_init = _lib.sss_digest_init
sss_digest_init.argtypes = [POINTER(sss_digest_t)]
sss_digest_init.restype = sss_status_t
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'sss_digest_update'):
continue
sss_digest_update = _lib.sss_digest_update
sss_digest_update.argtypes = [POINTER(sss_digest_t), POINTER(c_uint8), c_size_t]
sss_digest_update.restype = sss_status_t
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'sss_digest_finish'):
continue
sss_digest_finish = _lib.sss_digest_finish
sss_digest_finish.argtypes = [POINTER(sss_digest_t), POINTER(c_uint8), POINTER(c_size_t)]
sss_digest_finish.restype = sss_status_t
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'sss_digest_context_free'):
continue
sss_digest_context_free = _lib.sss_digest_context_free
sss_digest_context_free.argtypes = [POINTER(sss_digest_t)]
sss_digest_context_free.restype = None
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'sss_mac_context_init'):
continue
sss_mac_context_init = _lib.sss_mac_context_init
sss_mac_context_init.argtypes = [POINTER(sss_mac_t), POINTER(sss_session_t), POINTER(sss_object_t), sss_algorithm_t, sss_mode_t]
sss_mac_context_init.restype = sss_status_t
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'sss_mac_one_go'):
continue
sss_mac_one_go = _lib.sss_mac_one_go
sss_mac_one_go.argtypes = [POINTER(sss_mac_t), POINTER(c_uint8), c_size_t, POINTER(c_uint8), POINTER(c_size_t)]
sss_mac_one_go.restype = sss_status_t
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'sss_mac_init'):
continue
sss_mac_init = _lib.sss_mac_init
sss_mac_init.argtypes = [POINTER(sss_mac_t)]
sss_mac_init.restype = sss_status_t
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'sss_mac_update'):
continue
sss_mac_update = _lib.sss_mac_update
sss_mac_update.argtypes = [POINTER(sss_mac_t), POINTER(c_uint8), c_size_t]
sss_mac_update.restype = sss_status_t
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'sss_mac_finish'):
continue
sss_mac_finish = _lib.sss_mac_finish
sss_mac_finish.argtypes = [POINTER(sss_mac_t), POINTER(c_uint8), POINTER(c_size_t)]
sss_mac_finish.restype = sss_status_t
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'sss_mac_context_free'):
continue
sss_mac_context_free = _lib.sss_mac_context_free
sss_mac_context_free.argtypes = [POINTER(sss_mac_t)]
sss_mac_context_free.restype = None
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'sss_asymmetric_context_init'):
continue
sss_asymmetric_context_init = _lib.sss_asymmetric_context_init
sss_asymmetric_context_init.argtypes = [POINTER(sss_asymmetric_t), POINTER(sss_session_t), POINTER(sss_object_t), sss_algorithm_t, sss_mode_t]
sss_asymmetric_context_init.restype = sss_status_t
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'sss_asymmetric_encrypt'):
continue
sss_asymmetric_encrypt = _lib.sss_asymmetric_encrypt
sss_asymmetric_encrypt.argtypes = [POINTER(sss_asymmetric_t), POINTER(c_uint8), c_size_t, POINTER(c_uint8), POINTER(c_size_t)]
sss_asymmetric_encrypt.restype = sss_status_t
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'sss_asymmetric_decrypt'):
continue
sss_asymmetric_decrypt = _lib.sss_asymmetric_decrypt
sss_asymmetric_decrypt.argtypes = [POINTER(sss_asymmetric_t), POINTER(c_uint8), c_size_t, POINTER(c_uint8), POINTER(c_size_t)]
sss_asymmetric_decrypt.restype = sss_status_t
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'sss_asymmetric_sign_digest'):
continue
sss_asymmetric_sign_digest = _lib.sss_asymmetric_sign_digest
sss_asymmetric_sign_digest.argtypes = [POINTER(sss_asymmetric_t), POINTER(c_uint8), c_size_t, POINTER(c_uint8), POINTER(c_size_t)]
sss_asymmetric_sign_digest.restype = sss_status_t
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'sss_asymmetric_verify_digest'):
continue
sss_asymmetric_verify_digest = _lib.sss_asymmetric_verify_digest
sss_asymmetric_verify_digest.argtypes = [POINTER(sss_asymmetric_t), POINTER(c_uint8), c_size_t, POINTER(c_uint8), c_size_t]
sss_asymmetric_verify_digest.restype = sss_status_t
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'sss_asymmetric_context_free'):
continue
sss_asymmetric_context_free = _lib.sss_asymmetric_context_free
sss_asymmetric_context_free.argtypes = [POINTER(sss_asymmetric_t)]
sss_asymmetric_context_free.restype = None
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'sss_derive_key_context_init'):
continue
sss_derive_key_context_init = _lib.sss_derive_key_context_init
sss_derive_key_context_init.argtypes = [POINTER(sss_derive_key_t), POINTER(sss_session_t), POINTER(sss_object_t), sss_algorithm_t, sss_mode_t]
sss_derive_key_context_init.restype = sss_status_t
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'sss_derive_key_go'):
continue
sss_derive_key_go = _lib.sss_derive_key_go
sss_derive_key_go.argtypes = [POINTER(sss_derive_key_t), POINTER(c_uint8), c_size_t, POINTER(c_uint8), c_size_t, POINTER(sss_object_t), c_uint16, POINTER(c_uint8), POINTER(c_size_t)]
sss_derive_key_go.restype = sss_status_t
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'sss_derive_key_one_go'):
continue
sss_derive_key_one_go = _lib.sss_derive_key_one_go
sss_derive_key_one_go.argtypes = [POINTER(sss_derive_key_t), POINTER(c_uint8), c_size_t, POINTER(c_uint8), c_size_t, POINTER(sss_object_t), c_uint16]
sss_derive_key_one_go.restype = sss_status_t
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'sss_derive_key_sobj_one_go'):
continue
sss_derive_key_sobj_one_go = _lib.sss_derive_key_sobj_one_go
sss_derive_key_sobj_one_go.argtypes = [POINTER(sss_derive_key_t), POINTER(sss_object_t), POINTER(c_uint8), c_size_t, POINTER(sss_object_t), c_uint16]
sss_derive_key_sobj_one_go.restype = sss_status_t
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'sss_derive_key_dh'):
continue
sss_derive_key_dh = _lib.sss_derive_key_dh
sss_derive_key_dh.argtypes = [POINTER(sss_derive_key_t), POINTER(sss_object_t), POINTER(sss_object_t)]
sss_derive_key_dh.restype = sss_status_t
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'sss_derive_key_context_free'):
continue
sss_derive_key_context_free = _lib.sss_derive_key_context_free
sss_derive_key_context_free.argtypes = [POINTER(sss_derive_key_t)]
sss_derive_key_context_free.restype = None
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'sss_rng_context_init'):
continue
sss_rng_context_init = _lib.sss_rng_context_init
sss_rng_context_init.argtypes = [POINTER(sss_rng_context_t), POINTER(sss_session_t)]
sss_rng_context_init.restype = sss_status_t
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'sss_rng_get_random'):
continue
sss_rng_get_random = _lib.sss_rng_get_random
sss_rng_get_random.argtypes = [POINTER(sss_rng_context_t), POINTER(c_uint8), c_size_t]
sss_rng_get_random.restype = sss_status_t
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'sss_rng_context_free'):
continue
sss_rng_context_free = _lib.sss_rng_context_free
sss_rng_context_free.argtypes = [POINTER(sss_rng_context_t)]
sss_rng_context_free.restype = sss_status_t
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'sss_tunnel_context_init'):
continue
sss_tunnel_context_init = _lib.sss_tunnel_context_init
sss_tunnel_context_init.argtypes = [POINTER(sss_tunnel_t), POINTER(sss_session_t)]
sss_tunnel_context_init.restype = sss_status_t
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'sss_tunnel'):
continue
sss_tunnel = _lib.sss_tunnel
sss_tunnel.argtypes = [POINTER(sss_tunnel_t), POINTER(c_uint8), c_size_t, POINTER(sss_object_t), c_uint32, c_uint32]
sss_tunnel.restype = sss_status_t
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'sss_tunnel_context_free'):
continue
sss_tunnel_context_free = _lib.sss_tunnel_context_free
sss_tunnel_context_free.argtypes = [POINTER(sss_tunnel_t)]
sss_tunnel_context_free.restype = None
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'sss_status_sz'):
continue
sss_status_sz = _lib.sss_status_sz
sss_status_sz.argtypes = [sss_status_t]
if sizeof(c_int) == sizeof(c_void_p):
sss_status_sz.restype = ReturnString
else:
sss_status_sz.restype = String
sss_status_sz.errcheck = ReturnString
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'sss_cipher_type_sz'):
continue
sss_cipher_type_sz = _lib.sss_cipher_type_sz
sss_cipher_type_sz.argtypes = [sss_cipher_type_t]
if sizeof(c_int) == sizeof(c_void_p):
sss_cipher_type_sz.restype = ReturnString
else:
sss_cipher_type_sz.restype = String
sss_cipher_type_sz.errcheck = ReturnString
break
SST_Index_t = U8# hostlib/hostLib/inc/a71ch_api.h
for _lib in list(_libs.values()):
if not hasattr(_lib, 'A71_GetCredentialInfo'):
continue
A71_GetCredentialInfo = _lib.A71_GetCredentialInfo
A71_GetCredentialInfo.argtypes = [POINTER(U8), POINTER(U16)]
A71_GetCredentialInfo.restype = U16
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'A71_GetModuleInfo'):
continue
A71_GetModuleInfo = _lib.A71_GetModuleInfo
A71_GetModuleInfo.argtypes = [POINTER(U16), POINTER(U8), POINTER(U8), POINTER(U8), POINTER(U8), POINTER(U8), POINTER(U16)]
A71_GetModuleInfo.restype = U16
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'A71_GetRandom'):
continue
A71_GetRandom = _lib.A71_GetRandom
A71_GetRandom.argtypes = [POINTER(U8), U8]
A71_GetRandom.restype = U16
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'A71_CreateClientHelloRandom'):
continue
A71_CreateClientHelloRandom = _lib.A71_CreateClientHelloRandom
A71_CreateClientHelloRandom.argtypes = [POINTER(U8), U8]
A71_CreateClientHelloRandom.restype = U16
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'A71_GetRestrictedKeyPairInfo'):
continue
A71_GetRestrictedKeyPairInfo = _lib.A71_GetRestrictedKeyPairInfo
A71_GetRestrictedKeyPairInfo.argtypes = [POINTER(U8), POINTER(U16), POINTER(U8), POINTER(U16)]
A71_GetRestrictedKeyPairInfo.restype = U16
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'A71_GetSha256'):
continue
A71_GetSha256 = _lib.A71_GetSha256
A71_GetSha256.argtypes = [POINTER(U8), U16, POINTER(U8), POINTER(U16)]
A71_GetSha256.restype = U16
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'A71_Sha256Init'):
continue
A71_Sha256Init = _lib.A71_Sha256Init
A71_Sha256Init.argtypes = []
A71_Sha256Init.restype = U16
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'A71_Sha256Update'):
continue
A71_Sha256Update = _lib.A71_Sha256Update
A71_Sha256Update.argtypes = [POINTER(U8), U16]
A71_Sha256Update.restype = U16
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'A71_Sha256Final'):
continue
A71_Sha256Final = _lib.A71_Sha256Final
A71_Sha256Final.argtypes = [POINTER(U8), POINTER(U16)]
A71_Sha256Final.restype = U16
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'A71_GetUniqueID'):
continue
A71_GetUniqueID = _lib.A71_GetUniqueID
A71_GetUniqueID.argtypes = [POINTER(U8), POINTER(U16)]
A71_GetUniqueID.restype = U16
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'A71_GetCertUid'):
continue
A71_GetCertUid = _lib.A71_GetCertUid
A71_GetCertUid.argtypes = [POINTER(U8), POINTER(U16)]
A71_GetCertUid.restype = U16
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'A71_GetKeyPairChallenge'):
continue
A71_GetKeyPairChallenge = _lib.A71_GetKeyPairChallenge
A71_GetKeyPairChallenge.argtypes = [POINTER(U8), POINTER(U16)]
A71_GetKeyPairChallenge.restype = U16
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'A71_GetPublicKeyChallenge'):
continue
A71_GetPublicKeyChallenge = _lib.A71_GetPublicKeyChallenge
A71_GetPublicKeyChallenge.argtypes = [POINTER(U8), POINTER(U16)]
A71_GetPublicKeyChallenge.restype = U16
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'A71_GetUnlockChallenge'):
continue
A71_GetUnlockChallenge = _lib.A71_GetUnlockChallenge
A71_GetUnlockChallenge.argtypes = [POINTER(U8), POINTER(U16)]
A71_GetUnlockChallenge.restype = U16
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'A71_InjectLock'):
continue
A71_InjectLock = _lib.A71_InjectLock
A71_InjectLock.argtypes = []
A71_InjectLock.restype = U16
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'A71_LockModule'):
continue
A71_LockModule = _lib.A71_LockModule
A71_LockModule.argtypes = []
A71_LockModule.restype = U16
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'A71_UnlockModule'):
continue
A71_UnlockModule = _lib.A71_UnlockModule
A71_UnlockModule.argtypes = [POINTER(U8), U16]
A71_UnlockModule.restype = U16
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'A71_SetTlsLabel'):
continue
A71_SetTlsLabel = _lib.A71_SetTlsLabel
A71_SetTlsLabel.argtypes = [POINTER(U8), U16]
A71_SetTlsLabel.restype = U16
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'A71_EccVerifyWithKey'):
continue
A71_EccVerifyWithKey = _lib.A71_EccVerifyWithKey
A71_EccVerifyWithKey.argtypes = [POINTER(U8), U16, POINTER(U8), U16, POINTER(U8), U16, POINTER(U8)]
A71_EccVerifyWithKey.restype = U16
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'A71_GenerateEccKeyPair'):
continue
A71_GenerateEccKeyPair = _lib.A71_GenerateEccKeyPair
A71_GenerateEccKeyPair.argtypes = [SST_Index_t]
A71_GenerateEccKeyPair.restype = U16
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'A71_GenerateEccKeyPairWithChallenge'):
continue
A71_GenerateEccKeyPairWithChallenge = _lib.A71_GenerateEccKeyPairWithChallenge
A71_GenerateEccKeyPairWithChallenge.argtypes = [SST_Index_t, POINTER(U8), U16]
A71_GenerateEccKeyPairWithChallenge.restype = U16
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'A71_GenerateEccKeyPairWithCode'):
continue
A71_GenerateEccKeyPairWithCode = _lib.A71_GenerateEccKeyPairWithCode
A71_GenerateEccKeyPairWithCode.argtypes = [SST_Index_t, POINTER(U8), U16]
A71_GenerateEccKeyPairWithCode.restype = U16
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'A71_SetEccKeyPair'):
continue
A71_SetEccKeyPair = _lib.A71_SetEccKeyPair
A71_SetEccKeyPair.argtypes = [SST_Index_t, POINTER(U8), U16, POINTER(U8), U16]
A71_SetEccKeyPair.restype = U16
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'A71_GetPublicKeyEccKeyPair'):
continue
A71_GetPublicKeyEccKeyPair = _lib.A71_GetPublicKeyEccKeyPair
A71_GetPublicKeyEccKeyPair.argtypes = [SST_Index_t, POINTER(U8), POINTER(U16)]
A71_GetPublicKeyEccKeyPair.restype = U16
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'A71_GetEccKeyPairUsage'):
continue
A71_GetEccKeyPairUsage = _lib.A71_GetEccKeyPairUsage
A71_GetEccKeyPairUsage.argtypes = [SST_Index_t, POINTER(U8), POINTER(U16), POINTER(U16)]
A71_GetEccKeyPairUsage.restype = U16
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'A71_EccSign'):
continue
A71_EccSign = _lib.A71_EccSign
A71_EccSign.argtypes = [SST_Index_t, POINTER(U8), U16, POINTER(U8), POINTER(U16)]
A71_EccSign.restype = U16
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'A71_EccNormalizedAsnSign'):
continue
A71_EccNormalizedAsnSign = _lib.A71_EccNormalizedAsnSign
A71_EccNormalizedAsnSign.argtypes = [SST_Index_t, POINTER(U8), U16, POINTER(U8), POINTER(U16)]
A71_EccNormalizedAsnSign.restype = U16
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'A71_EccRestrictedSign'):
continue
A71_EccRestrictedSign = _lib.A71_EccRestrictedSign
A71_EccRestrictedSign.argtypes = [SST_Index_t, POINTER(U8), U16, POINTER(U8)]
A71_EccRestrictedSign.restype = U16
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'A71_EcdhGetSharedSecret'):
continue
A71_EcdhGetSharedSecret = _lib.A71_EcdhGetSharedSecret
A71_EcdhGetSharedSecret.argtypes = [U8, POINTER(U8), U16, POINTER(U8), POINTER(U16)]
A71_EcdhGetSharedSecret.restype = U16
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'A71_FreezeEccKeyPair'):
continue
A71_FreezeEccKeyPair = _lib.A71_FreezeEccKeyPair
A71_FreezeEccKeyPair.argtypes = [SST_Index_t]
A71_FreezeEccKeyPair.restype = U16
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'A71_FreezeEccKeyPairWithChallenge'):
continue
A71_FreezeEccKeyPairWithChallenge = _lib.A71_FreezeEccKeyPairWithChallenge
A71_FreezeEccKeyPairWithChallenge.argtypes = [SST_Index_t, POINTER(U8), U16]
A71_FreezeEccKeyPairWithChallenge.restype = U16
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'A71_FreezeEccKeyPairWithCode'):
continue
A71_FreezeEccKeyPairWithCode = _lib.A71_FreezeEccKeyPairWithCode
A71_FreezeEccKeyPairWithCode.argtypes = [SST_Index_t, POINTER(U8), U16]
A71_FreezeEccKeyPairWithCode.restype = U16
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'A71_EraseEccKeyPair'):
continue
A71_EraseEccKeyPair = _lib.A71_EraseEccKeyPair
A71_EraseEccKeyPair.argtypes = [SST_Index_t]
A71_EraseEccKeyPair.restype = U16
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'A71_EraseEccKeyPairWithChallenge'):
continue
A71_EraseEccKeyPairWithChallenge = _lib.A71_EraseEccKeyPairWithChallenge
A71_EraseEccKeyPairWithChallenge.argtypes = [SST_Index_t, POINTER(U8), U16]
A71_EraseEccKeyPairWithChallenge.restype = U16
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'A71_EraseEccKeyPairWithCode'):
continue
A71_EraseEccKeyPairWithCode = _lib.A71_EraseEccKeyPairWithCode
A71_EraseEccKeyPairWithCode.argtypes = [SST_Index_t, POINTER(U8), U16]
A71_EraseEccKeyPairWithCode.restype = U16
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'A71_SetEccPublicKey'):
continue
A71_SetEccPublicKey = _lib.A71_SetEccPublicKey
A71_SetEccPublicKey.argtypes = [SST_Index_t, POINTER(U8), U16]
A71_SetEccPublicKey.restype = U16
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'A71_GetEccPublicKey'):
continue
A71_GetEccPublicKey = _lib.A71_GetEccPublicKey
A71_GetEccPublicKey.argtypes = [SST_Index_t, POINTER(U8), POINTER(U16)]
A71_GetEccPublicKey.restype = U16
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'A71_FreezeEccPublicKey'):
continue
A71_FreezeEccPublicKey = _lib.A71_FreezeEccPublicKey
A71_FreezeEccPublicKey.argtypes = [SST_Index_t]
A71_FreezeEccPublicKey.restype = U16
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'A71_FreezeEccPublicKeyWithChallenge'):
continue
A71_FreezeEccPublicKeyWithChallenge = _lib.A71_FreezeEccPublicKeyWithChallenge
A71_FreezeEccPublicKeyWithChallenge.argtypes = [SST_Index_t, POINTER(U8), U16]
A71_FreezeEccPublicKeyWithChallenge.restype = U16
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'A71_FreezeEccPublicKeyWithCode'):
continue
A71_FreezeEccPublicKeyWithCode = _lib.A71_FreezeEccPublicKeyWithCode
A71_FreezeEccPublicKeyWithCode.argtypes = [SST_Index_t, POINTER(U8), U16]
A71_FreezeEccPublicKeyWithCode.restype = U16
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'A71_EraseEccPublicKey'):
continue
A71_EraseEccPublicKey = _lib.A71_EraseEccPublicKey
A71_EraseEccPublicKey.argtypes = [SST_Index_t]
A71_EraseEccPublicKey.restype = U16
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'A71_EraseEccPublicKeyWithChallenge'):
continue
A71_EraseEccPublicKeyWithChallenge = _lib.A71_EraseEccPublicKeyWithChallenge
A71_EraseEccPublicKeyWithChallenge.argtypes = [SST_Index_t, POINTER(U8), U16]
A71_EraseEccPublicKeyWithChallenge.restype = U16
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'A71_EraseEccPublicKeyWithCode'):
continue
A71_EraseEccPublicKeyWithCode = _lib.A71_EraseEccPublicKeyWithCode
A71_EraseEccPublicKeyWithCode.argtypes = [SST_Index_t, POINTER(U8), U16]
A71_EraseEccPublicKeyWithCode.restype = U16
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'A71_EccVerify'):
continue
A71_EccVerify = _lib.A71_EccVerify
A71_EccVerify.argtypes = [SST_Index_t, POINTER(U8), U16, POINTER(U8), U16, POINTER(U8)]
A71_EccVerify.restype = U16
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'A71_SetSymKey'):
continue
A71_SetSymKey = _lib.A71_SetSymKey
A71_SetSymKey.argtypes = [SST_Index_t, POINTER(U8), U16]
A71_SetSymKey.restype = U16
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'A71_SetRfc3394WrappedAesKey'):
continue
A71_SetRfc3394WrappedAesKey = _lib.A71_SetRfc3394WrappedAesKey
A71_SetRfc3394WrappedAesKey.argtypes = [SST_Index_t, POINTER(U8), U16]
A71_SetRfc3394WrappedAesKey.restype = U16
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'A71_FreezeSymKey'):
continue
A71_FreezeSymKey = _lib.A71_FreezeSymKey
A71_FreezeSymKey.argtypes = [SST_Index_t]
A71_FreezeSymKey.restype = U16
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'A71_EraseSymKey'):
continue
A71_EraseSymKey = _lib.A71_EraseSymKey
A71_EraseSymKey.argtypes = [SST_Index_t]
A71_EraseSymKey.restype = U16
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'A71_GetHmacSha256'):
continue
A71_GetHmacSha256 = _lib.A71_GetHmacSha256
A71_GetHmacSha256.argtypes = [SST_Index_t, U8, POINTER(U8), U16, POINTER(U8), POINTER(U16)]
A71_GetHmacSha256.restype = U16
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'A71_HmacSha256Init'):
continue
A71_HmacSha256Init = _lib.A71_HmacSha256Init
A71_HmacSha256Init.argtypes = [SST_Index_t, U8]
A71_HmacSha256Init.restype = U16
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'A71_HmacSha256Update'):
continue
A71_HmacSha256Update = _lib.A71_HmacSha256Update
A71_HmacSha256Update.argtypes = [SST_Index_t, U8, POINTER(U8), U16]
A71_HmacSha256Update.restype = U16
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'A71_HmacSha256Final'):
continue
A71_HmacSha256Final = _lib.A71_HmacSha256Final
A71_HmacSha256Final.argtypes = [SST_Index_t, U8, POINTER(U8), POINTER(U16)]
A71_HmacSha256Final.restype = U16
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'A71_HkdfExpandSymKey'):
continue
A71_HkdfExpandSymKey = _lib.A71_HkdfExpandSymKey
A71_HkdfExpandSymKey.argtypes = [SST_Index_t, U8, POINTER(U8), U16, POINTER(U8), U16]
A71_HkdfExpandSymKey.restype = U16
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'A71_HkdfSymKey'):
continue
A71_HkdfSymKey = _lib.A71_HkdfSymKey
A71_HkdfSymKey.argtypes = [SST_Index_t, U8, POINTER(U8), U16, POINTER(U8), U16, POINTER(U8), U16]
A71_HkdfSymKey.restype = U16
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'A71_PskDeriveMasterSecret'):
continue
A71_PskDeriveMasterSecret = _lib.A71_PskDeriveMasterSecret
A71_PskDeriveMasterSecret.argtypes = [SST_Index_t, U8, POINTER(U8), U16, POINTER(U8)]
A71_PskDeriveMasterSecret.restype = U16
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'A71_SetGpData'):
continue
A71_SetGpData = _lib.A71_SetGpData
A71_SetGpData.argtypes = [U16, POINTER(U8), U16]
A71_SetGpData.restype = U16
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'A71_SetGpDataWithLockCheck'):
continue
A71_SetGpDataWithLockCheck = _lib.A71_SetGpDataWithLockCheck
A71_SetGpDataWithLockCheck.argtypes = [U16, POINTER(U8), U16]
A71_SetGpDataWithLockCheck.restype = U16
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'A71_GetGpData'):
continue
A71_GetGpData = _lib.A71_GetGpData
A71_GetGpData.argtypes = [U16, POINTER(U8), U16]
A71_GetGpData.restype = U16
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'A71_FreezeGpData'):
continue
A71_FreezeGpData = _lib.A71_FreezeGpData
A71_FreezeGpData.argtypes = [U16, U16]
A71_FreezeGpData.restype = U16
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'A71_IncrementCounter'):
continue
A71_IncrementCounter = _lib.A71_IncrementCounter
A71_IncrementCounter.argtypes = [SST_Index_t]
A71_IncrementCounter.restype = U16
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'A71_SetCounter'):
continue
A71_SetCounter = _lib.A71_SetCounter
A71_SetCounter.argtypes = [SST_Index_t, U32]
A71_SetCounter.restype = U16
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'A71_GetCounter'):
continue
A71_GetCounter = _lib.A71_GetCounter
A71_GetCounter.argtypes = [SST_Index_t, POINTER(U32)]
A71_GetCounter.restype = U16
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'A71_EcdhPskDeriveMasterSecret'):
continue
A71_EcdhPskDeriveMasterSecret = _lib.A71_EcdhPskDeriveMasterSecret
A71_EcdhPskDeriveMasterSecret.argtypes = [SST_Index_t, POINTER(U8), U16, SST_Index_t, U8, POINTER(U8), U16, POINTER(U8)]
A71_EcdhPskDeriveMasterSecret.restype = U16
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'A71_SetConfigKey'):
continue
A71_SetConfigKey = _lib.A71_SetConfigKey
A71_SetConfigKey.argtypes = [SST_Index_t, POINTER(U8), U16]
A71_SetConfigKey.restype = U16
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'A71_SetRfc3394WrappedConfigKey'):
continue
A71_SetRfc3394WrappedConfigKey = _lib.A71_SetRfc3394WrappedConfigKey
A71_SetRfc3394WrappedConfigKey.argtypes = [SST_Index_t, POINTER(U8), U16]
A71_SetRfc3394WrappedConfigKey.restype = U16
break
HLSE_RET_CODE = U16# hostlib/hostLib/inc/HLSETypes.h
HLSE_TYPE = U32
HLSE_OBJECT_HANDLE = HLSE_TYPE
# hostlib/hostLib/inc/HLSEMisc.h
for _lib in list(_libs.values()):
if not hasattr(_lib, 'HLSE_DisablePlainInjectionMode'):
continue
HLSE_DisablePlainInjectionMode = _lib.HLSE_DisablePlainInjectionMode
HLSE_DisablePlainInjectionMode.argtypes = []
HLSE_DisablePlainInjectionMode.restype = HLSE_RET_CODE
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'HLSE_ResetContents'):
continue
HLSE_ResetContents = _lib.HLSE_ResetContents
HLSE_ResetContents.argtypes = []
HLSE_ResetContents.restype = HLSE_RET_CODE
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'HLSE_DbgDisableDebug'):
continue
HLSE_DbgDisableDebug = _lib.HLSE_DbgDisableDebug
HLSE_DbgDisableDebug.argtypes = []
HLSE_DbgDisableDebug.restype = HLSE_RET_CODE
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'HLSE_DbgReflect'):
continue
HLSE_DbgReflect = _lib.HLSE_DbgReflect
HLSE_DbgReflect.argtypes = [POINTER(U8), U16, POINTER(U8), POINTER(U16)]
HLSE_DbgReflect.restype = HLSE_RET_CODE
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'HLSE_DbgReset'):
continue
HLSE_DbgReset = _lib.HLSE_DbgReset
HLSE_DbgReset.argtypes = []
HLSE_DbgReset.restype = HLSE_RET_CODE
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'HLSE_NormalizeECCSignature'):
continue
HLSE_NormalizeECCSignature = _lib.HLSE_NormalizeECCSignature
HLSE_NormalizeECCSignature.argtypes = [POINTER(U8), U16, POINTER(U8), POINTER(U16)]
HLSE_NormalizeECCSignature.restype = HLSE_RET_CODE
break
enum_anon_78 = c_int # ../../hostlib/hostLib/libCommon/infra/sm_api.h
kType_SE_Conn_Type_NONE = 0
kType_SE_Conn_Type_SCII2C = (0 + 2)
kType_SE_Conn_Type_VCOM = (0 + 3)
kType_SE_Conn_Type_JRCP_V1 = (0 + 4)
kType_SE_Conn_Type_JRCP_V2 = (0 + 5)
kType_SE_Conn_Type_T1oI2C = (0 + 6)
kType_SE_Conn_Type_NFC = (0 + 7)
kType_SE_Conn_Type_Channel = (0 + 8)
kType_SE_Conn_Type_PCSC = (0 + 9)
kType_SE_Conn_Type_LAST = (kType_SE_Conn_Type_PCSC + 1)
kType_SE_Conn_Type_SIZE = 32767
SSS_Conn_Type_t = enum_anon_78
class struct_anon_79(Structure):
pass
struct_anon_79.__slots__ = [
'connType',
'param1',
'param2',
'hostLibVersion',
'appletVersion',
'sbVersion',
'select',
]
struct_anon_79._fields_ = [
('connType', U16),
('param1', U16),
('param2', U16),
('hostLibVersion', U16),
('appletVersion', U32),
('sbVersion', U16),
('select', U8),
]
SmCommState_t = struct_anon_79
for _lib in list(_libs.values()):
if not hasattr(_lib, 'SM_Close'):
continue
SM_Close = _lib.SM_Close
SM_Close.argtypes = [POINTER(None), U8]
SM_Close.restype = U16
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'SM_Connect'):
continue
SM_Connect = _lib.SM_Connect
SM_Connect.argtypes = [POINTER(None), POINTER(SmCommState_t), POINTER(U8), POINTER(U16)]
SM_Connect.restype = U16
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'SM_ConnectWithAID'):
continue
SM_ConnectWithAID = _lib.SM_ConnectWithAID
SM_ConnectWithAID.argtypes = [POINTER(SmCommState_t), POINTER(U8), U16, POINTER(U8), POINTER(U16)]
SM_ConnectWithAID.restype = U16
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'SM_RjctConnect'):
continue
SM_RjctConnect = _lib.SM_RjctConnect
SM_RjctConnect.argtypes = [POINTER(POINTER(None)), String, POINTER(SmCommState_t), POINTER(U8), POINTER(U16)]
SM_RjctConnect.restype = U16
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'SM_RjctConnectWithAID'):
continue
SM_RjctConnectWithAID = _lib.SM_RjctConnectWithAID
SM_RjctConnectWithAID.argtypes = [String, POINTER(SmCommState_t), POINTER(U8), U16, POINTER(U8), POINTER(U16)]
SM_RjctConnectWithAID.restype = U16
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'SM_I2CConnect'):
continue
SM_I2CConnect = _lib.SM_I2CConnect
SM_I2CConnect.argtypes = [POINTER(POINTER(None)), POINTER(SmCommState_t), POINTER(U8), POINTER(U16), String]
SM_I2CConnect.restype = U16
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'SM_SendAPDU'):
continue
SM_SendAPDU = _lib.SM_SendAPDU
SM_SendAPDU.argtypes = [POINTER(U8), U16, POINTER(U8), POINTER(U16)]
SM_SendAPDU.restype = U16
break
sscp_status_t = c_uint32# ../../sss/inc/fsl_sscp.h
class struct__sscp_context(Structure):
pass
sscp_context_t = struct__sscp_context
class struct__sscp_operation(Structure):
pass
sscp_operation_t = struct__sscp_operation
fn_sscp_invoke_command_t = CFUNCTYPE(UNCHECKED(sscp_status_t), POINTER(sscp_context_t), c_uint32, POINTER(sscp_operation_t), POINTER(c_uint32))
class struct_anon_80(Structure):
pass
struct_anon_80.__slots__ = [
'data',
]
struct_anon_80._fields_ = [
('data', c_uint8 * sizeof(POINTER(None))),
]
struct__sscp_context.__slots__ = [
'invoke',
'context',
]
struct__sscp_context._fields_ = [
('invoke', fn_sscp_invoke_command_t),
('context', struct_anon_80),
]
class struct__sscp_memref(Structure):
pass
struct__sscp_memref.__slots__ = [
'buffer',
'size',
]
struct__sscp_memref._fields_ = [
('buffer', POINTER(None)),
('size', c_size_t),
]
sscp_memref_t = struct__sscp_memref
class struct__sscp_value(Structure):
pass
struct__sscp_value.__slots__ = [
'a',
'b',
]
struct__sscp_value._fields_ = [
('a', c_uint32),
('b', c_uint32),
]
sscp_value_t = struct__sscp_value
class struct__sscp_aggregate_operation(Structure):
pass
struct__sscp_aggregate_operation.__slots__ = [
'op',
]
struct__sscp_aggregate_operation._fields_ = [
('op', POINTER(sscp_operation_t)),
]
sscp_aggregate_operation_t = struct__sscp_aggregate_operation
class struct__sscp_context_operation(Structure):
pass
struct__sscp_context_operation.__slots__ = [
'ptr',
'type',
]
struct__sscp_context_operation._fields_ = [
('ptr', POINTER(None)),
('type', c_uint32),
]
sscp_context_reference_t = struct__sscp_context_operation
class union__sscp_parameter(Union):
pass
union__sscp_parameter.__slots__ = [
'value',
'memref',
'aggregate',
'context',
]
union__sscp_parameter._fields_ = [
('value', sscp_value_t),
('memref', sscp_memref_t),
('aggregate', sscp_aggregate_operation_t),
('context', sscp_context_reference_t),
]
sscp_parameter_t = union__sscp_parameter
struct__sscp_operation.__slots__ = [
'paramTypes',
'params',
]
struct__sscp_operation._fields_ = [
('paramTypes', c_uint32),
('params', sscp_parameter_t * 7),
]
fn_sscp_close_t = CFUNCTYPE(UNCHECKED(None), )# ../../sss/inc/fsl_sss_sscp.h
class struct__sss_sscp_session(Structure):
pass
struct__sss_sscp_session.__slots__ = [
'subsystem',
'sscp_context',
'mem_sscp_ctx',
'sessionId',
'fp_closeConnection',
]
struct__sss_sscp_session._fields_ = [
('subsystem', sss_type_t),
('sscp_context', POINTER(sscp_context_t)),
('mem_sscp_ctx', sscp_context_t),
('sessionId', c_uint32),
('fp_closeConnection', fn_sscp_close_t),
]
sss_sscp_session_t = struct__sss_sscp_session
# ../../sss/inc/fsl_sss_keyid_map.h
class struct_anon_87(Structure):
pass
struct_anon_87.__slots__ = [
'extKeyId',
'keyPart',
'accessPermission',
'cipherType',
'keyIntIndex',
]
struct_anon_87._fields_ = [
('extKeyId', c_uint32),
('keyPart', c_uint8),
('accessPermission', c_uint8),
('cipherType', c_uint8),
('keyIntIndex', c_uint8),
]
keyIdAndTypeIndexLookup_t = struct_anon_87
class struct__keyStoreTable_t(Structure):
pass
struct__keyStoreTable_t.__slots__ = [
'magic',
'version',
'maxEntries',
'entries',
]
struct__keyStoreTable_t._fields_ = [
('magic', c_uint32),
('version', c_uint16),
('maxEntries', c_uint16),
('entries', POINTER(keyIdAndTypeIndexLookup_t)),
]
keyStoreTable_t = struct__keyStoreTable_t
# ../../sss/inc/fsl_sscp_a71ch.h
class struct__sss_a71ch_key_store(Structure):
pass
struct__sss_a71ch_key_store.__slots__ = [
'session',
'keystore_shadow',
'shadow_handle',
]
struct__sss_a71ch_key_store._fields_ = [
('session', POINTER(sss_sscp_session_t)),
('keystore_shadow', POINTER(keyStoreTable_t)),
('shadow_handle', HLSE_OBJECT_HANDLE),
]
sss_a71ch_key_store_t = struct__sss_a71ch_key_store
class struct__sscp_a71ch_context(Structure):
pass
struct__sscp_a71ch_context.__slots__ = [
'invoke',
'keyStore',
]
struct__sscp_a71ch_context._fields_ = [
('invoke', fn_sscp_invoke_command_t),
('keyStore', POINTER(sss_a71ch_key_store_t)),
]
sscp_a71ch_context_t = struct__sscp_a71ch_context
for _lib in list(_libs.values()):
if not hasattr(_lib, 'sscp_a71ch_init'):
continue
sscp_a71ch_init = _lib.sscp_a71ch_init
sscp_a71ch_init.argtypes = [POINTER(sscp_a71ch_context_t), POINTER(sss_a71ch_key_store_t)]
sscp_a71ch_init.restype = sss_status_t
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'sscp_a71ch_free'):
continue
sscp_a71ch_free = _lib.sscp_a71ch_free
sscp_a71ch_free.argtypes = [POINTER(sscp_a71ch_context_t)]
sscp_a71ch_free.restype = None
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'sscp_a71ch_invoke_command'):
continue
sscp_a71ch_invoke_command = _lib.sscp_a71ch_invoke_command
sscp_a71ch_invoke_command.argtypes = [POINTER(sscp_context_t), c_uint32, POINTER(sscp_operation_t), POINTER(c_uint32)]
sscp_a71ch_invoke_command.restype = sscp_status_t
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'sscp_a71ch_openSession'):
continue
sscp_a71ch_openSession = _lib.sscp_a71ch_openSession
sscp_a71ch_openSession.argtypes = [POINTER(None), POINTER(sss_sscp_session_t)]
sscp_a71ch_openSession.restype = sss_status_t
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'sscp_a71chkey_store_context_free'):
continue
sscp_a71chkey_store_context_free = _lib.sscp_a71chkey_store_context_free
sscp_a71chkey_store_context_free.argtypes = [POINTER(sss_a71ch_key_store_t)]
sscp_a71chkey_store_context_free.restype = None
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'sscp_a71ch_closeSession'):
continue
sscp_a71ch_closeSession = _lib.sscp_a71ch_closeSession
sscp_a71ch_closeSession.argtypes = [POINTER(sss_sscp_session_t)]
sscp_a71ch_closeSession.restype = None
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'sscp_a71ch_closeConnect'):
continue
sscp_a71ch_closeConnect = _lib.sscp_a71ch_closeConnect
sscp_a71ch_closeConnect.argtypes = []
sscp_a71ch_closeConnect.restype = None
break
enum_anon_88 = c_int # hostlib/hostLib/inc/nxScp03_Types.h
kSSS_AuthType_None = 0
kSSS_AuthType_SCP03 = 1
kSSS_AuthType_ID = 2
kSSS_AuthType_AESKey = 3
kSSS_AuthType_ECKey = 4
kSSS_AuthType_INT_ECKey_Counter = 20
kSSS_SIZE = 2147483647
SE_AuthType_t = enum_anon_88
class struct_anon_89(Structure):
pass
struct_anon_89.__slots__ = [
'Enc',
'Mac',
'Rmac',
'MCV',
'cCounter',
'SecurityLevel',
'authType',
]
struct_anon_89._fields_ = [
('Enc', sss_object_t),
('Mac', sss_object_t),
('Rmac', sss_object_t),
('MCV', c_uint8 * 16),
('cCounter', c_uint8 * 16),
('SecurityLevel', c_uint8),
('authType', SE_AuthType_t),
]
NXSCP03_DynCtx_t = struct_anon_89
class struct_anon_90(Structure):
pass
struct_anon_90.__slots__ = [
'keyVerNo',
'Enc',
'Mac',
'Dek',
]
struct_anon_90._fields_ = [
('keyVerNo', c_uint8),
('Enc', sss_object_t),
('Mac', sss_object_t),
('Dek', sss_object_t),
]
NXSCP03_StaticCtx_t = struct_anon_90
class struct_anon_91(Structure):
pass
struct_anon_91.__slots__ = [
'pStatic_ctx',
'pDyn_ctx',
]
struct_anon_91._fields_ = [
('pStatic_ctx', POINTER(NXSCP03_StaticCtx_t)),
('pDyn_ctx', POINTER(NXSCP03_DynCtx_t)),
]
NXSCP03_AuthCtx_t = struct_anon_91
class struct_anon_92(Structure):
pass
struct_anon_92.__slots__ = [
'HostEcdsaObj',
'HostEcKeypair',
'SeEcPubKey',
'masterSec',
]
struct_anon_92._fields_ = [
('HostEcdsaObj', sss_object_t),
('HostEcKeypair', sss_object_t),
('SeEcPubKey', sss_object_t),
('masterSec', sss_object_t),
]
NXECKey03_StaticCtx_t = struct_anon_92
class struct_anon_93(Structure):
pass
struct_anon_93.__slots__ = [
'pStatic_ctx',
'pDyn_ctx',
]
struct_anon_93._fields_ = [
('pStatic_ctx', POINTER(NXECKey03_StaticCtx_t)),
('pDyn_ctx', POINTER(NXSCP03_DynCtx_t)),
]
SE05x_AuthCtx_ECKey_t = struct_anon_93
class struct_anon_94(Structure):
pass
struct_anon_94.__slots__ = [
'pObj',
]
struct_anon_94._fields_ = [
('pObj', POINTER(sss_object_t)),
]
SE05x_AuthCtx_ID_t = struct_anon_94
class struct_anon_95(Structure):
pass
struct_anon_95.__slots__ = [
'pKeyEnc',
'pKeyMac',
'pKeyDek',
]
struct_anon_95._fields_ = [
('pKeyEnc', sss_object_t),
('pKeyMac', sss_object_t),
('pKeyDek', sss_object_t),
]
SM_SECURE_SCP03_KEYOBJ = struct_anon_95
class struct_anon_96(Structure):
pass
struct_anon_96.__slots__ = [
'data',
]
struct_anon_96._fields_ = [
('data', c_uint8 * ((0 + (3 * sizeof(POINTER(None)))) + 8)),
]
class union_anon_97(Union):
pass
union_anon_97.__slots__ = [
'scp03',
'eckey',
'idobj',
'a71chAuthKeys',
'extension',
]
union_anon_97._fields_ = [
('scp03', NXSCP03_AuthCtx_t),
('eckey', SE05x_AuthCtx_ECKey_t),
('idobj', SE05x_AuthCtx_ID_t),
('a71chAuthKeys', SM_SECURE_SCP03_KEYOBJ),
('extension', struct_anon_96),
]
class struct__SE_AuthCtx(Structure):
pass
struct__SE_AuthCtx.__slots__ = [
'authType',
'ctx',
]
struct__SE_AuthCtx._fields_ = [
('authType', SE_AuthType_t),
('ctx', union_anon_97),
]
SE_AuthCtx_t = struct__SE_AuthCtx
class struct_anon_98(Structure):
pass
struct_anon_98.__slots__ = [
'sizeOfStucture',
'auth',
'session_policy',
'tunnelCtx',
'connType',
'portName',
'i2cAddress',
'refresh_session',
'skip_select_applet',
]
struct_anon_98._fields_ = [
('sizeOfStucture', c_uint16),
('auth', SE_AuthCtx_t),
('session_policy', POINTER(sss_policy_session_u)),
('tunnelCtx', POINTER(sss_tunnel_t)),
('connType', SSS_Conn_Type_t),
('portName', String),
('i2cAddress', U32),
('refresh_session', c_uint8, 1),
('skip_select_applet', c_uint8, 1),
]
SE_Connect_Ctx_t = struct_anon_98
class struct_anon_99(Structure):
pass
struct_anon_99.__slots__ = [
'data',
]
struct_anon_99._fields_ = [
('data', c_uint8 * ((0 + (4 * sizeof(POINTER(None)))) + 8)),
]
class struct_anon_100(Structure):
pass
struct_anon_100.__slots__ = [
'sizeOfStucture',
'auth',
'session_policy',
'extension',
]
struct_anon_100._fields_ = [
('sizeOfStucture', c_uint16),
('auth', SE_AuthCtx_t),
('session_policy', POINTER(sss_policy_session_u)),
('extension', struct_anon_99),
]
sss_connect_ctx_t = struct_anon_100
enum_Se05x_SYMM_CIPHER_MODES = c_int # hostlib/hostLib/inc/se05x_const.h
Se05x_SYMM_MODE_NONE = 0
Se05x_SYMM_CBC = 1
Se05x_SYMM_EBC = 2
Se05x_SYMM_CTR = 8
enum_Se05x_AES_PADDING = c_int
Se05x_AES_PADDING_NONE = 0
Se05x_AES_PAD_NOPAD = 1
Se05x_AES_PAD_ISO9797_M1 = 2
Se05x_AES_PAD_ISO9797_M2 = 3
enum_Se05x_SHA_TYPE = c_int
Se05x_SHA_1 = 0
Se05x_SHA_256 = 4
Se05x_SHA_384 = 5
Se05x_SHA_512 = 6
enum_Se05x_MAC_TYPE = c_int
Se05x_CMAC = 10
enum_Se05x_MAC_Sign_verify = c_int
Se05x_MAC_Sign = 0
Se05x_MAC_Verify = 1
enum_Se05x_I2CM_RESULT_TYPE = c_int
Se05x_I2CM_RESULT_SUCCESS = 165
Se05x_I2CM_RESULT_FAILURE = 150
enum_anon_101 = c_int # hostlib/hostLib/inc/se05x_enums.h
kSE05x_AppletResID_NA = 0
kSE05x_AppletResID_TRANSPORT = 2147418624
kSE05x_AppletResID_KP_ECKEY_USER = 2147418625
kSE05x_AppletResID_KP_ECKEY_IMPORT = 2147418626
kSE05x_AppletResID_FEATURE = 2147418628
kSE05x_AppletResID_FACTORY_RESET = 2147418629
kSE05x_AppletResID_UNIQUE_ID = 2147418630
kSE05x_AppletResID_PLATFORM_SCP = 2147418631
kSE05x_AppletResID_I2CM_ACCESS = 2147418632
kSE05x_AppletResID_RESTRICT = 2147418634
SE05x_AppletResID_t = enum_anon_101
enum_anon_102 = c_int
kSE05x_SW12_NA = 0
kSE05x_SW12_NO_ERROR = 36864
kSE05x_SW12_CONDITIONS_NOT_SATISFIED = 27013
kSE05x_SW12_SECURITY_STATUS = 27010
kSE05x_SW12_WRONG_DATA = 27264
kSE05x_SW12_DATA_INVALID = 27012
kSE05x_SW12_COMMAND_NOT_ALLOWED = 27014
SE05x_SW12_t = enum_anon_102
enum_anon_103 = c_int
kSE05x_INS_NA = 0
kSE05x_INS_MASK_INS_CHAR = 224
kSE05x_INS_MASK_INSTRUCTION = 31
kSE05x_INS_TRANSIENT = 128
kSE05x_INS_AUTH_OBJECT = 64
kSE05x_INS_ATTEST = 32
kSE05x_INS_WRITE = 1
kSE05x_INS_READ = 2
kSE05x_INS_CRYPTO = 3
kSE05x_INS_MGMT = 4
kSE05x_INS_PROCESS = 5
SE05x_INS_t = enum_anon_103
enum_anon_104 = c_int
kSE05x_P1_NA = 0
kSE05x_P1_UNUSED = 128
kSE05x_P1_MASK_KEY_TYPE = 96
kSE05x_P1_MASK_CRED_TYPE = 31
kSE05x_P1_KEY_PAIR = 96
kSE05x_P1_PRIVATE = 64
kSE05x_P1_PUBLIC = 32
kSE05x_P1_DEFAULT = 0
kSE05x_P1_EC = 1
kSE05x_P1_RSA = 2
kSE05x_P1_AES = 3
kSE05x_P1_DES = 4
kSE05x_P1_HMAC = 5
kSE05x_P1_BINARY = 6
kSE05x_P1_UserID = 7
kSE05x_P1_COUNTER = 8
kSE05x_P1_PCR = 9
kSE05x_P1_CURVE = 11
kSE05x_P1_SIGNATURE = 12
kSE05x_P1_MAC = 13
kSE05x_P1_CIPHER = 14
kSE05x_P1_TLS = 15
kSE05x_P1_CRYPTO_OBJ = 16
kSE05x_P1_AEAD = 17
kSE05x_P1_AEAD_SP800_38D = 18
SE05x_P1_t = enum_anon_104
enum_anon_105 = c_int
kSE05x_P2_DEFAULT = 0
kSE05x_P2_GENERATE = 3
kSE05x_P2_CREATE = 4
kSE05x_P2_SIZE = 7
kSE05x_P2_SIGN = 9
kSE05x_P2_VERIFY = 10
kSE05x_P2_INIT = 11
kSE05x_P2_UPDATE = 12
kSE05x_P2_FINAL = 13
kSE05x_P2_ONESHOT = 14
kSE05x_P2_DH = 15
kSE05x_P2_DIVERSIFY = 16
kSE05x_P2_AUTH_FIRST_PART2 = 18
kSE05x_P2_AUTH_NONFIRST_PART2 = 19
kSE05x_P2_DUMP_KEY = 20
kSE05x_P2_CHANGE_KEY_PART1 = 21
kSE05x_P2_CHANGE_KEY_PART2 = 22
kSE05x_P2_KILL_AUTH = 23
kSE05x_P2_IMPORT = 24
kSE05x_P2_EXPORT = 25
kSE05x_P2_SESSION_CREATE = 27
kSE05x_P2_SESSION_CLOSE = 28
kSE05x_P2_SESSION_REFRESH = 30
kSE05x_P2_SESSION_POLICY = 31
kSE05x_P2_VERSION = 32
kSE05x_P2_VERSION_EXT = 33
kSE05x_P2_MEMORY = 34
kSE05x_P2_LIST = 37
kSE05x_P2_TYPE = 38
kSE05x_P2_EXIST = 39
kSE05x_P2_DELETE_OBJECT = 40
kSE05x_P2_DELETE_ALL = 42
kSE05x_P2_SESSION_UserID = 44
kSE05x_P2_HKDF = 45
kSE05x_P2_PBKDF = 46
kSE05x_P2_HKDF_EXPAND_ONLY = 47
kSE05x_P2_I2CM = 48
kSE05x_P2_I2CM_ATTESTED = 49
kSE05x_P2_MAC = 50
kSE05x_P2_UNLOCK_CHALLENGE = 51
kSE05x_P2_CURVE_LIST = 52
kSE05x_P2_SIGN_ECDAA = 53
kSE05x_P2_ID = 54
kSE05x_P2_ENCRYPT_ONESHOT = 55
kSE05x_P2_DECRYPT_ONESHOT = 56
kSE05x_P2_ATTEST = 58
kSE05x_P2_ATTRIBUTES = 59
kSE05x_P2_CPLC = 60
kSE05x_P2_TIME = 61
kSE05x_P2_TRANSPORT = 62
kSE05x_P2_VARIANT = 63
kSE05x_P2_PARAM = 64
kSE05x_P2_DELETE_CURVE = 65
kSE05x_P2_ENCRYPT = 66
kSE05x_P2_DECRYPT = 67
kSE05x_P2_VALIDATE = 68
kSE05x_P2_GENERATE_ONESHOT = 69
kSE05x_P2_VALIDATE_ONESHOT = 70
kSE05x_P2_CRYPTO_LIST = 71
kSE05x_P2_RANDOM = 73
kSE05x_P2_TLS_PMS = 74
kSE05x_P2_TLS_PRF_CLI_HELLO = 75
kSE05x_P2_TLS_PRF_SRV_HELLO = 76
kSE05x_P2_TLS_PRF_CLI_RND = 77
kSE05x_P2_TLS_PRF_SRV_RND = 78
kSE05x_P2_TLS_PRF_BOTH = 90
kSE05x_P2_RAW = 79
kSE05x_P2_IMPORT_EXT = 81
kSE05x_P2_SCP = 82
kSE05x_P2_AUTH_FIRST_PART1 = 83
kSE05x_P2_AUTH_NONFIRST_PART1 = 84
kSE05x_P2_CM_COMMAND = 85
kSE05x_P2_MODE_OF_OPERATION = 86
kSE05x_P2_RESTRICT = 87
kSE05x_P2_SANITY = 88
kSE05x_P2_DH_REVERSE = 89
kSE05x_P2_READ_STATE = 91
SE05x_P2_t = enum_anon_105
enum_anon_106 = c_int
kSE05x_MemoryType_NA = 0
kSE05x_MemoryType_PERSISTENT = 1
kSE05x_MemoryType_TRANSIENT_RESET = 2
kSE05x_MemoryType_TRANSIENT_DESELECT = 3
SE05x_MemoryType_t = enum_anon_106
enum_anon_107 = c_int
kSE05x_Origin_NA = 0
kSE05x_Origin_EXTERNAL = 1
kSE05x_Origin_INTERNAL = 2
kSE05x_Origin_PROVISIONED = 3
SE05x_Origin_t = enum_anon_107
enum_anon_108 = c_int
kSE05x_TAG_NA = 0
kSE05x_TAG_SESSION_ID = 16
kSE05x_TAG_POLICY = 17
kSE05x_TAG_MAX_ATTEMPTS = 18
kSE05x_TAG_IMPORT_AUTH_DATA = 19
kSE05x_TAG_IMPORT_AUTH_KEY_ID = 20
kSE05x_TAG_POLICY_CHECK = 21
kSE05x_TAG_1 = 65
kSE05x_TAG_2 = 66
kSE05x_TAG_3 = 67
kSE05x_TAG_4 = 68
kSE05x_TAG_5 = 69
kSE05x_TAG_6 = 70
kSE05x_TAG_7 = 71
kSE05x_TAG_8 = 72
kSE05x_TAG_9 = 73
kSE05x_TAG_10 = 74
kSE05x_TAG_11 = 75
kSE05x_GP_TAG_CONTRL_REF_PARM = 166
kSE05x_GP_TAG_AID = 79
kSE05x_GP_TAG_KEY_TYPE = 128
kSE05x_GP_TAG_KEY_LEN = 129
kSE05x_GP_TAG_GET_DATA = 131
kSE05x_GP_TAG_DR_SE = 133
kSE05x_GP_TAG_RECEIPT = 134
kSE05x_GP_TAG_SCP_PARMS = 144
SE05x_TAG_t = enum_anon_108
enum_anon_109 = c_int
kSE05x_ECSignatureAlgo_NA = 0
kSE05x_ECSignatureAlgo_PLAIN = 9
kSE05x_ECSignatureAlgo_SHA = 17
kSE05x_ECSignatureAlgo_SHA_224 = 37
kSE05x_ECSignatureAlgo_SHA_256 = 33
kSE05x_ECSignatureAlgo_SHA_384 = 34
kSE05x_ECSignatureAlgo_SHA_512 = 38
SE05x_ECSignatureAlgo_t = enum_anon_109
enum_anon_110 = c_int
kSE05x_EDSignatureAlgo_NA = 0
kSE05x_EDSignatureAlgo_ED25519PURE_SHA_512 = 163
SE05x_EDSignatureAlgo_t = enum_anon_110
enum_anon_111 = c_int
kSE05x_ECDAASignatureAlgo_NA = 0
kSE05x_ECDAASignatureAlgo_ECDAA = 244
SE05x_ECDAASignatureAlgo_t = enum_anon_111
enum_anon_112 = c_int
kSE05x_RSASignatureAlgo_NA = 0
kSE05x_RSASignatureAlgo_SHA1_PKCS1_PSS = 21
kSE05x_RSASignatureAlgo_SHA224_PKCS1_PSS = 43
kSE05x_RSASignatureAlgo_SHA256_PKCS1_PSS = 44
kSE05x_RSASignatureAlgo_SHA384_PKCS1_PSS = 45
kSE05x_RSASignatureAlgo_SHA512_PKCS1_PSS = 46
kSE05x_RSASignatureAlgo_SHA1_PKCS1 = 10
kSE05x_RSASignatureAlgo_SHA_224_PKCS1 = 39
kSE05x_RSASignatureAlgo_SHA_256_PKCS1 = 40
kSE05x_RSASignatureAlgo_SHA_384_PKCS1 = 41
kSE05x_RSASignatureAlgo_SHA_512_PKCS1 = 42
SE05x_RSASignatureAlgo_t = enum_anon_112
enum_anon_113 = c_int
kSE05x_RSAEncryptionAlgo_NA = 0
kSE05x_RSAEncryptionAlgo_NO_PAD = 12
kSE05x_RSAEncryptionAlgo_PKCS1 = 10
kSE05x_RSAEncryptionAlgo_PKCS1_OAEP = 15
SE05x_RSAEncryptionAlgo_t = enum_anon_113
enum_anon_114 = c_int
kSE05x_RSABitLength_NA = 0
kSE05x_RSABitLength_512 = 512
kSE05x_RSABitLength_1024 = 1024
kSE05x_RSABitLength_1152 = 1152
kSE05x_RSABitLength_2048 = 2048
kSE05x_RSABitLength_3072 = 3072
kSE05x_RSABitLength_4096 = 4096
SE05x_RSABitLength_t = enum_anon_114
enum_anon_115 = c_int
kSE05x_RSAKeyComponent_NA = 255
kSE05x_RSAKeyComponent_MOD = 0
kSE05x_RSAKeyComponent_PUB_EXP = 1
kSE05x_RSAKeyComponent_PRIV_EXP = 2
kSE05x_RSAKeyComponent_P = 3
kSE05x_RSAKeyComponent_Q = 4
kSE05x_RSAKeyComponent_DP = 5
kSE05x_RSAKeyComponent_DQ = 6
kSE05x_RSAKeyComponent_INVQ = 7
SE05x_RSAKeyComponent_t = enum_anon_115
enum_anon_116 = c_int
kSE05x_DigestMode_NA = 0
kSE05x_DigestMode_NO_HASH = 0
kSE05x_DigestMode_SHA = 1
kSE05x_DigestMode_SHA224 = 7
kSE05x_DigestMode_SHA256 = 4
kSE05x_DigestMode_SHA384 = 5
kSE05x_DigestMode_SHA512 = 6
SE05x_DigestMode_t = enum_anon_116
enum_anon_117 = c_int
kSE05x_MACAlgo_NA = 0
kSE05x_MACAlgo_HMAC_SHA1 = 24
kSE05x_MACAlgo_HMAC_SHA256 = 25
kSE05x_MACAlgo_HMAC_SHA384 = 26
kSE05x_MACAlgo_HMAC_SHA512 = 27
kSE05x_MACAlgo_CMAC_128 = 49
SE05x_MACAlgo_t = enum_anon_117
enum_anon_118 = c_int
kSE05x_AeadAlgo_NA = 0
kSE05x_AeadGCMAlgo = 176
kSE05x_AeadGCM_IVAlgo = 243
kSE05x_AeadCCMAlgo = 244
SE05x_AeadAlgo_t = enum_anon_118
enum_anon_119 = c_int
kSE05x_HkdfMode_NA = 0
kSE05x_HkdfMode_ExtractExpand = 1
kSE05x_HkdfMode_ExpandOnly = 2
SE05x_HkdfMode_t = enum_anon_119
enum_anon_120 = c_int
kSE05x_ECCurve_NA = 0
kSE05x_ECCurve_NIST_P192 = 1
kSE05x_ECCurve_NIST_P224 = 2
kSE05x_ECCurve_NIST_P256 = 3
kSE05x_ECCurve_NIST_P384 = 4
kSE05x_ECCurve_NIST_P521 = 5
kSE05x_ECCurve_Brainpool160 = 6
kSE05x_ECCurve_Brainpool192 = 7
kSE05x_ECCurve_Brainpool224 = 8
kSE05x_ECCurve_Brainpool256 = 9
kSE05x_ECCurve_Brainpool320 = 10
kSE05x_ECCurve_Brainpool384 = 11
kSE05x_ECCurve_Brainpool512 = 12
kSE05x_ECCurve_Secp160k1 = 13
kSE05x_ECCurve_Secp192k1 = 14
kSE05x_ECCurve_Secp224k1 = 15
kSE05x_ECCurve_Secp256k1 = 16
kSE05x_ECCurve_TPM_ECC_BN_P256 = 17
kSE05x_ECCurve_ECC_ED_25519 = 64
kSE05x_ECCurve_ECC_MONT_DH_25519 = 65
kSE05x_ECCurve_ECC_MONT_DH_448 = 67
SE05x_ECCurve_t = enum_anon_120
enum_anon_121 = c_int
kSE05x_ECCurveParam_NA = 0
kSE05x_ECCurveParam_PARAM_A = 1
kSE05x_ECCurveParam_PARAM_B = 2
kSE05x_ECCurveParam_PARAM_G = 4
kSE05x_ECCurveParam_PARAM_N = 8
kSE05x_ECCurveParam_PARAM_PRIME = 16
SE05x_ECCurveParam_t = enum_anon_121
enum_anon_122 = c_int
kSE05x_CipherMode_NA = 0
kSE05x_CipherMode_DES_CBC_NOPAD = 1
kSE05x_CipherMode_DES_CBC_ISO9797_M1 = 2
kSE05x_CipherMode_DES_CBC_ISO9797_M2 = 3
kSE05x_CipherMode_DES_CBC_PKCS5 = 4
kSE05x_CipherMode_DES_ECB_NOPAD = 5
kSE05x_CipherMode_DES_ECB_ISO9797_M1 = 6
kSE05x_CipherMode_DES_ECB_ISO9797_M2 = 7
kSE05x_CipherMode_DES_ECB_PKCS5 = 8
kSE05x_CipherMode_AES_ECB_NOPAD = 14
kSE05x_CipherMode_AES_CBC_NOPAD = 13
kSE05x_CipherMode_AES_CBC_ISO9797_M1 = 22
kSE05x_CipherMode_AES_CBC_ISO9797_M2 = 23
kSE05x_CipherMode_AES_CBC_PKCS5 = 24
kSE05x_CipherMode_AES_GCM = 176
kSE05x_CipherMode_AES_CTR = 240
kSE05x_CipherMode_AES_GCM_INT_IV = 243
kSE05x_CipherMode_AES_CCM = 244
SE05x_CipherMode_t = enum_anon_122
enum_anon_123 = c_int
kSE05x_AppletConfig_NA = 0
kSE05x_AppletConfig_ECDAA = 1
kSE05x_AppletConfig_ECDSA_ECDH_ECDHE = 2
kSE05x_AppletConfig_EDDSA = 4
kSE05x_AppletConfig_DH_MONT = 8
kSE05x_AppletConfig_HMAC = 16
kSE05x_AppletConfig_RSA_PLAIN = 32
kSE05x_AppletConfig_RSA_CRT = 64
kSE05x_AppletConfig_AES = 128
kSE05x_AppletConfig_DES = 256
kSE05x_AppletConfig_PBKDF = 512
kSE05x_AppletConfig_TLS = 1024
kSE05x_AppletConfig_MIFARE = 2048
kSE05x_AppletConfig_RFU1 = 4096
kSE05x_AppletConfig_I2CM = 8192
kSE05x_AppletConfig_RFU2 = 16384
SE05x_AppletConfig_t = enum_anon_123
enum_anon_124 = c_int
kSE05x_LockIndicator_NA = 0
kSE05x_LockIndicator_TRANSIENT_LOCK = 1
kSE05x_LockIndicator_PERSISTENT_LOCK = 2
SE05x_LockIndicator_t = enum_anon_124
enum_anon_125 = c_int
kSE05x_RestrictMode_NA = 0
kSE05x_RestrictMode_RESTRICT_NEW = 1
kSE05x_RestrictMode_RESTRICT_ALL = 2
SE05x_RestrictMode_t = enum_anon_125
enum_anon_126 = c_int
kSE05x_LockState_NA = 0
kSE05x_LockState_LOCKED = 1
SE05x_LockState_t = enum_anon_126
enum_anon_127 = c_int
kSE05x_CryptoContext_NA = 0
kSE05x_CryptoContext_DIGEST = 1
kSE05x_CryptoContext_CIPHER = 2
kSE05x_CryptoContext_SIGNATURE = 3
kSE05x_CryptoContext_AEAD = 4
SE05x_CryptoContext_t = enum_anon_127
enum_anon_128 = c_int
kSE05x_Result_NA = 0
kSE05x_Result_SUCCESS = 1
kSE05x_Result_FAILURE = 2
SE05x_Result_t = enum_anon_128
enum_anon_129 = c_int
kSE05x_TransientIndicator_NA = 0
kSE05x_TransientIndicator_PERSISTENT = 1
kSE05x_TransientIndicator_TRANSIENT = 2
SE05x_TransientIndicator_t = enum_anon_129
enum_anon_130 = c_int
kSE05x_SetIndicator_NA = 0
kSE05x_SetIndicator_NOT_SET = 1
kSE05x_SetIndicator_SET = 2
SE05x_SetIndicator_t = enum_anon_130
enum_anon_131 = c_int
kSE05x_MoreIndicator_NA = 0
kSE05x_MoreIndicator_NO_MORE = 1
kSE05x_MoreIndicator_MORE = 2
SE05x_MoreIndicator_t = enum_anon_131
enum_anon_132 = c_int
kSE05x_HealthCheckMode_NA = 0
kSE05x_HealthCheckMode_FIPS = 63750
kSE05x_HealthCheckMode_CODE_SIGNATURE = 65025
kSE05x_HealthCheckMode_DYNAMIC_FLASH_INTEGRITY = 64770
kSE05x_HealthCheckMode_SHIELDING = 64260
kSE05x_HealthCheckMode_SENSOR = 64005
kSE05x_HealthCheckMode_SFR_CHECK = 64515
SE05x_HealthCheckMode_t = enum_anon_132
enum_anon_133 = c_int
kSE05x_PlatformSCPRequest_NA = 0
kSE05x_PlatformSCPRequest_REQUIRED = 1
kSE05x_PlatformSCPRequest_NOT_REQUIRED = 2
SE05x_PlatformSCPRequest_t = enum_anon_133
enum_anon_134 = c_int
kSE05x_CryptoObject_NA = 0
kSE05x_CryptoObject_DIGEST_SHA = (kSE05x_CryptoObject_NA + 1)
kSE05x_CryptoObject_DIGEST_SHA224 = (kSE05x_CryptoObject_DIGEST_SHA + 1)
kSE05x_CryptoObject_DIGEST_SHA256 = (kSE05x_CryptoObject_DIGEST_SHA224 + 1)
kSE05x_CryptoObject_DIGEST_SHA384 = (kSE05x_CryptoObject_DIGEST_SHA256 + 1)
kSE05x_CryptoObject_DIGEST_SHA512 = (kSE05x_CryptoObject_DIGEST_SHA384 + 1)
kSE05x_CryptoObject_DES_CBC_NOPAD = (kSE05x_CryptoObject_DIGEST_SHA512 + 1)
kSE05x_CryptoObject_DES_CBC_ISO9797_M1 = (kSE05x_CryptoObject_DES_CBC_NOPAD + 1)
kSE05x_CryptoObject_DES_CBC_ISO9797_M2 = (kSE05x_CryptoObject_DES_CBC_ISO9797_M1 + 1)
kSE05x_CryptoObject_DES_CBC_PKCS5 = (kSE05x_CryptoObject_DES_CBC_ISO9797_M2 + 1)
kSE05x_CryptoObject_DES_ECB_NOPAD = (kSE05x_CryptoObject_DES_CBC_PKCS5 + 1)
kSE05x_CryptoObject_DES_ECB_ISO9797_M1 = (kSE05x_CryptoObject_DES_ECB_NOPAD + 1)
kSE05x_CryptoObject_DES_ECB_ISO9797_M2 = (kSE05x_CryptoObject_DES_ECB_ISO9797_M1 + 1)
kSE05x_CryptoObject_DES_ECB_PKCS5 = (kSE05x_CryptoObject_DES_ECB_ISO9797_M2 + 1)
kSE05x_CryptoObject_AES_ECB_NOPAD = (kSE05x_CryptoObject_DES_ECB_PKCS5 + 1)
kSE05x_CryptoObject_AES_CBC_NOPAD = (kSE05x_CryptoObject_AES_ECB_NOPAD + 1)
kSE05x_CryptoObject_AES_CBC_ISO9797_M1 = (kSE05x_CryptoObject_AES_CBC_NOPAD + 1)
kSE05x_CryptoObject_AES_CBC_ISO9797_M2 = (kSE05x_CryptoObject_AES_CBC_ISO9797_M1 + 1)
kSE05x_CryptoObject_AES_CBC_PKCS5 = (kSE05x_CryptoObject_AES_CBC_ISO9797_M2 + 1)
kSE05x_CryptoObject_AES_CTR = (kSE05x_CryptoObject_AES_CBC_PKCS5 + 1)
kSE05x_CryptoObject_HMAC_SHA1 = (kSE05x_CryptoObject_AES_CTR + 1)
kSE05x_CryptoObject_HMAC_SHA256 = (kSE05x_CryptoObject_HMAC_SHA1 + 1)
kSE05x_CryptoObject_HMAC_SHA384 = (kSE05x_CryptoObject_HMAC_SHA256 + 1)
kSE05x_CryptoObject_HMAC_SHA512 = (kSE05x_CryptoObject_HMAC_SHA384 + 1)
kSE05x_CryptoObject_CMAC_128 = (kSE05x_CryptoObject_HMAC_SHA512 + 1)
kSE05x_CryptoObject_AES_GCM = (kSE05x_CryptoObject_CMAC_128 + 1)
kSE05x_CryptoObject_AES_GCM_INT_IV = (kSE05x_CryptoObject_AES_GCM + 1)
kSE05x_CryptoObject_AES_CCM = (kSE05x_CryptoObject_AES_GCM_INT_IV + 1)
SE05x_CryptoObject_t = enum_anon_134
enum_anon_135 = c_int
kSE05x_SecObjTyp_EC_KEY_PAIR = 1
kSE05x_SecObjTyp_EC_PRIV_KEY = 2
kSE05x_SecObjTyp_EC_PUB_KEY = 3
kSE05x_SecObjTyp_RSA_KEY_PAIR = 4
kSE05x_SecObjTyp_RSA_KEY_PAIR_CRT = 5
kSE05x_SecObjTyp_RSA_PRIV_KEY = 6
kSE05x_SecObjTyp_RSA_PRIV_KEY_CRT = 7
kSE05x_SecObjTyp_RSA_PUB_KEY = 8
kSE05x_SecObjTyp_AES_KEY = 9
kSE05x_SecObjTyp_DES_KEY = 10
kSE05x_SecObjTyp_BINARY_FILE = 11
kSE05x_SecObjTyp_UserID = 12
kSE05x_SecObjTyp_COUNTER = 13
kSE05x_SecObjTyp_PCR = 15
kSE05x_SecObjTyp_CURVE = 16
kSE05x_SecObjTyp_HMAC_KEY = 17
SE05x_SecObjTyp_t = enum_anon_135
SE05x_SecureObjectType_t = SE05x_SecObjTyp_t
enum_anon_136 = c_int
kSE05x_MemTyp_TRANSIENT_RESET = 1
kSE05x_MemTyp_TRANSIENT_DESELECT = 2
kSE05x_MemTyp_PERSISTENT = 3
SE05x_MemTyp_t = enum_anon_136
enum_anon_137 = c_int
kSE05x_RSASignAlgo_NA = 0
kSE05x_RSASignAlgo_SHA1_PKCS1_PSS = 21
kSE05x_RSASignAlgo_SHA224_PKCS1_PSS = 43
kSE05x_RSASignAlgo_SHA256_PKCS1_PSS = 44
kSE05x_RSASignAlgo_SHA384_PKCS1_PSS = 45
kSE05x_RSASignAlgo_SHA512_PKCS1_PSS = 46
kSE05x_RSASignAlgo_SHA_224_PKCS1 = 39
kSE05x_RSASignAlgo_SHA_256_PKCS1 = 40
kSE05x_RSASignAlgo_SHA_384_PKCS1 = 41
kSE05x_RSASignAlgo_SHA_512_PKCS1 = 42
SE05x_RSASignAlgo_t = enum_anon_137
enum_anon_138 = c_int
kSE05x_RSAPubKeyComp_NA = 0
kSE05x_RSAPubKeyComp_MOD = kSE05x_RSAKeyComponent_MOD
kSE05x_RSAPubKeyComp_PUB_EXP = kSE05x_RSAKeyComponent_PUB_EXP
SE05x_RSAPubKeyComp_t = enum_anon_138
class union_anon_139(Union):
pass
union_anon_139.__slots__ = [
'digest',
'cipher',
'mac',
'aead',
'union_8bit',
]
union_anon_139._fields_ = [
('digest', SE05x_DigestMode_t),
('cipher', SE05x_CipherMode_t),
('mac', SE05x_MACAlgo_t),
('aead', SE05x_AeadAlgo_t),
('union_8bit', c_uint8),
]
SE05x_CryptoModeSubType_t = union_anon_139
enum_anon_140 = c_int
kSE05x_TAG_I2CM_Config = 1
kSE05x_TAG_I2CM_Write = 3
kSE05x_TAG_I2CM_Read = 4
SE05x_I2CM_TAG_t = enum_anon_140
enum_anon_141 = c_int
kSE05x_TransientType_Persistent = 0
kSE05x_TransientType_Transient = kSE05x_INS_TRANSIENT
SE05x_TransientType_t = enum_anon_141
enum_anon_142 = c_int
kSE05x_KeyPart_NA = kSE05x_P1_DEFAULT
kSE05x_KeyPart_Pair = kSE05x_P1_KEY_PAIR
kSE05x_KeyPart_Private = kSE05x_P1_PRIVATE
kSE05x_KeyPart_Public = kSE05x_P1_PUBLIC
SE05x_KeyPart_t = enum_anon_142
enum_anon_143 = c_int
kSE05x_Cipher_Oper_NA = 0
kSE05x_Cipher_Oper_Encrypt = kSE05x_P2_ENCRYPT
kSE05x_Cipher_Oper_Decrypt = kSE05x_P2_DECRYPT
SE05x_Cipher_Oper_t = enum_anon_143
enum_anon_144 = c_int
kSE05x_Cipher_Oper_OneShot_NA = 0
kSE05x_Cipher_Oper_OneShot_Encrypt = kSE05x_P2_ENCRYPT_ONESHOT
kSE05x_Cipher_Oper_OneShot_Decrypt = kSE05x_P2_DECRYPT_ONESHOT
SE05x_Cipher_Oper_OneShot_t = enum_anon_144
enum_anon_145 = c_int
kSE05x_Mac_Oper_NA = 0
kSE05x_Mac_Oper_Generate = kSE05x_P2_GENERATE
kSE05x_Mac_Oper_Validate = kSE05x_P2_VALIDATE
SE05x_Mac_Oper_t = enum_anon_145
enum_anon_146 = c_int
kSE05x_AttestationType_None = 0
kSE05x_AttestationType_AUTH = kSE05x_INS_AUTH_OBJECT
SE05x_AttestationType_t = enum_anon_146
enum_anon_147 = c_int
kSE05x_SymmKeyType_AES = kSE05x_P1_AES
kSE05x_SymmKeyType_DES = kSE05x_P1_DES
kSE05x_SymmKeyType_HMAC = kSE05x_P1_HMAC
kSE05x_SymmKeyType_CMAC = kSE05x_P1_AES
SE05x_SymmKeyType_t = enum_anon_147
SE05x_Variant_t = SE05x_AppletConfig_t
enum_anon_148 = c_int
kSE05x_TLS_PRF_NA = 0
kSE05x_TLS_PRF_CLI_HELLO = kSE05x_P2_TLS_PRF_CLI_HELLO
kSE05x_TLS_PRF_SRV_HELLO = kSE05x_P2_TLS_PRF_SRV_HELLO
kSE05x_TLS_PRF_CLI_RND = kSE05x_P2_TLS_PRF_CLI_RND
kSE05x_TLS_PRF_SRV_RND = kSE05x_P2_TLS_PRF_SRV_RND
kSE05x_TLS_PRF_BOTH = kSE05x_P2_TLS_PRF_BOTH
SE05x_TLSPerformPRFType_t = enum_anon_148
enum_anon_149 = c_int
kSE05x_AttestationAlgo_NA = 0
kSE05x_AttestationAlgo_EC_PLAIN = kSE05x_ECSignatureAlgo_PLAIN
kSE05x_AttestationAlgo_EC_SHA = kSE05x_ECSignatureAlgo_SHA
kSE05x_AttestationAlgo_EC_SHA_224 = kSE05x_ECSignatureAlgo_SHA_224
kSE05x_AttestationAlgo_EC_SHA_256 = kSE05x_ECSignatureAlgo_SHA_256
kSE05x_AttestationAlgo_EC_SHA_384 = kSE05x_ECSignatureAlgo_SHA_384
kSE05x_AttestationAlgo_EC_SHA_512 = kSE05x_ECSignatureAlgo_SHA_512
kSE05x_AttestationAlgo_ED25519PURE_SHA_512 = kSE05x_EDSignatureAlgo_ED25519PURE_SHA_512
kSE05x_AttestationAlgo_ECDAA = kSE05x_ECDAASignatureAlgo_ECDAA
kSE05x_AttestationAlgo_RSA_SHA1_PKCS1_PSS = kSE05x_RSASignatureAlgo_SHA1_PKCS1_PSS
kSE05x_AttestationAlgo_RSA_SHA224_PKCS1_PSS = kSE05x_RSASignatureAlgo_SHA224_PKCS1_PSS
kSE05x_AttestationAlgo_RSA_SHA256_PKCS1_PSS = kSE05x_RSASignatureAlgo_SHA256_PKCS1_PSS
kSE05x_AttestationAlgo_RSA_SHA384_PKCS1_PSS = kSE05x_RSASignatureAlgo_SHA384_PKCS1_PSS
kSE05x_AttestationAlgo_RSA_SHA512_PKCS1_PSS = kSE05x_RSASignatureAlgo_SHA512_PKCS1_PSS
kSE05x_AttestationAlgo_RSA_SHA_224_PKCS1 = kSE05x_RSASignatureAlgo_SHA_224_PKCS1
kSE05x_AttestationAlgo_RSA_SHA_256_PKCS1 = kSE05x_RSASignatureAlgo_SHA_256_PKCS1
kSE05x_AttestationAlgo_RSA_SHA_384_PKCS1 = kSE05x_RSASignatureAlgo_SHA_384_PKCS1
kSE05x_AttestationAlgo_RSA_SHA_512_PKCS1 = kSE05x_RSASignatureAlgo_SHA_512_PKCS1
SE05x_AttestationAlgo_t = enum_anon_149
enum_anon_150 = c_int
kSE05x_RSAKeyFormat_CRT = kSE05x_P2_DEFAULT
kSE05x_RSAKeyFormat_RAW = kSE05x_P2_RAW
SE05x_RSAKeyFormat_t = enum_anon_150
SE05x_MacOperation_t = SE05x_MACAlgo_t
SE05x_KeyID_t = c_uint32
SE05x_MaxAttemps_t = c_uint16
enum_anon_151 = c_int # ../../hostlib/hostLib/inc/se05x_tlv.h
smStatus_t = enum_anon_151
class struct_Se05xSession(Structure):
pass
# sss/inc/fsl_sss_se05x_types.h
class struct__sss_se05x_tunnel_context(Structure):
pass
struct_Se05xSession.__slots__ = [
'value',
'hasSession',
'authType',
'fp_TXn',
'fp_Transform',
'fp_DeCrypt',
'fp_RawTXn',
'pChannelCtx',
'fp_Transmit',
'pdynScp03Ctx',
'conn_ctx',
]
struct_Se05xSession._fields_ = [
('value', c_uint8 * 8),
('hasSession', c_uint8, 1),
('authType', SE_AuthType_t),
('fp_TXn', CFUNCTYPE(UNCHECKED(smStatus_t), POINTER(struct_Se05xSession), POINTER(tlvHeader_t), POINTER(c_uint8), c_size_t, POINTER(c_uint8), POINTER(c_size_t), c_uint8)),
('fp_Transform', CFUNCTYPE(UNCHECKED(smStatus_t), POINTER(struct_Se05xSession), POINTER(tlvHeader_t), POINTER(c_uint8), c_size_t, POINTER(tlvHeader_t), POINTER(c_uint8), POINTER(c_size_t), c_uint8)),
('fp_DeCrypt', CFUNCTYPE(UNCHECKED(smStatus_t), POINTER(struct_Se05xSession), c_size_t, POINTER(c_uint8), POINTER(c_size_t), c_uint8)),
('fp_RawTXn', CFUNCTYPE(UNCHECKED(smStatus_t), POINTER(None), POINTER(struct__sss_se05x_tunnel_context), SE_AuthType_t, POINTER(tlvHeader_t), POINTER(c_uint8), c_size_t, POINTER(c_uint8), POINTER(c_size_t), c_uint8)),
('pChannelCtx', POINTER(struct__sss_se05x_tunnel_context)),
('fp_Transmit', CFUNCTYPE(UNCHECKED(smStatus_t), SE_AuthType_t, POINTER(tlvHeader_t), POINTER(c_uint8), c_size_t, POINTER(c_uint8), POINTER(c_size_t), c_uint8)),
('pdynScp03Ctx', POINTER(NXSCP03_DynCtx_t)),
('conn_ctx', POINTER(None)),
]
Se05xSession_t = struct_Se05xSession# ../../hostlib/hostLib/inc/se05x_tlv.h
class struct_anon_154(Structure):
pass
struct_anon_154.__slots__ = [
'value',
'value_len',
]
struct_anon_154._fields_ = [
('value', POINTER(c_uint8)),
('value_len', c_size_t),
]
Se05xPolicy_t = struct_anon_154
class struct_anon_155(Structure):
pass
struct_anon_155.__slots__ = [
'ts',
]
struct_anon_155._fields_ = [
('ts', c_uint8 * 12),
]
SE05x_TimeStamp_t = struct_anon_155
pSe05xSession_t = POINTER(Se05xSession_t)
pSe05xPolicy_t = POINTER(Se05xPolicy_t)
# sss/inc/fsl_sss_se05x_types.h
class struct__sss_se05x_session(Structure):
pass
struct__sss_se05x_tunnel_context.__slots__ = [
'se05x_session',
'tunnelDest',
]
struct__sss_se05x_tunnel_context._fields_ = [
('se05x_session', POINTER(struct__sss_se05x_session)),
('tunnelDest', sss_tunnel_dest_t),
]
sss_se05x_tunnel_context_t = struct__sss_se05x_tunnel_context
struct__sss_se05x_session.__slots__ = [
'subsystem',
's_ctx',
'ptun_ctx',
]
struct__sss_se05x_session._fields_ = [
('subsystem', sss_type_t),
('s_ctx', Se05xSession_t),
('ptun_ctx', POINTER(sss_se05x_tunnel_context_t)),
]
sss_se05x_session_t = struct__sss_se05x_session
class struct__sss_se05x_object(Structure):
pass
class struct_anon_158(Structure):
pass
struct_anon_158.__slots__ = [
'session',
'kekKey',
]
struct_anon_158._fields_ = [
('session', POINTER(sss_se05x_session_t)),
('kekKey', POINTER(struct__sss_se05x_object)),
]
sss_se05x_key_store_t = struct_anon_158
struct__sss_se05x_object.__slots__ = [
'keyStore',
'objectType',
'cipherType',
'keyId',
'curve_id',
'isPersistant',
]
struct__sss_se05x_object._fields_ = [
('keyStore', POINTER(sss_se05x_key_store_t)),
('objectType', c_uint32),
('cipherType', c_uint32),
('keyId', c_uint32),
('curve_id', SE05x_ECCurve_t),
('isPersistant', c_uint8, 1),
]
sss_se05x_object_t = struct__sss_se05x_object
class struct_anon_159(Structure):
pass
struct_anon_159.__slots__ = [
'session',
'keyObject',
'algorithm',
'mode',
]
struct_anon_159._fields_ = [
('session', POINTER(sss_se05x_session_t)),
('keyObject', POINTER(sss_se05x_object_t)),
('algorithm', sss_algorithm_t),
('mode', sss_mode_t),
]
sss_se05x_derive_key_t = struct_anon_159
class struct_anon_160(Structure):
pass
struct_anon_160.__slots__ = [
'session',
'keyObject',
'algorithm',
'mode',
]
struct_anon_160._fields_ = [
('session', POINTER(sss_se05x_session_t)),
('keyObject', POINTER(sss_se05x_object_t)),
('algorithm', sss_algorithm_t),
('mode', sss_mode_t),
]
sss_se05x_asymmetric_t = struct_anon_160
class struct_anon_161(Structure):
pass
struct_anon_161.__slots__ = [
'session',
'keyObject',
'algorithm',
'mode',
'cryptoObjectId',
'cache_data',
'cache_data_len',
]
struct_anon_161._fields_ = [
('session', POINTER(sss_se05x_session_t)),
('keyObject', POINTER(sss_se05x_object_t)),
('algorithm', sss_algorithm_t),
('mode', sss_mode_t),
('cryptoObjectId', SE05x_CryptoObject_t),
('cache_data', c_uint8 * 16),
('cache_data_len', c_size_t),
]
sss_se05x_symmetric_t = struct_anon_161
class struct_anon_162(Structure):
pass
struct_anon_162.__slots__ = [
'session',
'keyObject',
'algorithm',
'mode',
'cryptoObjectId',
]
struct_anon_162._fields_ = [
('session', POINTER(sss_se05x_session_t)),
('keyObject', POINTER(sss_se05x_object_t)),
('algorithm', sss_algorithm_t),
('mode', sss_mode_t),
('cryptoObjectId', SE05x_CryptoObject_t),
]
sss_se05x_mac_t = struct_anon_162
class struct_anon_163(Structure):
pass
struct_anon_163.__slots__ = [
'session',
'keyObject',
'algorithm',
'mode',
'cryptoObjectId',
'cache_data',
'cache_data_len',
]
struct_anon_163._fields_ = [
('session', POINTER(sss_se05x_session_t)),
('keyObject', POINTER(sss_se05x_object_t)),
('algorithm', sss_algorithm_t),
('mode', sss_mode_t),
('cryptoObjectId', SE05x_CryptoObject_t),
('cache_data', c_uint8 * 16),
('cache_data_len', c_size_t),
]
sss_se05x_aead_t = struct_anon_163
class struct_anon_164(Structure):
pass
struct_anon_164.__slots__ = [
'session',
'algorithm',
'mode',
'digestFullLen',
'cryptoObjectId',
]
struct_anon_164._fields_ = [
('session', POINTER(sss_se05x_session_t)),
('algorithm', sss_algorithm_t),
('mode', sss_mode_t),
('digestFullLen', c_size_t),
('cryptoObjectId', SE05x_CryptoObject_t),
]
sss_se05x_digest_t = struct_anon_164
class struct_anon_165(Structure):
pass
struct_anon_165.__slots__ = [
'session',
]
struct_anon_165._fields_ = [
('session', POINTER(sss_se05x_session_t)),
]
sss_se05x_rng_context_t = struct_anon_165
enum_anon_166 = c_int
kSSS_SE05x_SessionProp_CertUID = (kSSS_SessionProp_au8_Proprietary_Start + 1)
sss_s05x_sesion_prop_au8_t = enum_anon_166
enum_anon_167 = c_int
kSSS_SE05x_SessionProp_CertUIDLen = (kSSS_SessionProp_u32_Optional_Start + 1)
sss_s05x_sesion_prop_u32_t = enum_anon_167
class struct_anon_168(Structure):
pass
struct_anon_168.__slots__ = [
'AppletConfig_ECDAA',
'AppletConfig_ECDSA_ECDH_ECDHE',
'AppletConfig_EDDSA',
'AppletConfig_DH_MONT',
'AppletConfig_HMAC',
'AppletConfig_RSA_PLAIN',
'AppletConfig_RSA_CRT',
'AppletConfig_AES',
'AppletConfig_DES',
'AppletConfig_PBKDF',
'AppletConfig_TLS',
'AppletConfig_MIFARE',
'AppletConfig_RFU1',
'AppletConfig_I2CM',
'AppletConfig_RFU21',
]
struct_anon_168._fields_ = [
('AppletConfig_ECDAA', c_uint8, 1),
('AppletConfig_ECDSA_ECDH_ECDHE', c_uint8, 1),
('AppletConfig_EDDSA', c_uint8, 1),
('AppletConfig_DH_MONT', c_uint8, 1),
('AppletConfig_HMAC', c_uint8, 1),
('AppletConfig_RSA_PLAIN', c_uint8, 1),
('AppletConfig_RSA_CRT', c_uint8, 1),
('AppletConfig_AES', c_uint8, 1),
('AppletConfig_DES', c_uint8, 1),
('AppletConfig_PBKDF', c_uint8, 1),
('AppletConfig_TLS', c_uint8, 1),
('AppletConfig_MIFARE', c_uint8, 1),
('AppletConfig_RFU1', c_uint8, 1),
('AppletConfig_I2CM', c_uint8, 1),
('AppletConfig_RFU21', c_uint8, 1),
]
SE05x_Applet_Feature_t = struct_anon_168
class struct_anon_169(Structure):
pass
struct_anon_169.__slots__ = [
'EXTCFG_FORBID_ECDH',
'EXTCFG_FORBID_ECDAA',
'EXTCFG_FORBID_RSA_LT_2K',
'EXTCFG_FORBID_RSA_SHA1',
'EXTCFG_FORBID_AES_GCM',
'EXTCFG_FORBID_AES_GCM_EXT_IV',
'EXTCFG_FORBID_HKDF_EXTRACT',
]
struct_anon_169._fields_ = [
('EXTCFG_FORBID_ECDH', c_uint8, 1),
('EXTCFG_FORBID_ECDAA', c_uint8, 1),
('EXTCFG_FORBID_RSA_LT_2K', c_uint8, 1),
('EXTCFG_FORBID_RSA_SHA1', c_uint8, 1),
('EXTCFG_FORBID_AES_GCM', c_uint8, 1),
('EXTCFG_FORBID_AES_GCM_EXT_IV', c_uint8, 1),
('EXTCFG_FORBID_HKDF_EXTRACT', c_uint8, 1),
]
SE05x_Applet_Feature_Disable_t = struct_anon_169
class struct_anon_170(Structure):
pass
struct_anon_170.__slots__ = [
'outrandom',
'outrandomLen',
'timeStamp',
'timeStampLen',
'chipId',
'chipIdLen',
'attribute',
'attributeLen',
'signature',
'signatureLen',
]
struct_anon_170._fields_ = [
('outrandom', c_uint8 * 16),
('outrandomLen', c_size_t),
('timeStamp', SE05x_TimeStamp_t),
('timeStampLen', c_size_t),
('chipId', c_uint8 * 18),
('chipIdLen', c_size_t),
('attribute', c_uint8 * (256 + 15)),
('attributeLen', c_size_t),
('signature', c_uint8 * 512),
('signatureLen', c_size_t),
]
sss_se05x_attst_comp_data_t = struct_anon_170
class struct_anon_171(Structure):
pass
struct_anon_171.__slots__ = [
'data',
'valid_number',
]
struct_anon_171._fields_ = [
('data', sss_se05x_attst_comp_data_t * 2),
('valid_number', c_uint8),
]
sss_se05x_attst_data_t = struct_anon_171
enum_anon_172 = c_int
kSE05x_I2CM_None = 0
kSE05x_I2CM_Configure = (kSE05x_I2CM_None + 1)
kSE05x_I2CM_Write = 3
kSE05x_I2CM_Read = (kSE05x_I2CM_Write + 1)
kSE05x_I2CM_StructuralIssue = 255
SE05x_I2CM_TLV_type_t = enum_anon_172
enum_anon_173 = c_int
kSE05x_I2CM_Success = 90
kSE05x_I2CM_I2C_Nack_Fail = 1
kSE05x_I2CM_I2C_Write_Error = 2
kSE05x_I2CM_I2C_Read_Error = 3
kSE05x_I2CM_I2C_Time_Out_Error = 5
kSE05x_I2CM_Invalid_Tag = 17
kSE05x_I2CM_Invalid_Length = 18
kSE05x_I2CM_Invalid_Length_Encode = 19
kSE05x_I2CM_I2C_Config = 33
SE05x_I2CM_status_t = enum_anon_173
enum_anon_174 = c_int
kSE05x_Security_None = 0
kSE05x_Sign_Request = (kSE05x_Security_None + 1)
kSE05x_Sign_Enc_Request = (kSE05x_Sign_Request + 1)
SE05x_I2CM_securityReq_t = enum_anon_174
enum_anon_175 = c_int
kSE05x_I2CM_Baud_Rate_100Khz = 0
kSE05x_I2CM_Baud_Rate_400Khz = (kSE05x_I2CM_Baud_Rate_100Khz + 1)
SE05x_I2CM_Baud_Rate_t = enum_anon_175
class struct_anon_176(Structure):
pass
struct_anon_176.__slots__ = [
'I2C_addr',
'I2C_baudRate',
'status',
]
struct_anon_176._fields_ = [
('I2C_addr', c_uint8),
('I2C_baudRate', SE05x_I2CM_Baud_Rate_t),
('status', SE05x_I2CM_status_t),
]
SE05x_I2CM_configData_t = struct_anon_176
class struct_anon_177(Structure):
pass
struct_anon_177.__slots__ = [
'operation',
'keyObject',
]
struct_anon_177._fields_ = [
('operation', SE05x_I2CM_securityReq_t),
('keyObject', c_uint32),
]
SE05x_I2CM_securityData_t = struct_anon_177
class struct_anon_178(Structure):
pass
struct_anon_178.__slots__ = [
'writeLength',
'wrStatus',
'writebuf',
]
struct_anon_178._fields_ = [
('writeLength', c_uint8),
('wrStatus', SE05x_I2CM_status_t),
('writebuf', POINTER(c_uint8)),
]
SE05x_I2CM_writeData_t = struct_anon_178
class struct_anon_179(Structure):
pass
struct_anon_179.__slots__ = [
'readLength',
'rdStatus',
'rdBuf',
]
struct_anon_179._fields_ = [
('readLength', c_uint16),
('rdStatus', SE05x_I2CM_status_t),
('rdBuf', POINTER(c_uint8)),
]
SE05x_I2CM_readData_t = struct_anon_179
class struct_anon_180(Structure):
pass
struct_anon_180.__slots__ = [
'issueStatus',
]
struct_anon_180._fields_ = [
('issueStatus', SE05x_I2CM_status_t),
]
SE05x_I2CM_structuralIssue_t = struct_anon_180
class union_anon_181(Union):
pass
union_anon_181.__slots__ = [
'cfg',
'sec',
'w',
'rd',
'issue',
]
union_anon_181._fields_ = [
('cfg', SE05x_I2CM_configData_t),
('sec', SE05x_I2CM_securityData_t),
('w', SE05x_I2CM_writeData_t),
('rd', SE05x_I2CM_readData_t),
('issue', SE05x_I2CM_structuralIssue_t),
]
SE05x_I2CM_INS_type_t = union_anon_181
class struct__SE05x_I2CM_cmd(Structure):
pass
struct__SE05x_I2CM_cmd.__slots__ = [
'type',
'cmd',
]
struct__SE05x_I2CM_cmd._fields_ = [
('type', SE05x_I2CM_TLV_type_t),
('cmd', SE05x_I2CM_INS_type_t),
]
SE05x_I2CM_cmd_t = struct__SE05x_I2CM_cmd
for _lib in list(_libs.values()):
if not hasattr(_lib, 'sss_se05x_mac_validate_one_go'):
continue
sss_se05x_mac_validate_one_go = _lib.sss_se05x_mac_validate_one_go
sss_se05x_mac_validate_one_go.argtypes = [POINTER(sss_se05x_mac_t), POINTER(c_uint8), c_size_t, POINTER(c_uint8), c_size_t]
sss_se05x_mac_validate_one_go.restype = sss_status_t
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'sss_se05x_asymmetric_sign'):
continue
sss_se05x_asymmetric_sign = _lib.sss_se05x_asymmetric_sign
sss_se05x_asymmetric_sign.argtypes = [POINTER(sss_se05x_asymmetric_t), POINTER(c_uint8), c_size_t, POINTER(c_uint8), POINTER(c_size_t)]
sss_se05x_asymmetric_sign.restype = sss_status_t
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'sss_se05x_asymmetric_verify'):
continue
sss_se05x_asymmetric_verify = _lib.sss_se05x_asymmetric_verify
sss_se05x_asymmetric_verify.argtypes = [POINTER(sss_se05x_asymmetric_t), POINTER(c_uint8), c_size_t, POINTER(c_uint8), c_size_t]
sss_se05x_asymmetric_verify.restype = sss_status_t
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'sss_se05x_key_store_get_key_attst'):
continue
sss_se05x_key_store_get_key_attst = _lib.sss_se05x_key_store_get_key_attst
sss_se05x_key_store_get_key_attst.argtypes = [POINTER(sss_se05x_key_store_t), POINTER(sss_se05x_object_t), POINTER(c_uint8), POINTER(c_size_t), POINTER(c_size_t), POINTER(sss_se05x_object_t), sss_algorithm_t, POINTER(c_uint8), c_size_t, POINTER(sss_se05x_attst_data_t)]
sss_se05x_key_store_get_key_attst.restype = sss_status_t
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'se05x_sssKeyTypeLenToCurveId'):
continue
se05x_sssKeyTypeLenToCurveId = _lib.se05x_sssKeyTypeLenToCurveId
se05x_sssKeyTypeLenToCurveId.argtypes = [sss_cipher_type_t, c_size_t]
se05x_sssKeyTypeLenToCurveId.restype = c_uint32
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'Se05x_i2c_master_txn'):
continue
Se05x_i2c_master_txn = _lib.Se05x_i2c_master_txn
Se05x_i2c_master_txn.argtypes = [POINTER(sss_session_t), POINTER(SE05x_I2CM_cmd_t), c_uint8]
Se05x_i2c_master_txn.restype = smStatus_t
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'Se05x_i2c_master_attst_txn'):
continue
Se05x_i2c_master_attst_txn = _lib.Se05x_i2c_master_attst_txn
Se05x_i2c_master_attst_txn.argtypes = [POINTER(sss_session_t), POINTER(sss_object_t), POINTER(SE05x_I2CM_cmd_t), POINTER(c_uint8), c_size_t, SE05x_AttestationAlgo_t, POINTER(SE05x_TimeStamp_t), POINTER(c_size_t), POINTER(c_uint8), POINTER(c_size_t), POINTER(c_uint8), POINTER(c_size_t), POINTER(c_uint8), POINTER(c_size_t), c_uint8]
Se05x_i2c_master_attst_txn.restype = smStatus_t
break
# pycli/scripts/fsl_sss_python_export.h
for _lib in list(_libs.values()):
if not hasattr(_lib, 'Se05x_API_DeleteAll_Iterative'):
continue
Se05x_API_DeleteAll_Iterative = _lib.Se05x_API_DeleteAll_Iterative
Se05x_API_DeleteAll_Iterative.argtypes = [pSe05xSession_t]
Se05x_API_DeleteAll_Iterative.restype = smStatus_t
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'Se05x_API_WritePCR'):
continue
Se05x_API_WritePCR = _lib.Se05x_API_WritePCR
Se05x_API_WritePCR.argtypes = [pSe05xSession_t, pSe05xPolicy_t, c_uint32, POINTER(c_uint8), c_size_t, POINTER(c_uint8), c_size_t]
Se05x_API_WritePCR.restype = smStatus_t
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'Se05x_API_ReadIDList'):
continue
Se05x_API_ReadIDList = _lib.Se05x_API_ReadIDList
Se05x_API_ReadIDList.argtypes = [pSe05xSession_t, c_uint16, c_uint8, POINTER(c_uint8), POINTER(c_uint8), POINTER(c_size_t)]
Se05x_API_ReadIDList.restype = smStatus_t
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'Se05x_API_ReadSize'):
continue
Se05x_API_ReadSize = _lib.Se05x_API_ReadSize
Se05x_API_ReadSize.argtypes = [pSe05xSession_t, c_uint32, POINTER(c_uint16)]
Se05x_API_ReadSize.restype = smStatus_t
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'Se05x_API_ReadCryptoObjectList'):
continue
Se05x_API_ReadCryptoObjectList = _lib.Se05x_API_ReadCryptoObjectList
Se05x_API_ReadCryptoObjectList.argtypes = [pSe05xSession_t, POINTER(c_uint8), POINTER(c_size_t)]
Se05x_API_ReadCryptoObjectList.restype = smStatus_t
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'sss_util_openssl_write_pkcs12'):
continue
sss_util_openssl_write_pkcs12 = _lib.sss_util_openssl_write_pkcs12
sss_util_openssl_write_pkcs12.argtypes = [POINTER(sss_session_t), POINTER(sss_key_store_t), POINTER(sss_object_t), String, String, String, c_long, String, String]
sss_util_openssl_write_pkcs12.restype = sss_status_t
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'sss_util_openssl_read_pkcs12'):
continue
sss_util_openssl_read_pkcs12 = _lib.sss_util_openssl_read_pkcs12
sss_util_openssl_read_pkcs12.argtypes = [String, String, POINTER(c_uint8), POINTER(c_uint8)]
sss_util_openssl_read_pkcs12.restype = sss_status_t
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'Se05x_API_WriteSymmKey'):
continue
Se05x_API_WriteSymmKey = _lib.Se05x_API_WriteSymmKey
Se05x_API_WriteSymmKey.argtypes = [pSe05xSession_t, pSe05xPolicy_t, SE05x_MaxAttemps_t, c_uint32, SE05x_KeyID_t, POINTER(c_uint8), c_size_t, SE05x_INS_t, SE05x_SymmKeyType_t]
Se05x_API_WriteSymmKey.restype = smStatus_t
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'Se05x_API_WriteECKey'):
continue
Se05x_API_WriteECKey = _lib.Se05x_API_WriteECKey
Se05x_API_WriteECKey.argtypes = [pSe05xSession_t, pSe05xPolicy_t, SE05x_MaxAttemps_t, c_uint32, SE05x_ECCurve_t, POINTER(c_uint8), c_size_t, POINTER(c_uint8), c_size_t, SE05x_INS_t, SE05x_KeyPart_t]
Se05x_API_WriteECKey.restype = smStatus_t
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'sss_se05x_create_object_policy_buffer'):
continue
sss_se05x_create_object_policy_buffer = _lib.sss_se05x_create_object_policy_buffer
sss_se05x_create_object_policy_buffer.argtypes = [POINTER(sss_policy_t), POINTER(c_uint8), POINTER(c_size_t)]
sss_se05x_create_object_policy_buffer.restype = sss_status_t
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'sss_se05x_refresh_session'):
continue
sss_se05x_refresh_session = _lib.sss_se05x_refresh_session
sss_se05x_refresh_session.argtypes = [POINTER(sss_se05x_session_t), POINTER(None)]
sss_se05x_refresh_session.restype = sss_status_t
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'sss_se05x_asymmetric_sign'):
continue
sss_se05x_asymmetric_sign = _lib.sss_se05x_asymmetric_sign
sss_se05x_asymmetric_sign.argtypes = [POINTER(sss_se05x_asymmetric_t), POINTER(c_uint8), c_size_t, POINTER(c_uint8), POINTER(c_size_t)]
sss_se05x_asymmetric_sign.restype = sss_status_t
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'sss_se05x_asymmetric_verify'):
continue
sss_se05x_asymmetric_verify = _lib.sss_se05x_asymmetric_verify
sss_se05x_asymmetric_verify.argtypes = [POINTER(sss_se05x_asymmetric_t), POINTER(c_uint8), c_size_t, POINTER(c_uint8), c_size_t]
sss_se05x_asymmetric_verify.restype = sss_status_t
break
for _lib in list(_libs.values()):
if not hasattr(_lib, 'Se05x_API_GetVersion'):
continue
Se05x_API_GetVersion = _lib.Se05x_API_GetVersion
Se05x_API_GetVersion.argtypes = [pSe05xSession_t, POINTER(c_uint8), POINTER(c_size_t)]
Se05x_API_GetVersion.restype = smStatus_t
break
# ../../sss/inc/fsl_sss_api.h
try:
SSS_API_VERSION = 1
except:
pass
try:
SSS_AES_BLOCK_SIZE = 16
except:
pass
try:
SSS_DES_BLOCK_SIZE = 8
except:
pass
try:
SSS_DES_KEY_SIZE = 8
except:
pass
try:
SSS_DES_IV_SIZE = 8
except:
pass
def SSS_ENUM(GROUP,
INDEX): return (GROUP | INDEX)
try:
SSS_ALGORITHM_START_AES = 0
except:
pass
try:
SSS_ALGORITHM_START_CHACHA = 1
except:
pass
try:
SSS_ALGORITHM_START_DES = 2
except:
pass
try:
SSS_ALGORITHM_START_SHA = 3
except:
pass
try:
SSS_ALGORITHM_START_MAC = 4
except:
pass
try:
SSS_ALGORITHM_START_DH = 5
except:
pass
try:
SSS_ALGORITHM_START_DSA = 6
except:
pass
try:
SSS_ALGORITHM_START_RSASSA_PKCS1_V1_5 = 7
except:
pass
try:
SSS_ALGORITHM_START_RSASSA_PKCS1_PSS_MGF1 = 8
except:
pass
try:
SSS_ALGORITHM_START_RSAES_PKCS1_OAEP = 9
except:
pass
try:
SSS_ALGORITHM_START_RSAES_PKCS1_V1_5 = 10
except:
pass
try:
SSS_ALGORITHM_START_RSASSA_NO_PADDING = 11
except:
pass
try:
SSS_ALGORITHM_START_ECDSA = 12
except:
pass
try:
SSS_ALGORITHM_START_ECDAA = 13
except:
pass
try:
kAlgorithm_SSS_RSASSA_PKCS1_OEAP_SHA1 = kAlgorithm_SSS_RSAES_PKCS1_OAEP_SHA1
except:
pass
try:
kAlgorithm_SSS_RSASSA_PKCS1_OEAP_SHA224 = kAlgorithm_SSS_RSAES_PKCS1_OAEP_SHA224
except:
pass
try:
kAlgorithm_SSS_RSASSA_PKCS1_OEAP_SHA256 = kAlgorithm_SSS_RSAES_PKCS1_OAEP_SHA256
except:
pass
try:
kAlgorithm_SSS_RSASSA_PKCS1_OEAP_SHA384 = kAlgorithm_SSS_RSAES_PKCS1_OAEP_SHA384
except:
pass
try:
kAlgorithm_SSS_RSASSA_PKCS1_OEAP_SHA512 = kAlgorithm_SSS_RSAES_PKCS1_OAEP_SHA512
except:
pass
try:
kAlgorithm_SSS_RSAES_PKCS1_V1_5_SHA1 = kAlgorithm_SSS_RSAES_PKCS1_V1_5
except:
pass
try:
kAlgorithm_SSS_RSAES_PKCS1_V1_5_SHA224 = kAlgorithm_SSS_RSAES_PKCS1_V1_5
except:
pass
try:
kAlgorithm_SSS_RSAES_PKCS1_V1_5_SHA256 = kAlgorithm_SSS_RSAES_PKCS1_V1_5
except:
pass
try:
kAlgorithm_SSS_RSAES_PKCS1_V1_5_SHA384 = kAlgorithm_SSS_RSAES_PKCS1_V1_5
except:
pass
try:
kAlgorithm_SSS_RSAES_PKCS1_V1_5_SHA512 = kAlgorithm_SSS_RSAES_PKCS1_V1_5
except:
pass
# hostlib/hostLib/inc/a71ch_api.h
try:
A71CH_INJECT_LOCK_STATE_LOCKED = 1
except:
pass
try:
A71CH_INJECT_LOCK_STATE_UNLOCKED = 2
except:
pass
try:
A71CH_TRANSPORT_LOCK_STATE_LOCKED = 1
except:
pass
try:
A71CH_TRANSPORT_LOCK_STATE_UNLOCKED = 2
except:
pass
try:
A71CH_TRANSPORT_LOCK_STATE_ALLOW_LOCK = 3
except:
pass
try:
A71CH_NO_RESTRICTED_KP = 15
except:
pass
try:
A71CH_KEY_PAIR_0 = 0
except:
pass
try:
A71CH_KEY_PAIR_1 = 1
except:
pass
try:
A71CH_KEY_PAIR_2 = 2
except:
pass
try:
A71CH_KEY_PAIR_3 = 3
except:
pass
try:
A71CH_PUBLIC_KEY_0 = 0
except:
pass
try:
A71CH_PUBLIC_KEY_1 = 1
except:
pass
try:
A71CH_PUBLIC_KEY_2 = 2
except:
pass
try:
A71CH_SYM_KEY_0 = 0
except:
pass
try:
A71CH_SYM_KEY_1 = 1
except:
pass
try:
A71CH_SYM_KEY_2 = 2
except:
pass
try:
A71CH_SYM_KEY_3 = 3
except:
pass
try:
A71CH_SYM_KEY_4 = 4
except:
pass
try:
A71CH_SYM_KEY_5 = 5
except:
pass
try:
A71CH_SYM_KEY_6 = 6
except:
pass
try:
A71CH_SYM_KEY_7 = 7
except:
pass
try:
A71CH_COUNTER_0 = 0
except:
pass
try:
A71CH_COUNTER_1 = 1
except:
pass
try:
A71CH_CFG_KEY_IDX_MODULE_LOCK = 0
except:
pass
try:
A71CH_CFG_KEY_IDX_PRIVATE_KEYS = 1
except:
pass
try:
A71CH_CFG_KEY_IDX_PUBLIC_KEYS = 2
except:
pass
try:
A71CH_SYM_KEY_COMBINED_MAX = 4
except:
pass
try:
A71CH_MAP_SIZE_MAX = 203
except:
pass
try:
A71CH_MAX_CMD_PAYLOAD_SIZE = 255
except:
pass
try:
A71CH_SCP03_MAX_PAYLOAD_SIZE = 239
except:
pass
try:
A71CH_GP_STORAGE_SIZE_A = 1024
except:
pass
try:
A71CH_GP_STORAGE_SIZE_B = 4096
except:
pass
try:
A71CH_GP_STORAGE_GRANULARITY = 32
except:
pass
try:
A71CH_GP_STORAGE_MAX_DATA_CHUNK = A71CH_SCP03_MAX_PAYLOAD_SIZE
except:
pass
try:
DERIVE_KEYDATA_FROM_SHARED_SECRET_MAX_INFO = 192
except:
pass
try:
DERIVE_KEYDATA_FROM_SHARED_SECRET_MAX_DERIVED_DATA = 255
except:
pass
try:
A71CH_HKDF_MAX_SALT = 32
except:
pass
try:
A71CH_HMAC_SHA256_MAX_DATA_CHUNK = A71CH_SCP03_MAX_PAYLOAD_SIZE
except:
pass
try:
A71CH_SHA256_MAX_DATA_CHUNK = A71CH_SCP03_MAX_PAYLOAD_SIZE
except:
pass
try:
A71CH_TLS_MAX_LABEL = 24
except:
pass
try:
A71CH_MODULE_UNLOCK_CHALLENGE_LEN = 16
except:
pass
try:
A71CH_MODULE_UNIQUE_ID_LEN = 18
except:
pass
try:
A71CH_MODULE_CERT_UID_LEN = 10
except:
pass
try:
A71CH_WRAPPED_KEY_LEN = 24
except:
pass
try:
A71CH_PUB_KEY_LEN = 65
except:
pass
try:
AX_SHA256_LEN = 32
except:
pass
try:
AX_TLS_PSK_MASTER_SECRET_LEN = 48
except:
pass
try:
AX_TLS_PSK_HELLO_RANDOM_LEN = 32
except:
pass
try:
SESSION_ID_LEN = 4
except:
pass
try:
MONOTONIC_COUNTER_BYTE_COUNT = 4
except:
pass
try:
A71CH_SCP_MANDATORY = 1
except:
pass
try:
A71CH_SCP_NOT_SET_UP = 2
except:
pass
try:
A71CH_SCP_KEYS_SET = 3
except:
pass
try:
A71CH_SCP_CHANNEL_STATE_UNKNOWN = 15
except:
pass
try:
A71CH_UID_IC_TYPE_OFFSET = 2
except:
pass
try:
A71CH_UID_IC_FABRICATION_DATA_OFFSET = 8
except:
pass
try:
A71CH_UID_IC_SERIAL_NR_OFFSET = 10
except:
pass
try:
A71CH_UID_IC_BATCH_ID_OFFSET = 13
except:
pass
try:
MAX_CHUNK_LENGTH_LINK = 256
except:
pass
# ../../hostlib/hostLib/inc/PlugAndTrust_HostLib_Ver.h
try:
PLUGANDTRUST_HOSTLIB_VER_MAJOR = 3
except:
pass
try:
PLUGANDTRUST_HOSTLIB_VER_MINOR = 1
except:
pass
# ../../hostlib/hostLib/libCommon/infra/sm_api.h
try:
AX_HOST_LIB_MAJOR = PLUGANDTRUST_HOSTLIB_VER_MAJOR
except:
pass
try:
AX_HOST_LIB_MINOR = PLUGANDTRUST_HOSTLIB_VER_MINOR
except:
pass
try:
SE_CONNECT_TYPE_START = 0
except:
pass
try:
SELECT_APPLET = 0
except:
pass
try:
SELECT_NONE = 1
except:
pass
try:
SELECT_SSD = 2
except:
pass
# hostlib/hostLib/inc/nxScp03_Types.h
try:
kSSS_AuthType_INT_FastSCP_Counter = kSSS_AuthType_INT_ECKey_Counter
except:
pass
try:
kSSS_AuthType_FastSCP_Counter = kSSS_AuthType_INT_ECKey_Counter
except:
pass
try:
kSSS_AuthType_FastSCP = kSSS_AuthType_ECKey
except:
pass
try:
kSSS_AuthType_AppletSCP03 = kSSS_AuthType_AESKey
except:
pass
SE05x_AuthCtx_t = SE_AuthCtx_t
try:
kSE05x_AuthType_None = kSSS_AuthType_None
except:
pass
try:
kSE05x_AuthType_SCP03 = kSSS_AuthType_SCP03
except:
pass
try:
kSE05x_AuthType_UserID = kSSS_AuthType_ID
except:
pass
try:
kSE05x_AuthType_AESKey = kSSS_AuthType_AESKey
except:
pass
try:
kSE05x_AuthType_ECKey = kSSS_AuthType_ECKey
except:
pass
SE05x_AuthType_t = SE_AuthType_t
# hostlib/hostLib/inc/se05x_const.h
try:
SE05X_SESSIONID_LEN = 8
except:
pass
try:
SE05X_MAX_BUF_SIZE_CMD = 1024
except:
pass
try:
SE05X_MAX_BUF_SIZE_RSP = 1024
except:
pass
try:
SE050_MODULE_UNIQUE_ID_LEN = 18
except:
pass
try:
SE05X_I2CM_MAX_BUF_SIZE_CMD = 271
except:
pass
try:
SE05X_I2CM_MAX_BUF_SIZE_RSP = 271
except:
pass
try:
SE05X_I2CM_MAX_TIMESTAMP_SIZE = 12
except:
pass
try:
SE05X_I2CM_MAX_FRESHNESS_SIZE = 16
except:
pass
try:
SE05X_I2CM_MAX_CHIP_ID_SIZE = 18
except:
pass
try:
SE05X_MAX_ATTST_DATA = 2
except:
pass
try:
START_SE05X_ID_CURVE_START = 0
except:
pass
try:
CIPHER_BLOCK_SIZE = 16
except:
pass
try:
AEAD_BLOCK_SIZE = 16
except:
pass
try:
BINARY_WRITE_MAX_LEN = 500
except:
pass
try:
MAX_OBJ_PCR_VALUE_SIZE = 32
except:
pass
try:
MAX_POLICY_BUFFER_SIZE = 256
except:
pass
try:
MAX_OBJ_POLICY_SIZE = 47
except:
pass
try:
MAX_OBJ_POLICY_TYPES = 6
except:
pass
try:
DEFAULT_OBJECT_POLICY_SIZE = 8
except:
pass
try:
OBJ_POLICY_HEADER_OFFSET = 5
except:
pass
try:
OBJ_POLICY_LENGTH_OFFSET = 0
except:
pass
try:
OBJ_POLICY_AUTHID_OFFSET = 1
except:
pass
try:
OBJ_POLICY_EXT_OFFSET = 9
except:
pass
try:
OBJ_POLICY_PCR_DATA_SIZE = (4 + MAX_OBJ_PCR_VALUE_SIZE)
except:
pass
try:
OBJ_POLICY_AUTH_DATA_SIZE = 2
except:
pass
try:
SESSION_POLICY_LENGTH_OFFSET = 0
except:
pass
try:
SESSION_POLICY_AR_HEADER_OFFSET = 1
except:
pass
try:
DEFAULT_SESSION_POLICY_SIZE = 3
except:
pass
try:
POLICY_OBJ_FORBID_ALL = 536870912
except:
pass
try:
POLICY_OBJ_ALLOW_SIGN = 268435456
except:
pass
try:
POLICY_OBJ_ALLOW_VERIFY = 134217728
except:
pass
try:
POLICY_OBJ_ALLOW_KA = 67108864
except:
pass
try:
POLICY_OBJ_ALLOW_ENC = 33554432
except:
pass
try:
POLICY_OBJ_ALLOW_DEC = 16777216
except:
pass
try:
POLICY_OBJ_ALLOW_KDF = 8388608
except:
pass
try:
POLICY_OBJ_ALLOW_WRAP = 4194304
except:
pass
try:
POLICY_OBJ_ALLOW_READ = 2097152
except:
pass
try:
POLICY_OBJ_ALLOW_WRITE = 1048576
except:
pass
try:
POLICY_OBJ_ALLOW_GEN = 524288
except:
pass
try:
POLICY_OBJ_ALLOW_DELETE = 262144
except:
pass
try:
POLICY_OBJ_REQUIRE_SM = 131072
except:
pass
try:
POLICY_OBJ_REQUIRE_PCR_VALUE = 65536
except:
pass
try:
POLICY_OBJ_ALLOW_ATTESTATION = 32768
except:
pass
try:
POLICY_OBJ_ALLOW_DESFIRE_AUTHENTICATION = 16384
except:
pass
try:
POLICY_OBJ_ALLOW_DESFIRE_DUMP_SESSION_KEYS = 8192
except:
pass
try:
POLICY_OBJ_ALLOW_IMPORT_EXPORT = 4096
except:
pass
try:
POLICY_OBJ_FORBID_DERIVED_OUTPUT = 2048
except:
pass
try:
POLICY_OBJ_ALLOW_KDF_EXT_RANDOM = 1024
except:
pass
try:
POLICY_SESSION_MAX_APDU = 32768
except:
pass
try:
POLICY_SESSION_MAX_TIME = 16384
except:
pass
try:
POLICY_SESSION_ALLOW_REFRESH = 8192
except:
pass
# hostlib/hostLib/inc/se05x_enums.h
try:
kSE05x_TAG_GP_CONTRL_REF_PARM = kSE05x_GP_TAG_CONTRL_REF_PARM
except:
pass
try:
kSE05x_ECCurve_RESERVED_ID_ECC_ED_25519 = kSE05x_ECCurve_ECC_ED_25519
except:
pass
try:
kSE05x_ECCurve_RESERVED_ID_ECC_MONT_DH_25519 = kSE05x_ECCurve_ECC_MONT_DH_25519
except:
pass
try:
kSE05x_ECCurve_RESERVED_ID_ECC_MONT_DH_448 = kSE05x_ECCurve_ECC_MONT_DH_448
except:
pass
try:
kSE05x_ECCurve_Total_Weierstrass_Curves = kSE05x_ECCurve_TPM_ECC_BN_P256
except:
pass
SE05x_CryptoObjectID_t = SE05x_CryptoObject_t
try:
SE050_MAX_NUMBER_OF_SESSIONS = 2
except:
pass
try:
SE050_OBJECT_IDENTIFIER_SIZE = 4
except:
pass
try:
SE050_MAX_I2CM_COMMAND_LENGTH = 255
except:
pass
try:
SE050_MAX_APDU_PAYLOAD_LENGTH = 896
except:
pass
try:
SE050_INS_MASK_INS_CHAR = 224
except:
pass
try:
SE050_INS_MASK_INSTRUCTION = 31
except:
pass
try:
SE05x_KeyID_KEK_NONE = 0
except:
pass
try:
SE05x_KeyID_MFDF_NONE = 0
except:
pass
try:
SE05x_MaxAttemps_UNLIMITED = 0
except:
pass
try:
SE05x_MaxAttemps_NA = 0
except:
pass
try:
kSE05x_INS_READ_With_Attestation = (kSE05x_INS_READ | kSE05x_INS_ATTEST)
except:
pass
try:
kSE05x_INS_I2CM_Attestation = (kSE05x_INS_CRYPTO | kSE05x_INS_ATTEST)
except:
pass
# sss/inc/fsl_sss_se05x_types.h
def SSS_SUBSYSTEM_TYPE_IS_SE05X(subsystem): return (subsystem == kType_SSS_SE_SE05x)
def SSS_SESSION_TYPE_IS_SE05X(session): return (session and (SSS_SUBSYSTEM_TYPE_IS_SE05X ((session.contents.subsystem))))
def SSS_KEY_STORE_TYPE_IS_SE05X(keyStore): return (keyStore and (SSS_SESSION_TYPE_IS_SE05X ((keyStore.contents.session))))
def SSS_OBJECT_TYPE_IS_SE05X(pObject): return (pObject and (SSS_KEY_STORE_TYPE_IS_SE05X ((pObject.contents.keyStore))))
def SSS_ASYMMETRIC_TYPE_IS_SE05X(context): return (context and (SSS_SESSION_TYPE_IS_SE05X ((context.contents.session))))
def SSS_DERIVE_KEY_TYPE_IS_SE05X(context): return (context and (SSS_SESSION_TYPE_IS_SE05X ((context.contents.session))))
def SSS_SYMMETRIC_TYPE_IS_SE05X(context): return (context and (SSS_SESSION_TYPE_IS_SE05X ((context.contents.session))))
def SSS_MAC_TYPE_IS_SE05X(context): return (context and (SSS_SESSION_TYPE_IS_SE05X ((context.contents.session))))
def SSS_RNG_CONTEXT_TYPE_IS_SE05X(context): return (context and (SSS_SESSION_TYPE_IS_SE05X ((context.contents.session))))
def SSS_DIGEST_TYPE_IS_SE05X(context): return (context and (SSS_SESSION_TYPE_IS_SE05X ((context.contents.session))))
def SSS_AEAD_TYPE_IS_SE05X(context): return (context and (SSS_SESSION_TYPE_IS_SE05X ((context.contents.session))))
def SSS_TUNNEL_CONTEXT_TYPE_IS_SE05X(context): return (context and (SSS_SESSION_TYPE_IS_SE05X ((context.contents.session))))
def SSS_TUNNEL_TYPE_IS_SE05X(context): return (context and (SSS_SESSION_TYPE_IS_SE05X ((context.contents.session))))
SE05x_Connect_Ctx_t = SE_Connect_Ctx_t
se05x_auth_context_t = SE_Connect_Ctx_t
_sss_a71ch_key_store = struct__sss_a71ch_key_store# ../../sss/inc/fsl_sscp_a71ch.h
_sscp_a71ch_context = struct__sscp_a71ch_context
_SE_AuthCtx = struct__SE_AuthCtx# hostlib/hostLib/inc/nxScp03_Types.h
_sss_se05x_tunnel_context = struct__sss_se05x_tunnel_context# sss/inc/fsl_sss_se05x_types.h
_sss_se05x_session = struct__sss_se05x_session
_sss_se05x_object = struct__sss_se05x_object
_SE05x_I2CM_cmd = struct__SE05x_I2CM_cmd
# No inserted files