Esempio n. 1
0
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;
    }
}
Esempio n. 2
0
/// validate Signature element offline
///
/// @throws SignatureException on a problem in signature
void digidoc::SignatureBES::checkSignature() const throw(SignatureException)
{
    checkSignedInfo();
    checkKeyInfo();
    checkSignatureValue();
}