Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
ac0d987
Add support for importing and exporting large blobs
JMarkstrom Feb 11, 2026
b670763
Add import and export support for large blobs on the FIDO applet.
JMarkstrom Feb 11, 2026
d6528e2
Fix lint issues
virot Mar 19, 2026
45b2242
Add Export-EybiKeyFIDO2Blob
virot Mar 19, 2026
5f58ad1
Readd the AssemblyLoadContext-loader (#188)
virot Mar 19, 2026
a22561c
Update platyPS to 1.0.1 (#187)
virot Mar 19, 2026
baa5465
Add documentation for Export-YubiKeyFIDOBlob
virot Mar 19, 2026
c53529a
Add Import-YubiKeyFIDO2Blob Cmdlet
virot Mar 20, 2026
0dac3e2
Add initial pester test
virot Mar 20, 2026
b6da248
Fix for lit
virot Mar 22, 2026
2466fbd
Merge branch 'master' into large-blob-support
virot Mar 22, 2026
d3f8df5
Unknown changes by lint
virot Mar 22, 2026
befec72
Merge branch 'large-blob-support' of https://github.com/virot/powersh…
virot Mar 22, 2026
0e8a5bc
Delete powershellYK_loader/loader.cs
virot Mar 22, 2026
ef1d461
Enhance dotnet format command and remove loader build
virot Mar 22, 2026
a4cd015
Update module import paths in Pester tests
virot Mar 22, 2026
cbaf518
Delete powershellYK_loader/powershellYK_loader.csproj
virot Mar 22, 2026
cd24786
Remove powershellYK_loader project from solution
virot Mar 22, 2026
59ed2c4
Remove Debug configurations from solution file
virot Mar 22, 2026
35dac3d
Remove specific PowerShell scripts from .gitignore
virot Mar 22, 2026
484ffef
Update module import paths in Pester tests
virot Mar 22, 2026
bff54ba
Revert Get|Set-YubiKeyFIDO2
virot Mar 22, 2026
0a14f90
FRevert Get|Set-YubiKeyFIDO2
virot Mar 22, 2026
edc9972
Merge branch 'large-blob-support' of https://github.com/virot/powersh…
virot Mar 22, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/main.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ jobs:
dotnet-version: '8.x.x' # Specify the .NET version you're using

- name: Run dotnet format
run: dotnet format --no-restore Module/powershellYK.csproj
run: dotnet format --no-restore --verbosity normal Module/powershellYK.csproj
continue-on-error: false

- name: Check for uncommitted changes
Expand Down
1 change: 0 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -364,4 +364,3 @@ FodyWeavers.xsd
/.vscode/launch.json
/powershellYK.psd1
/.cursorrules
/Docs/Cookbook/Set-BIO-random-PIN.ps1
144 changes: 144 additions & 0 deletions Docs/Commands/Export-YubiKeyFIDO2Blob.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,144 @@
---
document type: cmdlet
external help file: powershellYK.dll-Help.xml
HelpUri: ''
Locale: en-SE
Module Name: powershellYK
ms.date: 03-20-2026
PlatyPS schema version: 2024-05-01
title: Export-YubiKeyFIDO2Blob
---

# Export-YubiKeyFIDO2Blob

## SYNOPSIS

Exports large blob from YubiKey FIDO2 by Credential ID or Relying Party ID (Origin).

## SYNTAX

### Export LargeBlob

```
Export-YubiKeyFIDO2Blob -CredentialId <CredentialID> -OutFile <FileInfo> [<CommonParameters>]
```

### Export LargeBlob by RelyingPartyID

```
Export-YubiKeyFIDO2Blob -RelyingPartyID <string> -OutFile <FileInfo> [<CommonParameters>]
```

## ALIASES

## DESCRIPTION

Requires YubiKey firmware version 5.7.4 or later.

## EXAMPLES

### Example 1

```powershell
PS C:\> Export-YubiKeyFIDO2Blob -RelyingPartyID "powershellYK" -OutFile storedfile.txt
Touch the YubiKey...
```

Exports the large blob for the credential with the specified Credential ID to the specified output file.

## PARAMETERS

### -CredentialId

Credential ID (hex or base64url string) to export large blob for.

```yaml
Type: System.Nullable`1[powershellYK.FIDO2.CredentialID]
DefaultValue: ''
SupportsWildcards: false
Aliases: []
ParameterSets:
- Name: Export LargeBlob
Position: Named
IsRequired: true
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
```

### -OutFile

Output file path for the exported large blob

```yaml
Type: System.IO.FileInfo
DefaultValue: ''
SupportsWildcards: false
Aliases: []
ParameterSets:
- Name: Export LargeBlob
Position: Named
IsRequired: true
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
- Name: Export LargeBlob by RelyingPartyID
Position: Named
IsRequired: true
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
```

### -RelyingPartyID

Relying Party ID (Origin), or relying party display name if unique, to export large blob for.

```yaml
Type: System.String
DefaultValue: ''
SupportsWildcards: false
Aliases:
- RP
- Origin
ParameterSets:
- Name: Export LargeBlob by RelyingPartyID
Position: Named
IsRequired: true
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
```

### CommonParameters

This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable,
-InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable,
-ProgressAction, -Verbose, -WarningAction, and -WarningVariable. For more information, see
[about_CommonParameters](https://go.microsoft.com/fwlink/?LinkID=113216).

## INPUTS

## OUTPUTS

### System.Object

{{ Fill in the Description }}

## NOTES

{{ Fill in the Notes }}

## RELATED LINKS

[FIDO2 large blobs ("largeBlobs" option)](https://docs.yubico.com/yesdk/users-manual/application-fido2/large-blobs.html)

174 changes: 174 additions & 0 deletions Docs/Commands/Import-YubiKeyFIDO2Blob.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,174 @@
---
document type: cmdlet
external help file: powershellYK.dll-Help.xml
HelpUri: ''
Locale: en-SE
Module Name: powershellYK
ms.date: 03-20-2026
PlatyPS schema version: 2024-05-01
title: Import-YubiKeyFIDO2Blob
---

# Import-YubiKeyFIDO2Blob

## SYNOPSIS

Imports large blob to YubiKey FIDO2 by Credential ID or Relying Party ID (Origin).

## SYNTAX

### Set LargeBlob

```
Import-YubiKeyFIDO2Blob -LargeBlob <FileInfo> -CredentialId <CredentialID> [-Force]
[<CommonParameters>]
```

### Set LargeBlob by RelyingPartyID

```
Import-YubiKeyFIDO2Blob -LargeBlob <FileInfo> -RelyingPartyID <string> [-Force] [<CommonParameters>]
```

## ALIASES

This cmdlet has the following aliases,
{{Insert list of aliases}}

## DESCRIPTION

Requires YubiKey firmware version 5.7 or later.

## EXAMPLES

### Example 1

```powershell
PS C:\> Import-YubiKeyFIDO2Blob -RelyingPartyID "powershellYK" -LargeBlob FileToImport.txt
Touch the YubiKey...
```

Imports the large blob from the specified file for the credential with the specified Relying Party ID (or display name, if unique) to the YubiKey.

## PARAMETERS

### -CredentialId

Credential ID (hex or base64url string) to associate with the large blob array.

```yaml
Type: System.Nullable`1[powershellYK.FIDO2.CredentialID]
DefaultValue: ''
SupportsWildcards: false
Aliases: []
ParameterSets:
- Name: Set LargeBlob
Position: Named
IsRequired: true
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
```

### -Force

Overwrite existing large blob entry for this credential without prompting.

```yaml
Type: System.Management.Automation.SwitchParameter
DefaultValue: ''
SupportsWildcards: false
Aliases: []
ParameterSets:
- Name: Set LargeBlob
Position: Named
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
- Name: Set LargeBlob by RelyingPartyID
Position: Named
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
```

### -LargeBlob

File to import as large blob

```yaml
Type: System.IO.FileInfo
DefaultValue: ''
SupportsWildcards: false
Aliases: []
ParameterSets:
- Name: Set LargeBlob
Position: Named
IsRequired: true
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
- Name: Set LargeBlob by RelyingPartyID
Position: Named
IsRequired: true
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
```

### -RelyingPartyID

Relying party ID, or relying party display name if unique, to associate with the large blob.

```yaml
Type: System.String
DefaultValue: ''
SupportsWildcards: false
Aliases:
- RP
- Origin
ParameterSets:
- Name: Set LargeBlob by RelyingPartyID
Position: Named
IsRequired: true
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
```

### CommonParameters

This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable,
-InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable,
-ProgressAction, -Verbose, -WarningAction, and -WarningVariable. For more information, see
[about_CommonParameters](https://go.microsoft.com/fwlink/?LinkID=113216).

## INPUTS

## OUTPUTS

### System.Object

{{ Fill in the Description }}

## NOTES

{{ Fill in the Notes }}

## RELATED LINKS

[FIDO2 large blobs ("largeBlobs" option)](https://docs.yubico.com/yesdk/users-manual/application-fido2/large-blobs.html)
Loading
Loading