Getting Started With NSS¶
The NSS library and its supporting command line tools are written in the C programming language. Its build system and the automated tests are based on makefiles and bash scripts.
Over time, many documents have been produced that describe various aspects of NSS. You can start with:
the current primary NSS documentation page from which we link to other documentation.
a General Overview of the applications that use NSS and the features it provides.
a high level An overview of NSS Internals.
learn about getting the NSS sources building testing
Old documentation that is on the archived mozilla.org website.
(Unfortunately the NSS project doesn’t have a technical writer at this time, so our documentation is not as organized as we would like it to be. You could contribute by organizing it in a better way.)
A good place to start learning how to write NSS applications are the command line tools that are maintained by the NSS developers. You can find them in subdirectory mozilla/security/nss/cmd
Or have a look at some basic NSS Sample Code.
A new set of samples is currently under development and review, see Create new NSS samples.
You are welcome to download the samples via: hg clone https://hg.mozilla.org/projects/nss; cd nss; hg update SAMPLES_BRANCH
… (this section is still under construction, but there are many contribution opportunities)
Start by opening a bugzilla account at bugzilla.mozilla.org if you don’t have one.
NSS :: Libraries component for issues you’d like to work on. We maintain a list of NSS bugs marked with a keyword “good-first-bug” that you can view.
Seee our section on NSS sources building testing to get started making your patch. When you’re satisfied with it, you’ll need code review.
http://phabricator.services.mozilla.com/ is our code review tool, which uses your Bugzilla account. Use our Phabricator user instructions to upload patches for review.
Some items that will be evaluated during code review are listed in checklist form on Github.
Note that we don’t land code that isn’t both reviewed and tested. Code only works when it has tests, and tests only work when they’re part of the automation.