# Forge
[![npm package](https://nodei.co/npm/node-forge.png?downloads=true&downloadRank=true&stars=true)](https://nodei.co/npm/node-forge/)
[![Build Status](https://github.com/digitalbazaar/forge/workflows/Main%20Checks/badge.svg)](https://github.com/digitalbazaar/forge/actions?query=workflow%3A%22Main+Checks%22)
A native implementation of [TLS][] (and various other cryptographic tools) in
[JavaScript][].
Introduction
------------
The Forge software is a fully native implementation of the [TLS][] protocol
in JavaScript, a set of cryptography utilities, and a set of tools for
developing Web Apps that utilize many network resources.
Performance
------------
Forge is fast. Benchmarks against other popular JavaScript cryptography
libraries can be found here:
* http://dominictarr.github.io/crypto-bench/
* http://cryptojs.altervista.org/test/simulate-threading-speed_test.html
Documentation
-------------
* [Introduction](#introduction)
* [Performance](#performance)
* [Installation](#installation)
* [Testing](#testing)
* [Contributing](#contributing)
### API
* [Options](#options)
### Transports
* [TLS](#tls)
* [HTTP](#http)
* [SSH](#ssh)
* [XHR](#xhr)
* [Sockets](#socket)
### Ciphers
* [CIPHER](#cipher)
* [AES](#aes)
* [DES](#des)
* [RC2](#rc2)
### PKI
* [ED25519](#ed25519)
* [RSA](#rsa)
* [RSA-KEM](#rsakem)
* [X.509](#x509)
* [PKCS#5](#pkcs5)
* [PKCS#7](#pkcs7)
* [PKCS#8](#pkcs8)
* [PKCS#10](#pkcs10)
* [PKCS#12](#pkcs12)
* [ASN.1](#asn)
### Message Digests
* [SHA1](#sha1)
* [SHA256](#sha256)
* [SHA384](#sha384)
* [SHA512](#sha512)
* [MD5](#md5)
* [HMAC](#hmac)
### Utilities
* [Prime](#prime)
* [PRNG](#prng)
* [Tasks](#task)
* [Utilities](#util)
* [Logging](#log)
* [Flash Networking Support](#flash)
### Other
* [Security Considerations](#security-considerations)
* [Library Background](#library-background)
* [Contact](#contact)
* [Donations](#donations)
---------------------------------------
Installation
------------
**Note**: Please see the [Security Considerations](#security-considerations)
section before using packaging systems and pre-built files.
Forge uses a [CommonJS][] module structure with a build process for browser
bundles. The older [0.6.x][] branch with standalone files is available but will
not be regularly updated.
### Node.js
If you want to use forge with [Node.js][], it is available through `npm`:
https://www.npmjs.com/package/node-forge
Installation:
npm install node-forge
You can then use forge as a regular module:
```js
var forge = require('node-forge');
```
The npm package includes pre-built `forge.min.js`, `forge.all.min.js`, and
`prime.worker.min.js` using the [UMD][] format.
### jsDelivr CDN
To use it via [jsDelivr](https://www.jsdelivr.com/package/npm/node-forge) include this in your html:
```html
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/forge.min.js"></script>
```
### unpkg CDN
To use it via [unpkg](https://unpkg.com/#/) include this in your html:
```html
<script src="https://unpkg.com/[email protected]/dist/forge.min.js"></script>
```
### Development Requirements
The core JavaScript has the following requirements to build and test:
* Building a browser bundle:
* Node.js
* npm
* Testing
* Node.js
* npm
* Chrome, Firefox, Safari (optional)
Some special networking features can optionally use a Flash component. See the
[Flash README](./flash/README.md) for details.
### Building for a web browser
To create single file bundles for use with browsers run the following:
npm install
npm run build
This will create single non-minimized and minimized files that can be
included in the browser:
dist/forge.js
dist/forge.min.js
A bundle that adds some utilities and networking support is also available:
dist/forge.all.js
dist/forge.all.min.js
Include the file via:
```html
<script src="YOUR_SCRIPT_PATH/forge.js"></script>
```
or
```html
<script src="YOUR_SCRIPT_PATH/forge.min.js"></script>
```
The above bundles will synchronously create a global 'forge' object.
**Note**: These bundles will not include any WebWorker scripts (eg:
`dist/prime.worker.js`), so these will need to be accessible from the browser
if any WebWorkers are used.
### Building a custom browser bundle
The build process uses [webpack][] and the [config](./webpack.config.js) file
can be modified to generate a file or files that only contain the parts of
forge you need.
[Browserify][] override support is also present in `package.json`.
Testing
-------
### Prepare to run tests
npm install
### Running automated tests with Node.js
Forge natively runs in a [Node.js][] environment:
npm test
### Running automated tests with Headless Chrome
Automated testing is done via [Karma][]. By default it will run the tests with
Headless Chrome.
npm run test-karma
Is 'mocha' reporter output too verbose? Other reporters are available. Try
'dots', 'progress', or 'tap'.
npm run test-karma -- --reporters progress
By default [webpack][] is used. [Browserify][] can also be used.
BUNDLER=browserify npm run test-karma
### Running automated tests with one or more browsers
You can also specify one or more browsers to use.
npm run test-karma -- --browsers Chrome,Firefox,Safari,ChromeHeadless
The reporter option and `BUNDLER` environment variable can also be used.
### Running manual tests in a browser
Testing in a browser uses [webpack][] to combine forge and all tests and then
loading the result in a browser. A simple web server is provided that will
output the HTTP or HTTPS URLs to load. It also will start a simple Flash Policy
Server. Unit tests and older legacy tests are provided. Custom ports can be
used by running `node tests/server.js` manually.
To run the unit tests in a browser a special forge build is required:
npm run test-build
To run legacy browser based tests the main forge build is required:
npm run build
The tests are run with a custom server that prints out the URLs to use:
npm run test-server
### Running other tests
There are some other random tests and benchmarks available in the tests
directory.
### Coverage testing
To perform coverage testing of the unit tests, run the following. The results
will be put in the `coverage/` directory. Note that coverage testing can slow
down some tests considerably.
npm install
npm run coverage
Contributing
------------
Any contributions (eg: PRs) that are accepted will be brought under the same
license used by the rest of the Forge project. This license allows Forge to
be used under the terms of either the BSD License or the GNU General Public
License (GPL) Version 2.
See: [LICENSE](https://github.com/digitalbazaar/forge/blob/cbebca3780658703d925b61b2caffb1d263a6c1d/LICENSE)
If a contribution contains 3rd party source code with its own license, it
may retain it, so long as that license is compatible with the Forge license.
API
---
<a name="options" />
### Options
If at any time you wish to disable the use of native code, where available,
for particular forge features like its secure random number generator, you
may set the ```forge.options.usePureJavaScript``` flag to ```true```. It is
not recommended that you set this flag as native code is typically more
performant and may have stronger security properties. It may be useful to
set this flag to test certain features that you plan to run in environments
that are different from your testing environment.
To disable native code when including forge in the browser:
```js
// run this *after* including the forge script
forge.options.usePureJavaScript = true;
```
To disable native code when using Node.js:
```js
var forge = require('node-forge');
forge.options.usePureJavaScript = true;
```
Transports
----------
<a name="tls" />
### TLS
Provides a native javascript client and server-side [TLS][] implementation.
__Examples__
```js
// create TLS client
var client = forge.tls.createConnection({
server: false,
c
没有合适的资源?快使用搜索试试~ 我知道了~
MongoDBCompass.rar
共806个文件
js:190个
pak:112个
ts:95个
需积分: 0 1 下载量 79 浏览量
2023-02-02
16:05:29
上传
评论
收藏 290.21MB RAR 举报
温馨提示
MongoDBCompass.rar
资源推荐
资源详情
资源评论
收起资源包目录
MongoDBCompass.rar (806个子文件)
app.asar 44.4MB
app.asar 35.71MB
AUTHORS 360B
AUTHORS 321B
.betaId 39B
v8_context_snapshot.bin 162KB
v8_context_snapshot.bin 161KB
snapshot_blob.bin 48KB
snapshot_blob.bin 47KB
nothing.c 0B
nothing.c 0B
kerberos_gss.cc 24KB
kerberos_gss.cc 24KB
kerberos_sspi.cc 17KB
kerberos_sspi.cc 17KB
binding.cc 13KB
binding.cc 13KB
kerberos_unix.cc 9KB
kerberos_unix.cc 9KB
binding.cc 7KB
binding.cc 7KB
kerberos.cc 7KB
kerberos.cc 7KB
kerberos_win32.cc 6KB
kerberos_win32.cc 6KB
base64.cc 4KB
base64.cc 4KB
binding.cc 3KB
binding.cc 3KB
icudtl.dat 9.93MB
icudtl.dat 9.74MB
mongo_crypt_v1.22c106b3a8e9e0fe1931.dll 18.49MB
mongo_crypt_v1.52955b70c0a0c5eab994.dll 16.9MB
libGLESv2.dll 7.57MB
libGLESv2.dll 7.47MB
vk_swiftshader.dll 4.47MB
d3dcompiler_47.dll 4.32MB
d3dcompiler_47.dll 4.32MB
vk_swiftshader.dll 4.26MB
libGLESv2.dll 3.07MB
libGLESv2.dll 3.03MB
ffmpeg.dll 1.6MB
ffmpeg.dll 1.58MB
vulkan-1.dll 716KB
vulkan-1.dll 708KB
libEGL.dll 449KB
libEGL.dll 446KB
libEGL.dll 432KB
libEGL.dll 429KB
MongoDBCompass.exe 134.39MB
MongoDBCompass.exe 130.07MB
squirrel.exe 1.82MB
Update.exe 1.82MB
squirrel.exe 1.82MB
MongoDBCompass.exe 649KB
interruptor.exp 1KB
interruptor.exp 1KB
win_export_cert.exp 1KB
win_export_cert.exp 1KB
os_dns_native.exp 997B
os_dns_native.exp 997B
kerberos.exp 962B
kerberos.exp 962B
kerberos.vcxproj.filters 3KB
kerberos.vcxproj.filters 3KB
nothing.vcxproj.filters 3KB
nothing.vcxproj.filters 3KB
nothing.vcxproj.filters 3KB
nothing.vcxproj.filters 3KB
interruptor.vcxproj.filters 2KB
interruptor.vcxproj.filters 2KB
win_export_cert.vcxproj.filters 2KB
os_dns_native.vcxproj.filters 2KB
win_export_cert.vcxproj.filters 2KB
os_dns_native.vcxproj.filters 2KB
binding.gyp 2KB
binding.gyp 2KB
binding.gyp 774B
binding.gyp 774B
binding.gyp 644B
binding.gyp 644B
node_api.gyp 132B
node_api.gyp 132B
binding.gyp 95B
binding.gyp 95B
config.gypi 13KB
config.gypi 13KB
config.gypi 13KB
config.gypi 13KB
config.gypi 4KB
config.gypi 4KB
config.gypi 4KB
config.gypi 4KB
common.gypi 762B
common.gypi 762B
noexcept.gypi 639B
noexcept.gypi 639B
except.gypi 560B
except.gypi 560B
napi-inl.h 200KB
共 806 条
- 1
- 2
- 3
- 4
- 5
- 6
- 9
资源评论
小猪沉塘.271
- 粉丝: 0
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功