Giter Club home page Giter Club logo

johnstonli / nss-nspr-windows Goto Github PK

View Code? Open in Web Editor NEW

This project forked from sergey-cheperis/nss-nspr-windows

0.0 0.0 0.0 65.32 MB

Mozilla NSS and NSPR set up to be built for Windows with Visual Studio 2017.

License: Mozilla Public License 2.0

Shell 2.02% JavaScript 0.11% C++ 20.87% Python 1.23% Perl 0.18% C 69.72% Assembly 3.07% PowerShell 0.01% Makefile 1.35% HTML 0.60% CMake 0.06% Batchfile 0.01% Yacc 0.01% Lex 0.02% M4 0.23% Dockerfile 0.03% Roff 0.46% sed 0.01% Starlark 0.03%

nss-nspr-windows's Introduction

nss-nspr-windows

Mozilla NSS and NSPR set up to be built for Windows (Vista and later) with Visual Studio 2017.

Network Security Services (NSS) is a set of libraries designed to support cross-platform development of security-enabled client and server applications. For more information, see https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS.

Netscape Portable Runtime (NSPR) provides a platform-neutral API for system level and libc-like functions and is required to build NSS. See https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSPR.

This repository contains following stable releases:

  • NSPR 4.25
  • NSS 3.51.1

Sources were patched to fix minor Windows-specific build errors.

Pre-built libraries

Normally you don't need to compile the libraries yourself. You can just download the zip archive from the prebuilt directory. The archive contains include files, .lib files, .dll's and tools, that is everything needed to use NSS+NSPR in your program. Both debug and release builds are included, as well as both 32-bit and 64-bit platforms.

To run tools, you'll need to copy .dll's to bin directory or keep them somewhere in your PATH.

Following sections are applicable if you are going to compile libraries yourself.

Required software

  1. Visual Studio 2017 with C++ support, x86 and amd64 platforms, Windows 8.1 or 10 SDK, and ATL (not tested with other versions)
  2. Mozilla Build suite: https://wiki.mozilla.org/MozillaBuild (can be installed with Chocolatey: choco install MozillaBuild)

Usage

  1. In build.cmd, change the paths to Visual Studio helper files and Mozilla Build suite (if your paths differ from defaults).
  2. Run build.cmd.
  3. Run test.cmd if you want to run tests (can take a very long time).
  4. Run powershell -file create-prebuilt-archive.ps1 to create the pre-built zip archive.

For you reference, patches that were used to achieve a successful build, are located in diff subdirectory. They are already applied to the source tree.

Known issues

  1. shlibsign crashes or hangs, so it has been disabled.
  2. NSS does not seem to support building statically yet (though there is work in progress), so you'll have to distribute all the DLL's with your program (except test libs: gtest132.dll, gtestutil32.dll, nssckbi-testlib.dll and pkcs11testmodule.dll).

TODOs

Convert to use new gyp/ninja build system, which should also allow producing static libraries.

References

https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/NSS_Sources_Building_Testing

Code examples

Program for decoding Firefox saved passwords with NSS

nss-nspr-windows's People

Contributors

sergey-cheperis avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.