memory
javacardx.external
Class Memory
public final class Memoryextends Object
This class provides access to memory subsystems that are not directly addressable, typically that of other contactless state machine handlers such as MifareTM. This class could also be used to access specialized memory spaces such as that of a mass storage device.
Since:
2.2.2
Field Summary | |
---|---|
static byte | MEMORY_TYPE_EXTENDED_STORE Extended Memory Store type constant. |
static byte | MEMORY_TYPE_MIFARE MIFARETM memory type constant. |
Method Summary | |
---|---|
static MemoryAccess | getMemoryAccessInstance (byte memoryType,short[] memorySize,short memorySizeOffset) Creates a MemoryAccess object instance for the selected memory subsystem. |
Methods inherited from class java.lang.Object |
---|
equals |
Field Detail |
---|
MEMORY_TYPE_MIFARE
public static final byte MEMORY_TYPE_MIFARE
MIFARETM memory type constant. When a MemoryAccess instance of this type is requested, the memorySize and memorySizeOffset parameters are ignored. To use the MemoryAccess instance the following parameters are applicable :
- auth_key is an 8 byte password, other_len< =16
- other_sector = 0, 0 < = other_block< = 63
- other_block = (%4==3) returns 0 on readData
- other_block = 0 returns false on writeData
See Also:Constant Field Values
MEMORY_TYPE_EXTENDED_STORE
public static final byte MEMORY_TYPE_EXTENDED_STORE
Extended Memory Store type constant. When a MemoryAccess instance of this type is requested, the memorySize parameter contains the 32 bit number representing the size in bytes of the memory access required and must be a positive number less than or equal to 2,147,483,647 (2^31 - 1). To use the MemoryAccess instance the following parameters are applicable.
- auth_key parameter is not required; it is ignored
- other_len< = 32767
- (other_sector, other_block) concatenated is a 32 bit address
Note.
- To ensure optimal performance on all mass storage memory types when accessing different areas of memory, use monotonically increasing addresses.
- Each time the getMemoryAccessInstance method is called with this memory type parameter, a new memory access object to access a distinct memory chunk is returned. A previously obtained memory access object cannot be used to access the memory chunk obtained via this new memory access object. The new memory access object cannot be used to access the memory chuck accessible via any previously allocated memory access object.
See Also:Constant Field Values
Method Detail |
---|
getMemoryAccessInstance
public static final MemoryAccessgetMemoryAccessInstance(byte memoryType, short[] memorySize, short memorySizeOffset) throws ExternalException
Creates a MemoryAccess object instance for the selected memory subsystem.
Parameters:memoryType - the desired external memory subsystem. Valid codes listed in MEMORY_TYPE_* constants above, for example MEMORY_TYPE_MIFARE .
memorySize - the array containing the desired size in bytes, if applicable, in the external memory subsystem. Check the descriptions of the MEMORY_TYPE_* constants above for more details. The 32 bit number representing the memory size in bytes is formed by concatenating the two short values at offset memorySizeOffset (most significant 16 bits) and memorySizeOffset+1 (least significant 16 bits) in this array
memorySizeOffset - the offset within the memorySize array where the 32 bit memory size number in bytes is specified
Returns:the MemoryAccess object instance of the requested memory subsystem
Throws: ExternalException- with the following reason codes:
- ExternalException.NO_SUCH_SUBSYSTEM if the requested memory subsystem is not available.
- ExternalException.INVALID_PARAM if the memorySize parameter isinvalid.