tls: fix empty issuer/subject/infoAccess parsing · nodejs/node@3a6392b
1+'use strict';
2+const common = require('../common');
3+4+if (!common.hasCrypto)
5+common.skip('missing crypto');
6+7+const { strictEqual, deepStrictEqual } = require('assert');
8+const { translatePeerCertificate } = require('_tls_common');
9+10+const certString = 'A=1\nB=2\nC=3';
11+const certObject = { A: '1', B: '2', C: '3' };
12+13+strictEqual(translatePeerCertificate(null), null);
14+strictEqual(translatePeerCertificate(undefined), null);
15+16+strictEqual(translatePeerCertificate(0), null);
17+strictEqual(translatePeerCertificate(1), 1);
18+19+deepStrictEqual(translatePeerCertificate({}), {});
20+21+deepStrictEqual(translatePeerCertificate({ issuer: '' }),
22+{ issuer: {} });
23+deepStrictEqual(translatePeerCertificate({ issuer: null }),
24+{ issuer: null });
25+deepStrictEqual(translatePeerCertificate({ issuer: certString }),
26+{ issuer: certObject });
27+28+deepStrictEqual(translatePeerCertificate({ subject: '' }),
29+{ subject: {} });
30+deepStrictEqual(translatePeerCertificate({ subject: null }),
31+{ subject: null });
32+deepStrictEqual(translatePeerCertificate({ subject: certString }),
33+{ subject: certObject });
34+35+deepStrictEqual(translatePeerCertificate({ issuerCertificate: '' }),
36+{ issuerCertificate: null });
37+deepStrictEqual(translatePeerCertificate({ issuerCertificate: null }),
38+{ issuerCertificate: null });
39+deepStrictEqual(
40+translatePeerCertificate({ issuerCertificate: { subject: certString } }),
41+{ issuerCertificate: { subject: certObject } });
42+43+{
44+const cert = {};
45+cert.issuerCertificate = cert;
46+deepStrictEqual(translatePeerCertificate(cert), { issuerCertificate: cert });
47+}
48+49+deepStrictEqual(translatePeerCertificate({ infoAccess: '' }),
50+{ infoAccess: {} });
51+deepStrictEqual(translatePeerCertificate({ infoAccess: null }),
52+{ infoAccess: null });
53+deepStrictEqual(
54+translatePeerCertificate({ infoAccess: 'OCSP - URI:file:///etc/passwd' }),
55+{ infoAccess: { 'OCSP - URI': ['file:///etc/passwd'] } });