Name Description Size
base64.h base64.h - prototypes for base64 encoding/decoding Note: These functions are deprecated; see nssb64.h for new routines. 1154
ciferfam.h ciferfam.h - cipher familie IDs used for configuring ciphers for export control 2467
config.mk 893
derdec.c indefinite length 5408
derenc.c Generic templates for individual/simple items. 13549
dersubr.c XXX This should be rewritten, generalized, to take a long instead of a PRInt32. 5824
dertime.c gmttime must contains UTC time in micro-seconds unit 9589
eccutil.h deprecated 425
errstrs.c 989
exports.gyp 1679
hasht.h Opaque objects 1907
kyber.h The Kyber768 parameters specified in version 3.02 of the NIST submission https://pq-crystals.org/kyber/data/kyber-specification-round3-20210804.pdf 1288
Makefile 1858
manifest.mn 1436
nssb64.h Public prototypes for base64 encoding/decoding. 3248
nssb64d.c Base64 decoding (ascii to binary). 26496
nssb64e.c Base64 encoding (binary to ascii). 21814
nssb64t.h Public data structures for base64 encoding/decoding. 466
nsshash.c put these mapping functions in util, so they can be used everywhere 5032
nsshash.h _NSSHASHT_H_ 621
nssilckt.h nssilock.h - Instrumented locking functions for NSS * * Description: * nssilock provides instrumentation for locks and monitors in * the NSS libraries. The instrumentation, when enabled, causes * each call to the instrumented function to record data about * the call to an external file. The external file * subsequently used to extract performance data and other * statistical information about the operation of locks used in * the nss library. * * To enable compilation with instrumentation, build NSS with * the compile time switch NEED_NSS_ILOCK defined. * * say: "gmake OS_CFLAGS+=-DNEED_NSS_ILOCK" at make time. * * At runtime, to enable recording from nssilock, one or more * environment variables must be set. For each nssILockType to * be recorded, an environment variable of the form NSS_ILOCK_x * must be set to 1. For example: * * set NSS_ILOCK_Cert=1 * * nssilock uses PRLOG is used to record to trace data. The * PRLogModule name associated with nssilock data is: "nssilock". * To enable recording of nssilock data you will need to set the * environment variable NSPR_LOG_MODULES to enable * recording for the nssilock log module. Similarly, you will * need to set the environment variable NSPR_LOG_FILE to specify * the filename to receive the recorded data. See prlog.h for usage. * Example: * * export NSPR_LOG_MODULES=nssilock:6 * export NSPR_LOG_FILE=xxxLogfile * * Operation: * nssilock wraps calls to NSPR's PZLock and PZMonitor functions * with similarly named functions: PZ_NewLock(), etc. When NSS is * built with lock instrumentation enabled, the PZ* functions are * compiled into NSS; when lock instrumentation is disabled, * calls to PZ* functions are directly mapped to PR* functions * and the instrumentation arguments to the PZ* functions are * compiled away. * * * File Format: * The format of the external file is implementation * dependent. Where NSPR's PR_LOG() function is used, the file * contains data defined for PR_LOG() plus the data written by * the wrapped function. On some platforms and under some * circumstances, platform dependent logging or * instrumentation probes may be used. In any case, the * relevant data provided by the lock instrumentation is: * * lockType, func, address, duration, line, file [heldTime] * * where: * * lockType: a character representation of nssILockType for the * call. e.g. ... "cert" * * func: the function doing the tracing. e.g. "NewLock" * * address: address of the instrumented lock or monitor * * duration: is how long was spent in the instrumented function, * in PRIntervalTime "ticks". * * line: the line number within the calling function * * file: the file from which the call was made * * heldTime: how long the lock/monitor was held. field * present only for PZ_Unlock() and PZ_ExitMonitor(). * * Design Notes: * The design for lock instrumentation was influenced by the * need to gather performance data on NSS 3.x. It is intended * that the effort to modify NSS to use lock instrumentation * be minimized. Existing calls to locking functions need only * have their names changed to the instrumentation function * names. * * Private NSS Interface: * nssilock.h defines a private interface for use by NSS. * nssilock.h is experimental in nature and is subject to * change or revocation without notice. ... Don't mess with * it. * 5923
nssilock.c nssilock.c - NSS lock instrumentation wrapper functions NOTE - These are not public interfaces Implementation Notes: I've tried to make the instrumentation relatively non-intrusive. To do this, I have used a single PR_LOG() call in each instrumented function. There's room for improvement. 11335
nssilock.h nssilock.h - Instrumented locking functions for NSS * * Description: * nssilock provides instrumentation for locks and monitors in * the NSS libraries. The instrumentation, when enabled, causes * each call to the instrumented function to record data about * the call to an external file. The external file * subsequently used to extract performance data and other * statistical information about the operation of locks used in * the nss library. * * To enable compilation with instrumentation, build NSS with * the compile time switch NEED_NSS_ILOCK defined. * * say: "gmake OS_CFLAGS+=-DNEED_NSS_ILOCK" at make time. * * At runtime, to enable recording from nssilock, one or more * environment variables must be set. For each nssILockType to * be recorded, an environment variable of the form NSS_ILOCK_x * must be set to 1. For example: * * set NSS_ILOCK_Cert=1 * * nssilock uses PRLOG is used to record to trace data. The * PRLogModule name associated with nssilock data is: "nssilock". * To enable recording of nssilock data you will need to set the * environment variable NSPR_LOG_MODULES to enable * recording for the nssilock log module. Similarly, you will * need to set the environment variable NSPR_LOG_FILE to specify * the filename to receive the recorded data. See prlog.h for usage. * Example: * * export NSPR_LOG_MODULES=nssilock:6 * export NSPR_LOG_FILE=xxxLogfile * * Operation: * nssilock wraps calls to NSPR's PZLock and PZMonitor functions * with similarly named functions: PZ_NewLock(), etc. When NSS is * built with lock instrumentation enabled, the PZ* functions are * compiled into NSS; when lock instrumentation is disabled, * calls to PZ* functions are directly mapped to PR* functions * and the instrumentation arguments to the PZ* functions are * compiled away. * * * File Format: * The format of the external file is implementation * dependent. Where NSPR's PR_LOG() function is used, the file * contains data defined for PR_LOG() plus the data written by * the wrapped function. On some platforms and under some * circumstances, platform dependent logging or * instrumentation probes may be used. In any case, the * relevant data provided by the lock instrumentation is: * * lockType, func, address, duration, line, file [heldTime] * * where: * * lockType: a character representation of nssILockType for the * call. e.g. ... "cert" * * func: the function doing the tracing. e.g. "NewLock" * * address: address of the instrumented lock or monitor * * duration: is how long was spent in the instrumented function, * in PRIntervalTime "ticks". * * line: the line number within the calling function * * file: the file from which the call was made * * heldTime: how long the lock/monitor was held. field * present only for PZ_Unlock() and PZ_ExitMonitor(). * * Design Notes: * The design for lock instrumentation was influenced by the * need to gather performance data on NSS 3.x. It is intended * that the effort to modify NSS to use lock instrumentation * be minimized. Existing calls to locking functions need only * have their names changed to the instrumentation function * names. * * Private NSS Interface: * nssilock.h defines a private interface for use by NSS. * nssilock.h is experimental in nature and is subject to * change or revocation without notice. ... Don't mess with * it. * 7743
nsslocks.h nsslocks.h - threadsafe functions to initialize lock pointers. NOTE - The interfaces formerly in this header were private and are now all obsolete. 380
nssrwlk.c Reader-writer lock 12849
nssrwlk.h File: nsrwlock.h * Description: API to basic reader-writer lock functions of NSS. * These locks allow re-entry from writers but not readers. That is, * If I hold the write lock, I can ask for it and get it again. * If I hold the write lock, I can also ask for and get a read lock. * I can then release the locks in any order (read or write). * If I hold a read lock, I must not ask for another read lock or * the write lock. * I must release each lock type as many times as I acquired it. * * For deadlock detection, locks should be ranked, and no lock may be aquired * while I hold a lock of higher rank number. * If you don't want that feature, always use NSS_RWLOCK_RANK_NONE. * Lock name is for debugging, and is optional (may be NULL) 5047
nssrwlkt.h NSSRWLock -- The reader writer lock, NSSRWLock, is an opaque object to the clients of NSS. All routines operate on a pointer to this opaque entity. 535
nssutil.def 10086
nssutil.h NSS utilities's major version, minor version, patch level, build number, and whether this is a beta release. The format of the version string should be "<major version>.<minor version>[.<patch level>[.<build number>]][ <Beta>]" 968
nssutil.rc 1934
oidstring.c if to->data is not NULL, and to->len is large enough to hold the result, then the resultant OID will be copyed into to->data, and to->len will be changed to show the actual OID length. Otherwise, memory for the OID will be allocated (from the caller's PLArenaPool, if pool is non-NULL) and to->data will receive the address of the allocated data, and to->len will receive the OID length. The original value of to->data is not freed when a new buffer is allocated. The input string may begin with "OID." and this still be ignored. The length of the input string is given in len. If len == 0, then len will be computed as strlen(from), meaning it must be NUL terminated. It is an error if from == NULL, or if *from == '\0'. 3847
pkcs1sig.c The value for SGN_PKCS1_DIGESTINFO_MAX_PREFIX_LEN_EXCLUDING_OID is based on the possible prefix encodings as explained below. 4863
pkcs1sig.h SGN_VerifyPKCS1DigestInfo verifies that the length of the digest is correct for the given algorithm, then verifies that the recovered data from the PKCS#1 signature is a properly-formatted DigestInfo that identifies the given digest algorithm, then verifies that the digest in the DigestInfo matches the given digest. dataRecoveredFromSignature must be the result of calling PK11_VerifyRecover or equivalent. If unsafeAllowMissingParameters is true (not recommended), then a DigestInfo without the mandatory ASN.1 NULL parameter will also be accepted. 1202
pkcs11.h Copyright (C) 1994-1999 RSA Security Inc. Licence to copy this document is granted provided that it is identified as "RSA Security In.c Public-Key Cryptography Standards (PKCS)" in all material mentioning or referencing this document. The latest version of this header can be found at: http://www.rsalabs.com/pkcs/pkcs-11/index.html 8022
pkcs11f.h Copyright (C) 1994-1999 RSA Security Inc. Licence to copy this document is granted provided that it is identified as "RSA Security In.c Public-Key Cryptography Standards (PKCS)" in all material mentioning or referencing this document. 31818
pkcs11n.h pkcs11n.h This file contains the NSS-specific type definitions for Cryptoki (PKCS#11). 28853
pkcs11p.h Copyright (C) 1994-1999 RSA Security Inc. Licence to copy this document is granted provided that it is identified as "RSA Security Inc. Public-Key Cryptography Standards (PKCS)" in all material mentioning or referencing this document. 869
pkcs11t.h an unsigned 8-bit value 88685
pkcs11u.h Copyright (C) 1994-1999 RSA Security Inc. Licence to copy this document is granted provided that it is identified as "RSA Security Inc. Public-Key Cryptography Standards (PKCS)" in all material mentioning or referencing this document. 709
pkcs11uri.c Character sets used in the ABNF rules in RFC7512. 24727
pkcs11uri.h Path attributes defined in RFC7512. 3065
portreg.c shexp.c: shell-like wildcard match routines See shexp.h for public documentation. 12285
portreg.h shexp.h: Defines and prototypes for shell exp. match routines This routine will match a string with a shell expression. The expressions accepted are based loosely on the expressions accepted by zsh. o * matches anything o ? matches one character o \ will escape a special character o $ matches the end of the string Bracketed expressions: o [abc] matches one occurence of a, b, or c. o [^abc] matches any character except a, b, or c. To be matched between [ and ], these characters must be escaped: \ ] No other characters need be escaped between brackets. Unnecessary escaping is permitted. o [a-z] matches any character between a and z, inclusive. The two range-definition characters must be alphanumeric ASCII. If one is upper case and the other is lower case, then the ASCII non-alphanumeric characters between Z and a will also be in range. o [^a-z] matches any character except those between a and z, inclusive. These forms cannot be combined, e.g [a-gp-z] does not work. o Exclusions: As a top level, outter-most expression only, the expression foo~bar will match the expression foo, provided it does not also match the expression bar. Either expression or both may be a union. Except between brackets, any unescaped ~ is an exclusion. At most one exclusion is permitted. Exclusions cannot be nested (contain other exclusions). example: *~abc will match any string except abc o Unions: (foo|bar) will match either the expression foo, or the expression bar. At least one '|' separator is required. More are permitted. Expressions inside unions may not include unions or exclusions. Inside a union, to be matched and not treated as a special character, these characters must be escaped: \ ( | ) [ ~ except when they occur inside a bracketed expression, where only \ and ] require escaping. The public interface to these routines is documented below. 3083
quickder.c Optimized ASN.1 DER decoder 29918
secalgid.c XXX remove this when remove the DERTemplate 4090
secasn1.h Support for encoding/decoding of ASN.1 using BER/DER (Basic/Distinguished Encoding Rules). The routines are found in and used extensively by the security library, but exported for other use. 13215
secasn1d.c Support for DEcoding ASN.1 data based on BER/DER (Basic/Distinguished Encoding Rules). 114448
secasn1e.c Support for ENcoding ASN.1 data based on BER/DER (Basic/Distinguished Encoding Rules). 51533
secasn1t.h Types for encoding/decoding of ASN.1 using BER/DER (Basic/Distinguished Encoding Rules). 10916
secasn1u.c Utility routines to complement the ASN.1 encoding and decoding functions. 2810
seccomon.h seccomon.h - common data structures for security libraries This file should have lowest-common-denominator datastructures for security libraries. It should not be dependent on any other headers, and should not require linking with any libraries. 2163
secder.h secder.h - public data structures and prototypes for the DER encoding and decoding utilities library 6057
secdert.h secdert.h - public data structures for the DER encoding and decoding utilities library 3969
secdig.c XXX Want to have a SGN_DecodeDigestInfo, like: SGNDigestInfo *SGN_DecodeDigestInfo(SECItem *didata); that creates a pool and allocates from it and decodes didata into the newly allocated DigestInfo structure. Then fix secvfy.c (it will no longer need an arena itself) to call this and then call DestroyDigestInfo when it is done, then can remove the old template above and keep our new template static and "hidden". 4467
secdig.h / /* * Digest-info functions 3369
secdigt.h A PKCS#1 digest-info object 622
secerr.h Fortezza Alerts 11680
SECerrs.h General security error codes 22018
secitem.c Support routines for SECItem data structure. 11328
secitem.h secitem.h - public data structures and prototypes for handling SECItems 4771
secload.c If 'link' is a symbolic link, this function follows the symbolic links and returns the pathname of the ultimate source of the symbolic links. If 'link' is not a symbolic link, this function returns NULL. The caller should call PR_Free to free the string returned by this function. 6278
secoid.c Library identity and versioning 109139
secoid.h secoid.h - public data structures and prototypes for ASN.1 OID functions 5912
secoidt.h secoidt.h - public data structures for ASN.1 OID functions 22289
secplcy.c Translate index to cipher. 2134
secplcy.h Cipher policy enforcement. This code isn't very pretty, but it accomplishes * the purpose of obscuring policy information from potential fortifiers. :-) * * The following routines are generic and intended for anywhere where cipher * policy enforcement is to be done, e.g. SSL and PKCS7&12. 3365
secport.c secport.c - portability interfaces for security libraries This file abstracts out libc functionality that libsec depends on NOTE - These are not public interfaces 26059
secport.h secport.h - portability interfaces for security libraries 14924
sectime.c convert DER utc time to ascii time string 4330
templates.c Templates that are compiled and exported from both libnss3 and libnssutil3. They have to be, because they were previously exported from libnss3, and there is no way to create data forwarder symbols on Unix. Please do not add to this file. New shared templates should be exported from libnssutil3 only. 4054
utf8.c From RFC 2044: UCS-4 range (hex.) UTF-8 octet sequence (binary) 0000 0000-0000 007F 0xxxxxxx 0000 0080-0000 07FF 110xxxxx 10xxxxxx 0000 0800-0000 FFFF 1110xxxx 10xxxxxx 10xxxxxx 0001 0000-001F FFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx 0020 0000-03FF FFFF 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 0400 0000-7FFF FFFF 1111110x 10xxxxxx ... 10xxxxxx 13228
util.gyp 1303
utilmod.c The following code handles the storage of PKCS 11 modules used by the NSS. For the rest of NSS, only one kind of database handle exists: SFTKDBHandle There is one SFTKDBHandle for each key database and one for each cert database. These databases are opened as associated pairs, one pair per slot. SFTKDBHandles are reference counted objects. Each SFTKDBHandle points to a low level database handle (SDB). This handle represents the underlying physical database. These objects are not reference counted, and are 'owned' by their respective SFTKDBHandles. 27482
utilmodt.h these are SECMOD flags that would normally be in secmodt.h, but are needed for the parser in util. Fort this reason we preserve the SECMOD names. 1618
utilpars.c The following code handles the storage of PKCS 11 modules used by the NSS. This file is written to abstract away how the modules are stored so we can decide that later. 37074
utilpars.h handle a module db request 3527
utilparst.h macros to handle parsing strings of blank sparated arguments. Several NSSUTIL_HANDLE_STRING() macros should be places one after another with no intervening code. The first ones have precedence over the later ones. The last Macro should be NSSUTIL_HANDLE_FINAL_ARG. param is the input parameters. On exit param will point to the next parameter to parse. If the last paramter has been returned, param points to a null byte (*param = '0'); target is the location to store any data aquired from the parameter. Caller is responsible to free this data. value is the string value of the parameter. command is any commands you need to run to help process the parameter's data. 3424
utilrename.h utilrename.h - rename symbols moved from libnss3 to libnssutil3 9060
verref.h This header is used inline in a function to ensure that a version string symbol is linked in and not optimized out. A volatile reference is added to the variable identified by NSS_VERSION_VARIABLE. Use this as follows: #define NSS_VERSION_VARIABLE __nss_ssl_version #include "verref.h" 1268