Вы используете конструктор TSAClientBouncyCastle
без оценки размера:
ITSAClient tsaClient = new TSAClientBouncyCastle("https://freetsa.org/tsr", "", "");
Таким образом, предполагается значение по умолчанию 4 КБ. Таким образом, когда вы применяете отметку времени документа
signer.Timestamp(tsaClient, "Signature1");
, зарезервировано место для маркера отметки времени размером 4 КБ, затем запрашивается отметка времени. Сообщение об ошибке, которое вы здесь получаете, теперь сообщает вам, что фактически полученная метка времени, по-видимому, больше.
Поэтому вам следует использовать конструктор TSAClientBouncyCastle
, который также принимает параметр размера и устанавливает его, например, на 8 КБ = 8192.
При этом вы, кажется, неправильно понимаете метод Timestamp
: он немедленно применяет метку времени документа, а затем закрывает документ:
/// <summary>Signs a document with a PAdES-LTV Timestamp.</summary>
/// <remarks>
/// Signs a document with a PAdES-LTV Timestamp. The document is closed at the end.
/// <br /><br />
/// NOTE: This method closes the underlying pdf document. This means, that current instance
/// of PdfSigner cannot be used after this method call.
/// </remarks>
/// <param name="tsa">the timestamp generator</param>
/// <param name="signatureName">
/// the signature name or null to have a name generated
/// automatically
/// </param>
public virtual void Timestamp(ITSAClient tsa, String signatureName)
Таким образом, вы столкнется с другими ошибками после исправления проблемы с оценкой размера токена отметки времени!