717 *ckpArray = (CK_ATTRIBUTE_PTR) calloc(*ckpLength, sizeof(CK_ATTRIBUTE)); |
717 *ckpArray = (CK_ATTRIBUTE_PTR) calloc(*ckpLength, sizeof(CK_ATTRIBUTE)); |
718 if (*ckpArray == NULL) { |
718 if (*ckpArray == NULL) { |
719 throwOutOfMemoryError(env, 0); |
719 throwOutOfMemoryError(env, 0); |
720 return; |
720 return; |
721 } |
721 } |
722 TRACE1(", converting %d attributes", jLength); |
722 TRACE1(", converting %lld attributes", (long long int) jLength); |
723 for (i=0; i<(*ckpLength); i++) { |
723 for (i=0; i<(*ckpLength); i++) { |
724 TRACE1(", getting %d. attribute", i); |
724 TRACE1(", getting %lu. attribute", i); |
725 jAttribute = (*env)->GetObjectArrayElement(env, jArray, i); |
725 jAttribute = (*env)->GetObjectArrayElement(env, jArray, i); |
726 if ((*env)->ExceptionCheck(env)) { |
726 if ((*env)->ExceptionCheck(env)) { |
727 freeCKAttributeArray(*ckpArray, i); |
727 freeCKAttributeArray(*ckpArray, i); |
728 return; |
728 return; |
729 } |
729 } |
730 TRACE1(", jAttribute = %d", jAttribute); |
730 TRACE1(", jAttribute , converting %lu. attribute", i); |
731 TRACE1(", converting %d. attribute", i); |
|
732 (*ckpArray)[i] = jAttributeToCKAttribute(env, jAttribute); |
731 (*ckpArray)[i] = jAttributeToCKAttribute(env, jAttribute); |
733 if ((*env)->ExceptionCheck(env)) { |
732 if ((*env)->ExceptionCheck(env)) { |
734 freeCKAttributeArray(*ckpArray, i); |
733 freeCKAttributeArray(*ckpArray, i); |
735 return; |
734 return; |
736 } |
735 } |
1114 jLongClass = (*env)->FindClass(env, "java/lang/Long"); |
1113 jLongClass = (*env)->FindClass(env, "java/lang/Long"); |
1115 if (jLongClass == NULL) { return NULL; } |
1114 if (jLongClass == NULL) { return NULL; } |
1116 if ((*env)->IsInstanceOf(env, jObject, jLongClass)) { |
1115 if ((*env)->IsInstanceOf(env, jObject, jLongClass)) { |
1117 ckpObject = jLongObjectToCKULongPtr(env, jObject); |
1116 ckpObject = jLongObjectToCKULongPtr(env, jObject); |
1118 *ckpLength = sizeof(CK_ULONG); |
1117 *ckpLength = sizeof(CK_ULONG); |
1119 TRACE1("<converted long value %X>", *((CK_ULONG *) ckpObject)); |
1118 TRACE1("<converted long value %lu>", *((CK_ULONG *) ckpObject)); |
1120 return ckpObject; |
1119 return ckpObject; |
1121 } |
1120 } |
1122 |
1121 |
1123 jBooleanClass = (*env)->FindClass(env, "java/lang/Boolean"); |
1122 jBooleanClass = (*env)->FindClass(env, "java/lang/Boolean"); |
1124 if (jBooleanClass == NULL) { return NULL; } |
1123 if (jBooleanClass == NULL) { return NULL; } |
1125 if ((*env)->IsInstanceOf(env, jObject, jBooleanClass)) { |
1124 if ((*env)->IsInstanceOf(env, jObject, jBooleanClass)) { |
1126 ckpObject = jBooleanObjectToCKBBoolPtr(env, jObject); |
1125 ckpObject = jBooleanObjectToCKBBoolPtr(env, jObject); |
1127 *ckpLength = sizeof(CK_BBOOL); |
1126 *ckpLength = sizeof(CK_BBOOL); |
1128 TRACE0(" <converted boolean value "); |
1127 TRACE0(" <converted boolean value "); |
1129 TRACE0((*((CK_BBOOL *) ckpObjectPtr) == TRUE) ? "TRUE>" : "FALSE>"); |
1128 TRACE0((*((CK_BBOOL *) ckpObject) == TRUE) ? "TRUE>" : "FALSE>"); |
1130 return ckpObject; |
1129 return ckpObject; |
1131 } |
1130 } |
1132 |
1131 |
1133 jByteArrayClass = (*env)->FindClass(env, "[B"); |
1132 jByteArrayClass = (*env)->FindClass(env, "[B"); |
1134 if (jByteArrayClass == NULL) { return NULL; } |
1133 if (jByteArrayClass == NULL) { return NULL; } |
1175 jIntegerClass = (*env)->FindClass(env, "java/lang/Integer"); |
1174 jIntegerClass = (*env)->FindClass(env, "java/lang/Integer"); |
1176 if (jIntegerClass == NULL) { return NULL; } |
1175 if (jIntegerClass == NULL) { return NULL; } |
1177 if ((*env)->IsInstanceOf(env, jObject, jIntegerClass)) { |
1176 if ((*env)->IsInstanceOf(env, jObject, jIntegerClass)) { |
1178 ckpObject = jIntegerObjectToCKULongPtr(env, jObject); |
1177 ckpObject = jIntegerObjectToCKULongPtr(env, jObject); |
1179 *ckpLength = sizeof(CK_ULONG); |
1178 *ckpLength = sizeof(CK_ULONG); |
1180 TRACE1("<converted integer value %X>", *((CK_ULONG *) ckpObject)); |
1179 TRACE1("<converted integer value %lu>", *((CK_ULONG *) ckpObject)); |
1181 return ckpObject; |
1180 return ckpObject; |
1182 } |
1181 } |
1183 |
1182 |
1184 jBooleanArrayClass = (*env)->FindClass(env, "[Z"); |
1183 jBooleanArrayClass = (*env)->FindClass(env, "[Z"); |
1185 if (jBooleanArrayClass == NULL) { return NULL; } |
1184 if (jBooleanArrayClass == NULL) { return NULL; } |