Package uicc.connection
Interface SCP81Connection
-
- All Superinterfaces:
Observable
public interface SCP81Connection extends Observable
TheSCP81Connectioninterface represents an SCP81 connection to a remote entity. Objects implementingSCP81Connectioninterface and returned by theConnectionServer.getConnectionmethod are Permanent Entry Point Objects.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description voidclose()Close the SCP81 Connection.voidopen(byte[] triggeringParameters, short parameterOffset, short parameterLength, byte[] contentType, short contentTypeOffset, short contentTypeLength)Request to open the SCP81 connection.voidsend(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 ConnectionExceptionRequest 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:
- On invocation of this method, the Security Domain shall register this request.
Once resources are available, the RTE/OPEN tries to open the connection, manage
the underlying protocol layers and performs the TLS handshake. The observer is then notified with
the
SCP81ConnectionStatusevent.
- 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 thetriggeringParametersbyte arrayparameterLength- the length of the parameterscontentType- 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 thecontentTypebyte arraycontentTypeLength- the length of the content-type- Throws:
ConnectionException- with the following reason code:INVALID_STATEif the connection is already opened.INVALID_PARAMETERSif 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.INVALID_HEADER_FIELDif Content-Type header field does not conform with the rules defined in this specification.
java.lang.ArrayIndexOutOfBoundsException- ifparameterOffsetandparameterLengthare causing access outside oftriggeringParametersarray bounds or ifcontentTypeOffsetandcontentTypeLengthare causing access outside ofcontentTypearray bounds.java.lang.NullPointerException- iftriggeringParametersorcontentTypeare equal tonull
- On invocation of this method, the Security Domain shall register this request.
Once resources are available, the RTE/OPEN tries to open the connection, manage
the underlying protocol layers and performs the TLS handshake. The observer is then notified with
the
-
close
void close() throws ConnectionExceptionClose 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_STATEif the connection is not open.
-
send
void send(byte[] baData, short sOffset, short sLength) throws java.lang.ArrayIndexOutOfBoundsException, ConnectionException, java.lang.NullPointerExceptionSends 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 sentsOffset- the starting offset of the data to be sent in thebaDatabyte arraysLength- the length of the data to be sent- Throws:
java.lang.ArrayIndexOutOfBoundsException- ifsOffsetandsLengthare causing access outside ofbaDataarray boundsConnectionException- with the following reason code:INVALID_STATEif- 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- ifbaDatais equal tonull
-
-