uicc.connection
Interface SCP81Connection

All Superinterfaces:
Observable

public interface SCP81Connection
extends Observable

The SCP81Connection interface represents an SCP81 connection to a remote entity. Objects implementing SCP81Connectioninterface and returned by the ConnectionServer.getConnection method are Permanent Entry Point Objects.


Method Summary
 void close()
          Close the SCP81 Connection.
 void open(byte[] triggeringParameters, short parameterOffset, short parameterLength, byte[] contentType, short contentTypeOffset, short contentTypeLength)
          Request to open the SCP81 connection.
 void send(byte[] baData, short sOffset, short sLength)
          Sends data on the SCP81 Connection.
 

Method Detail

open

void open(byte[] triggeringParameters,
          short parameterOffset,
          short parameterLength,
          byte[] contentType,
          short contentTypeOffset,
          short contentTypeLength)
          throws ConnectionException
Request to open the SCP81 connection.

The associated (directly or indirectly) Security Domain of the calling application will handle the PSK TLS security of the communication.

The calling application will be notified once the connection is opened or once the setup failed. This method is non-blocking. Note:

Parameters:
triggeringParameters - this buffer contains the administration session triggering parameters as defined in table 4-3 of Amendment B of Global Platform Card Specification version 2.2. Tag '81' and Length shall be present. Connection parameters defined in Tag '84' may be used if TCP/IP transport is provided by the Bearer Independent Protocol of TS 102 223 [4]. Note: If a direct IP connection as specified in TS 102 483 [YY] is used these parameters will be ignored.
parameterOffset - the starting offset of the parameters in the triggeringParameters byte array
parameterLength - the length of the parameters
contentType - this buffer contains the Content-Type header value to be used when sending an HTTP POST request through this connection.
contentTypeOffset - the starting offset of the content-type in the contentType byte array
contentTypeLength - the length of the content-type
Throws:
ConnectionException - with the following reason code:
  • INVALID_STATE if the connection is already opened.
  • INVALID_PARAMETERS if the triggering parameters are not correct or if the Content-Type header value defined in the parameters is reserved (for example for RAM/RFM over HTTP or for SCWS remote administration).
  • SCP81_KEY_NOT_FOUNDif this requested SCP81 key could no be found in the associated (directly or indirectly) Security Domain of the calling application.
java.lang.ArrayIndexOutOfBoundsException - if parameterOffset and parameterLength are causing access outside of triggeringParameters array bounds or if contentTypeOffset and contentTypeLength are causing access outside of contentType array bounds.
java.lang.NullPointerException - if triggeringParameters or contentType are equal to null

close

void close()
           throws ConnectionException
Close the SCP81 Connection. The calling application will be notified once the connection is closed. This method is non-blocking.

Throws:
ConnectionException - with the following reason code:
  • INVALID_STATE if the connection is not open.

send

void send(byte[] baData,
          short sOffset,
          short sLength)
          throws java.lang.ArrayIndexOutOfBoundsException,
                 ConnectionException,
                 java.lang.NullPointerException
Sends data on the SCP81 Connection.

Note: The applet execution is resumed once the HTTP POST request containing the data has been sent.

Note: The chunked transfer coding may be used if necessary.

Parameters:
baData - byte array containing the data to be sent
sOffset - the starting offset of the data to be sent in the baData byte array
sLength - the length of the data to be sent
Throws:
java.lang.ArrayIndexOutOfBoundsException - if sOffset and sLength are causing access outside of baData array bounds
ConnectionException - with the following reason code:
  • INVALID_STATE if
    • the connection is not open
    • or if data has been sent through the HTTP POST request and the related HTTP POST response has not yet been delivered to the applet with the DataReceived event
    • or if an HTTP POST response has been delivered to the applet but all received have not been received or discarded.
java.lang.NullPointerException - if baData is equal to null