mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-27 19:07:31 +09:00
[NSS] sync with https://github.com/roytam1/NSS/tree/NSS_3_48_UXP_BRANCH, notably:
- Bug 1665715 - (1/2) revert e8f2720c8254 (bug 1593141) because it's no longer necessary r=jcj (a9bca998) - Bug 1665715 - (2/2) pass encoded signed certificate timestamp extension (if present) in CheckRevocation r=jcj (429f9ef9)
This commit is contained in:
parent
96524cc3c5
commit
4e45ee69e0
22 changed files with 130 additions and 272 deletions
|
|
@ -359,24 +359,19 @@ PK11_NewSlotInfo(SECMODModule *mod)
|
|||
PK11SlotInfo *slot;
|
||||
|
||||
slot = (PK11SlotInfo *)PORT_Alloc(sizeof(PK11SlotInfo));
|
||||
if (slot == NULL) {
|
||||
if (slot == NULL)
|
||||
return slot;
|
||||
|
||||
slot->sessionLock = mod->isThreadSafe ? PZ_NewLock(nssILockSession) : mod->refLock;
|
||||
if (slot->sessionLock == NULL) {
|
||||
PORT_Free(slot);
|
||||
return NULL;
|
||||
}
|
||||
slot->freeListLock = PZ_NewLock(nssILockFreelist);
|
||||
if (slot->freeListLock == NULL) {
|
||||
PORT_Free(slot);
|
||||
return NULL;
|
||||
}
|
||||
slot->nssTokenLock = PZ_NewLock(nssILockOther);
|
||||
if (slot->nssTokenLock == NULL) {
|
||||
PZ_DestroyLock(slot->freeListLock);
|
||||
PORT_Free(slot);
|
||||
return NULL;
|
||||
}
|
||||
slot->sessionLock = mod->isThreadSafe ? PZ_NewLock(nssILockSession) : mod->refLock;
|
||||
if (slot->sessionLock == NULL) {
|
||||
PZ_DestroyLock(slot->nssTokenLock);
|
||||
PZ_DestroyLock(slot->freeListLock);
|
||||
if (mod->isThreadSafe) {
|
||||
PZ_DestroyLock(slot->sessionLock);
|
||||
}
|
||||
PORT_Free(slot);
|
||||
return NULL;
|
||||
}
|
||||
|
|
@ -464,10 +459,6 @@ PK11_DestroySlot(PK11SlotInfo *slot)
|
|||
PZ_DestroyLock(slot->freeListLock);
|
||||
slot->freeListLock = NULL;
|
||||
}
|
||||
if (slot->nssTokenLock) {
|
||||
PZ_DestroyLock(slot->nssTokenLock);
|
||||
slot->nssTokenLock = NULL;
|
||||
}
|
||||
|
||||
/* finally Tell our parent module that we've gone away so it can unload */
|
||||
if (slot->module) {
|
||||
|
|
@ -1266,7 +1257,6 @@ PK11_InitToken(PK11SlotInfo *slot, PRBool loadCerts)
|
|||
CK_RV crv;
|
||||
SECStatus rv;
|
||||
PRStatus status;
|
||||
NSSToken *nssToken;
|
||||
|
||||
/* set the slot flags to the current token values */
|
||||
if (!slot->isThreadSafe)
|
||||
|
|
@ -1304,9 +1294,7 @@ PK11_InitToken(PK11SlotInfo *slot, PRBool loadCerts)
|
|||
slot->maxPassword = slot->tokenInfo.ulMaxPinLen;
|
||||
PORT_Memcpy(slot->serial, slot->tokenInfo.serialNumber, sizeof(slot->serial));
|
||||
|
||||
nssToken = PK11Slot_GetNSSToken(slot);
|
||||
nssToken_UpdateName(nssToken); /* null token is OK */
|
||||
(void)nssToken_Destroy(nssToken);
|
||||
nssToken_UpdateName(slot->nssToken);
|
||||
|
||||
slot->defRWSession = (PRBool)((!slot->readOnly) &&
|
||||
(slot->tokenInfo.ulMaxSessionCount == 1));
|
||||
|
|
@ -1374,9 +1362,7 @@ PK11_InitToken(PK11SlotInfo *slot, PRBool loadCerts)
|
|||
PK11_ExitSlotMonitor(slot);
|
||||
}
|
||||
|
||||
nssToken = PK11Slot_GetNSSToken(slot);
|
||||
status = nssToken_Refresh(nssToken); /* null token is OK */
|
||||
(void)nssToken_Destroy(nssToken);
|
||||
status = nssToken_Refresh(slot->nssToken);
|
||||
if (status != PR_SUCCESS)
|
||||
return SECFailure;
|
||||
|
||||
|
|
@ -1610,11 +1596,8 @@ pk11_IsPresentCertLoad(PK11SlotInfo *slot, PRBool loadCerts)
|
|||
return PR_TRUE;
|
||||
}
|
||||
|
||||
NSSToken *nssToken = PK11Slot_GetNSSToken(slot);
|
||||
if (nssToken) {
|
||||
PRBool present = nssToken_IsPresent(nssToken);
|
||||
(void)nssToken_Destroy(nssToken);
|
||||
return present;
|
||||
if (slot->nssToken) {
|
||||
return nssToken_IsPresent(slot->nssToken);
|
||||
}
|
||||
|
||||
/* removable slots have a flag that says they are present */
|
||||
|
|
@ -2651,44 +2634,20 @@ PK11_ResetToken(PK11SlotInfo *slot, char *sso_pwd)
|
|||
PORT_SetError(PK11_MapError(crv));
|
||||
return SECFailure;
|
||||
}
|
||||
NSSToken *token = PK11Slot_GetNSSToken(slot);
|
||||
if (token) {
|
||||
nssTrustDomain_UpdateCachedTokenCerts(token->trustDomain, token);
|
||||
(void)nssToken_Destroy(token);
|
||||
}
|
||||
nssTrustDomain_UpdateCachedTokenCerts(slot->nssToken->trustDomain,
|
||||
slot->nssToken);
|
||||
return SECSuccess;
|
||||
}
|
||||
|
||||
void
|
||||
PK11Slot_SetNSSToken(PK11SlotInfo *sl, NSSToken *nsst)
|
||||
{
|
||||
NSSToken *old;
|
||||
if (nsst) {
|
||||
nsst = nssToken_AddRef(nsst);
|
||||
}
|
||||
|
||||
PZ_Lock(sl->nssTokenLock);
|
||||
old = sl->nssToken;
|
||||
sl->nssToken = nsst;
|
||||
PZ_Unlock(sl->nssTokenLock);
|
||||
|
||||
if (old) {
|
||||
(void)nssToken_Destroy(old);
|
||||
}
|
||||
}
|
||||
|
||||
NSSToken *
|
||||
PK11Slot_GetNSSToken(PK11SlotInfo *sl)
|
||||
{
|
||||
NSSToken *rv = NULL;
|
||||
|
||||
PZ_Lock(sl->nssTokenLock);
|
||||
if (sl->nssToken) {
|
||||
rv = nssToken_AddRef(sl->nssToken);
|
||||
}
|
||||
PZ_Unlock(sl->nssTokenLock);
|
||||
|
||||
return rv;
|
||||
return sl->nssToken;
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue