summaryrefslogtreecommitdiff
path: root/ext/node/polyfills/_crypto/crypto_browserify/asn1.js/decoders/pem.js
diff options
context:
space:
mode:
authorDivy Srivastava <dj.srivastava23@gmail.com>2023-02-20 22:22:28 +0530
committerGitHub <noreply@github.com>2023-02-20 22:22:28 +0530
commitea7ca00c895c401af57a7201f3c41524333e7939 (patch)
treea238ea54a003111ab6c1b7b1cb14e0669cb4f7af /ext/node/polyfills/_crypto/crypto_browserify/asn1.js/decoders/pem.js
parenta16c11c5d10052c688ba4c2eca09fd1a225e395a (diff)
perf: use ops for node:crypto ciphers (#17819)
Towards #17809
Diffstat (limited to 'ext/node/polyfills/_crypto/crypto_browserify/asn1.js/decoders/pem.js')
-rw-r--r--ext/node/polyfills/_crypto/crypto_browserify/asn1.js/decoders/pem.js63
1 files changed, 0 insertions, 63 deletions
diff --git a/ext/node/polyfills/_crypto/crypto_browserify/asn1.js/decoders/pem.js b/ext/node/polyfills/_crypto/crypto_browserify/asn1.js/decoders/pem.js
deleted file mode 100644
index 3dedfb293..000000000
--- a/ext/node/polyfills/_crypto/crypto_browserify/asn1.js/decoders/pem.js
+++ /dev/null
@@ -1,63 +0,0 @@
-// Copyright 2018-2023 the Deno authors. All rights reserved. MIT license.
-// Copyright 2017 Fedor Indutny. All rights reserved. MIT license.
-
-import { Buffer } from "internal:deno_node/polyfills/buffer.ts";
-
-import { DERDecoder } from "internal:deno_node/polyfills/_crypto/crypto_browserify/asn1.js/decoders/der.js";
-
-export function PEMDecoder(entity) {
- DERDecoder.call(this, entity);
- this.enc = "pem";
-}
-// inherits(PEMDecoder, DERDecoder);
-PEMDecoder.prototype = Object.create(DERDecoder.prototype, {
- constructor: {
- value: PEMDecoder,
- enumerable: false,
- writable: true,
- configurable: true,
- },
-});
-
-PEMDecoder.prototype.decode = function decode(data, options) {
- const lines = data.toString().split(/[\r\n]+/g);
-
- const label = options.label.toUpperCase();
-
- const re = /^-----(BEGIN|END) ([^-]+)-----$/;
- let start = -1;
- let end = -1;
- for (let i = 0; i < lines.length; i++) {
- const match = lines[i].match(re);
- if (match === null) {
- continue;
- }
-
- if (match[2] !== label) {
- continue;
- }
-
- if (start === -1) {
- if (match[1] !== "BEGIN") {
- break;
- }
- start = i;
- } else {
- if (match[1] !== "END") {
- break;
- }
- end = i;
- break;
- }
- }
- if (start === -1 || end === -1) {
- throw new Error("PEM section not found for: " + label);
- }
-
- const base64 = lines.slice(start + 1, end).join("");
- // Remove excessive symbols
- base64.replace(/[^a-z0-9+/=]+/gi, "");
-
- const input = Buffer.from(base64, "base64");
- return DERDecoder.prototype.decode.call(this, input, options);
-};