Commit e634d2de authored by garciay's avatar garciay
Browse files

Add missing valueof() on template (value) processing

parent be87d41f
Loading
Loading
Loading
Loading
+7 −7
Original line number Original line Diff line number Diff line
@@ -207,7 +207,7 @@ module LibItsSecurity_Functions {
                
                
                // Prepare headers
                // Prepare headers
                if (not(ispresent(p_headerFields))) {
                if (not(ispresent(p_headerFields))) {
                    v_headerFields := p_mandatoryHeaders;
                    v_headerFields := valueof(p_mandatoryHeaders);
                } else {
                } else {
                    // Merge p_headerFields and v_mandatoryHeaders into v_headerFields
                    // Merge p_headerFields and v_mandatoryHeaders into v_headerFields
                        
                        
@@ -225,22 +225,22 @@ module LibItsSecurity_Functions {
                    for ( j := j; j < lengthof(p_mandatoryHeaders); j := j + 1) {
                    for ( j := j; j < lengthof(p_mandatoryHeaders); j := j + 1) {
                        // Search for mandatory header in p_HeaderFields
                        // Search for mandatory header in p_HeaderFields
                        for(n:=0; n < lengthof(p_headerFields); n:=n+1) {
                        for(n:=0; n < lengthof(p_headerFields); n:=n+1) {
                            if (valueof(p_headerFields[n]).type_ == p_mandatoryHeaders[j].type_) {
                            if(valueof(p_headerFields[n]).type_ == valueof(p_mandatoryHeaders[j]).type_) {
                                // mandatory header already in p_HeaderFields
                                // mandatory header already in p_HeaderFields
                                break;
                                break;
                            }
                            }
                        } // End of 'for' statement
                        } // End of 'for' statement
                        if (n >= lengthof(p_headerFields)) {
                        if (n >= lengthof(p_headerFields)) {
                            if (p_mandatoryHeaders[j].type_ != e_signer_info) {
                            if(valueof(p_mandatoryHeaders[j]).type_ != e_signer_info) {
                                // Add headers from p_headerFields having lower number than mandatory header
                                // Add headers from p_headerFields having lower number than mandatory header
                                for(n:=i ; n < lengthof(p_headerFields) and valueof(p_headerFields[n]).type_ < p_mandatoryHeaders[j].type_; n:=n+1) {
                                for (n := i; n < lengthof(p_headerFields) and valueof(p_headerFields[n]).type_ < valueof(p_mandatoryHeaders[j]).type_; n:=n+1) {
                                    v_headerFields[k] := valueof(p_headerFields[n]);
                                    v_headerFields[k] := valueof(p_headerFields[n]);
                                    k := k + 1;
                                    k := k + 1;
                                    i := i + 1;
                                    i := i + 1;
                                }
                                }
                            }
                            }
                            // Add mandatory header
                            // Add mandatory header
                            v_headerFields[k] := p_mandatoryHeaders[j];
                            v_headerFields[k] := valueof(p_mandatoryHeaders[j]);
                            k := k + 1;
                            k := k + 1;
                            j := j + 1;
                            j := j + 1;
                        }
                        }
@@ -256,8 +256,8 @@ module LibItsSecurity_Functions {
                
                
                // Prepare payloads to be signed
                // Prepare payloads to be signed
                for(i:=0; i < lengthof(p_payloadFields); i := i + 1) {
                for(i:=0; i < lengthof(p_payloadFields); i := i + 1) {
                    if (p_payloadFields[i].type_ == e_signed or p_payloadFields[i].type_ == e_signed_and_encrypted) {
                    if(valueof(p_payloadFields[i]).type_ == e_signed or valueof(p_payloadFields[i]).type_ == e_signed_and_encrypted) {
                        v_toBeSignedPayloads[lengthof(v_toBeSignedPayloads)] := p_payloadFields[i];
                        v_toBeSignedPayloads[lengthof(v_toBeSignedPayloads)] := valueof(p_payloadFields[i]);
                    }
                    }
                } // End of 'for' statement
                } // End of 'for' statement