Diff

Differences From Artifact [dcf2fb997e]:

To Artifact [a3fe09560a]:


106
107
108
109
110
111
112

113
114
115
116
117
118
119
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120







+







	CK_ULONG byte_idx;
	CK_UTF8CHAR user_pin[1024], *pucValue;
	CK_OBJECT_CLASS objectClass;
	CK_BYTE signature[1024], encrypted_buf[16384], decrypted_buf[16384];
	CK_ULONG signature_len, encrypted_buflen, decrypted_buflen;
	CK_MECHANISM mechanism = {CKM_RSA_PKCS, NULL, 0};
	CK_RV chk_rv;
	char *fgets_ret;
	int i;

	privateKeyObjects = malloc(sizeof(*privateKeyObjects) * 1024);
	privateKeyObjects_root = privateKeyObjects;
	for (i = 0; i < 1024; i++) {
		privateKeyObjects[i] = CK_INVALID_HANDLE;
	}
261
262
263
264
265
266
267



268
269


270
271
272
273







274
275
276
277
278
279
280
262
263
264
265
266
267
268
269
270
271


272
273
274



275
276
277
278
279
280
281
282
283
284
285
286
287
288







+
+
+
-
-
+
+

-
-
-
+
+
+
+
+
+
+







			printf("\n");
		}
	}

	chk_rv = C_OpenSession(slots[0], CKF_SERIAL_SESSION, NULL, NULL, &hSession);
	if (chk_rv == CKR_OK) {
		if ((tokenInfo.flags & CKF_LOGIN_REQUIRED) == CKF_LOGIN_REQUIRED) {
			fgets_ret = NULL;

			while (fgets_ret == NULL) {
			printf("** ENTER PIN: ");
			fflush(stdout);
				printf("** ENTER PIN: ");
				fflush(stdout);

			fgets((char *) user_pin, sizeof(user_pin), stdin);
			while (user_pin[strlen((char *) user_pin) - 1] < ' ') {
				user_pin[strlen((char *) user_pin) - 1] = '\0';
				fgets_ret = fgets((char *) user_pin, sizeof(user_pin), stdin);
			}

			if (strlen(user_pin) >= 1) {
				while (user_pin[strlen((char *) user_pin) - 1] < ' ') {
					user_pin[strlen((char *) user_pin) - 1] = '\0';
				}
			}

			chk_rv = C_Login(hSession, CKU_USER, user_pin, strlen((char *) user_pin));
		} else {
			chk_rv = C_Login(hSession, CKU_USER, NULL, 0);
		}
		if (chk_rv == CKR_OK) {