{
  "_class" : "hudson.matrix.MatrixBuild",
  "actions" : [
    {
      "_class" : "hudson.model.CauseAction",
      "causes" : [
        {
          "_class" : "hudson.triggers.SCMTrigger$SCMTriggerCause",
          "shortDescription" : "Started by an SCM change"
        }
      ]
    },
    {
      
    },
    {
      "_class" : "hudson.model.ParametersAction",
      "parameters" : [
        {
          "_class" : "hudson.model.StringParameterValue",
          "name" : "BRANCH",
          "value" : "master"
        },
        {
          "_class" : "hudson.model.StringParameterValue",
          "name" : "EMAIL_NOTIFICATIONS",
          "value" : "jenkins-notifications@lists.osmocom.org laforge@gnumonks.org"
        }
      ]
    },
    {
      "_class" : "jenkins.metrics.impl.TimeInQueueAction",
      "blockedDurationMillis" : 0,
      "blockedTimeMillis" : 0,
      "buildableDurationMillis" : 0,
      "buildableTimeMillis" : 0,
      "buildingDurationMillis" : 13779,
      "executingTimeMillis" : 13779,
      "executorUtilization" : 1.0,
      "subTaskCount" : 0,
      "waitingDurationMillis" : 6257,
      "waitingTimeMillis" : 6257
    },
    {
      
    },
    {
      "_class" : "hudson.plugins.git.util.BuildData",
      "buildsByBranchName" : {
        "origin/master" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 453,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "fb3308b64d7d31d993c01fedfc9e54b742c6ce99",
            "branch" : [
              {
                "SHA1" : "fb3308b64d7d31d993c01fedfc9e54b742c6ce99",
                "name" : "origin/master"
              }
            ]
          },
          "revision" : {
            "SHA1" : "fb3308b64d7d31d993c01fedfc9e54b742c6ce99",
            "branch" : [
              {
                "SHA1" : "fb3308b64d7d31d993c01fedfc9e54b742c6ce99",
                "name" : "origin/master"
              }
            ]
          }
        }
      },
      "lastBuiltRevision" : {
        "SHA1" : "fb3308b64d7d31d993c01fedfc9e54b742c6ce99",
        "branch" : [
          {
            "SHA1" : "fb3308b64d7d31d993c01fedfc9e54b742c6ce99",
            "name" : "origin/master"
          }
        ]
      },
      "remoteUrls" : [
        "https://gerrit.osmocom.org/android-apdu-proxy"
      ],
      "scmName" : ""
    },
    {
      
    },
    {
      
    },
    {
      "_class" : "org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction"
    }
  ],
  "artifacts" : [
    
  ],
  "building" : False,
  "description" : None,
  "displayName" : "#453",
  "duration" : 13779,
  "estimatedDuration" : 10414,
  "executor" : None,
  "fullDisplayName" : "master-android-apdu-proxy #453",
  "id" : "453",
  "inProgress" : False,
  "keepLog" : False,
  "number" : 453,
  "queueId" : 6642,
  "result" : "SUCCESS",
  "timestamp" : 1768822506446,
  "url" : "https://jenkins.osmocom.org/jenkins/view/All%20no%20Gerrit/job/master-android-apdu-proxy/453/",
  "builtOn" : "",
  "changeSet" : {
    "_class" : "hudson.plugins.git.GitChangeSetList",
    "items" : [
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "app/src/main/java/org/osmocom/androidApduProxy/OmapiCallbackHandlerVpcd.java"
        ],
        "commitId" : "f37382319d5702e3ff281b412a87d573918c9fa6",
        "timestamp" : 1767970737000,
        "author" : {
          "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/pmaier",
          "fullName" : "pmaier@sysmocom.de"
        },
        "authorEmail" : "pmaier@sysmocom.de",
        "comment" : "OmapiCallbackHandlerVpcd: add check to filter shortTPDUs\u000a\u000aRelated: OS#6836\u000aChange-Id: I4e76afd7cf4d63c67b1525202fbe74e0796b2ba3\u000a",
        "date" : "2026-01-09 15:58:57 +0100",
        "id" : "f37382319d5702e3ff281b412a87d573918c9fa6",
        "msg" : "OmapiCallbackHandlerVpcd: add check to filter shortTPDUs",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "app/src/main/java/org/osmocom/androidApduProxy/OmapiCallbackHandlerVpcd.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "app/src/main/java/org/osmocom/androidApduProxy/OmapiCallbackHandlerVpcd.java"
        ],
        "commitId" : "1bf9e5c0a2c7385b6ddd819094ebb622901a1bfb",
        "timestamp" : 1767971054000,
        "author" : {
          "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/pmaier",
          "fullName" : "pmaier@sysmocom.de"
        },
        "authorEmail" : "pmaier@sysmocom.de",
        "comment" : "OmapiCallbackHandlerVpcd: use appropriate status word to reject MANAGE CHANNEL\u000a\u000aISO/IEC 7816-4 specifies a status word to reject MANAGE CHANNEL instructions\u000ain case the card does not support multiple channels.\u000a\u000aLet's also print an error message in the log to simplify debugging for users\u000awho aren't aware of OMAPI's logical channel limitation.\u000a\u000aChange-Id: I42529a6ae61378e41f33f1ec34124e346d4805df\u000aRelated: OS#6836\u000a",
        "date" : "2026-01-09 16:04:14 +0100",
        "id" : "1bf9e5c0a2c7385b6ddd819094ebb622901a1bfb",
        "msg" : "OmapiCallbackHandlerVpcd: use appropriate status word to reject MANAGE",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "app/src/main/java/org/osmocom/androidApduProxy/OmapiCallbackHandlerVpcd.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "app/src/main/java/org/osmocom/androidApduProxy/OmapiCallbackHandlerVpcd.java"
        ],
        "commitId" : "4a2db45628bce2b08d2bdee17928378a0bfcf167",
        "timestamp" : 1767971441000,
        "author" : {
          "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/pmaier",
          "fullName" : "pmaier@sysmocom.de"
        },
        "authorEmail" : "pmaier@sysmocom.de",
        "comment" : "OmapiCallbackHandlerVpcd: improve log output\u000a\u000aWhen we select the currently selected ADF, we actually select 7fff,\u000awhich is an alias for the currently selected ADF. Let's express this\u000aalso more clearly in the log output.\u000a\u000aChange-Id: I7004bec25f07b1a7498003231070205d2d659717\u000aRelated: OS#6836\u000a",
        "date" : "2026-01-09 16:10:41 +0100",
        "id" : "4a2db45628bce2b08d2bdee17928378a0bfcf167",
        "msg" : "OmapiCallbackHandlerVpcd: improve log output",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "app/src/main/java/org/osmocom/androidApduProxy/OmapiCallbackHandlerVpcd.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "app/src/main/java/org/osmocom/androidApduProxy/OmapiCallbackHandlerVpcd.java"
        ],
        "commitId" : "f5fca14a60df93485ac1bee5903bd9e702f12bf8",
        "timestamp" : 1767971636000,
        "author" : {
          "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/pmaier",
          "fullName" : "pmaier@sysmocom.de"
        },
        "authorEmail" : "pmaier@sysmocom.de",
        "comment" : "OmapiCallbackHandlerVpcd: fix extration of DF-Name (AID)\u000a\u000aWhen the DF-Name (AID) is extracted from the SELECT TPDU, the length\u000aof the TPDU is not checked properly, which may lead to an exception\u000ain case no DF-Name (AID) is supplied. Let's put proper length checks\u000ain place to filter corner cases and to ensure that the DF-Name (AID)\u000ais properly extracted in case it is supplied.\u000a\u000aRelated: OS#6836\u000aChange-Id: Idf08d752d046e012680c872552960cc069272777\u000a",
        "date" : "2026-01-09 16:13:56 +0100",
        "id" : "f5fca14a60df93485ac1bee5903bd9e702f12bf8",
        "msg" : "OmapiCallbackHandlerVpcd: fix extration of DF-Name (AID)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "app/src/main/java/org/osmocom/androidApduProxy/OmapiCallbackHandlerVpcd.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "app/src/main/java/org/osmocom/androidApduProxy/OmapiCallbackHandlerVpcd.java",
          "app/src/main/java/org/osmocom/androidApduProxy/Omapi.java"
        ],
        "commitId" : "e701a00c9c3ea50d12dfd0d4a4497beae1fc20e2",
        "timestamp" : 1767972298000,
        "author" : {
          "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/pmaier",
          "fullName" : "pmaier@sysmocom.de"
        },
        "authorEmail" : "pmaier@sysmocom.de",
        "comment" : "OmapiCallbackHandlerVpcd: fetch SELECT response from OMAPI\u000a\u000aAt the moment we get the select response by selecting 7FFF, which\u000ais an alias for the currently selected application. This returns a\u000aselect response when an ISIM or USIM application is selected. Other\u000aapplications may react differently here.\u000a\u000aOMAPI has a getSelectResponse method through which we can get the\u000aactual response that was received from the card when the application\u000awas selected when openLogicalChannel was called. This is far more\u000aaccurate, so lets use getSelectResponse instead of selecting 7FFF.\u000a\u000aChange-Id: Iacbc907ef157f20bed88325fcf6b58717990005a\u000a",
        "date" : "2026-01-09 16:24:58 +0100",
        "id" : "e701a00c9c3ea50d12dfd0d4a4497beae1fc20e2",
        "msg" : "OmapiCallbackHandlerVpcd: fetch SELECT response from OMAPI",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "app/src/main/java/org/osmocom/androidApduProxy/OmapiCallbackHandlerVpcd.java"
          },
          {
            "editType" : "edit",
            "file" : "app/src/main/java/org/osmocom/androidApduProxy/Omapi.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "app/src/main/java/org/osmocom/androidApduProxy/Omapi.java",
          "app/src/main/java/org/osmocom/androidApduProxy/OmapiCallbackHandlerVpcd.java"
        ],
        "commitId" : "93c60c64bd656e47111dfbc03c17c86e8e000bc7",
        "timestamp" : 1767972578000,
        "author" : {
          "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/pmaier",
          "fullName" : "pmaier@sysmocom.de"
        },
        "authorEmail" : "pmaier@sysmocom.de",
        "comment" : "OmapiCallbackHandlerVpcd: pass SELECT parameter P2 to OMAPI\u000a\u000aThe OMAPI method openLogicalChannel may take an optional parameter p2,\u000aThis parameter. Among other function, this paramter in particular\u000acontrols how to deal with short DF-Names that match the AIDs of several\u000aapplications.\u000a\u000aSince we always know this parameter from the TPDU that we receive from\u000aVPCD, let's pass it on to OMAPI when we create a new channel.\u000a\u000aRelated: OS#6836\u000aChange-Id: Ibab2cc197284e6177a83338007a0b7f77e0ab8b9\u000a",
        "date" : "2026-01-09 16:29:38 +0100",
        "id" : "93c60c64bd656e47111dfbc03c17c86e8e000bc7",
        "msg" : "OmapiCallbackHandlerVpcd: pass SELECT parameter P2 to OMAPI",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "app/src/main/java/org/osmocom/androidApduProxy/Omapi.java"
          },
          {
            "editType" : "edit",
            "file" : "app/src/main/java/org/osmocom/androidApduProxy/OmapiCallbackHandlerVpcd.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "app/src/main/java/org/osmocom/androidApduProxy/OmapiCallbackHandlerVpcd.java"
        ],
        "commitId" : "fb3308b64d7d31d993c01fedfc9e54b742c6ce99",
        "timestamp" : 1767972953000,
        "author" : {
          "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/pmaier",
          "fullName" : "pmaier@sysmocom.de"
        },
        "authorEmail" : "pmaier@sysmocom.de",
        "comment" : "OmapiCallbackHandlerVpcd: simplify/fix SELECT by DF-Name (aid)\u000a\u000aWhen a TPDU with a SELECT by DF-Name is received from the VPCD end,\u000ait cannot be transparently passed through the OMAPI channel as OMAPI\u000awill block those TDPUs for security reasons. To overcome this, we\u000aclose the current OMAPI channel and re-open a new one under the new\u000aDF-Name (AID).\u000a\u000aTo reduce the likelyhood for unexpected behaviour and possible loss\u000aof state we have replaced the SELECT by DF-Name with a SELECT to\u000a7fff (alias for the currently selected application), in case the\u000aSELECT by DF-Name would target the currently selected application.\u000a\u000aThis workaround requires preceise tracking of which application is\u000acurrently selected. Unfortunately this has proven as difficult and\u000aerror prone.\u000a\u000aAfter looking closer at the problem we noticed that we do not even\u000aneed the aforementioned workaround. The opening and closing of the\u000aOMAPI channel just opens and closes logical channels on the card.\u000aIt does not perform a reset. This in particular means that the ADM\u000aor PIN verification state is retained. (states like the currently\u000aselected file, the current tag and the current record are reset by\u000aSELECT anyway).\u000a\u000aSo let's remove the workaround and re-open the OMAPI channel each\u000atime a SELECT by DF-Name is received.\u000a\u000aRelated: OS#6836\u000aChange-Id: Ib4873b18d233e549e075b9384906a536907c6260\u000a",
        "date" : "2026-01-09 16:35:53 +0100",
        "id" : "fb3308b64d7d31d993c01fedfc9e54b742c6ce99",
        "msg" : "OmapiCallbackHandlerVpcd: simplify/fix SELECT by DF-Name (aid)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "app/src/main/java/org/osmocom/androidApduProxy/OmapiCallbackHandlerVpcd.java"
          }
        ]
      }
    ],
    "kind" : "git"
  },
  "culprits" : [
    {
      "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/pmaier",
      "fullName" : "pmaier@sysmocom.de"
    }
  ],
  "runs" : [
    {
      "number" : 453,
      "url" : "https://jenkins.osmocom.org/jenkins/view/All%20no%20Gerrit/job/master-android-apdu-proxy/a1=default,a2=default,a3=default,a4=default,label=osmocom-master/453/"
    }
  ]
}