public bool Verify() {
if (verified)
return verifyResult;
if (sigAttr != null) {
byte[] msd = new byte[messageDigest.GetDigestSize()];
sig.BlockUpdate(sigAttr, 0, sigAttr.Length);
if (RSAdata != null) {
messageDigest.DoFinal(msd, 0);
messageDigest.BlockUpdate(msd, 0, msd.Length);
}
messageDigest.DoFinal(msd, 0);
verifyResult = (Arrays.AreEqual(msd, digestAttr) && sig.VerifySignature(digest));
}
else {
if (RSAdata != null){
byte[] msd = new byte[messageDigest.GetDigestSize()];
messageDigest.DoFinal(msd, 0);
sig.BlockUpdate(msd, 0, msd.Length);
}
verifyResult = sig.VerifySignature(digest);
}
verified = true;
return verifyResult;
}