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'] } });