1 const x509SubjectAttributes = {
8 POSTALCODE: {array: true},
9 SERIALNUMBER: {array: false},
13 const sanitizeX509GuardData = guardData => {
14 const keys = Object.keys(guardData)
15 if (keys.length !== 1 || keys[0].toLowerCase() !== 'subject') {
16 throw new Error('X509 guard data must contain exactly one key, "subject"')
20 const oldSubject = guardData[keys[0]]
21 for (let k in oldSubject) {
22 const attrib = x509SubjectAttributes[k.toUpperCase()]
24 throw new Error(`X509 guard data contains invalid subject attribute: ${k}`)
28 if (!attrib.array && Array.isArray(v)) {
29 throw new Error(`X509 guard data contains invalid array for attribute ${k}: ${v.toString()}`)
30 } else if (attrib.array && !Array.isArray(v)) {
37 return {subject: newSubject}
41 sanitizeX509GuardData,