Crescendo SDK
Loading...
Searching...
No Matches
CrescendoDLL.PCSC.FIDODataStructures.LargeBlobsRequest Class Reference

Represents parameters for the FIDO CTAP2 authenticatorLargeBlobs command as defined in the FIDO CTAP 2.1 Specification. More...

Properties

uint? Get [get, set]
 Number of bytes to read from the large-blob array, starting at Offset. Optional parameter (CTAP2 key: 0x01). Required for read operations.
 
uint? Length [get, set]
 Total length of the new serialized large-blob array being written. Optional parameter (CTAP2 key: 0x04). Required for the first write fragment (offset 0).
 
uint Offset [get, set]
 Byte offset into the serialized large-blob array. Required parameter (CTAP2 key: 0x03).
 
byte?[] PinUvAuthParam [get, set]
 PIN/UV authentication signature for write operations. Optional parameter (CTAP2 key: 0x05). Required when Set is present.
 
uint? PinUvAuthProtocol [get, set]
 Selected PIN/UV protocol version. Optional parameter (CTAP2 key: 0x06). Required when PinUvAuthParam is present.
 
byte?[] Set [get, set]
 Fragment of data to write to the large-blob array at Offset. Optional parameter (CTAP2 key: 0x02). Required for write operations.
 

Detailed Description

Represents parameters for the FIDO CTAP2 authenticatorLargeBlobs command as defined in the FIDO CTAP 2.1 Specification.

This command allows reading and writing opaque data blobs associated with discoverable credentials. The large-blob array is a CBOR array stored on the authenticator, where each entry is encrypted and bound to a specific credential via its largeBlobKey.

Read and write operations are mutually exclusive: either Get or Set must be specified, but not both. Write operations require PIN/UV authentication.

Property Documentation

◆ Get

uint? CrescendoDLL.PCSC.FIDODataStructures.LargeBlobsRequest.Get
getset

Number of bytes to read from the large-blob array, starting at Offset. Optional parameter (CTAP2 key: 0x01). Required for read operations.

Mutually exclusive with Set. The authenticator returns at most this many bytes from the serialized large-blob array. If Offset plus this value exceeds the total size, only the remaining bytes are returned.

◆ Length

uint? CrescendoDLL.PCSC.FIDODataStructures.LargeBlobsRequest.Length
getset

Total length of the new serialized large-blob array being written. Optional parameter (CTAP2 key: 0x04). Required for the first write fragment (offset 0).

This value must include the 16-byte SHA-256 hash truncation that is appended to the serialized large-blob array for integrity verification. Must not be present for subsequent write fragments or read operations.

◆ Offset

uint CrescendoDLL.PCSC.FIDODataStructures.LargeBlobsRequest.Offset
getset

Byte offset into the serialized large-blob array. Required parameter (CTAP2 key: 0x03).

For read operations, this indicates where to start reading. For write operations, this indicates where to start writing the fragment. Must be 0 for the first fragment of a write operation.

◆ PinUvAuthParam

byte? [] CrescendoDLL.PCSC.FIDODataStructures.LargeBlobsRequest.PinUvAuthParam
getset

PIN/UV authentication signature for write operations. Optional parameter (CTAP2 key: 0x05). Required when Set is present.

For PIN protocol version 1: HMAC-SHA256 of (0xFF{32} || 0x0C || uint32LittleEndian(offset) || SHA-256(set)) using the shared secret derived from the PIN token. For PIN protocol version 2: same structure with HMAC-SHA256 truncated to 32 bytes.

◆ PinUvAuthProtocol

uint? CrescendoDLL.PCSC.FIDODataStructures.LargeBlobsRequest.PinUvAuthProtocol
getset

Selected PIN/UV protocol version. Optional parameter (CTAP2 key: 0x06). Required when PinUvAuthParam is present.

Must match the protocol version used during PIN/UV authentication token acquisition.

◆ Set

byte? [] CrescendoDLL.PCSC.FIDODataStructures.LargeBlobsRequest.Set
getset

Fragment of data to write to the large-blob array at Offset. Optional parameter (CTAP2 key: 0x02). Required for write operations.

Mutually exclusive with Get. Write operations require PinUvAuthParam and PinUvAuthProtocol to be set. The first fragment (offset 0) must also include Length to specify the total size of the new serialized large-blob array.