summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--packages/server/src/helpers/convertPEMToBytes.ts13
-rw-r--r--packages/server/src/helpers/validateCertificatePath.ts20
2 files changed, 17 insertions, 16 deletions
diff --git a/packages/server/src/helpers/convertPEMToBytes.ts b/packages/server/src/helpers/convertPEMToBytes.ts
new file mode 100644
index 0000000..8749d03
--- /dev/null
+++ b/packages/server/src/helpers/convertPEMToBytes.ts
@@ -0,0 +1,13 @@
+import { isoBase64URL } from './iso';
+
+/**
+ * Take a certificate in PEM format and convert it to bytes
+ */
+export function convertPEMToBytes(pem: string): Uint8Array {
+ const certBase64 = pem
+ .replace('-----BEGIN CERTIFICATE-----', '')
+ .replace('-----END CERTIFICATE-----', '')
+ .replace(/\n/g, '');
+
+ return isoBase64URL.toBuffer(certBase64, 'base64');
+}
diff --git a/packages/server/src/helpers/validateCertificatePath.ts b/packages/server/src/helpers/validateCertificatePath.ts
index 65e4870..bf6b3d9 100644
--- a/packages/server/src/helpers/validateCertificatePath.ts
+++ b/packages/server/src/helpers/validateCertificatePath.ts
@@ -2,10 +2,10 @@
import { AsnSerializer } from '@peculiar/asn1-schema';
import { isCertRevoked } from './isCertRevoked';
-import { isoBase64URL } from './iso';
import { verifySignature } from './verifySignature';
import { mapX509SignatureAlgToCOSEAlg } from './mapX509SignatureAlgToCOSEAlg';
import { getCertificateInfo } from './getCertificateInfo';
+import { convertPEMToBytes } from './convertPEMToBytes';
/**
* Traverse an array of PEM certificates and ensure they form a proper chain
@@ -73,8 +73,8 @@ async function _validatePath(certificates: string[]): Promise<boolean> {
issuerPem = certificates[i + 1];
}
- const subjectInfo = getCertificateInfo(pemToBytes(subjectPem));
- const issuerInfo = getCertificateInfo(pemToBytes(issuerPem));
+ const subjectInfo = getCertificateInfo(convertPEMToBytes(subjectPem));
+ const issuerInfo = getCertificateInfo(convertPEMToBytes(issuerPem));
const x509Subject = subjectInfo.parsedCertificate;
@@ -115,7 +115,7 @@ async function _validatePath(certificates: string[]): Promise<boolean> {
const signatureAlgorithm = mapX509SignatureAlgToCOSEAlg(
x509Subject.signatureAlgorithm.algorithm,
);
- const issuerCertBytes = pemToBytes(issuerPem);
+ const issuerCertBytes = convertPEMToBytes(issuerPem);
const verified = await verifySignature({
data: new Uint8Array(data),
@@ -147,15 +147,3 @@ class CertificateNotYetValidOrExpired extends Error {
this.name = 'CertificateNotYetValidOrExpired';
}
}
-
-/**
- * Take a certificate in PEM format and convert it to bytes
- */
-function pemToBytes(pem: string): Uint8Array {
- const certBase64 = pem
- .replace('-----BEGIN CERTIFICATE-----', '')
- .replace('-----END CERTIFICATE-----', '')
- .replace(/\n/g, '');
-
- return isoBase64URL.toBuffer(certBase64, 'base64');
-}