@@ -123,15 +123,13 @@ void SignatureSiVa::validate(const string &policy) const
123123 }
124124 if (_indication == " TOTAL-PASSED" )
125125 {
126- if (QES.contains (_signatureLevel) || _signatureLevel.empty () || policy == POLv1)
126+ // DDoc returns _signatureLevel empty
127+ if (policy == POLv2 && !_signatureLevel.empty () && !QES.contains (_signatureLevel))
127128 {
128- if (!e. causes (). empty ())
129- throw e ;
130- return ;
129+ Exception ex ( EXCEPTION_PARAMS ( " Signing certificate does not meet Qualification requirements " ));
130+ ex. setCode (Exception::CertificateIssuerMissing) ;
131+ e. addCause (ex) ;
131132 }
132- Exception ex (EXCEPTION_PARAMS (" Signing certificate does not meet Qualification requirements" ));
133- ex.setCode (Exception::CertificateIssuerMissing);
134- e.addCause (ex);
135133 }
136134 } catch (const Exception &ex) {
137135 e.addCause (ex);
@@ -215,7 +213,7 @@ SiVaContainer::SiVaContainer(const string &path, ContainerOpenCB *cb, bool useHa
215213 }, (const unsigned char *)req.c_str (), req.size ());
216214 req.clear ();
217215
218- if (!r. isOK () && !r.isStatusCode (" 400" ))
216+ if (!r && !r.isStatusCode (" 400" ))
219217 THROW (" Failed to send request to SiVa" );
220218
221219 json result = json::parse (r.content , nullptr , false );
@@ -241,7 +239,7 @@ SiVaContainer::SiVaContainer(const string &path, ContainerOpenCB *cb, bool useHa
241239 s->_signedBy = signature[" signedBy" ];
242240 s->_signatureMethod = signature.value <string>(" signatureMethod" , {});
243241 s->_signatureLevel = signature.value <string>(" signatureLevel" , {});
244- if (json info = signature.value <json>(" info" , {}); !info.is_null ())
242+ if (auto info = signature.value <json>(" info" , {}); !info.is_null ())
245243 {
246244 s->_bestTime = info.value <string>(" bestSignatureTime" , {});
247245 s->_tsTime = info.value <string>(" timestampCreationTime" , {});
0 commit comments