void bdoc::Signature::validateOffline(bdoc::X509CertStore *store)
{
    DECLARE_STACK_EXCEPTION("Signature is invalid");

    try {
        checkQualifyingProperties();
    }
    catch (StackExceptionBase& e) {
        exc.add(e);
    }

    try {
        checkSignatureMethod();
        checkReferences();
        checkKeyInfo();
        checkSignatureValue();
    }
    catch (StackExceptionBase& e) {
        exc.add(e);
    }

    try {
        checkSigningCertificate(store);
    }
    catch (StackExceptionBase& e) {
        exc.add(e);
    }

    if (exc.hasCauses()) {
        throw exc;
    }
}
Beispiel #2
0
/// validate SignedInfo offline
///
/// @throws SignatureException on a problem in signature
void digidoc::SignatureBES::checkSignedInfo() const throw(SignatureException)
{
    checkSignatureMethod();
    checkReferences();
}