diff options
author | Divy Srivastava <dj.srivastava23@gmail.com> | 2023-02-20 22:22:28 +0530 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-02-20 22:22:28 +0530 |
commit | ea7ca00c895c401af57a7201f3c41524333e7939 (patch) | |
tree | a238ea54a003111ab6c1b7b1cb14e0669cb4f7af /ext/node/polyfills/_crypto/crypto_browserify/asn1.js/decoders/pem.js | |
parent | a16c11c5d10052c688ba4c2eca09fd1a225e395a (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.js | 63 |
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); -}; |