MemoryAccess (Java Card API, Connected Edition)
Date: 2009-12-11

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## javacardx.external
Interface MemoryAccess

    @TransactionType(value=NOT_SUPPORTED)
    public interface MemoryAccess

This interface provides methods to read and write the external memory space. Note that it is up to the implementation to ensure that no instance of this interface can ever be created or used to access memory that is directly accessed and managed by the Java Card RE for code, heap and other data structures.

An instance of this interface suitable for the available external memory subsystem can be obtained via the `Memory` class.

Since:
  2.2.2
See Also:
  `Memory.getMemoryAccessInstance( byte, short[], short )`

Method Summary
`short` | `readData(byte[] dest, short dest_off, byte[] auth_key, short auth_key_off, short auth_key_blen, short other_sector, short other_block, short other_len)` This method is used to read data from non-directly addressable memory after providing the correct key(password) to authenticate.
`boolean` | `writeData(byte[] src, short src_off, short src_blen, byte[] auth_key, short auth_key_off, short auth_key_blen, short other_sector, short other_block)` This method is used to write data into non-directly addressable memory after providing the correct key(password) to authenticate.

Method Detail

### writeData

    boolean writeData(byte[] src,
                      short src_off,
                      short src_blen,
                      byte[] auth_key,
                      short auth_key_off,
                      short auth_key_blen,
                      short other_sector,
                      short other_block)
                      throws ExternalException

  This method is used to write data into non-directly addressable memory after providing the correct key(password) to authenticate.

  If the authentication fails or writes are disallowed at the specified memory subsystem location(s), this method returns `false`.``

  Parameters:
    `src` - the source data byte array
    `src_off` - the byte offset into the `src` array where data begins
    `src_blen` - the byte length of the data to be written
    `auth_key` - the byte array containing the key(password)
    `auth_key_off` - the byte offset into the `auth_key` array where the key data begins
    `auth_key_blen` - the length in bytes of the key in the `auth_key` array
    `other_sector` - the external memory subsystem sector number
    `other_block` - the external memory subsystem block number
  Returns:
    `true` if the write was successful, `false` otherwise
  Throws:
    `ExternalException` - with the following reason codes:
    - `ExternalException.INVALID_PARAM` if any of the input parameters are invalid.
    - `ExternalException.INTERNAL_ERROR` if an unrecoverable external memory access error occurred.

### readData

    short readData(byte[] dest,
                   short dest_off,
                   byte[] auth_key,
                   short auth_key_off,
                   short auth_key_blen,
                   short other_sector,
                   short other_block,
                   short other_len)
                   throws ExternalException

  This method is used to read data from non-directly addressable memory after providing the correct key(password) to authenticate.

  If the authentication fails or reads are disallowed at the specified memory subsystem location(s), this method returns `0`.``

  Parameters:
    `dest` - the destination data byte array
    `dest_off` - the byte offset into the `dest array` where data should begin
    `auth_key` - the byte array containing the key(password)
    `auth_key_off` - the byte offset into the `auth_key` array where the key data begins
    `auth_key_blen` - the length in bytes of the key in the `auth_key` array
    `other_sector` - the other memory subsystem sector number
    `other_block` - the other memory subsystem block number
    `other_len` - the number of bytes of memory to be read
  Returns:
    the length in bytes of the data returned in the `dest` array. 0 if none.
  Throws:
    `ExternalException` - with the following reason codes:
    - `ExternalException.INVALID_PARAM` if any of the input parameters are invalid.
    - `ExternalException.INTERNAL_ERROR` if an unrecoverable external memory access error occurred.

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright (c) 2009 Sun Microsystems, Inc. All rights reserved.