@expo/pkcs12 0.0.8 → 0.1.0

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/README.md CHANGED
@@ -3,18 +3,7 @@
3
3
  👋 Welcome to <br><code>@expo/pkcs12</code>
4
4
  </h1>
5
5
 
6
- <p align="center">PKCS#12 utility functions to extract certificates from conventional and keystore PKCS#12 files
7
- .</p>
8
-
9
- <p align="center">
10
- <img src="https://flat.badgen.net/packagephobia/install/@expo/pkcs12">
11
-
12
- <a href="https://www.npmjs.com/package/@expo/pkcs12">
13
- <img src="https://flat.badgen.net/npm/dw/@expo/pkcs12" target="_blank" />
14
- </a>
15
- </p>
16
-
17
- <!-- Body -->
6
+ <p align="center">PKCS#12 utility functions to extract certificates from conventional and keystore PKCS#12 files.</p>
18
7
 
19
8
  # Examples
20
9
 
package/build/index.js CHANGED
@@ -36,8 +36,10 @@ exports.getX509Certificate = getX509Certificate;
36
36
  function getX509CertificateByFriendlyName(p12, friendlyName) {
37
37
  const certBagType = node_forge_1.default.pki.oids.certBag;
38
38
  // node-forge converts friendly names to lowercase, so we search by lowercase
39
- const bags = p12.getBags({ friendlyName: friendlyName.toLowerCase(), bagType: certBagType })
40
- .friendlyName;
39
+ const bags = p12.getBags({
40
+ friendlyName: friendlyName.toLowerCase(),
41
+ bagType: certBagType,
42
+ }).friendlyName;
41
43
  if (!bags || bags.length === 0) {
42
44
  return null;
43
45
  }
@@ -59,8 +61,10 @@ function getX509CertificateFromBag(bag) {
59
61
  function getX509Asn1ByFriendlyName(p12, friendlyName) {
60
62
  const certBagType = node_forge_1.default.pki.oids.certBag;
61
63
  // node-forge converts friendly names to lowercase, so we search by lowercase
62
- const bags = p12.getBags({ friendlyName: friendlyName.toLowerCase(), bagType: certBagType })
63
- .friendlyName;
64
+ const bags = p12.getBags({
65
+ friendlyName: friendlyName.toLowerCase(),
66
+ bagType: certBagType,
67
+ }).friendlyName;
64
68
  if (!bags || bags.length === 0) {
65
69
  return null;
66
70
  }
@@ -70,28 +74,28 @@ function getX509Asn1ByFriendlyName(p12, friendlyName) {
70
74
  }
71
75
  // if asn1 is present but certificate isnt, the certificate type was unknown
72
76
  // github.com/digitalbazaar/forge/blob/1887cfce43a8f5ca9cb5c256168cf12ce1715ecf/lib/pkcs12.js#L703
73
- return asn1 !== null && asn1 !== void 0 ? asn1 : null;
77
+ return asn1 ?? null;
74
78
  }
75
79
  exports.getX509Asn1ByFriendlyName = getX509Asn1ByFriendlyName;
76
80
  function parsePKCS12(p12BufferOrBase64String, maybePassword) {
77
81
  const base64EncodedP12 = Buffer.isBuffer(p12BufferOrBase64String)
78
82
  ? p12BufferOrBase64String.toString('base64')
79
83
  : p12BufferOrBase64String;
80
- const password = String(maybePassword !== null && maybePassword !== void 0 ? maybePassword : '');
84
+ const password = String(maybePassword ?? '');
81
85
  const p12Der = node_forge_1.default.util.decode64(base64EncodedP12);
82
86
  const p12Asn1 = node_forge_1.default.asn1.fromDer(p12Der);
83
87
  return node_forge_1.default.pkcs12.pkcs12FromAsn1(p12Asn1, password);
84
88
  }
85
89
  exports.parsePKCS12 = parsePKCS12;
86
90
  function getHash(data, { hashAlgorithm, hashEncoding, inputEncoding, }) {
87
- const hash = crypto_1.default.createHash(hashAlgorithm !== null && hashAlgorithm !== void 0 ? hashAlgorithm : 'sha1');
91
+ const hash = crypto_1.default.createHash(hashAlgorithm ?? 'sha1');
88
92
  if (inputEncoding) {
89
93
  hash.update(data, inputEncoding);
90
94
  }
91
95
  else {
92
96
  hash.update(data); // use Node's default inputEncoding
93
97
  }
94
- return hash.digest(hashEncoding !== null && hashEncoding !== void 0 ? hashEncoding : 'hex');
98
+ return hash.digest(hashEncoding ?? 'hex');
95
99
  }
96
100
  function getAsn1Hash(asn1, { hashAlgorithm, }) {
97
101
  const certDer = node_forge_1.default.asn1.toDer(asn1).getBytes(); // binary encoded string
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["import crypto, { HexBase64Latin1Encoding, Utf8AsciiLatin1Encoding } from 'crypto';\nimport forge from 'node-forge';\n\n/**\n * Returns the serial number of the given X.509 certificate as an uppercased hexadecimal string\n */\nexport function getFormattedSerialNumber(certificate: forge.pki.Certificate): string | null {\n const { serialNumber } = certificate;\n return serialNumber ? serialNumber.replace(/^0+/, '').toUpperCase() : null;\n}\n\n/**\n * Extracts a certificate from PKCS#12\n * This is assumed to be a conventional PKCS#12 where there is exactly one certificate and one key\n */\nexport function getX509Certificate(p12: forge.pkcs12.Pkcs12Pfx): forge.pki.Certificate {\n const certBagType = forge.pki.oids.certBag;\n const bags = p12.getBags({ bagType: certBagType })[certBagType];\n if (!bags || bags.length === 0) {\n throw new Error(`PKCS12: No certificates found`);\n }\n return getX509CertificateFromBag(bags[0]);\n}\n\n/**\n * Extracts a certificate from PKCS#12\n * This is assumed to be a PKCS#12 containing a keystore where the friendlyName (alias) contains a PrivateKeyEntry\n * A PrivateKeyEntry contains exactly one certificate and one key\n * https://docs.oracle.com/javase/7/docs/api/java/security/KeyStore.PrivateKeyEntry.html\n */\nexport function getX509CertificateByFriendlyName(\n p12: forge.pkcs12.Pkcs12Pfx,\n friendlyName: string\n): forge.pki.Certificate | null {\n const certBagType = forge.pki.oids.certBag;\n // node-forge converts friendly names to lowercase, so we search by lowercase\n const bags = p12.getBags({ friendlyName: friendlyName.toLowerCase(), bagType: certBagType })\n .friendlyName;\n if (!bags || bags.length === 0) {\n return null;\n }\n return getX509CertificateFromBag(bags[0]);\n}\n\nfunction getX509CertificateFromBag(bag: forge.pkcs12.Bag): forge.pki.Certificate {\n const { cert, asn1 } = bag;\n if (!cert && asn1) {\n // if asn1 is present but certificate isnt, the certificate type was unknown\n // github.com/digitalbazaar/forge/blob/1887cfce43a8f5ca9cb5c256168cf12ce1715ecf/lib/pkcs12.js#L703\n throw new Error('PKCS12: unknown X.509 certificate type');\n }\n if (!cert) {\n throw new Error('PKCS12: bag is not a certificate');\n }\n return cert;\n}\n\nexport function getX509Asn1ByFriendlyName(\n p12: forge.pkcs12.Pkcs12Pfx,\n friendlyName: string\n): forge.asn1.Asn1 | null {\n const certBagType = forge.pki.oids.certBag;\n // node-forge converts friendly names to lowercase, so we search by lowercase\n const bags = p12.getBags({ friendlyName: friendlyName.toLowerCase(), bagType: certBagType })\n .friendlyName;\n if (!bags || bags.length === 0) {\n return null;\n }\n const { cert, asn1 } = bags[0];\n if (cert) {\n return forge.pki.certificateToAsn1(cert);\n }\n // if asn1 is present but certificate isnt, the certificate type was unknown\n // github.com/digitalbazaar/forge/blob/1887cfce43a8f5ca9cb5c256168cf12ce1715ecf/lib/pkcs12.js#L703\n return asn1 ?? null;\n}\n\nexport function parsePKCS12(\n p12BufferOrBase64String: Buffer | string,\n maybePassword: string | null\n): forge.pkcs12.Pkcs12Pfx {\n const base64EncodedP12 = Buffer.isBuffer(p12BufferOrBase64String)\n ? p12BufferOrBase64String.toString('base64')\n : p12BufferOrBase64String;\n const password = String(maybePassword ?? '');\n const p12Der = forge.util.decode64(base64EncodedP12);\n const p12Asn1 = forge.asn1.fromDer(p12Der);\n return forge.pkcs12.pkcs12FromAsn1(p12Asn1, password);\n}\n\nfunction getHash(\n data: string,\n {\n hashAlgorithm,\n hashEncoding,\n inputEncoding,\n }: {\n hashAlgorithm?: string;\n hashEncoding?: HexBase64Latin1Encoding;\n inputEncoding?: Utf8AsciiLatin1Encoding;\n }\n): string {\n const hash = crypto.createHash(hashAlgorithm ?? 'sha1');\n if (inputEncoding) {\n hash.update(data, inputEncoding);\n } else {\n hash.update(data); // use Node's default inputEncoding\n }\n return hash.digest(hashEncoding ?? 'hex');\n}\n\nexport function getAsn1Hash(\n asn1: forge.asn1.Asn1,\n {\n hashAlgorithm,\n }: {\n hashAlgorithm?: string;\n }\n): string {\n const certDer = forge.asn1.toDer(asn1).getBytes(); // binary encoded string\n return getHash(certDer, {\n hashAlgorithm,\n hashEncoding: 'hex',\n inputEncoding: 'latin1', // latin1 is an alias for binary\n });\n}\n\nexport function getCertificateFingerprint(\n certificate: forge.pki.Certificate,\n {\n hashAlgorithm,\n }: {\n hashAlgorithm?: string;\n }\n): string {\n const certAsn1 = forge.pki.certificateToAsn1(certificate);\n return getAsn1Hash(certAsn1, {\n hashAlgorithm,\n });\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,35 +1,42 @@
1
1
  {
2
2
  "name": "@expo/pkcs12",
3
- "version": "0.0.8",
3
+ "version": "0.1.0",
4
4
  "description": "PKCS#12 Utilities for Node.js",
5
- "main": "build/index.js",
6
- "scripts": {
7
- "watch": "tsc --watch --preserveWatchOutput",
8
- "build": "tsc",
9
- "prepare": "yarn build",
10
- "lint": "eslint .",
11
- "test": "jest"
12
- },
13
- "repository": {
14
- "type": "git",
15
- "url": "https://github.com/expo/expo-cli.git",
16
- "directory": "packages/pkcs12"
17
- },
18
5
  "keywords": [
19
6
  "pkcs12"
20
7
  ],
21
8
  "license": "MIT",
22
- "bugs": {
23
- "url": "https://github.com/expo/expo-cli/issues"
24
- },
25
- "homepage": "https://github.com/expo/expo-cli/tree/main/packages/pkcs12#readme",
9
+ "main": "build/index.js",
26
10
  "files": [
27
11
  "build"
28
12
  ],
13
+ "scripts": {
14
+ "build": "expo-module tsc",
15
+ "clean": "expo-module clean",
16
+ "lint": "expo-module lint",
17
+ "prepare": "yarn run clean && yarn run build",
18
+ "prepublishOnly": "expo-module prepublishOnly",
19
+ "test": "expo-module test",
20
+ "typecheck": "expo-module typecheck",
21
+ "watch": "yarn run build --watch --preserveWatchOutput"
22
+ },
23
+ "homepage": "https://github.com/expo/expo/tree/main/packages/%40expo/pkcs12#readme",
24
+ "bugs": {
25
+ "url": "https://github.com/expo/expo/issues"
26
+ },
27
+ "repository": {
28
+ "type": "git",
29
+ "url": "https://github.com/expo/expo.git",
30
+ "directory": "packages/@expo/pkcs12"
31
+ },
29
32
  "dependencies": {
30
33
  "node-forge": "^1.2.1"
31
34
  },
35
+ "devDependencies": {
36
+ "expo-module-scripts": "^3.3.0"
37
+ },
32
38
  "publishConfig": {
33
39
  "access": "public"
34
- }
40
+ },
41
+ "gitHead": "6aca7ce098ddc667776a3d7cf612adbb985e264a"
35
42
  }