Interface StorageCard
- All Superinterfaces:
org.eclipse.keypop.reader.selection.spi.SmartCard
- Since:
- 1.0.0
-
Method Summary
Modifier and TypeMethodDescriptionbyte[]getBlock(int blockAddress) Retrieves the data block at the specified block address.byte[]getBlocks(int fromBlockAddress, int toBlockAddress) Retrieves the data blocks within the specified range from the memory image of the storage card.Returns the product type of the storage card.byte[]Retrieves the system block from the storage card when available.byte[]getUID()Retrieves the unique identifier (UID) of the storage card.Methods inherited from interface org.eclipse.keypop.reader.selection.spi.SmartCard
getPowerOnData
-
Method Details
-
getProductType
ProductType getProductType()Returns the product type of the storage card.- Returns:
- The product type of the storage card.
- Since:
- 1.0.0
-
getUID
byte[] getUID()Retrieves the unique identifier (UID) of the storage card.- Returns:
- A byte array representing the UID of the storage card.
-
getSystemBlock
byte[] getSystemBlock()Retrieves the system block from the storage card when available.The system block contains card-specific metadata and configuration data such as access control settings. This feature is specific to ST25/SRT512 cards which provide access to a system block at address 255.
The system block must have been previously read using the
StorageCardTransactionManager.prepareSt25ReadSystemBlock()method (or the deprecatedStorageCardTransactionManager.prepareReadSystemBlock()method).- Returns:
- The system block data as a byte array, or null if the system block has not been read yet.
- Throws:
UnsupportedOperationException- If the current card type does not support system block access.- Since:
- 1.0.0
-
getBlock
byte[] getBlock(int blockAddress) Retrieves the data block at the specified block address.If the block has not been previously read and stored in memory, the returned byte array will be filled with zeros.
- Parameters:
blockAddress- The address of the block to retrieve- Returns:
- The data block as a byte array, or a zero-filled byte array if the block has not been read yet.
- Throws:
IndexOutOfBoundsException- If the block address is out of range.- Since:
- 1.0.0
-
getBlocks
byte[] getBlocks(int fromBlockAddress, int toBlockAddress) Retrieves the data blocks within the specified range from the memory image of the storage card.The returned array contains the blocks in order, from
fromBlockAddresstotoBlockAddress. If a block has not been previously read and stored in memory, its corresponding bytes in the returned array will be filled with zeros.- Parameters:
fromBlockAddress- The starting block address (inclusive).toBlockAddress- The ending block address (inclusive).- Returns:
- A byte array containing the data blocks within the specified range. Unread blocks are represented as zero-filled sections in the returned array.
- Throws:
IndexOutOfBoundsException- IffromBlockAddressis greater thantoBlockAddress, if either block address is negative, or if they exceed the available range of the memory image.
-