File: SignCommand\CertificateFindOptions.cs
Web Access
Project: src\src\nuget-client\src\NuGet.Core\NuGet.Commands\NuGet.Commands.csproj (NuGet.Commands)
// Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.

#nullable disable

using System.Security.Cryptography.X509Certificates;
using System.Threading;
using NuGet.Commands.SignCommand;

namespace NuGet.Commands
{
    /// <summary>
    /// Source options for X.509 certificates.
    /// <seealso cref="CertificateProvider" />
    /// </summary>
    internal class CertificateSourceOptions
    {
        /// <summary>
        /// The certificate file path.
        /// </summary>
        public string CertificatePath { get; set; }

        /// <summary>
        /// The certificate password.
        /// </summary>
        public string CertificatePassword { get; set; }

        /// <summary>
        /// The certificate store name.
        /// </summary>
        public StoreName StoreName { get; set; }

        /// <summary>
        /// The certificate store location.
        /// </summary>
        public StoreLocation StoreLocation { get; set; }

        /// <summary>
        /// The certificate subject name or a substring to be used to search for the certificate.
        /// </summary>
        public string SubjectName { get; set; }

        /// <summary>
        /// SHA256 or SHA384 or SHA512 fingerprint of the certificate.
        /// </summary>
        public string Fingerprint { get; set; }

        /// <summary>
        /// bool used to indicate if the user can be prompted for password.
        /// </summary>
        public bool NonInteractive { get; set; }

        /// <summary>
        /// Password provider to get the password from user for opening a pfx file.
        /// </summary>
        public IPasswordProvider PasswordProvider { get; set; }

        /// <summary>
        /// Cancellation token.
        /// </summary>
        public CancellationToken Token { get; set; }

        /// <summary>
        /// When true, allow certificates with untrusted roots through store discovery.
        /// </summary>
        public bool AllowUntrustedRoot { get; set; }

    }
}