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 + "\""; }
public byte[] GetContent(bool isP7M, byte[] blob, out string Metadata) { int p7H; string fName = Path.GetTempFileName(); FileStream fs = new FileStream(fName, FileMode.Create); BinaryWriter bw = new BinaryWriter(fs); bw.Write(blob, 0, blob.Length); fs.Close(); string cName = "", descr = ""; object OutBuf; if (isP7M) { oDigest.P7kLoadFromFile(fName, 1, out p7H); oDigest.P7kContentReadToBuf(p7H, out OutBuf, 0); oDigest.P7kGetDescription(p7H, out cName, out descr); //oDigest.P7k oDigest.P7kFree(p7H); } else { oDigest.P7xLoadFromFile(fName, out p7H); oDigest.P7xContentReadToBuf(p7H, out OutBuf, 0); oDigest.P7xFree(p7H); File.Delete(fName); } 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 + "\"></file>"; File.Delete(fName); return((byte[])OutBuf); }