コード例 #1
0
 /// <summary>
 /// Initializes a new instance of the <see cref="IoUtility"/> class.
 /// </summary>
 public IoUtility(
     IDirectoryUtility directoryUtility,
     IFileUtility fileUtility,
     IPathUtility pathUtility)
 {
     Directory = directoryUtility;
     Path      = pathUtility;
     File      = fileUtility;
 }
コード例 #2
0
 public AppxFileFactory(ILogger <AppxFileFactory> logger,
                        IOptionsSnapshot <WindowsSdkFiles> windowSdkFiles,
                        IKeyVaultService keyVaultService,
                        IDirectoryUtility directoryUtility)
 {
     this.logger           = logger;
     this.keyVaultService  = keyVaultService;
     this.directoryUtility = directoryUtility;
     makeappxPath          = windowSdkFiles.Value.MakeAppxPath;
 }
コード例 #3
0
 public SignController(ISigningToolAggregate codeSignAggregate,
                       ILogger <SignController> logger,
                       IDirectoryUtility directoryUtility,
                       IFileNameService fileNameService)
 {
     this.codeSignAggregate = codeSignAggregate;
     this.logger            = logger;
     this.directoryUtility  = directoryUtility;
     this.fileNameService   = fileNameService;
 }
コード例 #4
0
ファイル: AppxFile.cs プロジェクト: wjwidener/SignService
        public AppxFile(string inputFileName, string publisher, ILogger logger, IDirectoryUtility directoryUtility, string makeAppxPath, string filter)
        {
            this.inputFileName    = inputFileName;
            this.publisher        = publisher;
            this.logger           = logger;
            this.directoryUtility = directoryUtility;
            this.makeAppxPath     = makeAppxPath;

            dataDirectory = Path.Combine(Path.GetTempPath(), Path.GetRandomFileName());
            Directory.CreateDirectory(dataDirectory);

            Unpack();
            UpdateManifestPublisher();


            var filesInDir = Directory.EnumerateFiles(dataDirectory, "*.*", SearchOption.AllDirectories);

            FilesInDirectory = filesInDir.ToList();

            // don't allow parent directory traversal
            filter = filter.Replace(@"..\", "").Replace("../", "");

            var globs = filter.Split('\n').Where(s => (!string.IsNullOrWhiteSpace(s)))
                        .Where(s => (!s.StartsWith("!")))
                        .ToList();

            var antiglobs = filter.Split('\n').Where(s => (!string.IsNullOrWhiteSpace(s)))
                            .Where(s => (s.StartsWith("!")))
                            .Select(s => s.Substring(1))
                            .ToList();

            if (globs.Count > 0)
            {
                var files = Globber.GetFiles(new DirectoryInfo(dataDirectory), globs);
                FilteredFilesInDirectory = files.Select(f => f.FullName).ToList();
            }

            // If no filtered, default to all
            if (FilteredFilesInDirectory == null)
            {
                FilteredFilesInDirectory = FilesInDirectory.ToList();
            }

            if (antiglobs.Count > 0)
            {
                var antifiles = Globber.GetFiles(new DirectoryInfo(dataDirectory), antiglobs)
                                .Select(f => f.FullName)
                                .ToList();

                FilteredFilesInDirectory = FilteredFilesInDirectory.Except(antifiles).ToList();
            }

            FilesExceptFiltered = FilesInDirectory.Except(FilteredFilesInDirectory).ToList();
        }
コード例 #5
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ConsoleValidator"/> class.
 /// </summary>
 /// <param name="logger">The logger.</param>
 /// <param name="settings">The settings.</param>
 /// <param name="fileUtility">The file utility.</param>
 /// <param name="directoryUtility">The directory utility.</param>
 /// <param name="pathUtility">The path utility.</param>
 public ConsoleValidator(
     ILogger logger,
     IHyperValidatorSettings settings,
     IFileUtility fileUtility,
     IDirectoryUtility directoryUtility,
     IPathUtility pathUtility)
 {
     Logger           = logger;
     Settings         = settings;
     FileUtility      = fileUtility;
     DirectoryUtility = directoryUtility;
     PathUtility      = pathUtility;
 }
コード例 #6
0
 /// <summary>
 /// Initializes a new instance of the <see cref="SystemRepository" /> class.
 /// </summary>
 /// <param name="settings">The settings.</param>
 /// <param name="logger">The logger.</param>
 /// <param name="directoryUtility">The directory utility.</param>
 /// <param name="fileUtility">The file utility.</param>
 /// <param name="pathUtility">The path utility.</param>
 /// <param name="consoleRepository">The console repository.</param>
 public SystemRepository(
     IHyperValidatorSettings settings,
     ILogger logger,
     IDirectoryUtility directoryUtility,
     IFileUtility fileUtility,
     IPathUtility pathUtility,
     IConsoleRepository consoleRepository)
 {
     Settings          = settings;
     Logger            = logger;
     DirectoryUtility  = directoryUtility;
     FileUtility       = fileUtility;
     PathUtility       = pathUtility;
     ConsoleRepository = consoleRepository;
 }
コード例 #7
0
 /// <summary>
 /// Initializes a new instance of the <see cref="GameRepository"/> class.
 /// </summary>
 /// <param name="settings">The settings.</param>
 /// <param name="logger">The logger.</param>
 /// <param name="directoryUtility">The directory utility.</param>
 /// <param name="fileUtility">The file utility.</param>
 /// <param name="pathUtility">The path utility.</param>
 /// <param name="consoleSerializer">The console serializer.</param>
 public GameRepository(
     IHyperValidatorSettings settings,
     ILogger logger,
     IDirectoryUtility directoryUtility,
     IFileUtility fileUtility,
     IPathUtility pathUtility,
     IConsoleSerializer consoleSerializer)
 {
     Settings          = settings;
     Logger            = logger;
     DirectoryUtility  = directoryUtility;
     FileUtility       = fileUtility;
     PathUtility       = pathUtility;
     ConsoleSerializer = consoleSerializer;
 }
コード例 #8
0
        public AppxBundleFile(string inputFileName, ILogger logger, IDirectoryUtility directoryUtility, string makeAppxPath)
        {
            this.inputFileName    = inputFileName;
            this.logger           = logger;
            this.directoryUtility = directoryUtility;
            this.makeAppxPath     = makeAppxPath;
            dataDirectory         = Path.Combine(Path.GetTempPath(), Path.GetRandomFileName());
            Directory.CreateDirectory(dataDirectory);

            logger.LogInformation($"Extracting bundle file {inputFileName}");
            Unbundle();

            bundleVersion = GetBundleVersion();

            var filesInDir = Directory.EnumerateFiles(dataDirectory, "*.appx", SearchOption.AllDirectories)
                             .Concat(Directory.EnumerateFiles(dataDirectory, "*.msix", SearchOption.AllDirectories));

            FilteredFilesInDirectory = filesInDir.ToList();
        }
コード例 #9
0
        public MageSignService(IOptionsMonitor <AzureADOptions> aadOptions,
                               IWebHostEnvironment hostingEnvironment,
                               IKeyVaultService keyVaultService,
                               IServiceProvider serviceProvider,
                               ILogger <MageSignService> logger,
                               ITelemetryLogger telemetryLogger,
                               IDirectoryUtility directoryUtility)
        {
            this.aadOptions       = aadOptions.Get(AzureADDefaults.AuthenticationScheme);
            this.keyVaultService  = keyVaultService;
            this.logger           = logger;
            this.telemetryLogger  = telemetryLogger;
            this.directoryUtility = directoryUtility;

            magetoolPath = Path.Combine(hostingEnvironment.ContentRootPath, "tools\\SDK\\x86\\mage.exe");
            signToolName = nameof(MageSignService);
            // Need to delay this as it'd create a dependency loop if directly in the ctor
            signToolAggregate = new Lazy <ISigningToolAggregate>(() => serviceProvider.GetService <ISigningToolAggregate>());
        }
コード例 #10
0
        public SigningToolAggregate(IEnumerable <ICodeSignService> services,
                                    IAppxFileFactory appxFileFactory,
                                    IOptionsSnapshot <WindowsSdkFiles> windowSdkFiles,
                                    ILogger <SigningToolAggregate> logger,
                                    IDirectoryUtility directoryUtility)
        {
            this.appxFileFactory  = appxFileFactory;
            this.logger           = logger;
            this.directoryUtility = directoryUtility;
            makeappxPath          = windowSdkFiles.Value.MakeAppxPath;

            // pe files
            defaultCodeSignService = services.Single(c => c.IsDefault);

            var list = from cs in services
                       from ext in cs.SupportedFileExtensions
                       select new { cs, ext };

            codeSignServices = list.ToDictionary(k => k.ext.ToLowerInvariant(), v => v.cs);
        }
コード例 #11
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ConsoleRepository" /> class.
 /// </summary>
 /// <param name="settings">The settings.</param>
 /// <param name="logger">The logger.</param>
 /// <param name="directoryUtility">The directory utility.</param>
 /// <param name="fileUtility">The file utility.</param>
 /// <param name="pathUtility">The path utility.</param>
 /// <param name="consoleSerializer">The console serializer.</param>
 /// <param name="databaseSerializer">The database serializer.</param>
 /// <param name="gameValidator">The game validator.</param>
 /// <param name="consoleValidator">The console validator.</param>
 public ConsoleRepository(
     IHyperValidatorSettings settings,
     ILogger logger,
     IDirectoryUtility directoryUtility,
     IFileUtility fileUtility,
     IPathUtility pathUtility,
     IConsoleSerializer consoleSerializer,
     IDatabaseSerializer databaseSerializer,
     IGameValidator gameValidator,
     IConsoleValidator consoleValidator)
 {
     Settings           = settings;
     Logger             = logger;
     DirectoryUtility   = directoryUtility;
     FileUtility        = fileUtility;
     PathUtility        = pathUtility;
     ConsoleSerializer  = consoleSerializer;
     DatabaseSerializer = databaseSerializer;
     GameValidator      = gameValidator;
     ConsoleValidator   = consoleValidator;
 }