private void AddDocMDP(PdfDictionary crypto)
{
PdfDictionary reference = new PdfDictionary();
PdfDictionary transformParams = new PdfDictionary();
transformParams.Put(PdfName.P, new PdfNumber(certificationLevel));
transformParams.Put(PdfName.V, new PdfName("1.2"));
transformParams.Put(PdfName.TYPE, PdfName.TRANSFORMPARAMS);
reference.Put(PdfName.TRANSFORMMETHOD, PdfName.DOCMDP);
reference.Put(PdfName.TYPE, PdfName.SIGREF);
reference.Put(PdfName.TRANSFORMPARAMS, transformParams);
reference.Put(new PdfName("DigestValue"), new PdfString("aa"));
PdfArray loc = new PdfArray();
loc.Add(new PdfNumber(0));
loc.Add(new PdfNumber(0));
reference.Put(new PdfName("DigestLocation"), loc);
reference.Put(new PdfName("DigestMethod"), new PdfName("MD5"));
reference.Put(PdfName.DATA, writer.reader.Trailer.Get(PdfName.ROOT));
PdfArray types = new PdfArray();
types.Add(reference);
crypto.Put(PdfName.REFERENCE, types);
}