Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

node-opcua-pki

Package Overview
Dependencies
Maintainers
1
Versions
148
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

node-opcua-pki - npm Package Compare versions

Comparing version 2.17.0 to 2.18.0

certificates1/CA/conf/caconfig.cnf

0

bin/crypto_create_CA_config.example.js

@@ -0,0 +0,0 @@ "use strict";

@@ -0,0 +0,0 @@ #!/usr/bin/env node

import { ErrorCallback } from "./pki/common";
export declare function main(argumentsList: string, _done?: ErrorCallback): void;

5

dist/crypto_create_CA.js

@@ -5,3 +5,4 @@ "use strict";

// ---------------------------------------------------------------------------------------------------------------------
// Copyright (c) 2014-2021 - Etienne Rossignon - etienne.rossignon (at) gadz.org
// Copyright (c) 2014-2022 - Etienne Rossignon - etienne.rossignon (at) gadz.org
// Copyright (c) 2022 - Sterfive.com
// ---------------------------------------------------------------------------------------------------------------------

@@ -661,3 +662,3 @@ //

type: "string",
describe: "the certificate subject ( for instance /C=FR/ST=Centre/L=Orleans/O=SomeOrganization/CN=Hello )",
describe: "the certificate subject ( for instance C=FR/ST=Centre/L=Orleans/O=SomeOrganization/CN=Hello )",
},

@@ -664,0 +665,0 @@ };

@@ -0,0 +0,0 @@ export * from "./pki/toolbox";

@@ -20,3 +20,4 @@ "use strict";

// ---------------------------------------------------------------------------------------------------------------------
// Copyright (c) 2014-2021 - Etienne Rossignon - etienne.rossignon (at) gadz.org
// Copyright (c) 2014-2022 - Etienne Rossignon - etienne.rossignon (at) gadz.org
// Copyright (c) 2022 - Sterfive.com
// ---------------------------------------------------------------------------------------------------------------------

@@ -23,0 +24,0 @@ //

export declare function makeApplicationUrn(hostname: string, suffix: string): string;

@@ -7,3 +7,4 @@ "use strict";

// ---------------------------------------------------------------------------------------------------------------------
// Copyright (c) 2014-2021 - Etienne Rossignon - etienne.rossignon (at) gadz.org
// Copyright (c) 2014-2022 - Etienne Rossignon - etienne.rossignon (at) gadz.org
// Copyright (c) 2022 - Sterfive.com
// ---------------------------------------------------------------------------------------------------------------------

@@ -10,0 +11,0 @@ //

@@ -0,0 +0,0 @@ /**

@@ -0,0 +0,0 @@ "use strict";

@@ -0,0 +0,0 @@ export declare function check_system_openssl_version(callback: (err: Error | null, output?: string) => void): void;

@@ -5,3 +5,4 @@ "use strict";

// ---------------------------------------------------------------------------------------------------------------------
// Copyright (c) 2014-2021 - Etienne Rossignon - etienne.rossignon (at) gadz.org
// Copyright (c) 2014-2022 - Etienne Rossignon - etienne.rossignon (at) gadz.org
// Copyright (c) 2022 - Sterfive.com
// ---------------------------------------------------------------------------------------------------------------------

@@ -8,0 +9,0 @@ //

@@ -10,2 +10,6 @@ export interface SubjectOptions {

}
/**
* subjectName The subject name to use for the Certificate.
* If not specified the ApplicationName and/or domainNames are used to create a suitable default value.
*/
export declare class Subject implements SubjectOptions {

@@ -21,3 +25,4 @@ readonly commonName?: string;

static parse(str: string): SubjectOptions;
toStringForOPCUA(): string;
toString(): string;
}

@@ -5,3 +5,4 @@ "use strict";

// ---------------------------------------------------------------------------------------------------------------------
// Copyright (c) 2014-2021 - Etienne Rossignon - etienne.rossignon (at) gadz.org
// Copyright (c) 2014-2022 - Etienne Rossignon - etienne.rossignon (at) gadz.org
// Copyright (c) 2022 - Sterfive.com
// ---------------------------------------------------------------------------------------------------------------------

@@ -35,2 +36,17 @@ //

};
const enquoteIfNecessary = (str) => {
str = str.replace(/"/g, "”");
return str.match(/\/|=/) ? `"${str}"` : str;
};
const unquote = (str) => str.replace(/"/gm, "");
const unquote2 = (str) => {
if (!str)
return str;
const m = str.match(/^"(.*)"$/);
return m ? m[1] : str;
};
/**
* subjectName The subject name to use for the Certificate.
* If not specified the ApplicationName and/or domainNames are used to create a suitable default value.
*/
class Subject {

@@ -41,9 +57,9 @@ constructor(options) {

}
this.commonName = options.commonName;
this.organization = options.organization;
this.organizationalUnit = options.organizationalUnit;
this.locality = options.locality;
this.state = options.state;
this.country = options.country;
this.domainComponent = options.domainComponent;
this.commonName = unquote2(options.commonName);
this.organization = unquote2(options.organization);
this.organizationalUnit = unquote2(options.organizationalUnit);
this.locality = unquote2(options.locality);
this.state = unquote2(options.state);
this.country = unquote2(options.country);
this.domainComponent = unquote2(options.domainComponent);
}

@@ -62,34 +78,49 @@ static parse(str) {

const longName = _keys[s[0]];
if (!longName) {
throw new Error("Invalid field found in subject name " + s[0]);
}
const value = s[1];
options[longName] = Buffer.from(value, "ascii").toString("utf8");
options[longName] = unquote(Buffer.from(value, "ascii").toString("utf8"));
});
return options;
}
toString() {
let tmp = "";
toStringForOPCUA() {
// https://reference.opcfoundation.org/v104/GDS/docs/7.6.4/
// The format of the subject name is a sequence of name value pairs separated by a ‘/’.
// The name shall be one of ‘CN’, ‘O’, ‘OU’, ‘DC’, ‘L’, ‘S’ or ‘C’ and
// shall be followed by a ‘=’ and then followed by the value.
// The value may be any printable character except for ‘”’.
// If the value contains a ‘/’ or a ‘=’ then it shall be enclosed in double quotes (‘”’).
const tmp = [];
if (this.country) {
tmp += "/C=" + this.country;
tmp.push("C=" + enquoteIfNecessary(this.country));
}
if (this.state) {
tmp += "/ST=" + this.state;
tmp.push("ST=" + enquoteIfNecessary(this.state));
}
if (this.locality) {
tmp += "/L=" + this.locality;
tmp.push("L=" + enquoteIfNecessary(this.locality));
}
if (this.organization) {
tmp += "/O=" + this.organization;
tmp.push("O=" + enquoteIfNecessary(this.organization));
}
if (this.organizationalUnit) {
tmp += "/OU=" + this.organization;
tmp.push("OU=" + enquoteIfNecessary(this.organizationalUnit));
}
if (this.commonName) {
tmp += "/CN=" + this.commonName;
tmp.push("CN=" + enquoteIfNecessary(this.commonName));
}
if (this.domainComponent) {
tmp += "/DC=" + this.domainComponent;
tmp.push("DC=" + enquoteIfNecessary(this.domainComponent));
}
return tmp;
return tmp.join("/");
}
toString() {
// standard for SSL is to have a / in front of each Field
// see https://www.digicert.com/kb/ssl-support/openssl-quick-reference-guide.htm
const t = this.toStringForOPCUA();
return t ? "/" + t : t;
}
}
exports.Subject = Subject;
//# sourceMappingURL=subject.js.map

@@ -0,0 +0,0 @@ import { ErrorCallback, Filename, KeySize } from "./common";

@@ -7,3 +7,4 @@ "use strict";

// ---------------------------------------------------------------------------------------------------------------------
// Copyright (c) 2014-2021 - Etienne Rossignon - etienne.rossignon (at) gadz.org
// Copyright (c) 2014-2022 - Etienne Rossignon - etienne.rossignon (at) gadz.org
// Copyright (c) 2022 - Sterfive.com
// ---------------------------------------------------------------------------------------------------------------------

@@ -106,3 +107,3 @@ //

// tslint:disable:no-empty
(0, toolbox_1.displayTitle)("Create Certificate Authority (CA)", (err) => { });
(0, toolbox_1.displayTitle)("Create Certificate Authority (CA)", (_err) => { });
const indexFileAttr = path.join(caRootDir, "index.txt.attr");

@@ -109,0 +110,0 @@ if (!fs.existsSync(indexFileAttr)) {

@@ -0,0 +0,0 @@ /// <reference types="node" />

@@ -5,3 +5,4 @@ "use strict";

// ---------------------------------------------------------------------------------------------------------------------
// Copyright (c) 2014-2021 - Etienne Rossignon - etienne.rossignon (at) gadz.org
// Copyright (c) 2014-2022 - Etienne Rossignon - etienne.rossignon (at) gadz.org
// Copyright (c) 2022 - Sterfive.com
// ---------------------------------------------------------------------------------------------------------------------

@@ -8,0 +9,0 @@ //

@@ -0,0 +0,0 @@ export declare type KeySize = 1024 | 2048 | 3072 | 4096;

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
//# sourceMappingURL=common.js.map
declare const config: string;
export default config;

@@ -0,0 +0,0 @@ "use strict";

declare const config: string;
export default config;

@@ -0,0 +0,0 @@ "use strict";

@@ -140,3 +140,3 @@ import { SubjectOptions } from "../misc/subject";

* @param params.purpose
* @param [params.subject= "/C=FR/ST=IDF/L=Paris/O=Local NODE-OPCUA Certificate Authority/CN=ZZNodeOPCUA"]
* @param [params.subject= "C=FR/ST=IDF/L=Paris/O=Local NODE-OPCUA Certificate Authority/CN=ZZNodeOPCUA"]
* @param callback

@@ -143,0 +143,0 @@ */

"use strict";
/* eslint-disable indent */
// ---------------------------------------------------------------------------------------------------------------------
// node-opcua-pki
// ---------------------------------------------------------------------------------------------------------------------
// Copyright (c) 2014-2021 - Etienne Rossignon - etienne.rossignon (at) gadz.org
// Copyright (c) 2014-2022 - Etienne Rossignon - etienne.rossignon (at) gadz.org
// Copyright (c) 2022 - Sterfive.com
// ---------------------------------------------------------------------------------------------------------------------

@@ -41,3 +43,3 @@ //

function quote(str) {
return "\"" + str + "\"";
return '"' + str + '"';
}

@@ -415,3 +417,3 @@ exports.quote = quote;

// process.env.OPENSSL_CONF ="";
const subjectOptions = subject ? " -subj \"" + subject + "\"" : "";
const subjectOptions = subject ? ' -subj "' + subject + '"' : "";
async.series([

@@ -533,3 +535,3 @@ (callback) => {

* @param params.purpose
* @param [params.subject= "/C=FR/ST=IDF/L=Paris/O=Local NODE-OPCUA Certificate Authority/CN=ZZNodeOPCUA"]
* @param [params.subject= "C=FR/ST=IDF/L=Paris/O=Local NODE-OPCUA Certificate Authority/CN=ZZNodeOPCUA"]
* @param callback

@@ -599,5 +601,5 @@ */

q(n(certificateRequestFilename)) +
" -subj \"" +
' -subj "' +
subject +
"\"", {}, callback);
'"', {}, callback);
},

@@ -604,0 +606,0 @@ // Xx // Step 3: Remove Passphrase from Key

// ---------------------------------------------------------------------------------------------------------------------
// node-opcua
// ---------------------------------------------------------------------------------------------------------------------
// Copyright (c) 2014-2021 - Etienne Rossignon - etienne.rossignon (at) gadz.org
// Copyright (c) 2014-2022 - Etienne Rossignon - etienne.rossignon (at) gadz.org
// Copyright (c) 2022 - Sterfive.com
// ---------------------------------------------------------------------------------------------------------------------

@@ -908,3 +909,3 @@ //

type: "string",
describe: "the certificate subject ( for instance /C=FR/ST=Centre/L=Orleans/O=SomeOrganization/CN=Hello )",
describe: "the certificate subject ( for instance C=FR/ST=Centre/L=Orleans/O=SomeOrganization/CN=Hello )",
},

@@ -911,0 +912,0 @@ };

// ---------------------------------------------------------------------------------------------------------------------
// node-opcua-pki
// ---------------------------------------------------------------------------------------------------------------------
// Copyright (c) 2014-2021 - Etienne Rossignon - etienne.rossignon (at) gadz.org
// Copyright (c) 2014-2022 - Etienne Rossignon - etienne.rossignon (at) gadz.org
// Copyright (c) 2022 - Sterfive.com
// ---------------------------------------------------------------------------------------------------------------------

@@ -6,0 +7,0 @@ //

// ---------------------------------------------------------------------------------------------------------------------
// node-opcua-pki
// ---------------------------------------------------------------------------------------------------------------------
// Copyright (c) 2014-2021 - Etienne Rossignon - etienne.rossignon (at) gadz.org
// Copyright (c) 2014-2022 - Etienne Rossignon - etienne.rossignon (at) gadz.org
// Copyright (c) 2022 - Sterfive.com
// ---------------------------------------------------------------------------------------------------------------------

@@ -6,0 +7,0 @@ //

@@ -0,0 +0,0 @@ /**

// ---------------------------------------------------------------------------------------------------------------------
// node-opcua
// ---------------------------------------------------------------------------------------------------------------------
// Copyright (c) 2014-2021 - Etienne Rossignon - etienne.rossignon (at) gadz.org
// Copyright (c) 2014-2022 - Etienne Rossignon - etienne.rossignon (at) gadz.org
// Copyright (c) 2022 - Sterfive.com
// ---------------------------------------------------------------------------------------------------------------------

@@ -6,0 +7,0 @@ //

// ---------------------------------------------------------------------------------------------------------------------
// node-opcua-pki
// ---------------------------------------------------------------------------------------------------------------------
// Copyright (c) 2014-2021 - Etienne Rossignon - etienne.rossignon (at) gadz.org
// Copyright (c) 2014-2022 - Etienne Rossignon - etienne.rossignon (at) gadz.org
// Copyright (c) 2022 - Sterfive.com
// ---------------------------------------------------------------------------------------------------------------------

@@ -43,2 +44,16 @@ //

const enquoteIfNecessary = (str: string) => {
str = str.replace(/"/g, "”");
return str.match(/\/|=/) ? `"${str}"` : str;
};
const unquote = (str: string) => str.replace(/"/gm, "");
const unquote2 = (str?: string | undefined) => {
if (!str) return str;
const m = str.match(/^"(.*)"$/);
return m ? m[1] : str;
};
/**
* subjectName The subject name to use for the Certificate.
* If not specified the ApplicationName and/or domainNames are used to create a suitable default value.
*/
export class Subject implements SubjectOptions {

@@ -57,9 +72,9 @@ public readonly commonName?: string;

}
this.commonName = options.commonName;
this.organization = options.organization;
this.organizationalUnit = options.organizationalUnit;
this.locality = options.locality;
this.state = options.state;
this.country = options.country;
this.domainComponent = options.domainComponent;
this.commonName = unquote2(options.commonName);
this.organization = unquote2(options.organization);
this.organizationalUnit = unquote2(options.organizationalUnit);
this.locality = unquote2(options.locality);
this.state = unquote2(options.state);
this.country = unquote2(options.country);
this.domainComponent = unquote2(options.domainComponent);
}

@@ -80,5 +95,8 @@

}
const longName = (_keys as any)[s[0]];
const longName = (_keys as Record<string, string>)[s[0]];
if (!longName) {
throw new Error("Invalid field found in subject name " + s[0]);
}
const value = s[1];
options[longName] = Buffer.from(value, "ascii").toString("utf8");
options[longName] = unquote(Buffer.from(value, "ascii").toString("utf8"));
});

@@ -88,27 +106,40 @@ return options as SubjectOptions;

public toString() {
let tmp = "";
public toStringForOPCUA(): string {
// https://reference.opcfoundation.org/v104/GDS/docs/7.6.4/
// The format of the subject name is a sequence of name value pairs separated by a ‘/’.
// The name shall be one of ‘CN’, ‘O’, ‘OU’, ‘DC’, ‘L’, ‘S’ or ‘C’ and
// shall be followed by a ‘=’ and then followed by the value.
// The value may be any printable character except for ‘”’.
// If the value contains a ‘/’ or a ‘=’ then it shall be enclosed in double quotes (‘”’).
const tmp: string[] = [];
if (this.country) {
tmp += "/C=" + this.country;
tmp.push("C=" + enquoteIfNecessary(this.country));
}
if (this.state) {
tmp += "/ST=" + this.state;
tmp.push("ST=" + enquoteIfNecessary(this.state));
}
if (this.locality) {
tmp += "/L=" + this.locality;
tmp.push("L=" + enquoteIfNecessary(this.locality));
}
if (this.organization) {
tmp += "/O=" + this.organization;
tmp.push("O=" + enquoteIfNecessary(this.organization));
}
if (this.organizationalUnit) {
tmp += "/OU=" + this.organization;
tmp.push("OU=" + enquoteIfNecessary(this.organizationalUnit));
}
if (this.commonName) {
tmp += "/CN=" + this.commonName;
tmp.push("CN=" + enquoteIfNecessary(this.commonName));
}
if (this.domainComponent) {
tmp += "/DC=" + this.domainComponent;
tmp.push("DC=" + enquoteIfNecessary(this.domainComponent));
}
return tmp;
return tmp.join("/");
}
public toString(): string {
// standard for SSL is to have a / in front of each Field
// see https://www.digicert.com/kb/ssl-support/openssl-quick-reference-guide.htm
const t = this.toStringForOPCUA();
return t ? "/" + t : t;
}
}
// ---------------------------------------------------------------------------------------------------------------------
// node-opcua
// ---------------------------------------------------------------------------------------------------------------------
// Copyright (c) 2014-2021 - Etienne Rossignon - etienne.rossignon (at) gadz.org
// Copyright (c) 2014-2022 - Etienne Rossignon - etienne.rossignon (at) gadz.org
// Copyright (c) 2022 - Sterfive.com
// ---------------------------------------------------------------------------------------------------------------------

@@ -143,3 +144,3 @@ //

// tslint:disable:no-empty
displayTitle("Create Certificate Authority (CA)", (err?: Error | null) => { /** */ });
displayTitle("Create Certificate Authority (CA)", (_err?: Error | null) => { /** */ });

@@ -146,0 +147,0 @@ const indexFileAttr = path.join(caRootDir, "index.txt.attr");

// ---------------------------------------------------------------------------------------------------------------------
// node-opcua
// ---------------------------------------------------------------------------------------------------------------------
// Copyright (c) 2014-2021 - Etienne Rossignon - etienne.rossignon (at) gadz.org
// Copyright (c) 2014-2022 - Etienne Rossignon - etienne.rossignon (at) gadz.org
// Copyright (c) 2022 - Sterfive.com
// ---------------------------------------------------------------------------------------------------------------------

@@ -6,0 +7,0 @@ //

@@ -0,0 +0,0 @@ export type KeySize = 1024 | 2048 | 3072 | 4096;

@@ -0,0 +0,0 @@ const config =

@@ -0,0 +0,0 @@

@@ -0,5 +1,7 @@

/* eslint-disable indent */
// ---------------------------------------------------------------------------------------------------------------------
// node-opcua-pki
// ---------------------------------------------------------------------------------------------------------------------
// Copyright (c) 2014-2021 - Etienne Rossignon - etienne.rossignon (at) gadz.org
// Copyright (c) 2014-2022 - Etienne Rossignon - etienne.rossignon (at) gadz.org
// Copyright (c) 2022 - Sterfive.com
// ---------------------------------------------------------------------------------------------------------------------

@@ -44,3 +46,3 @@ //

export function quote(str: string): string {
return "\"" + str + "\"";
return '"' + str + '"';
}

@@ -495,3 +497,3 @@

// process.env.OPENSSL_CONF ="";
const subjectOptions = subject ? " -subj \"" + subject + "\"" : "";
const subjectOptions = subject ? ' -subj "' + subject + '"' : "";
async.series(

@@ -670,3 +672,3 @@ [

* @param params.purpose
* @param [params.subject= "/C=FR/ST=IDF/L=Paris/O=Local NODE-OPCUA Certificate Authority/CN=ZZNodeOPCUA"]
* @param [params.subject= "C=FR/ST=IDF/L=Paris/O=Local NODE-OPCUA Certificate Authority/CN=ZZNodeOPCUA"]
* @param callback

@@ -707,3 +709,3 @@ */

let subject = new Subject(params.subject);
let subject: Subject | string = new Subject(params.subject);
subject = subject.toString();

@@ -718,11 +720,11 @@

switch (params.purpose) {
case CertificatePurpose.ForApplication:
extension = "v3_selfsigned";
break;
case CertificatePurpose.ForCertificateAuthority:
extension = "v3_ca";
break;
case CertificatePurpose.ForUserAuthentication:
default:
extension = "v3_selfsigned";
case CertificatePurpose.ForApplication:
extension = "v3_selfsigned";
break;
case CertificatePurpose.ForCertificateAuthority:
extension = "v3_ca";
break;
case CertificatePurpose.ForUserAuthentication:
default:
extension = "v3_selfsigned";
}

@@ -752,5 +754,5 @@

q(n(certificateRequestFilename)) +
" -subj \"" +
' -subj "' +
subject +
"\"",
'"',
{},

@@ -757,0 +759,0 @@ callback

{
"name": "node-opcua-pki",
"version": "2.17.0",
"version": "2.18.0",
"description": "PKI management for node-opcua",

@@ -51,4 +51,4 @@ "main": "./dist/index.js",

"cli-table": "^0.3.11",
"minimist": "^1.2.6",
"node-opcua-crypto": "^1.11.0",
"minimist": "^1.2.7",
"node-opcua-crypto": "^1.12.0",
"progress": "^2.0.3",

@@ -62,18 +62,18 @@ "thenify": "^3.3.1",

"@istanbuljs/nyc-config-typescript": "^1.0.2",
"@types/async": "^3.2.13",
"@types/async": "^3.2.15",
"@types/byline": "^4.2.33",
"@types/cli-table": "^0.3.0",
"@types/mocha": "^9.1.1",
"@types/node": "^18.0.0",
"@types/cli-table": "^0.3.1",
"@types/mocha": "^10.0.0",
"@types/node": "^18.11.3",
"@types/node-dir": "0.0.34",
"@types/progress": "^2.0.5",
"@types/rimraf": "^3.0.2",
"@types/sinon": "^10.0.11",
"@types/sinon": "^10.0.13",
"@types/underscore": "^1.11.4",
"@types/yargs": "^17.0.10",
"@types/yargs": "^17.0.13",
"@types/yauzl": "^2.10.0",
"@typescript-eslint/eslint-plugin": "^5.29.0",
"@typescript-eslint/parser": "^5.29.0",
"eslint": "^8.18.0",
"mocha": "^10.0.0",
"@typescript-eslint/eslint-plugin": "^5.40.1",
"@typescript-eslint/parser": "^5.40.1",
"eslint": "^8.25.0",
"mocha": "^10.1.0",
"node-dir": "^0.1.17",

@@ -83,6 +83,6 @@ "nyc": "^15.1.0",

"should": "^13.2.3",
"sinon": "^14.0.0",
"sinon": "^14.0.1",
"source-map-support": "^0.5.21",
"ts-node": "^10.8.1",
"typescript": "^4.7.4"
"ts-node": "^10.9.1",
"typescript": "^4.8.4"
},

@@ -89,0 +89,0 @@ "bin": {

@@ -8,18 +8,19 @@ ### node-opcua-pki

## Create a Certificate Authority
```
PKI\CA Certificate Authority
PKI\rejected The Certificate store contains certificates that have been rejected.
PKI\rejected\certs Contains the X.509 v3 Certificates which have been rejected.
PKI\trusted The Certificate store contains trusted Certificates.
PKI\trusted\certs Contains the X.509 v3 Certificates that are trusted.
PKI\trusted\crl Contains the X.509 v3 CRLs for any Certificates in the ./certs directory.
PKI\issuers The Certificate store contains the CA Certificates needed for validation.
PKI\issuers\certs Contains the X.509 v3 Certificates that are needed for validation.
PKI\issuers\crl Contains the X.509 v3 CRLs for any Certificates in the ./certs directory.
## Installation
##### install globally
```
$ npm install -g node-opcua-pki
$ crypto_create_CA --help
```
##### use with npx
```
npx node-opcua-pki --help
npx node-opcua-pki certificate --help
```
Note: see https://reference.opcfoundation.org/GDS/docs/F.1/

@@ -52,2 +53,17 @@

The result
```
PKI\CA Certificate Authority
PKI\rejected The Certificate store contains certificates that have been rejected.
PKI\rejected\certs Contains the X.509 v3 Certificates which have been rejected.
PKI\trusted The Certificate store contains trusted Certificates.
PKI\trusted\certs Contains the X.509 v3 Certificates that are trusted.
PKI\trusted\crl Contains the X.509 v3 CRLs for any Certificates in the ./certs directory.
PKI\issuers The Certificate store contains the CA Certificates needed for validation.
PKI\issuers\certs Contains the X.509 v3 Certificates that are needed for validation.
PKI\issuers\crl Contains the X.509 v3 CRLs for any Certificates in the ./certs directory.
```
## demo command

@@ -125,6 +141,3 @@

#### note:
- do not upgrade update-notifier above 4.x.x until nodejs 8 is required
#### support:

@@ -131,0 +144,0 @@

@@ -0,0 +0,0 @@ {

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc