macrovector()

in default/cve5/static/cvss40.js [310:388]


    macrovector() {
        const av = this.getReal('AV');
        const ac = this.getReal('AC');
        const at = this.getReal('AT');
        const pr = this.getReal('PR');
        const ui = this.getReal('UI');
        const vc = this.getReal('VC');
        const vi = this.getReal('VI');
        const va = this.getReal('VA');
        const sc = this.getReal('SC');
        const si = this.getReal('SI');
        const sa = this.getReal('SA');
        const e = this.getReal('E');
        const cr = this.getReal('CR');
        const ir = this.getReal('IR');
        const ar = this.getReal('AR');
        // Compte MacroVectors
        // => EQ1
        let eq1 = '0';
        if (av == 'N' && pr == 'N' && ui == 'N') {
            eq1 = '0';
        }
        else if ((av == 'N' || pr == 'N' || ui == 'N') && !(av == 'N' && pr == 'N' && ui == 'N') && !(av == 'P')) {
            eq1 = '1';
        }
        else if (av == 'P' || !(av == 'N' || pr == 'N' || ui == 'N')) {
            eq1 = '2';
        }
        // EQ2
        let eq2 = '0';
        if (!(ac == 'L' && at == 'N')) {
            eq2 = '1';
        }
        // EQ3
        let eq3 = '0';
        if (vc == 'H' && vi == 'H') {
            eq3 = '0';
        }
        else if (!(vc == 'H' && vi == 'H') && (vc == 'H' || vi == 'H' || va == 'H')) {
            eq3 = '1';
        }
        else if (!(vc == 'H' || vi == 'H' || va == 'H')) {
            eq3 = '2';
        }
        // EQ4
        let eq4 = '0';
        if (si == 'S' || sa == 'S') {
            eq4 = '0';
        }
        else if (!(si == 'S' || sa == 'S') && (sc == 'H' || si == 'H' || sa == 'H')) {
            eq4 = '1';
        }
        else if (!(si == 'S' || sa == 'S') && !(sc == 'H' || si == 'H' || sa == 'H')) {
            eq4 = '2';
        }
        // EQ5
        let eq5 = '0';
        if (e == 'A' || e == 'X') {
            eq5 = '0';
        }
        else if (e == 'P') {
            eq5 = '1';
        }
        else if (e == 'U') {
            eq5 = '2';
        }
        // EQ6
        let eq6 = '0';
        const crh = (cr == 'H' || cr == 'X');
        const irh = (ir == 'H' || ir == 'X');
        const arh = (ar == 'H' || ar == 'X');
        if ((crh && vc == 'H') || (irh && vi == 'H') || (arh && va == 'H')) {
            eq6 = '0';
        }
        else if (!(crh && vc == 'H') && !(irh && vi == 'H') && !(arh && va == 'H')) {
            eq6 = '1';
        }
        return eq1 + eq2 + eq3 + eq4 + eq5 + eq6;
    }