| OLD | NEW |
| 1 /* This Source Code Form is subject to the terms of the Mozilla Public | 1 /* This Source Code Form is subject to the terms of the Mozilla Public |
| 2 * License, v. 2.0. If a copy of the MPL was not distributed with this | 2 * License, v. 2.0. If a copy of the MPL was not distributed with this |
| 3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ | 3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ |
| 4 | 4 |
| 5 /* | 5 /* |
| 6 * Merge the source token into the target token. | 6 * Merge the source token into the target token. |
| 7 */ | 7 */ |
| 8 | 8 |
| 9 #include "secmod.h" | 9 #include "secmod.h" |
| 10 #include "secmodi.h" | 10 #include "secmodi.h" |
| (...skipping 732 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 743 CK_OBJECT_HANDLE id, void *targetPwArg, void *sourcePwArg) | 743 CK_OBJECT_HANDLE id, void *targetPwArg, void *sourcePwArg) |
| 744 { | 744 { |
| 745 CERTCertificate *sourceCert = NULL; | 745 CERTCertificate *sourceCert = NULL; |
| 746 CK_OBJECT_HANDLE targetCertID = CK_INVALID_HANDLE; | 746 CK_OBJECT_HANDLE targetCertID = CK_INVALID_HANDLE; |
| 747 char *nickname = NULL; | 747 char *nickname = NULL; |
| 748 SECStatus rv = SECSuccess; | 748 SECStatus rv = SECSuccess; |
| 749 PLArenaPool *arena = NULL; | 749 PLArenaPool *arena = NULL; |
| 750 CK_ATTRIBUTE sourceCKAID = {CKA_ID, NULL, 0}; | 750 CK_ATTRIBUTE sourceCKAID = {CKA_ID, NULL, 0}; |
| 751 CK_ATTRIBUTE targetCKAID = {CKA_ID, NULL, 0}; | 751 CK_ATTRIBUTE targetCKAID = {CKA_ID, NULL, 0}; |
| 752 SECStatus lrv = SECSuccess; | 752 SECStatus lrv = SECSuccess; |
| 753 int error; | 753 int error = SEC_ERROR_LIBRARY_FAILURE; |
| 754 | |
| 755 | 754 |
| 756 sourceCert = PK11_MakeCertFromHandle(sourceSlot, id, NULL); | 755 sourceCert = PK11_MakeCertFromHandle(sourceSlot, id, NULL); |
| 757 if (sourceCert == NULL) { | 756 if (sourceCert == NULL) { |
| 758 rv = SECFailure; | 757 rv = SECFailure; |
| 759 goto done; | 758 goto done; |
| 760 } | 759 } |
| 761 | 760 |
| 762 nickname = PK11_GetObjectNickname(sourceSlot, id); | 761 nickname = PK11_GetObjectNickname(sourceSlot, id); |
| 763 | 762 |
| 764 /* The database code will prevent nickname collisions for certs with | 763 /* The database code will prevent nickname collisions for certs with |
| (...skipping 490 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1255 | 1254 |
| 1256 /* | 1255 /* |
| 1257 * walk down each entry and merge it. keep track of the errors in the log | 1256 * walk down each entry and merge it. keep track of the errors in the log |
| 1258 */ | 1257 */ |
| 1259 static SECStatus | 1258 static SECStatus |
| 1260 pk11_mergeByObjectIDs(PK11SlotInfo *targetSlot, PK11SlotInfo *sourceSlot, | 1259 pk11_mergeByObjectIDs(PK11SlotInfo *targetSlot, PK11SlotInfo *sourceSlot, |
| 1261 CK_OBJECT_HANDLE *objectIDs, int count, | 1260 CK_OBJECT_HANDLE *objectIDs, int count, |
| 1262 PK11MergeLog *log, void *targetPwArg, void *sourcePwArg) | 1261 PK11MergeLog *log, void *targetPwArg, void *sourcePwArg) |
| 1263 { | 1262 { |
| 1264 SECStatus rv = SECSuccess; | 1263 SECStatus rv = SECSuccess; |
| 1265 int error, i; | 1264 int error = SEC_ERROR_LIBRARY_FAILURE; |
| 1265 int i; |
| 1266 | 1266 |
| 1267 for (i=0; i < count; i++) { | 1267 for (i=0; i < count; i++) { |
| 1268 /* try to update the entire database. On failure, keep going, | 1268 /* try to update the entire database. On failure, keep going, |
| 1269 * but remember the error to report back to the caller */ | 1269 * but remember the error to report back to the caller */ |
| 1270 SECStatus lrv; | 1270 SECStatus lrv; |
| 1271 PK11MergeLogNode *newLog; | 1271 PK11MergeLogNode *newLog; |
| 1272 | 1272 |
| 1273 lrv= pk11_mergeObject(targetSlot, sourceSlot, objectIDs[i], | 1273 lrv= pk11_mergeObject(targetSlot, sourceSlot, objectIDs[i], |
| 1274 targetPwArg, sourcePwArg); | 1274 targetPwArg, sourcePwArg); |
| 1275 if (lrv == SECSuccess) { | 1275 if (lrv == SECSuccess) { |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1319 * | 1319 * |
| 1320 * Applications can pass in an optional error log which will record | 1320 * Applications can pass in an optional error log which will record |
| 1321 * each failing object and why it failed to import. PK11MergeLog | 1321 * each failing object and why it failed to import. PK11MergeLog |
| 1322 * is modelled after the CERTVerifyLog. | 1322 * is modelled after the CERTVerifyLog. |
| 1323 */ | 1323 */ |
| 1324 SECStatus | 1324 SECStatus |
| 1325 PK11_MergeTokens(PK11SlotInfo *targetSlot, PK11SlotInfo *sourceSlot, | 1325 PK11_MergeTokens(PK11SlotInfo *targetSlot, PK11SlotInfo *sourceSlot, |
| 1326 PK11MergeLog *log, void *targetPwArg, void *sourcePwArg) | 1326 PK11MergeLog *log, void *targetPwArg, void *sourcePwArg) |
| 1327 { | 1327 { |
| 1328 SECStatus rv = SECSuccess, lrv = SECSuccess; | 1328 SECStatus rv = SECSuccess, lrv = SECSuccess; |
| 1329 int error, count = 0; | 1329 int error = SEC_ERROR_LIBRARY_FAILURE; |
| 1330 int count = 0; |
| 1330 CK_ATTRIBUTE search[2]; | 1331 CK_ATTRIBUTE search[2]; |
| 1331 CK_OBJECT_HANDLE *objectIDs = NULL; | 1332 CK_OBJECT_HANDLE *objectIDs = NULL; |
| 1332 CK_BBOOL ck_true = CK_TRUE; | 1333 CK_BBOOL ck_true = CK_TRUE; |
| 1333 CK_OBJECT_CLASS privKey = CKO_PRIVATE_KEY; | 1334 CK_OBJECT_CLASS privKey = CKO_PRIVATE_KEY; |
| 1334 | 1335 |
| 1335 PK11_SETATTRS(&search[0], CKA_TOKEN, &ck_true, sizeof(ck_true)); | 1336 PK11_SETATTRS(&search[0], CKA_TOKEN, &ck_true, sizeof(ck_true)); |
| 1336 PK11_SETATTRS(&search[1], CKA_CLASS, &privKey, sizeof(privKey)); | 1337 PK11_SETATTRS(&search[1], CKA_CLASS, &privKey, sizeof(privKey)); |
| 1337 /* | 1338 /* |
| 1338 * make sure both tokens are already authenticated if need be. | 1339 * make sure both tokens are already authenticated if need be. |
| 1339 */ | 1340 */ |
| (...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1410 return log; | 1411 return log; |
| 1411 } | 1412 } |
| 1412 | 1413 |
| 1413 void | 1414 void |
| 1414 PK11_DestroyMergeLog(PK11MergeLog *log) | 1415 PK11_DestroyMergeLog(PK11MergeLog *log) |
| 1415 { | 1416 { |
| 1416 if (log && log->arena) { | 1417 if (log && log->arena) { |
| 1417 PORT_FreeArena(log->arena, PR_FALSE); | 1418 PORT_FreeArena(log->arena, PR_FALSE); |
| 1418 } | 1419 } |
| 1419 } | 1420 } |
| OLD | NEW |