Closed Bug 303872 Opened 20 years ago Closed 20 years ago

RNG_SystemInfoForRNG() is missing from blapi and loader

Categories

(NSS :: Libraries, defect, P2)

defect

Tracking

(Not tracked)

VERIFIED FIXED

People

(Reporter: nelson, Assigned: nelson)

Details

The freebl files that enable us to dynamically load freebl and call the public freebl functions declared in blapi.h does not expose the freebl function RNG_SystemInfoForRNG. Consequently, no version of softoken is able to seed the PRNG in freebl shared libs. This was probably my mistake, back in the NSS 3.3 timeframe. To work around this, a copy of sysrand.o was added long ago to libfreebl.a, along with the dynamic loader. (libfreebl.a is supposed to contain ONLY the loader on platforms that use freebl shared libs.) That makes softoken link, but it also means that there are two copies of the PRNG, and only one copy is properly seeded. (I don't understand why there aren't warnings about duplicate symbols when softoken is loaded that way.) The fix is to put RNG_SystemInfoForRNG into blapi.h, loader.c, loader.h, and ldvector.c, and remove sysrand from libfreebl.a I have a large patch for something else that now includes this fix. I will try to separate out the part of the patch necessary to fix this problem by itself on the trunk.
P1 for NSS 3.11
Status: NEW → ASSIGNED
Priority: -- → P1
Target Milestone: --- → 3.11
Version: 3.10 → 3.3
Per our meeting today, lowering to P2.
Priority: P1 → P2
Per our meeting today, this is P1 for 3.11.1 .
Priority: P2 → P1
Target Milestone: 3.11 → 3.11.1
Nelson, you wrote: > > The fix is to put RNG_SystemInfoForRNG into blapi.h, > loader.c, loader.h, and ldvector.c, and remove sysrand > from libfreebl.a I'm happy to report that we took care of this in these checkins: - lib/freebl/blapi.h, rev. 1.23: added RNG_SystemInfoForRNG - lib/freebl/loader.c, rev. 1.22: added RNG_SystemInfoForRNG - lib/freebl/loader.h, rev. 1.16: added p_RNG_SystemInfoForRNG - lib/freebl/ldvector.c, rev. 1.12: added RNG_SystemInfoForRNG - lib/freebl/config.mk, rev. 1.12: removed sysrand.o from libfreebl.a Please verify. The CVS commit comment is: date: 2005/09/07 02:47:16; author: saul.edwards%sun.com; state: Exp; [...] Bug 303508: Add freebl shared libs that do 64-bit integer math. Bug 274984: sof token fails to load freebl in setuid programs. freebl becomes a shared library on all platforms. r=nelson Modified Files: coreconf/HP-UXB.11.mk coreconf/SunOS5.mk nss/cmd/shlibsign/Makefile nss/cmd/shlibsign/manifest.mn nss/lib/freebl/Makefile nss/lib/freebl/arcfour.c nss/lib/freebl/blapi.h nss/lib/freebl/config.mk nss/lib/freebl/ldvector.c nss/lib/freebl/loader.c nss/lib/freebl/loader.h nss/lib/freebl/manifest.mn Added Files: nss/lib/freebl/freebl.def
Status: ASSIGNED → RESOLVED
Closed: 20 years ago
Priority: P1 → P2
Resolution: --- → FIXED
Target Milestone: 3.11.1 → 3.11
Thanks, Wan-Teh, it sure does look fixed.
Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.