using System; using System.Security.Cryptography.X509Certificates; using Yubico.YubiKey.Piv; using VNLib.Hashing.IdentityUtility; namespace PkiAuthenticator { /// /// Represents an authenticaion device, backed by hardware or software keys. /// public interface IAuthenticator : IJwtSignatureProvider, IDisposable { /// /// The signature algorithm the devices/keys support. /// PivAlgorithm KeyAlgorithm { get; } /// /// Gets the public/key certificate for the authenticator /// /// The certificate X509Certificate2 GetCertificate(); /// /// Initialies the authenticator's assets required for performing /// authentication functions. /// /// True if the authenticator was successfully initialized. bool Initialize(); /// /// Writes the internal devices to the log output /// /// The exit code for the process, 0 if successful, non-zero if the operation failed int ListDevices(); } }