using StellaOps.AirGap.Bundle.Models; namespace StellaOps.AirGap.Bundle.Services; public sealed partial class BundleBuilder : IBundleBuilder { private readonly TimeProvider _timeProvider; private readonly IGuidProvider _guidProvider; private readonly ITsaChainBundler _tsaChainBundler; private readonly IOcspResponseFetcher _ocspFetcher; private readonly ICrlFetcher _crlFetcher; public BundleBuilder() : this( TimeProvider.System, SystemGuidProvider.Instance, null, null, null) { } public BundleBuilder( TimeProvider timeProvider, IGuidProvider guidProvider, ITsaChainBundler? tsaChainBundler, IOcspResponseFetcher? ocspFetcher, ICrlFetcher? crlFetcher) { _timeProvider = timeProvider ?? throw new ArgumentNullException(nameof(timeProvider)); _guidProvider = guidProvider ?? throw new ArgumentNullException(nameof(guidProvider)); _tsaChainBundler = tsaChainBundler ?? new TsaChainBundler(); _ocspFetcher = ocspFetcher ?? new OcspResponseFetcher(); _crlFetcher = crlFetcher ?? new CrlFetcher(); } }