mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-28 03:17:31 +09:00
Update NSS to 3.41
This commit is contained in:
parent
d5f6e64f43
commit
5f0986e66f
540 changed files with 49568 additions and 10631 deletions
|
|
@ -607,12 +607,32 @@ PK11_FindSlotsByNames(const char *dllName, const char *slotName,
|
|||
return slotList;
|
||||
}
|
||||
|
||||
PK11SlotInfo *
|
||||
PK11_FindSlotByName(const char *name)
|
||||
typedef PRBool (*PK11SlotMatchFunc)(PK11SlotInfo *slot, const void *arg);
|
||||
|
||||
static PRBool
|
||||
pk11_MatchSlotByTokenName(PK11SlotInfo *slot, const void *arg)
|
||||
{
|
||||
return PORT_Strcmp(slot->token_name, arg) == 0;
|
||||
}
|
||||
|
||||
static PRBool
|
||||
pk11_MatchSlotBySerial(PK11SlotInfo *slot, const void *arg)
|
||||
{
|
||||
return PORT_Memcmp(slot->serial, arg, sizeof(slot->serial)) == 0;
|
||||
}
|
||||
|
||||
static PRBool
|
||||
pk11_MatchSlotByTokenURI(PK11SlotInfo *slot, const void *arg)
|
||||
{
|
||||
return pk11_MatchUriTokenInfo(slot, (PK11URI *)arg);
|
||||
}
|
||||
|
||||
static PK11SlotInfo *
|
||||
pk11_FindSlot(const void *arg, PK11SlotMatchFunc func)
|
||||
{
|
||||
SECMODListLock *moduleLock = SECMOD_GetDefaultModuleListLock();
|
||||
SECMODModuleList *mlp;
|
||||
SECMODModuleList *modules;
|
||||
SECMODListLock *moduleLock = SECMOD_GetDefaultModuleListLock();
|
||||
int i;
|
||||
PK11SlotInfo *slot = NULL;
|
||||
|
||||
|
|
@ -620,10 +640,6 @@ PK11_FindSlotByName(const char *name)
|
|||
PORT_SetError(SEC_ERROR_NOT_INITIALIZED);
|
||||
return slot;
|
||||
}
|
||||
if ((name == NULL) || (*name == 0)) {
|
||||
return PK11_GetInternalKeySlot();
|
||||
}
|
||||
|
||||
/* work through all the slots */
|
||||
SECMOD_GetReadLock(moduleLock);
|
||||
modules = SECMOD_GetDefaultModuleList();
|
||||
|
|
@ -631,7 +647,7 @@ PK11_FindSlotByName(const char *name)
|
|||
for (i = 0; i < mlp->module->slotCount; i++) {
|
||||
PK11SlotInfo *tmpSlot = mlp->module->slots[i];
|
||||
if (PK11_IsPresent(tmpSlot)) {
|
||||
if (PORT_Strcmp(tmpSlot->token_name, name) == 0) {
|
||||
if (func(tmpSlot, arg)) {
|
||||
slot = PK11_ReferenceSlot(tmpSlot);
|
||||
break;
|
||||
}
|
||||
|
|
@ -649,43 +665,41 @@ PK11_FindSlotByName(const char *name)
|
|||
return slot;
|
||||
}
|
||||
|
||||
static PK11SlotInfo *
|
||||
pk11_FindSlotByTokenURI(const char *uriString)
|
||||
{
|
||||
PK11SlotInfo *slot = NULL;
|
||||
PK11URI *uri;
|
||||
|
||||
uri = PK11URI_ParseURI(uriString);
|
||||
if (!uri) {
|
||||
PORT_SetError(SEC_ERROR_INVALID_ARGS);
|
||||
return slot;
|
||||
}
|
||||
|
||||
slot = pk11_FindSlot(uri, pk11_MatchSlotByTokenURI);
|
||||
PK11URI_DestroyURI(uri);
|
||||
return slot;
|
||||
}
|
||||
|
||||
PK11SlotInfo *
|
||||
PK11_FindSlotByName(const char *name)
|
||||
{
|
||||
if ((name == NULL) || (*name == 0)) {
|
||||
return PK11_GetInternalKeySlot();
|
||||
}
|
||||
|
||||
if (!PORT_Strncasecmp(name, "pkcs11:", strlen("pkcs11:"))) {
|
||||
return pk11_FindSlotByTokenURI(name);
|
||||
}
|
||||
|
||||
return pk11_FindSlot(name, pk11_MatchSlotByTokenName);
|
||||
}
|
||||
|
||||
PK11SlotInfo *
|
||||
PK11_FindSlotBySerial(char *serial)
|
||||
{
|
||||
SECMODModuleList *mlp;
|
||||
SECMODModuleList *modules;
|
||||
SECMODListLock *moduleLock = SECMOD_GetDefaultModuleListLock();
|
||||
int i;
|
||||
PK11SlotInfo *slot = NULL;
|
||||
|
||||
if (!moduleLock) {
|
||||
PORT_SetError(SEC_ERROR_NOT_INITIALIZED);
|
||||
return slot;
|
||||
}
|
||||
/* work through all the slots */
|
||||
SECMOD_GetReadLock(moduleLock);
|
||||
modules = SECMOD_GetDefaultModuleList();
|
||||
for (mlp = modules; mlp != NULL; mlp = mlp->next) {
|
||||
for (i = 0; i < mlp->module->slotCount; i++) {
|
||||
PK11SlotInfo *tmpSlot = mlp->module->slots[i];
|
||||
if (PK11_IsPresent(tmpSlot)) {
|
||||
if (PORT_Memcmp(tmpSlot->serial, serial,
|
||||
sizeof(tmpSlot->serial)) == 0) {
|
||||
slot = PK11_ReferenceSlot(tmpSlot);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (slot != NULL)
|
||||
break;
|
||||
}
|
||||
SECMOD_ReleaseReadLock(moduleLock);
|
||||
|
||||
if (slot == NULL) {
|
||||
PORT_SetError(SEC_ERROR_NO_TOKEN);
|
||||
}
|
||||
|
||||
return slot;
|
||||
return pk11_FindSlot(serial, pk11_MatchSlotBySerial);
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue