/// <summary> /// ritorna il numero di firme contenute nel documento /// </summary> /// <param name="signedFile"></param> /// <returns></returns> /// <remarks>supporta PAdES</remarks> public int GetSignatureCount(byte[] signedFile) { int nHandle = 0, nCountSignature = 0; //Controlla in primis se il documento รจ PADES. try { oDigest.PADES_OpenFromBuf(signedFile, out nHandle); if (nHandle != 0) { nCountSignature = oDigest.PADES_GetSignatureCount(nHandle); oDigest.PADES_Free(nHandle); } } catch { } finally { try { if (nHandle != 0) { oDigest.PADES_Free(nHandle); } } catch { } } // Controlla le firme CADES try { oDigest.P7kLoadFromBuf(signedFile, 1, out nHandle); if (nHandle != 0) { int nCount; oDigest.P7kGetSignatureCount(nHandle, out nCount); nCountSignature += nCount; } } catch { } finally { try { oDigest.P7kFree(nHandle); } catch { } } return(nCountSignature); }
public void GetFileInfo(bool isP7M, byte[] blob, out string Metadata) { int p7H; string cName = "", descr = ""; if (isP7M) { oDigest.P7kLoadFromBuf((object)blob, 1, out p7H); oDigest.P7kGetDescription(p7H, out cName, out descr); // object digestData; // oDigest.DigestGetValue(p7H,out digestData); oDigest.P7kFree(p7H); } else { oDigest.P7xLoadFromBuf((object)blob, out p7H); oDigest.P7kGetDescription(p7H, out cName, out descr); oDigest.P7xFree(p7H); } CCypher.enumErrorClass errC; int ErrI; string ErrS; oDigest.GetLastError(out errC, out ErrI, out ErrS); Metadata = "<?xml version=\"1.0\" ?><file name=\"" + cName + "\" description=\"" + descr + "\""; }