summaryrefslogtreecommitdiffhomepage
path: root/packages/server/src/helpers/validateCertificatePath.ts
diff options
context:
space:
mode:
authorMatthew Miller <matthew@millerti.me>2022-02-08 21:34:37 -0800
committerGitHub <noreply@github.com>2022-02-08 21:34:37 -0800
commita8b97311fdec49734d2476c8654202b567d89ffb (patch)
treef1083c3d7a603c59090bd7720a790d2bdf37bb3e /packages/server/src/helpers/validateCertificatePath.ts
parenta57a1078f5438c9d9b1a095bd797e927b1a625c9 (diff)
parent87ad08ff5db7bc7d80e1f4f29d96fb1108adc714 (diff)
Merge pull request #177 from MasterKale/fix/remove-expired-safetynet-root-cert
fix/remove-expired-safetynet-root-cert
Diffstat (limited to 'packages/server/src/helpers/validateCertificatePath.ts')
-rw-r--r--packages/server/src/helpers/validateCertificatePath.ts13
1 files changed, 11 insertions, 2 deletions
diff --git a/packages/server/src/helpers/validateCertificatePath.ts b/packages/server/src/helpers/validateCertificatePath.ts
index 8cacb0b..77d7f77 100644
--- a/packages/server/src/helpers/validateCertificatePath.ts
+++ b/packages/server/src/helpers/validateCertificatePath.ts
@@ -59,8 +59,11 @@ async function _validatePath(certificates: string[]): Promise<boolean> {
const subjectCert = new X509();
subjectCert.readCertPEM(subjectPem);
+ const isLeafCert = i === 0;
+ const isRootCert = i + 1 >= certificates.length;
+
let issuerPem = '';
- if (i + 1 >= certificates.length) {
+ if (isRootCert) {
issuerPem = subjectPem;
} else {
issuerPem = certificates[i + 1];
@@ -82,7 +85,13 @@ async function _validatePath(certificates: string[]): Promise<boolean> {
const now = new Date(Date.now());
if (notBefore > now || notAfter < now) {
- throw new Error('Intermediate certificate is not yet valid or expired');
+ if (isLeafCert) {
+ throw new Error('Leaf certificate is not yet valid or expired');
+ } else if (isRootCert) {
+ throw new Error('Root certificate is not yet valid or expired');
+ } else {
+ throw new Error('Intermediate certificate is not yet valid or expired');
+ }
}
if (subjectCert.getIssuerString() !== issuerCert.getSubjectString()) {