Name Description Size
addons-public-intermediate.crt 0
addons-public.crt 0
addons-stage.crt 0
AppSignatureVerification.cpp out 47079
AppTrustDomain.cpp additionalNameConstraints 10799
AppTrustDomain.h out 3961
builtins
cert_storage
CertStorageMemoryReporting.cpp 756
CommonSocketControl.cpp 16111
CommonSocketControl.h 6782
components.conf 5642
content-signature-local.crt 0
content-signature-prod.crt 0
content-signature-stage.crt 0
ContentSignatureVerifier.cpp out 16119
ContentSignatureVerifier.h 1115
crashtests
CredentialManagerSecret.cpp out 3864
CredentialManagerSecret.h out 984
CryptoTask.cpp 1246
CryptoTask.h Frequently we need to run a task on a background thread without blocking the main thread, and then call a callback on the main thread with the result. This class provides the framework for that. Subclasses must: (1) Override CalculateResult for the off-the-main-thread computation. (2) Override CallCallback() for the on-the-main-thread call of the callback. 1481
DataStorage.cpp 27666
DataStorage.h DataStorage is a threadsafe, generic, narrow string-based hash map that persists data on disk and additionally handles temporary and private data. However, if used in a context where there is no profile directory, data will not be persisted. Its lifecycle is as follows: - Allocate with a filename (this is or will eventually be a file in the profile directory, if the profile exists). - Call Init() from the main thread. This spins off an asynchronous read of the backing file. - Eventually observers of the topic "data-storage-ready" will be notified with the backing filename as the data in the notification when this has completed. - Should the profile directory not be available, (e.g. in xpcshell), DataStorage will not initially read any persistent data. The "data-storage-ready" event will still be emitted. This follows semantics similar to the permission manager and allows tests that test unrelated components to proceed without a profile. - A timer periodically fires on a background thread that checks if any persistent data has changed, and if so writes all persistent data to the backing file. When this happens, observers will be notified with the topic "data-storage-written" and the backing filename as the data. It is possible to receive a "data-storage-written" event while there exist pending persistent data changes. However, those changes will eventually be written when the timer fires again, and eventually another "data-storage-written" event will be sent. - When a DataStorage instance observes the topic "profile-before-change" in anticipation of shutdown, all persistent data for that DataStorage is written to the backing file (this blocks the main thread). In the process of doing this, the background serial event target responsible for these writes is then shut down to prevent further writes to that file (the background timer is also cancelled when this happens). If "profile-before-change" is not observed, this happens upon observing "xpcom-shutdown-threads". - For testing purposes, the preference "test.datastorage.write_timer_ms" can be set to cause the asynchronous writing of data to happen more quickly. - To prevent unbounded memory and disk use, the number of entries in each table is limited to 1024. Evictions are handled in by a modified LRU scheme (see implementation comments). - NB: Instances of DataStorage have long lifetimes because they are strong observers of events and won't go away until the observer service does. For each key/value: - The key must be a non-empty string containing no instances of '\t' or '\n' (this is a limitation of how the data is stored and will be addressed in the future). - The key must have a length no more than 256. - The value must not contain '\n' and must have a length no more than 1024. (the length limits are to prevent unbounded disk and memory usage) 8952
DataStorageList.h 873
DER.sys.mjs Class representing a decoded BIT STRING. 10228
EnterpriseRoots.cpp 14876
EnterpriseRoots.h 1061
gen_cert_header.py 1514
ipcclientcerts
IPCClientCertsChild.cpp 551
IPCClientCertsChild.h 876
IPCClientCertsParent.cpp 4983
IPCClientCertsParent.h 1123
KeychainSecret.cpp 8023
KeychainSecret.h out 1276
LibSecret.cpp <private> 13111
LibSecret.h out 933
md4.c "clean room" MD4 implementation (see RFC 1320) 4769
md4.h md4sum - computes the MD4 sum over the input buffer per RFC 1320 @param input buffer containing input data @param inputLen length of input buffer (number of bytes) @param result 16-byte buffer that will contain the MD4 sum upon return NOTE: MD4 is superceded by MD5. do not use MD4 unless required by the protocol you are implementing (e.g., NTLM requires MD4). NOTE: this interface is designed for relatively small buffers. A streaming interface would make more sense if that were a requirement. Currently, this is good enough for the applications we care about. 1099
moz.build 7215
nsCertOverrideService.cpp out 21986
nsCertOverrideService.h 67ba681d-5485-4fff-952c-2ee337ffdcd6 4914
nsCertTree.cpp heading for thread 23763
nsCertTree.h Disable the "base class XXX should be explicitly initialized in the copy constructor" warning. 3879
nsClientAuthRemember.cpp out 11523
nsClientAuthRemember.h 2566
nsCryptoHash.cpp 5245
nsCryptoHash.h 997
nsICertificateDialogs.idl Functions that implement user interface dialogs to manage certificates. 2414
nsICertOverrideService.idl The hostname of the server the override is used for. 5659
nsICertStorage.idl Callback type used to notify callers that an operation performed by nsICertStorage has completed. Indicates the result of the requested operation, as well as any data returned by the operation. 11330
nsICertTree.idl 1118
nsIClientAuthDialogs.idl Provides UI for SSL client-auth dialogs. 1612
nsIClientAuthRememberService.idl 2052
nsIContentSignatureVerifier.idl An interface for verifying content-signatures, inspired by https://tools.ietf.org/html/draft-thomson-http-content-signature-00 described here https://github.com/franziskuskiefer/content-signature/tree/pki 2301
nsICryptoHash.idl nsICryptoHash This interface provides crytographic hashing algorithms. 4024
nsINSSComponent.idl When we log out of a PKCS#11 token, any TLS connections that may have involved a client certificate stored on that token must be closed. Since we don't have a fine-grained way to do this, we basically cancel everything. More speficially, this clears all temporary certificate exception overrides and any remembered client authentication certificate decisions, and then cancels all network connections (strictly speaking, this last part is overzealous - we only need to cancel all https connections (see bug 1446645)). 4231
nsINSSErrorsService.idl @param aNSPRCode An error code obtained using PR_GetError() @return True if it is error code defined by the NSS library 3011
nsINSSVersion.idl Minimal required versions as used at build time 1233
nsIOSKeyStore.idl This interface provides encryption and decryption operations for data at rest. The key used to encrypt and decrypt the data is stored in the OS key store. Usage: // obtain the singleton OSKeyStore instance const oskeystore = Cc["@mozilla.org/security/oskeystore;1"].getService(Ci.nsIOSKeyStore); const PASSWORD_LABEL = "mylabel1"; const COOKIE_LABEL = "mylabel2"; // Unlock the key store. // Note that this is not necesssary. The key store will be unlocked // automatically when an operation is performed on it. await oskeystore.asyncUnlock(); // Check if there's a secret for your label already. if (!await oskeystore.asyncSecretAvailable(PASSWORD_LABEL)) { // Fail or generate a new secret for your label. // If you want to generate a new secret, do. // Hold onto `recoveryPhrase` to present to the user. let recoveryPhrase = await oskeystore.asyncGenerateSecret(PASSWORD_LABEL); } // Assuming there's a secret with your label. Encrypt/Decrypt as follows. let encryptedPasswordBytes = await oskeystore.asyncEncryptBytes(PASSWORD_LABEL, passwordBytes); let newPasswordBytes = await oskeystore.asyncDecryptBytes(PASSWORD_LABEL, encryptedPasswordBytes); // Delete the secret from the key store. await oskeystore.asyncDeleteSecret(PASSWORD_LABEL); // Recover a secret from a recovery code. await oskeystore.asyncRecoverSecret(PASSWORD_LABEL, recoveryPhrase); // Lock the key store to prompt the user to log into her OS key store again. await oskeystore.asyncLock(); 5190
nsIOSReauthenticator.idl This interface provides an abstract way to request that the user reauthenticate themselves to the operating system. It may be useful in conjunction with nsIOSKeyStore, whereby consumers of these APIs may consider some secrets too sensitive to access without first reauthenticating the user. Usage: // obtain the singleton nsIOSReauthenticator instance const reauthenticator = Cc["@mozilla.org/security/osreauthenticator;1"] .getService(Ci.nsIOSReauthenticator); if (await reauthenticator.asyncReauthenticate()) { // do something only authenticated users are allowed to do... } else { // show a "sorry, this isn't allowed" error } 1958
nsIPK11Token.idl The name of the token 2135
nsIPK11TokenDB.idl The PK11 Token Database provides access to the PK11 modules that are installed, and the tokens that are available. Interfaces: nsIPK11TokenDB Threading: ?? 836
nsIPKCS11Module.idl 628
nsIPKCS11ModuleDB.idl 1038
nsIPKCS11Slot.idl Manufacturer ID of the slot. 1553
nsIPublicKeyPinningService.idl Returns true if the host of the given URI has pinning information, and false otherwise. 632
nsISecretDecoderRing.idl Encrypt to Base64 output. Note that the input must basically be a byte array (i.e. the code points must be within the range [0, 255]). Hence, using this method directly to encrypt passwords (or any text, really) won't work as expected. Instead, use something like nsIScriptableUnicodeConverter to first convert the desired password or text to UTF-8, then encrypt that. Remember to convert back when calling decryptString(). @param text The text to encrypt. @return The encrypted text, encoded as Base64. 2709
nsISecurityUITelemetry.idl Addon installation warnings 1280
nsISiteSecurityService.idl Parses a given HTTP header and records the results internally. Currently one header type is supported: HSTS (aka STS). The format of the HSTS header is defined by the HSTS specification: https://tools.ietf.org/html/rfc6797 and allows a host to specify that future HTTP requests should be upgraded to HTTPS. The caller is responsible for first determining that the header was delivered via a trustworthy connection (namely, https with no errors). @param aSourceURI the URI of the resource with the HTTP header. @param aHeader the HTTP response header specifying security data. @param aOriginAttributes the origin attributes that isolate this origin, (note that this implementation does not isolate by userContextId because of the risk of man-in- the-middle attacks before trust-on-second-use happens). If mPrivateBrowsingId > 0, information gathered from this header will not be saved persistently. @param aMaxAge the parsed max-age directive of the header. @param aIncludeSubdomains the parsed includeSubdomains directive. @param aFailureResult a more specific failure result if NS_ERROR_FAILURE was returned. @return NS_OK if it succeeds NS_ERROR_FAILURE if it can't be parsed NS_SUCCESS_LOSS_OF_INSIGNIFICANT_DATA if there are unrecognized tokens in the header. 6770
nsITLSSocketControl.idl NPN (Next Protocol Negotiation) is a mechanism for negotiating the protocol to be spoken inside the SSL tunnel during the SSL handshake. The NPNList is the list of offered client side protocols. setNPNList() needs to be called before any data is read or written (including the handshake to be setup correctly. The server determines the priority when multiple matches occur, but if there is no overlap the first protocol in the list is used. 6348
nsITokenPasswordDialogs.idl This is the interface for setting and changing password on a PKCS11 token. 902
nsITransportSecurityInfo.idl The following parameters are only valid after the TLS handshake has completed. Check securityState first. 4346
nsIX509Cert.idl forward declaration 5185
nsIX509CertDB.idl Callback type for use with asyncVerifyCertAtTime. If aPRErrorCode is PRErrorCodeSuccess (i.e. 0), aVerifiedChain represents the verified certificate chain determined by asyncVerifyCertAtTime. aHasEVPolicy represents whether or not the end-entity certificate verified as EV. If aPRErrorCode is non-zero, it represents the error encountered during verification. aVerifiedChain is null in that case and aHasEVPolicy has no meaning. 13593
nsIX509CertValidity.idl Information on the validity period of a X.509 certificate. 728
nsNSSCallbacks.cpp out 39995
nsNSSCallbacks.h out 1373
nsNSSCertHelper.cpp out 3100
nsNSSCertHelper.h out 1065
nsNSSCertificate.cpp 20685
nsNSSCertificate.h 660a3226-915c-4ffb-bb20-8985a632df05 1696
nsNSSCertificateDB.cpp out 42668
nsNSSCertificateDB.h fb0bbc5c-452e-4783-b32c-80124693d871 2600
nsNSSCertTrust.cpp 4352
nsNSSCertTrust.h Class for maintaining trust flags for an NSS certificate. 1608
nsNSSComponent.cpp 100514
nsNSSComponent.h out 5672
nsNSSHelper.h 1050
nsNSSIOLayer.cpp out 60962
nsNSSIOLayer.h in/out 4911
nsNSSModule.cpp 3886
nsNSSModule.h 586
nsNSSVersion.cpp 1729
nsNSSVersion.h 842
nsNTLMAuthModule.cpp We don't actually send a LM response, but we still have to send something in this spot 32228
nsNTLMAuthModule.h 750
nsPK11TokenDB.cpp out 8695
nsPK11TokenDB.h out 1870
nsPKCS11Slot.cpp out 8060
nsPKCS11Slot.h out 1507
nsPKCS12Blob.cpp 12872
nsPKCS12Blob.h 1769
nsRandomGenerator.cpp 916
nsRandomGenerator.h 899
nsSecureBrowserUI.cpp 5483
nsSecureBrowserUI.h 1497
nsSecurityHeaderParser.cpp 5625
nsSecurityHeaderParser.h 2842
NSSErrorsService.cpp Please ensure the NSS error codes are mapped into the positive range 0x1000 to 0xf000 Search for NS_ERROR_MODULE_SECURITY to ensure there are no conflicts. The current code also assumes that NSS library error codes are negative. 6625
NSSErrorsService.h 1623
nsSiteSecurityService.cpp out 33256
nsSiteSecurityService.h SecurityPropertyState: A utility enum for representing the different states a security property can be in. SecurityPropertySet and SecurityPropertyUnset correspond to indicating a site has or does not have the security property in question, respectively. SecurityPropertyKnockout indicates a value on a preloaded list is being overridden, and the associated site does not have the security property in question. 5928
NSSKeyStore.cpp Implementing OSKeyStore when there is no platform specific one. This key store instead puts the keys into the NSS DB. 7286
NSSKeyStore.h out 1315
nsSSLSocketProvider.cpp 1940
nsSSLSocketProvider.h 217d014a-1dd2-11b2-999c-b0c4df79b324 977
NSSSocketControl.cpp 22492
NSSSocketControl.h 11349
nsSTSPreloadList.inc 2830071
nsTLSSocketProvider.cpp 1962
nsTLSSocketProvider.h b9507aec-1dd1-11b2-8cd5-c48ee0c50307 934
nsVerificationJob.h 1084
osclientcerts
OSKeyStore.cpp out 22731
OSKeyStore.h out 3985
OSReauthenticator.cpp 20003
OSReauthenticator.h out 1194
OSReauthenticatorDarwin.mm out 2720
PIPCClientCerts.ipdl 1101
PKCS11ModuleDB.cpp lock down the list for reading 5977
PKCS11ModuleDB.h 952
PSelectTLSClientAuthCert.ipdl 691
PSMIPCTypes.ipdlh 1286
PSMRunnable.cpp 979
PSMRunnable.h 1413
PublicKeyPinningService.cpp Computes in the location specified by base64Out the SHA256 digest of the DER Encoded subject Public Key Info for the given cert 13451
PublicKeyPinningService.h Sets chainHasValidPins to true if the given (host, certList) passes pinning checks, or to false otherwise. If the host is pinned, returns true via chainHasValidPins if one of the keys in the given certificate chain matches the pin set specified by the hostname. The certList's head is the EE cert and the tail is the trust anchor. Note: if an alt name is a wildcard, it won't necessarily find a pinset that would otherwise be valid for it 1809
PublicSSL.h 636
PVerifySSLServerCert.ipdl 1013
RemoteSecuritySettings.sys.mjs Helper function that returns a promise that will resolve with whether or not the nsICertStorage implementation has prior data of the given type. @param {Integer} dataType a Ci.nsICertStorage.DATA_TYPE_* constant indicating the type of data @returns {Promise} a promise that will resolve with true if the data type is present 22763
RootCertificateTelemetryUtils.cpp 5270
RootCertificateTelemetryUtils.h 1396
RootHashes.inc 70336
rsclientcerts
ScopedNSSTypes.h out 16008
SecretDecoderRing.cpp out 10762
SecretDecoderRing.h out 1157
SelectTLSClientAuthCertChild.h 1611
SelectTLSClientAuthCertParent.h 2231
SharedCertVerifier.h 1314
SharedSSLState.cpp static 5529
SharedSSLState.h 2129
SSLServerCertVerification.cpp 46125
SSLServerCertVerification.h 6542
StaticHPKPins.errors 2701
StaticHPKPins.h / /* This is an automatically generated file. If you're not 49481
tests
TLSClientAuthCertSelection.cpp 36256
TLSClientAuthCertSelection.h 4435
TransportSecurityInfo.cpp 35081
TransportSecurityInfo.h 4541
VerifySSLServerCertChild.cpp 4473
VerifySSLServerCertChild.h 2208
VerifySSLServerCertParent.cpp 6718
VerifySSLServerCertParent.h 2350
X509.sys.mjs Helper function to read a NULL tag from the given DER. @param {DER} der a DER object to read a NULL from @returns {null} an object representing an ASN.1 NULL 18327
X509CertValidity.cpp 2807
X509CertValidity.h 816