timestampSignature method

Future<Uint8List> timestampSignature(
  1. Uint8List signature, {
  2. PdfTimestampValidationOptions? validationOptions,
})

Requests a timestamp token for signature.

Implementation

Future<Uint8List> timestampSignature(
  Uint8List signature, {
  PdfTimestampValidationOptions? validationOptions,
}) async {
  final digest = _computeDigest(signature, hashAlgorithm);
  final requestBytes = _buildRequest(digest, hashAlgorithm);
  final responseBytes = await _postRequest(requestBytes);
  final token = _parseResponse(responseBytes);

  final options = validationOptions ?? this.validationOptions;
  if (options != null) {
    final result = await _validateToken(token, options);
    if (options.throwOnFailure) {
      if (!result.cmsValid) {
        throw StateError('Timestamp TSA com assinatura invalida.');
      }
      if (options.requireTrustedChain && result.chainTrusted != true) {
        throw StateError('Timestamp TSA com cadeia nao confiavel.');
      }
    }
  }

  return token;
}