aboutsummaryrefslogtreecommitdiff
path: root/py11/types.py
diff options
context:
space:
mode:
authorRob Austein <sra@hactrn.net>2017-04-14 15:22:25 -0400
committerRob Austein <sra@hactrn.net>2017-04-14 15:22:25 -0400
commitce8ba928172071dc89cc1fc0520f840211bbfa0d (patch)
treeae1279914e28ff889565b1fd36d803bd9ac0d66e /py11/types.py
parent81ae5e07be01c0aacc332eb82db2f0ff452ced3d (diff)
Python interface API will need to be cryptech.py11 for installation.
Diffstat (limited to 'py11/types.py')
-rw-r--r--py11/types.py180
1 files changed, 0 insertions, 180 deletions
diff --git a/py11/types.py b/py11/types.py
deleted file mode 100644
index 4d0b279..0000000
--- a/py11/types.py
+++ /dev/null
@@ -1,180 +0,0 @@
-# An attempt at a Python interface to PKCS 11 using the scary ctypes
-# module from the Python standard library.
-
-from ctypes import *
-
-# This code is derived from the RSA PKCS #11 C header files, which say:
-#
-# License to copy and use this software is granted provided that it is
-# identified as "RSA Security Inc. PKCS #11 Cryptographic Token Interface
-# (Cryptoki)" in all material mentioning or referencing this software.
-#
-# License is also granted to make and use derivative works provided that
-# such works are identified as "derived from the RSA Security Inc. PKCS #11
-# Cryptographic Token Interface (Cryptoki)" in all material mentioning or
-# referencing the derived work.
-#
-# RSA Security Inc. makes no representations concerning either the
-# merchantability of this software or the suitability of this software for
-# any particular purpose. It is provided "as is" without express or implied
-# warranty of any kind.
-
-# This is not a complete set of PKCS #11 types, because the full set
-# with all the optional mechanisms is tediously long and each
-# structure type requires hand conversion. Goal at the moment is to
-# cover stuff we care about in the base specification. Add other
-# mechanism-specific stuff later as needed.
-
-# Mapping beween C and Python at the lowest level isn't perfect
-# because characters are integer types in C while they're strings in
-# Python. It looks like we want the string handling in most cases
-# other than CK_BBOOL and CK_VERSION, map lowest-level PKCS #11 types
-# accordingly.
-
-CK_BYTE = c_char
-CK_CHAR = CK_BYTE
-CK_UTF8CHAR = CK_BYTE
-CK_BBOOL = c_ubyte
-CK_ULONG = c_ulong
-CK_LONG = c_long
-CK_FLAGS = CK_ULONG
-CK_VOID_PTR = POINTER(c_char)
-
-CK_BYTE_PTR = POINTER(CK_BYTE)
-CK_CHAR_PTR = POINTER(CK_CHAR)
-CK_UTF8CHAR_PTR = POINTER(CK_UTF8CHAR)
-CK_ULONG_PTR = POINTER(CK_ULONG)
-CK_VOID_PTR_PTR = POINTER(CK_VOID_PTR)
-
-class CK_VERSION (Structure):
- _fields_ = [("major", c_ubyte),
- ("minor", c_ubyte)]
-
-CK_VERSION_PTR = POINTER(CK_VERSION)
-
-class CK_INFO (Structure):
- _fields_ = [("cryptokiVersion", CK_VERSION),
- ("manufacturerID", CK_UTF8CHAR * 32),
- ("flags", CK_FLAGS),
- ("libraryDescription", CK_UTF8CHAR * 32),
- ("libraryVersion", CK_VERSION)]
-
-CK_INFO_PTR = POINTER(CK_INFO)
-
-CK_NOTIFICATION = CK_ULONG
-
-CK_SLOT_ID = CK_ULONG
-
-CK_SLOT_ID_PTR = POINTER(CK_SLOT_ID)
-
-class CK_SLOT_INFO (Structure):
- _fields_ = [("slotDescription", CK_UTF8CHAR * 64),
- ("manufacturerID", CK_UTF8CHAR * 32),
- ("flags", CK_FLAGS),
- ("hardwareVersion", CK_VERSION),
- ("firmwareVersion", CK_VERSION)]
-
-CK_SLOT_INFO_PTR = POINTER(CK_SLOT_INFO)
-
-class CK_TOKEN_INFO (Structure):
- _fields_ = [("label", CK_UTF8CHAR * 32),
- ("manufacturerID", CK_UTF8CHAR * 32),
- ("model", CK_UTF8CHAR * 16),
- ("serialNumber", CK_CHAR * 16),
- ("flags", CK_FLAGS),
- ("ulMaxSessionCount", CK_ULONG),
- ("ulSessionCount", CK_ULONG),
- ("ulMaxRwSessionCount", CK_ULONG),
- ("ulRwSessionCount", CK_ULONG),
- ("ulMaxPinLen", CK_ULONG),
- ("ulMinPinLen", CK_ULONG),
- ("ulTotalPublicMemory", CK_ULONG),
- ("ulFreePublicMemory", CK_ULONG),
- ("ulTotalPrivateMemory", CK_ULONG),
- ("ulFreePrivateMemory", CK_ULONG),
- ("hardwareVersion", CK_VERSION),
- ("firmwareVersion", CK_VERSION),
- ("utcTime", CK_CHAR * 16)]
-
-CK_TOKEN_INFO_PTR = POINTER(CK_TOKEN_INFO)
-
-CK_SESSION_HANDLE = CK_ULONG
-
-CK_SESSION_HANDLE_PTR = POINTER(CK_SESSION_HANDLE)
-
-CK_USER_TYPE = CK_ULONG
-
-CK_STATE = CK_ULONG
-
-class CK_SESSION_INFO (Structure):
- _fields_ = [("slotID", CK_SLOT_ID),
- ("state", CK_STATE),
- ("flags", CK_FLAGS),
- ("ulDeviceError", CK_ULONG)]
-
-CK_SESSION_INFO_PTR = POINTER(CK_SESSION_INFO)
-
-CK_OBJECT_HANDLE = CK_ULONG
-
-CK_OBJECT_HANDLE_PTR = POINTER(CK_OBJECT_HANDLE)
-
-CK_OBJECT_CLASS = CK_ULONG
-
-CK_OBJECT_CLASS_PTR = POINTER(CK_OBJECT_CLASS)
-
-CK_HW_FEATURE_TYPE = CK_ULONG
-
-CK_KEY_TYPE = CK_ULONG
-
-CK_CERTIFICATE_TYPE = CK_ULONG
-
-CK_ATTRIBUTE_TYPE = CK_ULONG
-
-class CK_ATTRIBUTE (Structure):
- _fields_ = [("type", CK_ATTRIBUTE_TYPE),
- ("pValue", CK_VOID_PTR),
- ("ulValueLen", CK_ULONG)]
-
-CK_ATTRIBUTE_PTR = POINTER(CK_ATTRIBUTE)
-
-class CK_DATE (Structure):
- _fields_ = [("year", CK_CHAR * 4),
- ("month", CK_CHAR * 2),
- ("day", CK_CHAR * 2)]
-
-CK_MECHANISM_TYPE = CK_ULONG
-
-CK_MECHANISM_TYPE_PTR = POINTER(CK_MECHANISM_TYPE)
-
-class CK_MECHANISM (Structure):
- _fields_ = [("mechanism", CK_MECHANISM_TYPE),
- ("pParameter", CK_VOID_PTR),
- ("ulParameterLen", CK_ULONG)]
-
-CK_MECHANISM_PTR = POINTER(CK_MECHANISM)
-
-class CK_MECHANISM_INFO (Structure):
- _fields_ = [("ulMinKeySize", CK_ULONG),
- ("ulMaxKeySize", CK_ULONG),
- ("flags", CK_FLAGS)]
-
-CK_MECHANISM_INFO_PTR = POINTER(CK_MECHANISM_INFO)
-
-CK_RV = CK_ULONG
-
-CK_NOTIFY = CFUNCTYPE(CK_RV, CK_SESSION_HANDLE, CK_NOTIFICATION, CK_VOID_PTR)
-
-CK_CREATEMUTEX = CFUNCTYPE(CK_RV, CK_VOID_PTR_PTR)
-CK_DESTROYMUTEX = CFUNCTYPE(CK_RV, CK_VOID_PTR)
-CK_LOCKMUTEX = CFUNCTYPE(CK_RV, CK_VOID_PTR)
-CK_UNLOCKMUTEX = CFUNCTYPE(CK_RV, CK_VOID_PTR)
-
-class CK_C_INITIALIZE_ARGS (Structure):
- _fields_ = [("CreateMutex", CK_CREATEMUTEX),
- ("DestroyMutex", CK_DESTROYMUTEX),
- ("LockMutex", CK_LOCKMUTEX),
- ("UnlockMutex", CK_UNLOCKMUTEX),
- ("flags", CK_FLAGS),
- ("pReserved", CK_VOID_PTR)]
-
-CK_C_INITIALIZE_ARGS_PTR = POINTER(CK_C_INITIALIZE_ARGS)