mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-21 15:57:31 +09:00
Replace NSS with Pale Moon's
This commit is contained in:
parent
ff1e5e48bf
commit
8c2e376f94
2870 changed files with 1762232 additions and 1374220 deletions
|
|
@ -4,9 +4,12 @@
|
|||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
include manifest.mn
|
||||
|
||||
include $(CORE_DEPTH)/coreconf/config.mk
|
||||
include config.mk
|
||||
include $(CORE_DEPTH)/coreconf/rules.mk
|
||||
|
||||
ifdef BUILD_IDG
|
||||
DEFINES += -DNSSDEBUG
|
||||
endif
|
||||
|
||||
ifdef NOTDEF # was ifdef MOZILLA_CLIENT
|
||||
NSS_BUILD_CAPI = 1
|
||||
|
|
@ -25,7 +28,6 @@ endif
|
|||
# nssck.api: ck.api ckapi.perl
|
||||
# $(PERL) ckapi.perl ck.api
|
||||
|
||||
export:: private_export
|
||||
|
||||
# can't do this in manifest.mn because OS_TARGET isn't defined there.
|
||||
ifeq (,$(filter-out WINNT WIN95,$(OS_TARGET)))
|
||||
|
|
@ -33,3 +35,5 @@ ifdef NSS_BUILD_CAPI
|
|||
DIRS += capi
|
||||
endif
|
||||
endif
|
||||
|
||||
include $(CORE_DEPTH)/coreconf/rules.mk
|
||||
|
|
|
|||
|
|
@ -5,7 +5,24 @@
|
|||
|
||||
include manifest.mn
|
||||
include $(CORE_DEPTH)/coreconf/config.mk
|
||||
include config.mk
|
||||
|
||||
ifdef BUILD_IDG
|
||||
DEFINES += -DNSSDEBUG
|
||||
endif
|
||||
|
||||
# Needed for compilation of $(OBJDIR)/certdata.c
|
||||
INCLUDES += -I.
|
||||
|
||||
#
|
||||
# To create a loadable module on Darwin, we must use -bundle.
|
||||
#
|
||||
ifeq ($(OS_TARGET),Darwin)
|
||||
DSO_LDOPTS = -bundle
|
||||
endif
|
||||
|
||||
ifdef USE_GCOV
|
||||
DSO_LDOPTS += --coverage
|
||||
endif
|
||||
|
||||
EXTRA_LIBS = \
|
||||
$(DIST)/lib/$(LIB_PREFIX)nssckfw.$(LIB_SUFFIX) \
|
||||
|
|
@ -49,6 +66,5 @@ ifndef NSS_CERTDATA_TXT
|
|||
NSS_CERTDATA_TXT = certdata.txt
|
||||
endif
|
||||
|
||||
$(OBJDIR)/certdata.c: $(NSS_CERTDATA_TXT) certdata.perl
|
||||
@$(MAKE_OBJDIR)
|
||||
$(OBJDIR)/certdata.c: $(NSS_CERTDATA_TXT) certdata.perl | $$(@D)/d
|
||||
$(PERL) certdata.perl $(NSS_CERTDATA_TXT) $@
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@
|
|||
{
|
||||
'msvs_cygwin_shell': 0,
|
||||
'action': [
|
||||
'python',
|
||||
'<(python)',
|
||||
'certdata.py',
|
||||
'certdata.txt',
|
||||
'<@(_outputs)',
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -1,38 +0,0 @@
|
|||
#
|
||||
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
#
|
||||
# Override TARGETS variable so that only shared libraries
|
||||
# are specifed as dependencies within rules.mk.
|
||||
#
|
||||
|
||||
TARGETS = $(SHARED_LIBRARY)
|
||||
LIBRARY =
|
||||
IMPORT_LIBRARY =
|
||||
PROGRAM =
|
||||
|
||||
ifeq (,$(filter-out WIN%,$(OS_TARGET)))
|
||||
SHARED_LIBRARY = $(OBJDIR)/$(DLL_PREFIX)$(LIBRARY_NAME)$(LIBRARY_VERSION).$(DLL_SUFFIX)
|
||||
RES = $(OBJDIR)/$(LIBRARY_NAME).res
|
||||
RESNAME = $(LIBRARY_NAME).rc
|
||||
endif
|
||||
|
||||
ifdef BUILD_IDG
|
||||
DEFINES += -DNSSDEBUG
|
||||
endif
|
||||
|
||||
# Needed for compilation of $(OBJDIR)/certdata.c
|
||||
INCLUDES += -I.
|
||||
|
||||
#
|
||||
# To create a loadable module on Darwin, we must use -bundle.
|
||||
#
|
||||
ifeq ($(OS_TARGET),Darwin)
|
||||
DSO_LDOPTS = -bundle
|
||||
endif
|
||||
|
||||
ifdef USE_GCOV
|
||||
DSO_LDOPTS += --coverage
|
||||
endif
|
||||
|
|
@ -5,10 +5,11 @@
|
|||
|
||||
CORE_DEPTH = ../../..
|
||||
|
||||
DIRS = testlib
|
||||
DIRS = . testlib
|
||||
|
||||
testlib: .
|
||||
|
||||
MODULE = nss
|
||||
MAPFILE = $(OBJDIR)/nssckbi.def
|
||||
|
||||
EXPORTS = \
|
||||
nssckbi.h \
|
||||
|
|
@ -30,3 +31,6 @@ CSRCS = \
|
|||
REQUIRES = nspr
|
||||
|
||||
LIBRARY_NAME = nssckbi
|
||||
MAPFILE = $(OBJDIR)/$(LIBRARY_NAME).def
|
||||
LIBRARY = $(NULL)
|
||||
IMPORT_LIBRARY = $(NULL)
|
||||
|
|
|
|||
|
|
@ -46,8 +46,8 @@
|
|||
* It's recommend to switch back to 0 after having reached version 98/99.
|
||||
*/
|
||||
#define NSS_BUILTINS_LIBRARY_VERSION_MAJOR 2
|
||||
#define NSS_BUILTINS_LIBRARY_VERSION_MINOR 80
|
||||
#define NSS_BUILTINS_LIBRARY_VERSION "2.80"
|
||||
#define NSS_BUILTINS_LIBRARY_VERSION_MINOR 76
|
||||
#define NSS_BUILTINS_LIBRARY_VERSION "2.76"
|
||||
|
||||
/* These version numbers detail the semantic changes to the ckfw engine. */
|
||||
#define NSS_BUILTINS_HARDWARE_VERSION_MAJOR 1
|
||||
|
|
|
|||
|
|
@ -4,8 +4,26 @@
|
|||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
include manifest.mn
|
||||
|
||||
include $(CORE_DEPTH)/coreconf/config.mk
|
||||
include config.mk
|
||||
|
||||
ifdef BUILD_IDG
|
||||
DEFINES += -DNSSDEBUG
|
||||
endif
|
||||
|
||||
# Needed for compilation of $(OBJDIR)/certdata.c
|
||||
INCLUDES += -I.
|
||||
|
||||
#
|
||||
# To create a loadable module on Darwin, we must use -bundle.
|
||||
#
|
||||
ifeq ($(OS_TARGET),Darwin)
|
||||
DSO_LDOPTS = -bundle
|
||||
endif
|
||||
|
||||
ifdef USE_GCOV
|
||||
DSO_LDOPTS += --coverage
|
||||
endif
|
||||
|
||||
EXTRA_LIBS = \
|
||||
$(DIST)/lib/$(LIB_PREFIX)nssckfw.$(LIB_SUFFIX) \
|
||||
|
|
@ -38,6 +56,11 @@ EXTRA_SHARED_LIBS += \
|
|||
$(NULL)
|
||||
endif # OS_TARGET
|
||||
|
||||
SIMPLE_OBJS = $(notdir $(CSRCS:.c=$(OBJ_SUFFIX)))
|
||||
OBJS = $(addprefix $(OBJDIR)/$(PROG_PREFIX), $(SIMPLE_OBJS))
|
||||
vpath %c $(dir $(CSRCS)) # $(OBJDIR)
|
||||
|
||||
|
||||
include $(CORE_DEPTH)/coreconf/rules.mk
|
||||
|
||||
CFLAGS += -I$(CORE_DEPTH)/lib/ckfw/builtins
|
||||
|
|
@ -47,6 +70,6 @@ ifndef NSS_CERTDATA-TESTLIB_TXT
|
|||
NSS_CERTDATA-TESTLIB_TXT = certdata-testlib.txt
|
||||
endif
|
||||
|
||||
$(OBJDIR)/certdata-testlib.c: $(NSS_CERTDATA-TESTLIB_TXT)
|
||||
@$(MAKE_OBJDIR)
|
||||
$(OBJDIR)/certdata-testlib.c: $(NSS_CERTDATA-TESTLIB_TXT) | $$(@D)/d
|
||||
$(PERL) ../certdata.perl $(NSS_CERTDATA-TESTLIB_TXT) $@
|
||||
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@
|
|||
{
|
||||
'msvs_cygwin_shell': 0,
|
||||
'action': [
|
||||
'python',
|
||||
'<(python)',
|
||||
'../certdata.py',
|
||||
'certdata-testlib.txt',
|
||||
'<@(_outputs)',
|
||||
|
|
@ -47,7 +47,7 @@
|
|||
}
|
||||
],
|
||||
'variables': {
|
||||
'mapfile': '../nssckbi.def',
|
||||
'mapfile': 'nssckbi-testlib.def',
|
||||
'certdata-testlib_c': '<(INTERMEDIATE_DIR)/certdata-testlib.c',
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,38 +0,0 @@
|
|||
#
|
||||
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
#
|
||||
# Override TARGETS variable so that only shared libraries
|
||||
# are specifed as dependencies within rules.mk.
|
||||
#
|
||||
|
||||
TARGETS = $(SHARED_LIBRARY)
|
||||
LIBRARY =
|
||||
IMPORT_LIBRARY =
|
||||
PROGRAM =
|
||||
|
||||
ifeq (,$(filter-out WIN%,$(OS_TARGET)))
|
||||
SHARED_LIBRARY = $(OBJDIR)/$(DLL_PREFIX)$(LIBRARY_NAME)$(LIBRARY_VERSION).$(DLL_SUFFIX)
|
||||
RES = $(OBJDIR)/$(LIBRARY_NAME).res
|
||||
RESNAME = $(LIBRARY_NAME).rc
|
||||
endif
|
||||
|
||||
ifdef BUILD_IDG
|
||||
DEFINES += -DNSSDEBUG
|
||||
endif
|
||||
|
||||
# Needed for compilation of $(OBJDIR)/certdata.c
|
||||
INCLUDES += -I.
|
||||
|
||||
#
|
||||
# To create a loadable module on Darwin, we must use -bundle.
|
||||
#
|
||||
ifeq ($(OS_TARGET),Darwin)
|
||||
DSO_LDOPTS = -bundle
|
||||
endif
|
||||
|
||||
ifdef USE_GCOV
|
||||
DSO_LDOPTS += --coverage
|
||||
endif
|
||||
|
|
@ -23,3 +23,4 @@ CSRCS = \
|
|||
REQUIRES = nspr
|
||||
|
||||
LIBRARY_NAME = nssckbi-testlib
|
||||
LIBRARY = $(NULL)
|
||||
|
|
|
|||
26
security/nss/lib/ckfw/builtins/testlib/nssckbi-testlib.def
Normal file
26
security/nss/lib/ckfw/builtins/testlib/nssckbi-testlib.def
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
;+#
|
||||
;+# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
;+# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
;+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
;+#
|
||||
;+# OK, this file is meant to support SUN, LINUX, AIX and WINDOWS
|
||||
;+# 1. For all unix platforms, the string ";-" means "remove this line"
|
||||
;+# 2. For all unix platforms, the string " DATA " will be removed from any
|
||||
;+# line on which it occurs.
|
||||
;+# 3. Lines containing ";+" will have ";+" removed on SUN and LINUX.
|
||||
;+# On AIX, lines containing ";+" will be removed.
|
||||
;+# 4. For all unix platforms, the string ";;" will thave the ";;" removed.
|
||||
;+# 5. For all unix platforms, after the above processing has taken place,
|
||||
;+# all characters after the first ";" on the line will be removed.
|
||||
;+# And for AIX, the first ";" will also be removed.
|
||||
;+# This file is passed directly to windows. Since ';' is a comment, all UNIX
|
||||
;+# directives are hidden behind ";", ";+", and ";-"
|
||||
;+
|
||||
;+NSS_3.1 { # NSS 3.1 release
|
||||
;+ global:
|
||||
LIBRARY nssckbi-testlib ;-
|
||||
EXPORTS ;-
|
||||
C_GetFunctionList;
|
||||
;+ local:
|
||||
;+*;
|
||||
;+};
|
||||
|
|
@ -5,7 +5,17 @@
|
|||
|
||||
include manifest.mn
|
||||
include $(CORE_DEPTH)/coreconf/config.mk
|
||||
include config.mk
|
||||
|
||||
ifdef BUILD_IDG
|
||||
DEFINES += -DNSSDEBUG
|
||||
endif
|
||||
|
||||
#
|
||||
# To create a loadable module on Darwin, we must use -bundle.
|
||||
#
|
||||
ifeq ($(OS_TARGET),Darwin)
|
||||
DSO_LDOPTS = -bundle
|
||||
endif
|
||||
|
||||
EXTRA_LIBS = \
|
||||
$(DIST)/lib/$(LIB_PREFIX)nssckfw.$(LIB_SUFFIX) \
|
||||
|
|
@ -60,8 +70,7 @@ DSO_LDOPTS = -bM:SRE -bh:4 -bnoentry
|
|||
EXTRA_DSO_LDOPTS = -lc
|
||||
MKSHLIB = xlC $(DSO_LDOPTS)
|
||||
|
||||
$(SHARED_LIBRARY): $(OBJS)
|
||||
@$(MAKE_OBJDIR)
|
||||
$(SHARED_LIBRARY): $(OBJS) | $$(@D)/d
|
||||
rm -f $@
|
||||
$(MKSHLIB) -o $@ $(OBJS) $(EXTRA_LIBS) $(EXTRA_DSO_LDOPTS)
|
||||
chmod +x $@
|
||||
|
|
@ -71,5 +80,3 @@ endif
|
|||
ifeq ($(OS_TARGET)$(OS_RELEASE), AIX4.2)
|
||||
LD += -G
|
||||
endif
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,31 +0,0 @@
|
|||
#
|
||||
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
#
|
||||
# Override TARGETS variable so that only shared libraries
|
||||
# are specifed as dependencies within rules.mk.
|
||||
#
|
||||
|
||||
TARGETS = $(SHARED_LIBRARY)
|
||||
LIBRARY =
|
||||
IMPORT_LIBRARY =
|
||||
PROGRAM =
|
||||
|
||||
ifeq (,$(filter-out WIN%,$(OS_TARGET)))
|
||||
SHARED_LIBRARY = $(OBJDIR)/$(DLL_PREFIX)$(LIBRARY_NAME)$(LIBRARY_VERSION).$(DLL_SUFFIX)
|
||||
RES = $(OBJDIR)/$(LIBRARY_NAME).res
|
||||
RESNAME = $(LIBRARY_NAME).rc
|
||||
endif
|
||||
|
||||
ifdef BUILD_IDG
|
||||
DEFINES += -DNSSDEBUG
|
||||
endif
|
||||
|
||||
#
|
||||
# To create a loadable module on Darwin, we must use -bundle.
|
||||
#
|
||||
ifeq ($(OS_TARGET),Darwin)
|
||||
DSO_LDOPTS = -bundle
|
||||
endif
|
||||
|
|
@ -6,7 +6,6 @@
|
|||
CORE_DEPTH = ../../../..
|
||||
|
||||
MODULE = nss
|
||||
MAPFILE = $(OBJDIR)/nsscapi.def
|
||||
|
||||
EXPORTS = \
|
||||
nsscapi.h \
|
||||
|
|
@ -29,5 +28,8 @@ CSRCS = \
|
|||
REQUIRES = nspr
|
||||
|
||||
LIBRARY_NAME = nsscapi
|
||||
MAPFILE = $(OBJDIR)/$(LIBRARY_NAME).def
|
||||
LIBRARY = $(NULL)
|
||||
IMPORT_LIBRARY = $(NULL)
|
||||
|
||||
#EXTRA_SHARED_LIBS = -L$(DIST)/lib -lnssckfw -lnssb -lplc4 -lplds4
|
||||
|
|
|
|||
|
|
@ -1,25 +0,0 @@
|
|||
#
|
||||
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
ifdef BUILD_IDG
|
||||
DEFINES += -DNSSDEBUG
|
||||
endif
|
||||
|
||||
#
|
||||
# Hack to see if everything still builds
|
||||
#
|
||||
|
||||
|
||||
#
|
||||
# Override TARGETS variable so that only static libraries
|
||||
# are specifed as dependencies within rules.mk.
|
||||
#
|
||||
|
||||
TARGETS = $(LIBRARY)
|
||||
SHARED_LIBRARY =
|
||||
IMPORT_LIBRARY =
|
||||
PROGRAM =
|
||||
|
||||
|
||||
|
|
@ -245,7 +245,7 @@ NSS_EXTERN CK_RV
|
|||
nssCKFWCryptoOperation_DigestKey(
|
||||
NSSCKFWCryptoOperation *fwOperation,
|
||||
NSSCKFWObject *fwObject /* Key */
|
||||
)
|
||||
)
|
||||
{
|
||||
NSSCKMDObject *mdObject;
|
||||
|
||||
|
|
|
|||
|
|
@ -4,6 +4,10 @@
|
|||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
include manifest.mn
|
||||
include config.mk
|
||||
include $(CORE_DEPTH)/coreconf/config.mk
|
||||
|
||||
ifdef BUILD_IDG
|
||||
DEFINES += -DNSSDEBUG
|
||||
endif
|
||||
|
||||
include $(CORE_DEPTH)/coreconf/rules.mk
|
||||
|
|
|
|||
|
|
@ -1,8 +0,0 @@
|
|||
#
|
||||
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
ifdef BUILD_IDG
|
||||
DEFINES += -DNSSDEBUG
|
||||
endif
|
||||
|
|
@ -392,19 +392,19 @@ nss_dbm_db_swap_type(
|
|||
return type_byte;
|
||||
case CKA_MODIFIABLE:
|
||||
return type_byte;
|
||||
case CKA_NETSCAPE_URL:
|
||||
case CKA_NSS_URL:
|
||||
return type_opaque;
|
||||
case CKA_NETSCAPE_EMAIL:
|
||||
case CKA_NSS_EMAIL:
|
||||
return type_opaque;
|
||||
case CKA_NETSCAPE_SMIME_INFO:
|
||||
case CKA_NSS_SMIME_INFO:
|
||||
return type_opaque;
|
||||
case CKA_NETSCAPE_SMIME_TIMESTAMP:
|
||||
case CKA_NSS_SMIME_TIMESTAMP:
|
||||
return type_opaque;
|
||||
case CKA_NETSCAPE_PKCS8_SALT:
|
||||
case CKA_NSS_PKCS8_SALT:
|
||||
return type_opaque;
|
||||
case CKA_NETSCAPE_PASSWORD_CHECK:
|
||||
case CKA_NSS_PASSWORD_CHECK:
|
||||
return type_opaque;
|
||||
case CKA_NETSCAPE_EXPIRES:
|
||||
case CKA_NSS_EXPIRES:
|
||||
return type_opaque;
|
||||
case CKA_TRUST_DIGITAL_SIGNATURE:
|
||||
return type_long;
|
||||
|
|
@ -436,9 +436,9 @@ nss_dbm_db_swap_type(
|
|||
return type_long;
|
||||
case CKA_TRUST_TIME_STAMPING:
|
||||
return type_long;
|
||||
case CKA_NETSCAPE_DB:
|
||||
case CKA_NSS_DB:
|
||||
return type_opaque;
|
||||
case CKA_NETSCAPE_TRUST:
|
||||
case CKA_NSS_TRUST:
|
||||
return type_opaque;
|
||||
default:
|
||||
return type_opaque;
|
||||
|
|
|
|||
|
|
@ -21,5 +21,6 @@ CSRCS = \
|
|||
REQUIRES = dbm nspr
|
||||
|
||||
LIBRARY_NAME = nssckdbm
|
||||
LIBRARY = $(NULL)
|
||||
|
||||
EXTRA_SHARED_LIBS = -L$(DIST)/lib -lnssckfw -lnssb -ldbm -lnspr4 -lplc4 -lplds4
|
||||
|
|
|
|||
|
|
@ -12,6 +12,8 @@
|
|||
#include "ck.h"
|
||||
#endif /* CK_T */
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
/*
|
||||
* NSSCKFWInstance
|
||||
*
|
||||
|
|
@ -547,7 +549,7 @@ nssCKFWInstance_CreateSessionHandle(
|
|||
}
|
||||
|
||||
*pError = nssCKFWHash_Add(fwInstance->sessionHandleHash,
|
||||
(const void *)hSession, (const void *)fwSession);
|
||||
(const void *)(uintptr_t)hSession, (const void *)fwSession);
|
||||
if (CKR_OK != *pError) {
|
||||
hSession = (CK_SESSION_HANDLE)0;
|
||||
goto done;
|
||||
|
|
@ -580,7 +582,7 @@ nssCKFWInstance_ResolveSessionHandle(
|
|||
}
|
||||
|
||||
fwSession = (NSSCKFWSession *)nssCKFWHash_Lookup(
|
||||
fwInstance->sessionHandleHash, (const void *)hSession);
|
||||
fwInstance->sessionHandleHash, (const void *)(uintptr_t)hSession);
|
||||
|
||||
/* Assert(hSession == nssCKFWSession_GetHandle(fwSession)) */
|
||||
|
||||
|
|
@ -611,9 +613,9 @@ nssCKFWInstance_DestroySessionHandle(
|
|||
}
|
||||
|
||||
fwSession = (NSSCKFWSession *)nssCKFWHash_Lookup(
|
||||
fwInstance->sessionHandleHash, (const void *)hSession);
|
||||
fwInstance->sessionHandleHash, (const void *)(uintptr_t)hSession);
|
||||
if (fwSession) {
|
||||
nssCKFWHash_Remove(fwInstance->sessionHandleHash, (const void *)hSession);
|
||||
nssCKFWHash_Remove(fwInstance->sessionHandleHash, (const void *)(uintptr_t)hSession);
|
||||
nssCKFWSession_SetHandle(fwSession, (CK_SESSION_HANDLE)0);
|
||||
}
|
||||
|
||||
|
|
@ -682,7 +684,7 @@ nssCKFWInstance_CreateObjectHandle(
|
|||
}
|
||||
|
||||
*pError = nssCKFWHash_Add(fwInstance->objectHandleHash,
|
||||
(const void *)hObject, (const void *)fwObject);
|
||||
(const void *)(uintptr_t)hObject, (const void *)fwObject);
|
||||
if (CKR_OK != *pError) {
|
||||
hObject = (CK_OBJECT_HANDLE)0;
|
||||
goto done;
|
||||
|
|
@ -715,7 +717,7 @@ nssCKFWInstance_ResolveObjectHandle(
|
|||
}
|
||||
|
||||
fwObject = (NSSCKFWObject *)nssCKFWHash_Lookup(
|
||||
fwInstance->objectHandleHash, (const void *)hObject);
|
||||
fwInstance->objectHandleHash, (const void *)(uintptr_t)hObject);
|
||||
|
||||
/* Assert(hObject == nssCKFWObject_GetHandle(fwObject)) */
|
||||
|
||||
|
|
@ -749,11 +751,11 @@ nssCKFWInstance_ReassignObjectHandle(
|
|||
}
|
||||
|
||||
oldObject = (NSSCKFWObject *)nssCKFWHash_Lookup(
|
||||
fwInstance->objectHandleHash, (const void *)hObject);
|
||||
fwInstance->objectHandleHash, (const void *)(uintptr_t)hObject);
|
||||
if (oldObject) {
|
||||
/* Assert(hObject == nssCKFWObject_GetHandle(oldObject) */
|
||||
(void)nssCKFWObject_SetHandle(oldObject, (CK_SESSION_HANDLE)0);
|
||||
nssCKFWHash_Remove(fwInstance->objectHandleHash, (const void *)hObject);
|
||||
nssCKFWHash_Remove(fwInstance->objectHandleHash, (const void *)(uintptr_t)hObject);
|
||||
}
|
||||
|
||||
error = nssCKFWObject_SetHandle(fwObject, hObject);
|
||||
|
|
@ -761,7 +763,7 @@ nssCKFWInstance_ReassignObjectHandle(
|
|||
goto done;
|
||||
}
|
||||
error = nssCKFWHash_Add(fwInstance->objectHandleHash,
|
||||
(const void *)hObject, (const void *)fwObject);
|
||||
(const void *)(uintptr_t)hObject, (const void *)fwObject);
|
||||
|
||||
done:
|
||||
(void)nssCKFWMutex_Unlock(fwInstance->mutex);
|
||||
|
|
@ -790,10 +792,10 @@ nssCKFWInstance_DestroyObjectHandle(
|
|||
}
|
||||
|
||||
fwObject = (NSSCKFWObject *)nssCKFWHash_Lookup(
|
||||
fwInstance->objectHandleHash, (const void *)hObject);
|
||||
fwInstance->objectHandleHash, (const void *)(uintptr_t)hObject);
|
||||
if (fwObject) {
|
||||
/* Assert(hObject = nssCKFWObject_GetHandle(fwObject)) */
|
||||
nssCKFWHash_Remove(fwInstance->objectHandleHash, (const void *)hObject);
|
||||
nssCKFWHash_Remove(fwInstance->objectHandleHash, (const void *)(uintptr_t)hObject);
|
||||
(void)nssCKFWObject_SetHandle(fwObject, (CK_SESSION_HANDLE)0);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,9 @@
|
|||
|
||||
CORE_DEPTH = ../..
|
||||
|
||||
DIRS = builtins
|
||||
DIRS = . builtins
|
||||
|
||||
builtins: .
|
||||
|
||||
PRIVATE_EXPORTS = \
|
||||
ck.h \
|
||||
|
|
@ -48,6 +50,7 @@ CSRCS = \
|
|||
REQUIRES = nspr
|
||||
|
||||
LIBRARY_NAME = nssckfw
|
||||
SHARED_LIBRARY = $(NULL)
|
||||
|
||||
# This part of the code, including all sub-dirs, can be optimized for size
|
||||
export ALLOW_OPT_CODE_SIZE = 1
|
||||
|
|
|
|||
|
|
@ -52,6 +52,7 @@
|
|||
struct NSSCKFWObjectStr {
|
||||
NSSCKFWMutex *mutex; /* merely to serialise the MDObject calls */
|
||||
NSSArena *arena;
|
||||
NSSArena *localArena;
|
||||
NSSCKMDObject *mdObject;
|
||||
NSSCKMDSession *mdSession;
|
||||
NSSCKFWSession *fwSession;
|
||||
|
|
@ -110,6 +111,8 @@ nssCKFWObject_Create(
|
|||
NSSCKFWInstance *fwInstance,
|
||||
CK_RV *pError)
|
||||
{
|
||||
NSSArena *objArena = arena;
|
||||
NSSArena *localArena = NULL;
|
||||
NSSCKFWObject *fwObject;
|
||||
nssCKFWHash *mdObjectHash;
|
||||
|
||||
|
|
@ -139,13 +142,23 @@ nssCKFWObject_Create(
|
|||
return fwObject;
|
||||
}
|
||||
|
||||
fwObject = nss_ZNEW(arena, NSSCKFWObject);
|
||||
/* session objects should have their own arena so they can be destroyed in the end. */
|
||||
if (arena == NULL) {
|
||||
localArena = objArena = NSSArena_Create();
|
||||
if (objArena == NULL) {
|
||||
*pError = CKR_HOST_MEMORY;
|
||||
return (NSSCKFWObject *)NULL;
|
||||
}
|
||||
}
|
||||
|
||||
fwObject = nss_ZNEW(objArena, NSSCKFWObject);
|
||||
if (!fwObject) {
|
||||
*pError = CKR_HOST_MEMORY;
|
||||
return (NSSCKFWObject *)NULL;
|
||||
}
|
||||
|
||||
fwObject->arena = arena;
|
||||
fwObject->arena = objArena;
|
||||
fwObject->localArena = localArena;
|
||||
fwObject->mdObject = mdObject;
|
||||
fwObject->fwSession = fwSession;
|
||||
|
||||
|
|
@ -157,18 +170,24 @@ nssCKFWObject_Create(
|
|||
fwObject->mdToken = nssCKFWToken_GetMDToken(fwToken);
|
||||
fwObject->fwInstance = fwInstance;
|
||||
fwObject->mdInstance = nssCKFWInstance_GetMDInstance(fwInstance);
|
||||
fwObject->mutex = nssCKFWInstance_CreateMutex(fwInstance, arena, pError);
|
||||
fwObject->mutex = nssCKFWInstance_CreateMutex(fwInstance, objArena, pError);
|
||||
if (!fwObject->mutex) {
|
||||
if (CKR_OK == *pError) {
|
||||
*pError = CKR_GENERAL_ERROR;
|
||||
}
|
||||
nss_ZFreeIf(fwObject);
|
||||
if (localArena) {
|
||||
NSSArena_Destroy(localArena);
|
||||
}
|
||||
return (NSSCKFWObject *)NULL;
|
||||
}
|
||||
|
||||
*pError = nssCKFWHash_Add(mdObjectHash, mdObject, fwObject);
|
||||
if (CKR_OK != *pError) {
|
||||
nss_ZFreeIf(fwObject);
|
||||
if (localArena) {
|
||||
NSSArena_Destroy(localArena);
|
||||
}
|
||||
return (NSSCKFWObject *)NULL;
|
||||
}
|
||||
|
||||
|
|
@ -177,6 +196,9 @@ nssCKFWObject_Create(
|
|||
if (CKR_OK != *pError) {
|
||||
nssCKFWHash_Remove(mdObjectHash, mdObject);
|
||||
nss_ZFreeIf(fwObject);
|
||||
if (localArena) {
|
||||
NSSArena_Destroy(localArena);
|
||||
}
|
||||
return (NSSCKFWObject *)NULL;
|
||||
}
|
||||
#endif /* DEBUG */
|
||||
|
|
@ -195,6 +217,7 @@ nssCKFWObject_Finalize(
|
|||
PRBool removeFromHash)
|
||||
{
|
||||
nssCKFWHash *mdObjectHash;
|
||||
NSSArena *arena = NULL;
|
||||
|
||||
#ifdef NSSDEBUG
|
||||
if (CKR_OK != nssCKFWObject_verifyPointer(fwObject)) {
|
||||
|
|
@ -220,7 +243,11 @@ nssCKFWObject_Finalize(
|
|||
if (fwObject->fwSession) {
|
||||
nssCKFWSession_DeregisterSessionObject(fwObject->fwSession, fwObject);
|
||||
}
|
||||
arena = fwObject->localArena;
|
||||
nss_ZFreeIf(fwObject);
|
||||
if (arena) {
|
||||
NSSArena_Destroy(arena);
|
||||
}
|
||||
|
||||
#ifdef DEBUG
|
||||
(void)object_remove_pointer(fwObject);
|
||||
|
|
@ -238,6 +265,7 @@ nssCKFWObject_Destroy(
|
|||
NSSCKFWObject *fwObject)
|
||||
{
|
||||
nssCKFWHash *mdObjectHash;
|
||||
NSSArena *arena = NULL;
|
||||
|
||||
#ifdef NSSDEBUG
|
||||
if (CKR_OK != nssCKFWObject_verifyPointer(fwObject)) {
|
||||
|
|
@ -261,7 +289,11 @@ nssCKFWObject_Destroy(
|
|||
if (fwObject->fwSession) {
|
||||
nssCKFWSession_DeregisterSessionObject(fwObject->fwSession, fwObject);
|
||||
}
|
||||
arena = fwObject->localArena;
|
||||
nss_ZFreeIf(fwObject);
|
||||
if (arena) {
|
||||
NSSArena_Destroy(arena);
|
||||
}
|
||||
|
||||
#ifdef DEBUG
|
||||
(void)object_remove_pointer(fwObject);
|
||||
|
|
|
|||
|
|
@ -1271,7 +1271,7 @@ gotmdobject:
|
|||
return (NSSCKFWObject *)NULL;
|
||||
}
|
||||
|
||||
fwObject = nssCKFWObject_Create(arena, mdObject,
|
||||
fwObject = nssCKFWObject_Create(isTokenObject ? arena : NULL, mdObject,
|
||||
isTokenObject ? NULL
|
||||
: fwSession,
|
||||
fwSession->fwToken, fwSession->fwInstance, pError);
|
||||
|
|
@ -1399,7 +1399,7 @@ nssCKFWSession_CopyObject(
|
|||
return (NSSCKFWObject *)NULL;
|
||||
}
|
||||
|
||||
rv = nssCKFWObject_Create(arena, mdObject,
|
||||
rv = nssCKFWObject_Create(newIsToken ? arena : NULL, mdObject,
|
||||
newIsToken ? NULL
|
||||
: fwSession,
|
||||
fwSession->fwToken, fwSession->fwInstance, pError);
|
||||
|
|
|
|||
|
|
@ -1211,8 +1211,7 @@ nssCKFWToken_GetUTCTime(
|
|||
|
||||
if (D > dims[M - 1])
|
||||
goto badtime; /* per-month check */
|
||||
if ((2 == M) && (((Y % 4) || !(Y % 100)) &&
|
||||
(Y % 400)) &&
|
||||
if ((2 == M) && (((Y % 4) || !(Y % 100)) && (Y % 400)) &&
|
||||
(D > 28))
|
||||
goto badtime; /* leap years */
|
||||
|
||||
|
|
|
|||
|
|
@ -222,13 +222,14 @@ NSSCKFWC_Finalize(
|
|||
|
||||
loser:
|
||||
switch (error) {
|
||||
PRInt32 remainingInstances;
|
||||
case CKR_OK:
|
||||
case CKR_OK: {
|
||||
PRInt32 remainingInstances;
|
||||
remainingInstances = PR_ATOMIC_DECREMENT(&liveInstances);
|
||||
if (!remainingInstances) {
|
||||
nssArena_Shutdown();
|
||||
}
|
||||
break;
|
||||
}
|
||||
case CKR_CRYPTOKI_NOT_INITIALIZED:
|
||||
case CKR_FUNCTION_FAILED:
|
||||
case CKR_GENERAL_ERROR:
|
||||
|
|
@ -2570,11 +2571,17 @@ NSSCKFWC_FindObjects(
|
|||
phObject[i] = nssCKFWInstance_FindObjectHandle(fwInstance, fwObject);
|
||||
if ((CK_OBJECT_HANDLE)0 == phObject[i]) {
|
||||
phObject[i] = nssCKFWInstance_CreateObjectHandle(fwInstance, fwObject, &error);
|
||||
}
|
||||
if ((CK_OBJECT_HANDLE)0 == phObject[i]) {
|
||||
/* This isn't right either, is it? */
|
||||
nssCKFWObject_Destroy(fwObject);
|
||||
goto loser;
|
||||
/* CreateObjectHandle returns CKR_GENERAL_ERROR if fwObject already
|
||||
* has a handle. This happens when another thread creates a handle
|
||||
* between our FindObjectHandle and CreateObjectHandle calls.
|
||||
*/
|
||||
if (error == CKR_GENERAL_ERROR) {
|
||||
error = CKR_OK;
|
||||
phObject[i] = nssCKFWInstance_FindObjectHandle(fwInstance, fwObject);
|
||||
}
|
||||
if (error != CKR_OK || (CK_OBJECT_HANDLE)0 == phObject[i]) {
|
||||
goto loser;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue