@virot can we add a check for applet support in the begin processing section of each cmdlet such that all PIV cmdlets checks for the PIV applet, all FIDO cmdlets checks for the FIDO applet, all OATH cmdlets checks for the OATH applets etc.? Something like (or reuse from Get-YubiKey cmdlet?):
PIV
// Connect to YubiKey when cmdlet starts
protected override void BeginProcessing()
{
// Check if a YubiKey is connected, if not attempt to connect
if (YubiKeyModule._yubikey is null)
{
WriteDebug("No YubiKey selected, calling Connect-Yubikey...");
try
{
// Create a new PowerShell instance to run Connect-Yubikey
var myPowersShellInstance = PowerShell.Create(RunspaceMode.CurrentRunspace).AddCommand("Connect-Yubikey");
if (this.MyInvocation.BoundParameters.ContainsKey("InformationAction"))
{
myPowersShellInstance = myPowersShellInstance.AddParameter("InformationAction", this.MyInvocation.BoundParameters["InformationAction"]);
}
myPowersShellInstance.Invoke();
WriteDebug($"Successfully connected.");
}
catch (Exception e)
{
throw new Exception(e.Message, e);
}
}
// Verify that the YubiKey supports PIV
if (!((YubiKeyDevice)YubiKeyModule._yubikey!).HasFeature(YubiKeyFeature.PivApplication))
{
throw new Exception("The connected YubiKey does not support PIV functionality.");
}
}
@virot can we add a check for applet support in the begin processing section of each cmdlet such that all PIV cmdlets checks for the PIV applet, all FIDO cmdlets checks for the FIDO applet, all OATH cmdlets checks for the OATH applets etc.? Something like (or reuse from Get-YubiKey cmdlet?):
PIV