1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89
|
"""
Map from CKR return codes to Python exceptions.
"""
from .exceptions import *
cdef ERROR_MAP = {
CKR_ATTRIBUTE_TYPE_INVALID: AttributeTypeInvalid,
CKR_ATTRIBUTE_VALUE_INVALID: AttributeValueInvalid,
CKR_ATTRIBUTE_READ_ONLY: AttributeReadOnly,
CKR_ATTRIBUTE_SENSITIVE: AttributeSensitive,
CKR_ARGUMENTS_BAD: ArgumentsBad,
CKR_BUFFER_TOO_SMALL: MemoryError("Buffer was too small. Should never see this."),
CKR_CRYPTOKI_ALREADY_INITIALIZED: RuntimeError("Initialisation error (already initialized). Should never see this."),
CKR_CRYPTOKI_NOT_INITIALIZED: RuntimeError("Initialisation error (not initialized). Should never see this."),
CKR_DATA_INVALID: DataInvalid,
CKR_DATA_LEN_RANGE: DataLenRange,
CKR_DOMAIN_PARAMS_INVALID: DomainParamsInvalid,
CKR_DEVICE_ERROR: DeviceError,
CKR_DEVICE_MEMORY: DeviceMemory,
CKR_DEVICE_REMOVED: DeviceRemoved,
CKR_ENCRYPTED_DATA_INVALID: EncryptedDataInvalid,
CKR_ENCRYPTED_DATA_LEN_RANGE: EncryptedDataLenRange,
CKR_EXCEEDED_MAX_ITERATIONS: ExceededMaxIterations,
CKR_FUNCTION_CANCELED: FunctionCancelled,
CKR_FUNCTION_FAILED: FunctionFailed,
CKR_FUNCTION_REJECTED: FunctionRejected,
CKR_FUNCTION_NOT_SUPPORTED: FunctionNotSupported,
CKR_KEY_HANDLE_INVALID: KeyHandleInvalid,
CKR_KEY_INDIGESTIBLE: KeyIndigestible,
CKR_KEY_NEEDED: KeyNeeded,
CKR_KEY_NOT_NEEDED: KeyNotNeeded,
CKR_KEY_SIZE_RANGE: KeySizeRange,
CKR_KEY_NOT_WRAPPABLE: KeyNotWrappable,
CKR_KEY_TYPE_INCONSISTENT: KeyTypeInconsistent,
CKR_KEY_UNEXTRACTABLE: KeyUnextractable,
CKR_GENERAL_ERROR: GeneralError,
CKR_HOST_MEMORY: HostMemory,
CKR_MECHANISM_INVALID: MechanismInvalid,
CKR_MECHANISM_PARAM_INVALID: MechanismParamInvalid,
CKR_OBJECT_HANDLE_INVALID: ObjectHandleInvalid,
CKR_OPERATION_ACTIVE: OperationActive,
CKR_OPERATION_NOT_INITIALIZED: OperationNotInitialized,
CKR_PIN_EXPIRED: PinExpired,
CKR_PIN_INCORRECT: PinIncorrect,
CKR_PIN_INVALID: PinInvalid,
CKR_PIN_LOCKED: PinLocked,
CKR_PIN_TOO_WEAK: PinTooWeak,
CKR_PUBLIC_KEY_INVALID: PublicKeyInvalid,
CKR_RANDOM_NO_RNG: RandomNoRNG,
CKR_RANDOM_SEED_NOT_SUPPORTED: RandomSeedNotSupported,
CKR_SESSION_CLOSED: SessionClosed,
CKR_SESSION_COUNT: SessionCount,
CKR_SESSION_EXISTS: SessionExists,
CKR_SESSION_HANDLE_INVALID: SessionHandleInvalid,
CKR_SESSION_PARALLEL_NOT_SUPPORTED: RuntimeError("Parallel not supported. Should never see this."),
CKR_SESSION_READ_ONLY: SessionReadOnly,
CKR_SESSION_READ_ONLY_EXISTS: SessionReadOnlyExists,
CKR_SESSION_READ_WRITE_SO_EXISTS: SessionReadWriteSOExists,
CKR_SIGNATURE_LEN_RANGE: SignatureLenRange,
CKR_SIGNATURE_INVALID: SignatureInvalid,
CKR_TEMPLATE_INCOMPLETE: TemplateIncomplete,
CKR_TEMPLATE_INCONSISTENT: TemplateInconsistent,
CKR_SLOT_ID_INVALID: SlotIDInvalid,
CKR_TOKEN_NOT_PRESENT: TokenNotPresent,
CKR_TOKEN_NOT_RECOGNIZED: TokenNotRecognised,
CKR_TOKEN_WRITE_PROTECTED: TokenWriteProtected,
CKR_UNWRAPPING_KEY_HANDLE_INVALID: UnwrappingKeyHandleInvalid,
CKR_UNWRAPPING_KEY_SIZE_RANGE: UnwrappingKeySizeRange,
CKR_UNWRAPPING_KEY_TYPE_INCONSISTENT: UnwrappingKeyTypeInconsistent,
CKR_USER_NOT_LOGGED_IN: UserNotLoggedIn,
CKR_USER_ALREADY_LOGGED_IN: UserAlreadyLoggedIn,
CKR_USER_ANOTHER_ALREADY_LOGGED_IN: AnotherUserAlreadyLoggedIn,
CKR_USER_PIN_NOT_INITIALIZED: UserPinNotInitialized,
CKR_USER_TOO_MANY_TYPES: UserTooManyTypes,
CKR_USER_TYPE_INVALID: RuntimeError("User type invalid. Should never see this."),
CKR_WRAPPED_KEY_INVALID: WrappedKeyInvalid,
CKR_WRAPPED_KEY_LEN_RANGE: WrappedKeyLenRange,
CKR_WRAPPING_KEY_HANDLE_INVALID: WrappingKeyHandleInvalid,
CKR_WRAPPING_KEY_SIZE_RANGE: WrappingKeySizeRange,
CKR_WRAPPING_KEY_TYPE_INCONSISTENT: WrappingKeyTypeInconsistent,
}
cpdef void assertRV(CK_RV rv) nogil except *:
"""Check for an acceptable RV value or thrown an exception."""
if rv != CKR_OK:
raise ERROR_MAP.get(rv,
PKCS11Error("Unmapped error code %s" % hex(rv)))
|