@ne1410s/crypto 0.2.329 → 0.2.331

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2020 ne1410s
3
+ Copyright (c) 2026 ne1410s
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
package/README.md CHANGED
@@ -1,14 +1,14 @@
1
- # @ne1410s/crypto
2
-
3
- ES Crypto Utilities
4
-
5
- ## Important for Windows Users:
6
-
7
- `node-webcrypto-ossl` brings in a workable crypto implementation for client and server side js. It is built from source (with node-gyp) when the package is installed. Normally, one might install tools for this, such as `npm i -g windows-build-tools`.
8
-
9
- **However**, this did not seem to provide a reliable solution in all cases. So it is recommended to install the following components manually instead:
10
-
11
- - Python 2.7.x
12
- - Visual Studio 2019, with:
13
- - MSVC v142 - VS 2019 C++ build tools (v14.28)
14
- - Windows 10 SDK (10.0.17763.0)
1
+ # @ne1410s/crypto
2
+
3
+ ES Crypto Utilities
4
+
5
+ ## Important for Windows Users:
6
+
7
+ `node-webcrypto-ossl` brings in a workable crypto implementation for client and server side js. It is built from source (with node-gyp) when the package is installed. Normally, one might install tools for this, such as `npm i -g windows-build-tools`.
8
+
9
+ **However**, this did not seem to provide a reliable solution in all cases. So it is recommended to install the following components manually instead:
10
+
11
+ - Python 2.7.x
12
+ - Visual Studio 2019, with:
13
+ - MSVC v142 - VS 2019 C++ build tools (v14.28)
14
+ - Windows 10 SDK (10.0.17763.0)
@@ -1,5 +1,4 @@
1
- import { IKeyPair_Jwk, ICsr_Params, ICsr_Result } from './interfaces';
2
- import { JsonWebKey } from 'node:crypto';
1
+ import type { IKeyPair_Jwk, ICsr_Params, ICsr_Result } from './interfaces.js';
3
2
  export declare function randomString(): Promise<string>;
4
3
  export declare function gen(): Promise<IKeyPair_Jwk>;
5
4
  export declare function sign(text: string, privateJwk: JsonWebKey): Promise<string>;
@@ -9,3 +8,4 @@ export declare function pfx(friendlyName: string, cert_b64: string, key_b64: str
9
8
  export declare function pemToBase64Parts(pem: string): Array<string>;
10
9
  export declare function base64ToPem(base64: string, title: string): string;
11
10
  export declare function bufferToPem(pkcs10_buf: ArrayBuffer, title: string): string;
11
+ //# sourceMappingURL=functions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../src/functions.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAgB9E,wBAAsB,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,CAKpD;AAED,wBAAsB,GAAG,IAAI,OAAO,CAAC,YAAY,CAAC,CAMjD;AAED,wBAAsB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAMhF;AAED,wBAAsB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAK1D;AAGD,wBAAsB,GAAG,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAgHnE;AAGD,wBAAsB,GAAG,CACvB,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,IAAI,GAAE,MAAkB,GACvB,OAAO,CAAC,WAAW,CAAC,CAsDtB;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAK3D;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAkBjE;AAED,wBAAgB,WAAW,CAAC,UAAU,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAG1E"}
@@ -0,0 +1,191 @@
1
+ import * as asn1js from 'asn1js';
2
+ import * as ne_text from '@ne1410s/text';
3
+ import * as c from 'node:crypto';
4
+ import { KeyObject } from 'node:crypto';
5
+ var crypto = require('node:crypto');
6
+ var pkijs = require('pkijs');
7
+ pkijs.setEngine('OpenSSL', crypto, new pkijs.CryptoEngine({ name: '', crypto: crypto, subtle: crypto.subtle }));
8
+ const DEF_ALGO = {
9
+ name: 'RSASSA-PKCS1-v1_5',
10
+ modulusLength: 2048,
11
+ publicExponent: new Uint8Array([0x01, 0x00, 0x01]),
12
+ hash: { name: 'SHA-256' },
13
+ };
14
+ export async function randomString() {
15
+ const bytes = new Uint8Array(24);
16
+ crypto.getRandomValues(bytes);
17
+ return ne_text.bufferToBase64Url(bytes.buffer);
18
+ }
19
+ export async function gen() {
20
+ const keys = await crypto.subtle.generateKey(DEF_ALGO, true, ['sign']);
21
+ return {
22
+ publicJwk: await crypto.subtle.exportKey('jwk', keys.publicKey),
23
+ privateJwk: await crypto.subtle.exportKey('jwk', keys.privateKey),
24
+ };
25
+ }
26
+ export async function sign(text, privateJwk) {
27
+ const cKey = await crypto.subtle.importKey('jwk', privateJwk, DEF_ALGO, true, ['sign']), buffer = ne_text.textToBuffer(text), signed = await crypto.subtle.sign(DEF_ALGO.name, cKey, buffer);
28
+ return ne_text.bufferToBase64Url(signed);
29
+ }
30
+ export async function digest(text) {
31
+ const buffer = ne_text.textToBuffer(text), digest = await crypto.subtle.digest('SHA-256', buffer);
32
+ return ne_text.bufferToBase64Url(digest);
33
+ }
34
+ //https://github.com/PeculiarVentures/PKI.js/blob/master/examples/PKCS10ComplexExample/es6.js
35
+ export async function csr(params) {
36
+ const pkcs10 = new pkijs.CertificationRequest();
37
+ pkcs10.version = 0;
38
+ pkcs10.subject.typesAndValues.push(new pkijs.AttributeTypeAndValue({
39
+ type: '2.5.4.3', // CN=
40
+ value: new asn1js.PrintableString({ value: params.domains[0] }),
41
+ }));
42
+ if (params.country) {
43
+ pkcs10.subject.typesAndValues.push(new pkijs.AttributeTypeAndValue({
44
+ type: '2.5.4.6', // C=
45
+ value: new asn1js.PrintableString({ value: params.country }),
46
+ }));
47
+ }
48
+ if (params.town) {
49
+ pkcs10.subject.typesAndValues.push(new pkijs.AttributeTypeAndValue({
50
+ type: '2.5.4.7', // L=
51
+ value: new asn1js.PrintableString({ value: params.town }),
52
+ }));
53
+ }
54
+ if (params.county) {
55
+ pkcs10.subject.typesAndValues.push(new pkijs.AttributeTypeAndValue({
56
+ type: '2.5.4.8', // S=
57
+ value: new asn1js.PrintableString({ value: params.county }),
58
+ }));
59
+ }
60
+ if (params.company) {
61
+ pkcs10.subject.typesAndValues.push(new pkijs.AttributeTypeAndValue({
62
+ type: '2.5.4.10', // O=
63
+ value: new asn1js.PrintableString({ value: params.company }),
64
+ }));
65
+ }
66
+ if (params.department) {
67
+ pkcs10.subject.typesAndValues.push(new pkijs.AttributeTypeAndValue({
68
+ type: '2.5.4.11', // OU=
69
+ value: new asn1js.PrintableString({ value: params.department }),
70
+ }));
71
+ }
72
+ const keys = await crypto.subtle.generateKey(DEF_ALGO, true, ['sign']);
73
+ const publicKey = keys.publicKey;
74
+ await pkcs10.subjectPublicKeyInfo.importKey(publicKey);
75
+ var toDigest = pkcs10.subjectPublicKeyInfo.subjectPublicKey.valueBlock.valueHex;
76
+ var pubkeyhash_sha1 = await crypto.subtle.digest('SHA-1', toDigest);
77
+ //pubkeyhash_sha256 = await crypto.subtle.digest('SHA-256', toDigest);
78
+ pkcs10.attributes = [];
79
+ pkcs10.attributes.push(new pkijs.Attribute({
80
+ type: '1.2.840.113549.1.9.14', // pkcs-9-at-extensionRequest
81
+ values: [
82
+ new pkijs.Extensions({
83
+ extensions: [
84
+ new pkijs.Extension({
85
+ extnID: '2.5.29.14',
86
+ critical: false,
87
+ extnValue: new asn1js.OctetString({ valueHex: pubkeyhash_sha1 }).toBER(false),
88
+ }),
89
+ new pkijs.Extension({
90
+ extnID: '2.5.29.17',
91
+ critical: false,
92
+ extnValue: new pkijs.GeneralNames({
93
+ names: params.domains.map((dom) => new pkijs.GeneralName({
94
+ type: 2,
95
+ value: dom,
96
+ })),
97
+ })
98
+ .toSchema()
99
+ .toBER(false),
100
+ }),
101
+ ],
102
+ }).toSchema(),
103
+ ],
104
+ }));
105
+ const privateKey = keys.privateKey, signedPKCS10 = await pkcs10.sign(privateKey, 'SHA-256'), pkcs10_schema = pkcs10.toSchema(), pkcs10_encoded = pkcs10_schema.toBER(false), exportedPkcs8 = await crypto.subtle.exportKey('pkcs8', keys.privateKey);
106
+ return {
107
+ pem: bufferToPem(pkcs10_encoded, 'CERTIFICATE REQUEST'),
108
+ der: ne_text.bufferToBase64Url(pkcs10_encoded),
109
+ pkcs8_pem: bufferToPem(exportedPkcs8, 'PRIVATE KEY'),
110
+ pkcs8_b64: ne_text.bufferToBase64(exportedPkcs8),
111
+ privateJwk: await crypto.subtle.exportKey('jwk', keys.privateKey),
112
+ publicJwk: await crypto.subtle.exportKey('jwk', keys.publicKey),
113
+ };
114
+ }
115
+ //https://github.com/PeculiarVentures/PKI.js/blob/master/examples/PKCS12SimpleExample/es6.js
116
+ export async function pfx(friendlyName, cert_b64, key_b64, password, hash = 'SHA-256') {
117
+ const asn1_cer = asn1js.fromBER(Buffer.from(cert_b64, 'base64')), asn1_key = asn1js.fromBER(Buffer.from(key_b64, 'base64'));
118
+ const objc_cer = new pkijs.Certificate({ schema: asn1_cer.result }), objc_key = new pkijs.PrivateKeyInfo({ schema: asn1_key.result });
119
+ const pkcs12 = new pkijs.PFX({
120
+ parsedValue: {
121
+ integrityMode: 0, // Password-Based Integrity Mode
122
+ authenticatedSafe: new pkijs.AuthenticatedSafe({
123
+ parsedValue: {
124
+ safeContents: [
125
+ {
126
+ privacyMode: 0, // 'No Privacy' mode
127
+ value: new pkijs.SafeContents({
128
+ safeBags: [
129
+ new pkijs.SafeBag({
130
+ bagId: '1.2.840.113549.1.12.10.1.1',
131
+ bagValue: objc_key,
132
+ }),
133
+ new pkijs.SafeBag({
134
+ bagId: '1.2.840.113549.1.12.10.1.3',
135
+ bagValue: new pkijs.CertBag({
136
+ parsedValue: objc_cer,
137
+ }),
138
+ bagAttributes: [
139
+ new pkijs.Attribute({
140
+ type: '1.2.840.113549.1.9.20', // friendlyName
141
+ values: [new asn1js.BmpString({ value: friendlyName })],
142
+ }),
143
+ ],
144
+ }),
145
+ ],
146
+ }),
147
+ },
148
+ ],
149
+ },
150
+ }),
151
+ },
152
+ });
153
+ await pkcs12.parsedValue.authenticatedSafe.makeInternalValues({
154
+ safeContents: [{ /* Empty as 'No Privacy' for SafeContents */}],
155
+ });
156
+ await pkcs12.makeInternalValues({
157
+ password: ne_text.textToBuffer(password),
158
+ iterations: 1000,
159
+ pbkdf2HashAlgorithm: hash,
160
+ hmacHashAlgorithm: hash,
161
+ });
162
+ return pkcs12.toSchema().toBER(false);
163
+ }
164
+ export function pemToBase64Parts(pem) {
165
+ return pem
166
+ .split(/-----[\w\s]+-----/)
167
+ .map((p) => p.replace(/\s/g, ''))
168
+ .filter((p) => p);
169
+ }
170
+ export function base64ToPem(base64, title) {
171
+ const string_length = base64.length;
172
+ let result_string = '';
173
+ for (var i = 0, count = 0; i < string_length; i++, count++) {
174
+ if (count > 63) {
175
+ result_string += '\r\n';
176
+ count = 0;
177
+ }
178
+ result_string += base64[i];
179
+ }
180
+ title =
181
+ (title || '')
182
+ .replace(/[^\w\s]+/, '')
183
+ .trim()
184
+ .toUpperCase() || 'CERTIFICATE';
185
+ return `-----BEGIN ${title}-----\r\n${result_string}\r\n-----END ${title}-----\r\n`;
186
+ }
187
+ export function bufferToPem(pkcs10_buf, title) {
188
+ const base64 = ne_text.bufferToBase64(pkcs10_buf);
189
+ return base64ToPem(base64, title);
190
+ }
191
+ //# sourceMappingURL=functions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"functions.js","sourceRoot":"","sources":["../src/functions.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,2 +1,3 @@
1
- export * from './functions';
2
- export * from './interfaces';
1
+ export * from './functions.js';
2
+ export * from './interfaces.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,3 @@
1
+ export * from './functions.js';
2
+ export * from './interfaces.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC"}
@@ -1,7 +1,7 @@
1
- import { JsonWebKey } from 'node:crypto';
1
+ import type { JsonWebKeyInput } from 'node:crypto';
2
2
  export interface IKeyPair_Jwk {
3
- publicJwk: JsonWebKey;
4
- privateJwk: JsonWebKey;
3
+ publicJwk: JsonWebKeyInput;
4
+ privateJwk: JsonWebKeyInput;
5
5
  }
6
6
  export interface ICsr_Params {
7
7
  domains: Array<string>;
@@ -17,3 +17,4 @@ export interface ICsr_Result extends IKeyPair_Jwk {
17
17
  pkcs8_pem: string;
18
18
  pkcs8_b64: string;
19
19
  }
20
+ //# sourceMappingURL=interfaces.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,eAAe,CAAC;IAC3B,UAAU,EAAE,eAAe,CAAC;CAC7B;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,WAAY,SAAQ,YAAY;IAC/C,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=interfaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,58 +1,58 @@
1
- {
2
- "name": "@ne1410s/crypto",
3
- "version": "0.2.329",
4
- "description": "Lightweight ES5 script to provide crypto utilities",
5
- "main": "dist/ne14_crypto.cjs.min.js",
6
- "module": "dist/ne14_crypto.esm.min.js",
7
- "browser": "dist/ne14_crypto.umd.min.js",
8
- "displayName": "ne_crypto",
9
- "types": "dist/index.d.ts",
10
- "files": [
11
- "dist"
12
- ],
13
- "scripts": {
14
- "dev": "npx rollup -c rollup.browser.config.js -m -w",
15
- "clean": "npx rimraf dist && rimraf test/test-cert.p12",
16
- "is-pretty": "npx prettier -l .",
17
- "prettify": "npx prettier -w .",
18
- "build": "npm run clean && npx rollup -c",
19
- "test": "npm run is-pretty && npm run build && mocha --exit",
20
- "publish-local": "npm run build && npm pack",
21
- "publish-patch": "npm run build && npm version patch && npm publish --access public",
22
- "publish-minor": "npm run build && npm version minor && npm publish --access public",
23
- "publish-major": "npm run build && npm version major && npm publish --access public"
24
- },
25
- "repository": {
26
- "type": "git",
27
- "url": "git+https://github.com/ne14-fed/core.crypto.git"
28
- },
29
- "keywords": [
30
- "ES5",
31
- "Crypto",
32
- "Utils"
33
- ],
34
- "author": "ne1410s <pgj646@gmail.com> (http://ne1410s.co.uk)",
35
- "license": "MIT",
36
- "bugs": {
37
- "url": "https://github.com/ne14-fed/core.crypto/issues"
38
- },
39
- "homepage": "https://github.com/ne14-fed/core.crypto#readme",
40
- "devDependencies": {
41
- "@rollup/plugin-commonjs": "^25.0.8",
42
- "@rollup/plugin-node-resolve": "^15.3.1",
43
- "@types/node": "^20.19.27",
44
- "@types/pkijs": "^3.0.1",
45
- "chai": "^4.5.0",
46
- "mocha": "^10.8.2",
47
- "prettier": "^3.7.4",
48
- "rimraf": "^5.0.10",
49
- "rollup": "^4.54.0",
50
- "rollup-plugin-typescript2": "^0.36.0",
51
- "typescript": "^5.9.3"
52
- },
53
- "dependencies": {
54
- "@ne1410s/text": "^0.3.284",
55
- "asn1js": "^3.0.7",
56
- "pkijs": "^3.3.3"
57
- }
58
- }
1
+ {
2
+ "name": "@ne1410s/crypto",
3
+ "version": "0.2.331",
4
+ "author": "ne1410s <pgj646@gmail.com> (http://ne1410s.co.uk)",
5
+ "bugs": {
6
+ "url": "https://github.com/ne14-fed/core.crypto/issues"
7
+ },
8
+ "description": "Lightweight crypto utilities",
9
+ "displayName": "ne_crypto",
10
+ "homepage": "https://github.com/ne14-fed/core.crypto#readme",
11
+ "keywords": [
12
+ "Crypto",
13
+ "Utils"
14
+ ],
15
+ "license": "MIT",
16
+ "repository": {
17
+ "type": "git",
18
+ "url": "git+https://github.com/ne14-fed/core.crypto.git"
19
+ },
20
+ "engines": {
21
+ "node": ">=20"
22
+ },
23
+ "exports": {
24
+ ".": {
25
+ "types": "./dist/index.d.ts",
26
+ "import": "./dist/index.js"
27
+ }
28
+ },
29
+ "files": [
30
+ "dist"
31
+ ],
32
+ "type": "module",
33
+ "types": "./dist/index.d.ts",
34
+ "scripts": {
35
+ "clean": "npx rimraf dist",
36
+ "is-pretty": "npx prettier -l .",
37
+ "prettify": "npx prettier -w .",
38
+ "build": "tsc",
39
+ "test": "npm run build && vitest run",
40
+ "typecheck": "tsc --noEmit",
41
+ "publish-local": "npm run build && npm pack",
42
+ "publish-patch": "npm run build && npm version patch && npm publish --access public",
43
+ "publish-minor": "npm run build && npm version minor && npm publish --access public",
44
+ "publish-major": "npm run build && npm version major && npm publish --access public"
45
+ },
46
+ "devDependencies": {
47
+ "@types/node": "^26.2.0",
48
+ "prettier": "^3.7.4",
49
+ "rimraf": "^6.1.3",
50
+ "typescript": "^7.0.2",
51
+ "vitest": "^4.1.10"
52
+ },
53
+ "dependencies": {
54
+ "@ne1410s/text": "^0.3.288",
55
+ "asn1js": "^3.0.7",
56
+ "pkijs": "^3.3.3"
57
+ }
58
+ }