Check-in [0c7c510048]
Overview
Comment:Updated to treat returning a zero-length signed message as an error
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1:0c7c5100481f28840eabea699c6cf08d266ca269
User & Date: rkeene on 2017-07-17 13:56:51
Other Links: manifest | tags
Context
2017-12-27
18:54
Integrated dlmopen() wrapper library (not for general use) check-in: 59356166dc user: rkeene tags: trunk
18:48
Added a wrapper PKCS#11 module which uses GNU dlmopen to segregate loading cackey and its libraries to avoid issues with different linkspaces Closed-Leaf check-in: 45c70bc44d user: rkeene tags: dlopen-wrapper
17:59
Started work on updating DOD certs Leaf check-in: ff2eb37b0a user: rkeene tags: update-dod-certs
17:52
Started work on runtime loading of dependencies Leaf check-in: e14e862239 user: rkeene tags: runtime-loading-of-deps
2017-07-17
13:56
Updated to treat returning a zero-length signed message as an error check-in: 0c7c510048 user: rkeene tags: trunk
13:56
Corrected typo causing debug builds to fail check-in: d02f2af7a5 user: rkeene tags: trunk
Changes

Modified build/chrome/cackey-chrome-pkcs11.c from [d840c2c357] to [8bb129b692].

600
601
602
603
604
605
606





607
608
609
610
611
612
613
						chk_rv = moduleFunctionList->C_SignInit(hSession, &signMechanism, hKey);
						if (chk_rv != CKR_OK) {
							break;
						}

						tmpDestinationLength = *destinationLength;
						chk_rv = moduleFunctionList->C_Sign(hSession, data, dataLength, destination, &tmpDestinationLength);





						switch (chk_rv) {
							case CKR_OK:
								*destinationLength = tmpDestinationLength;
								retval = CACKEY_CHROME_OK;
								break;
							case CKR_USER_NOT_LOGGED_IN:
								retval = CACKEY_CHROME_NEEDLOGIN;







>
>
>
>
>







600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
						chk_rv = moduleFunctionList->C_SignInit(hSession, &signMechanism, hKey);
						if (chk_rv != CKR_OK) {
							break;
						}

						tmpDestinationLength = *destinationLength;
						chk_rv = moduleFunctionList->C_Sign(hSession, data, dataLength, destination, &tmpDestinationLength);

						if (tmpDestinationLength == 0) {
							chk_rv = CKR_GENERAL_ERROR;
						}

						switch (chk_rv) {
							case CKR_OK:
								*destinationLength = tmpDestinationLength;
								retval = CACKEY_CHROME_OK;
								break;
							case CKR_USER_NOT_LOGGED_IN:
								retval = CACKEY_CHROME_NEEDLOGIN;

Modified build/chrome/cackey-chrome-plugin.cc from [77c6f00e8d] to [c633169af7].

114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
						pin = message->Get("pin").AsString().c_str();
					} else {
						pin = NULL;
					}

					incomingCertificateCACKey.certificate = incomingCertificateContents->Map();					
					incomingCertificateCACKey.certificate_len = incomingCertificateContents->ByteLength();					

					outgoingDataLength = sizeof(buffer);

					signRet = cackey_chrome_signMessage(&incomingCertificateCACKey,
						incomingData->Map(), incomingData->ByteLength(),
						buffer, &outgoingDataLength,
						&pinPrompt, pin
					);







<







114
115
116
117
118
119
120

121
122
123
124
125
126
127
						pin = message->Get("pin").AsString().c_str();
					} else {
						pin = NULL;
					}

					incomingCertificateCACKey.certificate = incomingCertificateContents->Map();					
					incomingCertificateCACKey.certificate_len = incomingCertificateContents->ByteLength();					

					outgoingDataLength = sizeof(buffer);

					signRet = cackey_chrome_signMessage(&incomingCertificateCACKey,
						incomingData->Map(), incomingData->ByteLength(),
						buffer, &outgoingDataLength,
						&pinPrompt, pin
					);