validateBatch method

Future<PdfBatchValidationResult> validateBatch(
  1. List<PdfBatchValidationInput> batch, {
  2. required List<PdfTrustProfile> trustProfiles,
  3. bool strictRevocation = false,
  4. bool fetchCrls = false,
  5. bool fetchOcsp = false,
  6. bool validateTemporal = false,
  7. bool temporalUseSigningTime = false,
  8. DateTime? validationTime,
  9. bool temporalExpiredNeedsLtv = true,
  10. PdfRevocationDataProvider? revocationDataProvider,
  11. bool includeCertificates = true,
  12. bool includeSignatureFields = true,
  13. PdfLpa? lpa,
  14. Map<String, String>? policyDisplayMap,
  15. PdfValidationCacheHooks? cacheHooks,
  16. Duration cacheTtl = const Duration(minutes: 2),
})

Implementation

Future<PdfBatchValidationResult> validateBatch(
  List<PdfBatchValidationInput> batch, {
  required List<PdfTrustProfile> trustProfiles,
  bool strictRevocation = false,
  bool fetchCrls = false,
  bool fetchOcsp = false,
  bool validateTemporal = false,
  bool temporalUseSigningTime = false,
  DateTime? validationTime,
  bool temporalExpiredNeedsLtv = true,
  PdfRevocationDataProvider? revocationDataProvider,
  bool includeCertificates = true,
  bool includeSignatureFields = true,
  PdfLpa? lpa,
  Map<String, String>? policyDisplayMap,
  PdfValidationCacheHooks? cacheHooks,
  Duration cacheTtl = const Duration(minutes: 2),
}) async {
  final index = await PdfTrustedRootsIndex.build(
    trustProfiles
        .map((p) => PdfTrustedRootsSource(id: p.id, provider: p.provider))
        .toList(growable: false),
  );
  final sharedRevocationProvider =
      revocationDataProvider == null || (!fetchCrls && !fetchOcsp)
          ? null
          : _MemoizingRevocationDataProvider(revocationDataProvider);

  final items = <PdfBatchValidationItemResult>[];
  for (final input in batch) {
    final result = await _validateWithPreparedTrustIndex(
      input.pdfBytes,
      trustProfiles: trustProfiles,
      trustIndex: index,
      strictRevocation: strictRevocation,
      fetchCrls: fetchCrls,
      fetchOcsp: fetchOcsp,
      validateTemporal: validateTemporal,
      temporalUseSigningTime: temporalUseSigningTime,
      validationTime: validationTime,
      temporalExpiredNeedsLtv: temporalExpiredNeedsLtv,
      revocationDataProvider: sharedRevocationProvider,
      includeCertificates: includeCertificates,
      includeSignatureFields: includeSignatureFields,
      lpa: lpa,
      policyDisplayMap: policyDisplayMap,
      cacheHooks: cacheHooks,
      cacheTtl: cacheTtl,
    );
    items.add(PdfBatchValidationItemResult(
      id: input.id,
      fileName: input.fileName,
      result: result,
    ));
  }
  return PdfBatchValidationResult(items: items);
}