From cbe1be4b7336213979fd0de3f924b428074169da Mon Sep 17 00:00:00 2001 From: Sebastian Hans Date: Wed, 26 Nov 2025 18:20:09 +0100 Subject: [PATCH 1/6] implement G+D proposal --- src/uicc/connection/SCP81Connection.java | 3 + .../connection/SCP81ConnectionStatus.java | 6 +- src/uicc/connection/SCP8XConnection.java | 105 ++++++++++++++++++ .../connection/SCP8XConnectionStatus.java | 38 +++++++ 4 files changed, 150 insertions(+), 2 deletions(-) create mode 100644 src/uicc/connection/SCP8XConnection.java create mode 100644 src/uicc/connection/SCP8XConnectionStatus.java diff --git a/src/uicc/connection/SCP81Connection.java b/src/uicc/connection/SCP81Connection.java index f0ee9c8..26379f2 100644 --- a/src/uicc/connection/SCP81Connection.java +++ b/src/uicc/connection/SCP81Connection.java @@ -7,8 +7,11 @@ package uicc.connection; * * Objects implementing SCP81Connectioninterface and returned by the * ConnectionServer.getConnection method are Permanent Entry Point Objects. + * + * @deprecated This interface os obsolte use SCP8XConnection instead * */ +@Deprecated public interface SCP81Connection extends Observable { /** * Request to open the SCP81 connection. diff --git a/src/uicc/connection/SCP81ConnectionStatus.java b/src/uicc/connection/SCP81ConnectionStatus.java index 71aec2f..64040e4 100644 --- a/src/uicc/connection/SCP81ConnectionStatus.java +++ b/src/uicc/connection/SCP81ConnectionStatus.java @@ -9,9 +9,11 @@ package uicc.connection; * communication error (corresponds to unexpected communication breakdown) * server switch to other application (corresponds to server selecting another application via Content-Type header field) * The object implementing SCP81ConnectionStatus interface is a Temporary Entry Point Object. + * + * * @deprecated This interface os obsolte use SCP8XConnection instead */ - -public interface SCP81ConnectionStatus extends Event +@Deprecated +public interface SCP8XConnectionStatus extends Event { /** This constant is used if the connection was successfully opened.. */ public static final short CONNECTION_ESTABLISHED = (short) 0x0001 ; diff --git a/src/uicc/connection/SCP8XConnection.java b/src/uicc/connection/SCP8XConnection.java new file mode 100644 index 0000000..29ed342 --- /dev/null +++ b/src/uicc/connection/SCP8XConnection.java @@ -0,0 +1,105 @@ + +package uicc.connection; + +/** + * 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. + * + * + */ +public interface SCP8XConnection extends Observable { +/** + * 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: + *

+ *

+ * + * @param 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. + * @param parameterOffset the starting offset of the parameters in the triggeringParameters byte array + * @param parameterLength the length of the parameters + * @param contentType this buffer contains the Content-Type header value to be used + * when sending an HTTP POST request through this connection. + * @param contentTypeOffset the starting offset of the content-type in the contentType byte array + * @param contentTypeLength the length of the content-type + * + * @throws ConnectionException with the following reason code: + *

+ * + * @throws 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. + * + * @throws NullPointerException if triggeringParameters + * or contentType are equal to null + */ + public void open(byte[] triggeringParameters, short parameterOffset, short parameterLength, + byte[] contentType, short contentTypeOffset, short contentTypeLength) + 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: + * + */ + public void close() + throws ConnectionException; + + /** + * 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.

+ * + * @param baData byte array containing the data to be sent + * @param sOffset the starting offset of the data to be sent in the baData byte array + * @param sLength the length of the data to be sent + * + * @throws ArrayIndexOutOfBoundsException if sOffset and sLength are causing access + * outside of baData array bounds + * @throws ConnectionException with the following reason code: + * + * @throws NullPointerException if baData is equal to null + */ + public void send(byte[] baData, short sOffset, short sLength) + throws ArrayIndexOutOfBoundsException, + ConnectionException, + NullPointerException; +} diff --git a/src/uicc/connection/SCP8XConnectionStatus.java b/src/uicc/connection/SCP8XConnectionStatus.java new file mode 100644 index 0000000..ed9ae65 --- /dev/null +++ b/src/uicc/connection/SCP8XConnectionStatus.java @@ -0,0 +1,38 @@ +package uicc.connection; + +/** + * This interface defines event constants that are used for notifications of state changes of connections represented + * by SCP81Connection: + * connection established (corresponds to successful open()) + * connection setup failed (corresponds to unsuccessful open()) + * connection closed (corresponds to successful close()) + * communication error (corresponds to unexpected communication breakdown) + * server switch to other application (corresponds to server selecting another application via Content-Type header field) + * The object implementing SCP8XConnectionStatus interface is a Temporary Entry Point Object. + */ + +public interface SCP8XConnectionStatus extends Event +{ + /** This constant is used if the connection was successfully opened.. */ + public static final short CONNECTION_ESTABLISHED = (short) 0x0001 ; + + /** This constant is used if the connection could not been opened. */ + public static final short CONNECTION_SETUP_FAILED = (short) 0x0002 ; + + /** This constant is used if connection was closed due to a communication error. */ + public static final short COMMUNICATION_ERROR = (short) 0x0003 ; + + /** This constant is used if connection was closed due an invocation of SCP81Connection.close(). */ + public static final short CONNECTION_CLOSED = (short) 0x0004 ; + + /** This constant is used if connection server switched to another application via Content-Type header field */ + public static final short SERVER_SWITCH = (short) 0x0005 ; + + + /** + * Used to retrieve detailed information about the state change.. + * @return the reason for closing this connection. + */ + public short getDetails(); +} + -- GitLab From cc74ec0f2545ae1d9e75acf9b5d40455b79643af Mon Sep 17 00:00:00 2001 From: Sebastian Hans Date: Thu, 27 Nov 2025 09:33:14 +0100 Subject: [PATCH 2/6] corrected typos --- src/uicc/connection/SCP81ConnectionStatus.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/uicc/connection/SCP81ConnectionStatus.java b/src/uicc/connection/SCP81ConnectionStatus.java index 64040e4..7048ac7 100644 --- a/src/uicc/connection/SCP81ConnectionStatus.java +++ b/src/uicc/connection/SCP81ConnectionStatus.java @@ -10,10 +10,10 @@ package uicc.connection; * server switch to other application (corresponds to server selecting another application via Content-Type header field) * The object implementing SCP81ConnectionStatus interface is a Temporary Entry Point Object. * - * * @deprecated This interface os obsolte use SCP8XConnection instead + * * @deprecated This interface is obsolte use SCP8XConnectionStatus instead */ @Deprecated -public interface SCP8XConnectionStatus extends Event +public interface SCP81ConnectionStatus extends Event { /** This constant is used if the connection was successfully opened.. */ public static final short CONNECTION_ESTABLISHED = (short) 0x0001 ; -- GitLab From 4534f3cf007f470c259d829311388f000cf510a4 Mon Sep 17 00:00:00 2001 From: Sebastian Hans Date: Fri, 28 Nov 2025 10:52:01 +0100 Subject: [PATCH 3/6] proposed changes for the TEC meeting December 2025 --- src/uicc/connection/ConnectionException.java | 3 ++ src/uicc/connection/ConnectionServer.java | 20 +++++++++- src/uicc/connection/DataReceived.java | 4 +- src/uicc/connection/SCP81Connection.java | 5 +-- .../connection/SCP81ConnectionStatus.java | 2 +- src/uicc/connection/SCP8XConnection.java | 39 +++++++++++-------- .../connection/SCP8XConnectionStatus.java | 2 +- 7 files changed, 51 insertions(+), 24 deletions(-) diff --git a/src/uicc/connection/ConnectionException.java b/src/uicc/connection/ConnectionException.java index ff2d5b6..6739944 100644 --- a/src/uicc/connection/ConnectionException.java +++ b/src/uicc/connection/ConnectionException.java @@ -47,6 +47,9 @@ public class ConnectionException extends CardRuntimeException /** Reason code to indicate that invalid header fields set by application */ public final static short INVALID_HEADER_FIELD = (short) 12; + + /** Reason code to indicate that no SCP82 key could be found to establish the DTLS session: 13 */ + public final static short SCP82_KEY_NOT_FOUND = (short) 13; /** * Construct a ConnectionException instance with the specified reason. To diff --git a/src/uicc/connection/ConnectionServer.java b/src/uicc/connection/ConnectionServer.java index ff6ee79..2c9803d 100644 --- a/src/uicc/connection/ConnectionServer.java +++ b/src/uicc/connection/ConnectionServer.java @@ -122,6 +122,7 @@ public class ConnectionServer * Returns an instance providing an SCP81 connection. * The returned object is a Permanent Entry Point Object. * + * @deprecated * @param oObserver the Observer to be used for notifications about state changes * @return a SCP81Connection instance. * @throws ConnectionException with the following reason code: @@ -130,7 +131,24 @@ public class ConnectionServer * * @throws NullPointerException ifoObserver is equal to null */ - public static SCP81Connection createSCP81Connection(Observer oOserver) throws NullPointerException,ConnectionException + public static SCP81Connection createSCP81Connection(Observer oObserver) throws NullPointerException,ConnectionException + { + return null; + } + + /** + * Returns an instance providing an SCP8X connection. + * The returned object is a Permanent Entry Point Object. + * + * @param oObserver the Observer to be used for notifications about state changes + * @return a SCP8XConnection instance. + * @throws ConnectionException with the following reason code: + *
    + *
  • TRANSPORT_PROTOCOL_NOT_SUPPORTED if this type of connection is not supported.
  • + *
+ * @throws NullPointerException ifoObserver is equal to null + */ + public static SCP8XConnection createSCP8XConnection(Observer oObserver) throws NullPointerException,ConnectionException { return null; } diff --git a/src/uicc/connection/DataReceived.java b/src/uicc/connection/DataReceived.java index 3f30a5b..e5b12eb 100644 --- a/src/uicc/connection/DataReceived.java +++ b/src/uicc/connection/DataReceived.java @@ -13,12 +13,14 @@ public interface DataReceived extends Event /** * Returns the amount of data received, or -1 if data length is unknown (chunked transfer encoding is used), * or 0 if all received data have been read or discarded by the Observer. + * + * @return data length received or 0 if all data have been received or -1 if data length is unknown */ public int getReceivedDataLength(); /** * Copy the received data in a buffer. Data are handled as a stream, and are received upon applet request. - * It is not possible to move backward in the data by using the srcOffset>/code> parameter. + * It is not possible to move backward in the data by using the srcOffset parameter. * This is a non-blocking methid. * * @param srcOffset the offset of the first byte to copy in the received data diff --git a/src/uicc/connection/SCP81Connection.java b/src/uicc/connection/SCP81Connection.java index 26379f2..4323e5c 100644 --- a/src/uicc/connection/SCP81Connection.java +++ b/src/uicc/connection/SCP81Connection.java @@ -22,12 +22,11 @@ public interface SCP81Connection extends Observable { * * Note: *
    - *
  • On invocation of this method, the Security Domain shall register this request. + *
  • 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 SCP81ConnectionStatus event. + * the SCP81ConnectionStatus event. *
- *

* * @param 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 diff --git a/src/uicc/connection/SCP81ConnectionStatus.java b/src/uicc/connection/SCP81ConnectionStatus.java index 7048ac7..edb5058 100644 --- a/src/uicc/connection/SCP81ConnectionStatus.java +++ b/src/uicc/connection/SCP81ConnectionStatus.java @@ -10,7 +10,7 @@ package uicc.connection; * server switch to other application (corresponds to server selecting another application via Content-Type header field) * The object implementing SCP81ConnectionStatus interface is a Temporary Entry Point Object. * - * * @deprecated This interface is obsolte use SCP8XConnectionStatus instead + * * @deprecated This interface os obsolte use SCP8XConnection instead */ @Deprecated public interface SCP81ConnectionStatus extends Event diff --git a/src/uicc/connection/SCP8XConnection.java b/src/uicc/connection/SCP8XConnection.java index 29ed342..90aac8c 100644 --- a/src/uicc/connection/SCP8XConnection.java +++ b/src/uicc/connection/SCP8XConnection.java @@ -2,39 +2,38 @@ package uicc.connection; /** - * The SCP81Connection interface represents an SCP81 connection to + * The SCP8XConnection interface represents an SCP81 or SCP82 connection to * a remote entity. * - * Objects implementing SCP81Connectioninterface and returned by the + * Objects implementing SCP8XConnectioninterface and returned by the * ConnectionServer.getConnection method are Permanent Entry Point Objects. * * */ public interface SCP8XConnection extends Observable { -/** - * Request to open the SCP81 connection. + /** + * Request to open the SCP81 or SCP82 connection. *

- * The associated (directly or indirectly) Security Domain of the calling application will handle the PSK TLS security of the communication. + * The associated (directly or indirectly) Security Domain of the calling application will handle the PSK TLS or DTLS 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. + *
  • 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 SCP81ConnectionStatus event. + * the underlying protocol layers and performs the TLS or DTLS handshake. The observer is then notified with + * the SCP8XConnectionStatus event. *
- *

* * @param 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. + * Length shall be present. Connection parameters defined in Tag '84' may be used if TCP or UDP 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 [6] is used these parameters will be ignored. * @param parameterOffset the starting offset of the parameters in the triggeringParameters byte array * @param parameterLength the length of the parameters * @param contentType this buffer contains the Content-Type header value to be used - * when sending an HTTP POST request through this connection. + * when sending an HTTP or CoAP POST request through this connection. * @param contentTypeOffset the starting offset of the content-type in the contentType byte array * @param contentTypeLength the length of the content-type * @@ -43,8 +42,10 @@ public interface SCP8XConnection extends Observable { *

  • 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). + * RAM/RFM over HTTP or CoAP 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.
  • + *
  • SCP82_KEY_NOT_FOUNDif this requested SCP82 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.
  • @@ -63,7 +64,7 @@ public interface SCP8XConnection extends Observable { throws ConnectionException; /** - * Close the SCP81 Connection. The calling application will be notified once the connection is closed. This method is non-blocking. + * Close the SCP81 or SCP82 Connection. The calling application will be notified once the connection is closed. This method is non-blocking. * * @throws ConnectionException with the following reason code: *
      @@ -74,9 +75,9 @@ public interface SCP8XConnection extends Observable { throws ConnectionException; /** - * Sends data on the SCP81 Connection. + * Sends data on the SCP81 or SCP82 Connection. * - *

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

      + *

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

      *

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

      * * @param baData byte array containing the data to be sent @@ -92,8 +93,12 @@ public interface SCP8XConnection extends Observable { *
    • 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 + *
    • or if an HTTP POST response has been delivered to the applet but all received data have not * been received or discarded. + *
    • or if data has been sent through the CoAP request and the related CoAP response + * has not yet been delivered to the applet with the DataReceived event + *
    • or if an CoAP response has been delivered to the applet but all received data have not + * been received or discarded. *
    * * @throws NullPointerException if baData is equal to null diff --git a/src/uicc/connection/SCP8XConnectionStatus.java b/src/uicc/connection/SCP8XConnectionStatus.java index ed9ae65..e071659 100644 --- a/src/uicc/connection/SCP8XConnectionStatus.java +++ b/src/uicc/connection/SCP8XConnectionStatus.java @@ -2,7 +2,7 @@ package uicc.connection; /** * This interface defines event constants that are used for notifications of state changes of connections represented - * by SCP81Connection: + * by SCP8XConnection: * connection established (corresponds to successful open()) * connection setup failed (corresponds to unsuccessful open()) * connection closed (corresponds to successful close()) -- GitLab From 928750a666d125de37fb20f339cdedabac1ff265 Mon Sep 17 00:00:00 2001 From: Sebastian Hans Date: Mon, 1 Dec 2025 19:14:09 +0100 Subject: [PATCH 4/6] corrections and typos --- src/uicc/connection/SCP81Connection.java | 2 +- src/uicc/connection/SCP81ConnectionStatus.java | 2 +- src/uicc/connection/SCP8XConnection.java | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/uicc/connection/SCP81Connection.java b/src/uicc/connection/SCP81Connection.java index 4323e5c..5a7117e 100644 --- a/src/uicc/connection/SCP81Connection.java +++ b/src/uicc/connection/SCP81Connection.java @@ -8,7 +8,7 @@ package uicc.connection; * Objects implementing SCP81Connectioninterface and returned by the * ConnectionServer.getConnection method are Permanent Entry Point Objects. * - * @deprecated This interface os obsolte use SCP8XConnection instead + * @deprecated This interface is obsolte use SCP8XConnection instead * */ @Deprecated diff --git a/src/uicc/connection/SCP81ConnectionStatus.java b/src/uicc/connection/SCP81ConnectionStatus.java index edb5058..7048ac7 100644 --- a/src/uicc/connection/SCP81ConnectionStatus.java +++ b/src/uicc/connection/SCP81ConnectionStatus.java @@ -10,7 +10,7 @@ package uicc.connection; * server switch to other application (corresponds to server selecting another application via Content-Type header field) * The object implementing SCP81ConnectionStatus interface is a Temporary Entry Point Object. * - * * @deprecated This interface os obsolte use SCP8XConnection instead + * * @deprecated This interface is obsolte use SCP8XConnectionStatus instead */ @Deprecated public interface SCP81ConnectionStatus extends Event diff --git a/src/uicc/connection/SCP8XConnection.java b/src/uicc/connection/SCP8XConnection.java index 90aac8c..3b3b22a 100644 --- a/src/uicc/connection/SCP8XConnection.java +++ b/src/uicc/connection/SCP8XConnection.java @@ -27,7 +27,7 @@ public interface SCP8XConnection extends Observable { * * * @param 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 + * as defined in table 3-3 of Amendment B of Global Platform Card Specification version 2.3. Tag '81' and * Length shall be present. Connection parameters defined in Tag '84' may be used if TCP or UDP 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 [6] is used these parameters will be ignored. * @param parameterOffset the starting offset of the parameters in the triggeringParameters byte array @@ -77,7 +77,7 @@ public interface SCP8XConnection extends Observable { /** * Sends data on the SCP81 or SCP82 Connection. * - *

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

    + *

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

    *

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

    * * @param baData byte array containing the data to be sent -- GitLab From 893c652bac97f575ad6e6d44787de5cdbdf0a63a Mon Sep 17 00:00:00 2001 From: Sebastian Hans Date: Wed, 11 Mar 2026 10:42:58 +0100 Subject: [PATCH 5/6] correction and additional clarifications for the triggering Parameters --- src/uicc/connection/SCP81Connection.java | 2 +- src/uicc/connection/SCP81ConnectionStatus.java | 2 +- src/uicc/connection/SCP8XConnection.java | 8 +++++--- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/uicc/connection/SCP81Connection.java b/src/uicc/connection/SCP81Connection.java index 5a7117e..cc43169 100644 --- a/src/uicc/connection/SCP81Connection.java +++ b/src/uicc/connection/SCP81Connection.java @@ -8,7 +8,7 @@ package uicc.connection; * Objects implementing SCP81Connectioninterface and returned by the * ConnectionServer.getConnection method are Permanent Entry Point Objects. * - * @deprecated This interface is obsolte use SCP8XConnection instead + * @deprecated This interface is obsolete use SCP8XConnection instead * */ @Deprecated diff --git a/src/uicc/connection/SCP81ConnectionStatus.java b/src/uicc/connection/SCP81ConnectionStatus.java index 7048ac7..d659f5a 100644 --- a/src/uicc/connection/SCP81ConnectionStatus.java +++ b/src/uicc/connection/SCP81ConnectionStatus.java @@ -10,7 +10,7 @@ package uicc.connection; * server switch to other application (corresponds to server selecting another application via Content-Type header field) * The object implementing SCP81ConnectionStatus interface is a Temporary Entry Point Object. * - * * @deprecated This interface is obsolte use SCP8XConnectionStatus instead + * * @deprecated This interface is obsolete use SCP8XConnectionStatus instead */ @Deprecated public interface SCP81ConnectionStatus extends Event diff --git a/src/uicc/connection/SCP8XConnection.java b/src/uicc/connection/SCP8XConnection.java index 3b3b22a..0745f14 100644 --- a/src/uicc/connection/SCP8XConnection.java +++ b/src/uicc/connection/SCP8XConnection.java @@ -27,9 +27,11 @@ public interface SCP8XConnection extends Observable { * * * @param triggeringParameters this buffer contains the administration session triggering parameters - * as defined in table 3-3 of Amendment B of Global Platform Card Specification version 2.3. Tag '81' and - * Length shall be present. Connection parameters defined in Tag '84' may be used if TCP or UDP 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 [6] is used these parameters will be ignored. + * as defined in table 3-3 of Amendment B [5] of Global Platform Card Specification version 2.3, + * with the appropriate adaptations described in Table 3-6 of Amendment M [8] for the SCP82 case Tag '81' and + * Length shall be present. Connection parameters defined in Tag '84' may be used if TCP or UDP 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 [6] is used these parameters will be ignored. * @param parameterOffset the starting offset of the parameters in the triggeringParameters byte array * @param parameterLength the length of the parameters * @param contentType this buffer contains the Content-Type header value to be used -- GitLab From dd1ae460ab65da65551e6dd9100c3e5c0d225674 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sergi=20Rodr=C3=ADguez?= Date: Wed, 18 Mar 2026 11:15:30 +0000 Subject: [PATCH 6/6] considering SETTEC(26)000031 over this CR implementation --- src/uicc/connection/SCP8XConnection.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/uicc/connection/SCP8XConnection.java b/src/uicc/connection/SCP8XConnection.java index 0745f14..fa65086 100644 --- a/src/uicc/connection/SCP8XConnection.java +++ b/src/uicc/connection/SCP8XConnection.java @@ -51,6 +51,8 @@ public interface SCP8XConnection extends Observable { * 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.
  • + *
  • TOOLKIT_RESOURCE_NOT_AVAILABLE if the proactive command could not be + * issued.
  • * * * @throws ArrayIndexOutOfBoundsException if parameterOffset and parameterLength are causing access @@ -71,6 +73,8 @@ public interface SCP8XConnection extends Observable { * @throws ConnectionException with the following reason code: *
      *
    • INVALID_STATE if the connection is not open. + *
    • TOOLKIT_RESOURCE_NOT_AVAILABLE if the proactive command could not be + * issued.
    • *
    */ public void close() @@ -101,7 +105,9 @@ public interface SCP8XConnection extends Observable { * has not yet been delivered to the applet with the DataReceived event *
  • or if an CoAP response has been delivered to the applet but all received data have not * been received or discarded. - * + *
  • + *
  • TOOLKIT_RESOURCE_NOT_AVAILABLE if the proactive command could not be + * issued.
  • * * @throws NullPointerException if baData is equal to null */ -- GitLab