bertrandmartel / aram-applet

JavaCard implementation of GlobalPlatform Access Rule Application Master Applet
MIT License
29 stars 23 forks source link

Broken build due to JCenter/Bintray shutdown #4

Open dmitry-radzevich opened 3 years ago

dmitry-radzevich commented 3 years ago

Hi, it seems that the build is broken now, since dependencies can no longer be resolved:

Could not resolve all dependencies for configuration ':aram:compileClasspath'.
> Could not resolve fr.bmartel:gplatform:2.1.1.
  Required by:
      project :aram
   > Could not resolve fr.bmartel:gplatform:2.1.1.
      > Could not get resource 'http://dl.bintray.com/bertrandmartel/maven/fr/bmartel/gplatform/2.1.1/gplatform-2.1.1.pom'.
         > Could not GET 'http://dl.bintray.com/bertrandmartel/maven/fr/bmartel/gplatform/2.1.1/gplatform-2.1.1.pom'. Received status code 403 from server: Forbidden

I've checked what's available on MavenCentral, but that specific package (fr.bmartel:gplatform:2.1.1) is not there :(

I guess this is related to the shutdown of JCenter / Bintray. Is it possible to have the dependencies pushed to GitHub / MavenCentral?

Gigithecode commented 1 year ago

Hello, did you succeed to solve it? I've got the same issue and cannot build aram applet. Thanks.

team-orangeBlue commented 1 year ago

What's a fix? I can't build any javacard applets w/o this and well, this is the only issue I found.

Gigithecode commented 1 year ago

The issue still is "Could not resolve fr.bmartel:gplatform:2.1.1." I cannot find it on Internet...

martinpaljak commented 1 year ago

I can make a compiling version if you need?

Gigithecode commented 1 year ago

It will be great! Thank you Martin!

Gigithecode commented 1 year ago

I've got a very special behavior with a Gemalto eSIM, adding a rule on ARA-M doesn't work even if everything seems ok (SCP02 secure channel opens well and I tried with two methods : direct way and via INSTALL for personalization) BTW it works well with sysmocom SJA2 My goal is to get carrier privilege for one APK. If you get an idea of what should be the cause...

Gigithecode commented 1 year ago

So my idea is to install the applet, adding the rule inside it and check if it could works... (I'm afraid I should desinstall the original ARA-M because of course they share the same AID)

Gigithecode commented 1 year ago

I can make a compiling version if you need?

Hi, did you succeed to build the applet?

martinpaljak commented 1 year ago

Here's a minimal diff to make it build (produces ./aram/build/javacard/applet.cap)

https://github.com/martinpaljak/aram-applet/tree/martin

I'd recommend changing the build infra tho..

Gigithecode commented 1 year ago

Thank you Martin! Which build infra do you recommand for this kind of code? I succeeded to build the cap (not yet installed and tested) I still get errors when trying to compile the test suite. This is weird because I haven't keep any reference to com.licel ... (replaced with com.klinec in aram/src/test/java/fr/bmartel/aram/TestSuite.java because this is the jcardsim-3.0.4.pom packet name in mvn repository)


$ ./gradlew build
:assemble UP-TO-DATE
:check UP-TO-DATE
:build UP-TO-DATE
:aram:compileJava UP-TO-DATE
:aram:processResources UP-TO-DATE
:aram:classes UP-TO-DATE
:aram:jar UP-TO-DATE
:aram:assemble UP-TO-DATE
:aram:preBuild UP-TO-DATE
:aram:buildJavaCard
[ant:cap] INFO: using JavaCard v2.2.1 SDK in /home/gigi/aram-applet/oracle_javacard_sdks/jc221_kit
[ant:cap] Building CAP with 1 applet from package fr.bmartel.aram
[ant:cap] fr.bmartel.aram.AccessRuleMaster A00000015141434C00
[ant:compile] Compiling 3 source files to /tmp/jccpro4025293961849818995
[ant:cap] warning: You did not supply export file for the previous minor version of the package
[ant:cap] CAP saved to /home/gigi/aram-applet/aram/build/javacard/applet.cap
[ant:export] EXP saved to /home/gigi/aram-applet/aram/build/javacard/applet.exp/fr/bmartel/aram/javacard/aram.exp
[ant:export] Building jar: /home/gigi/aram-applet/aram/build/javacard/applet.exp/aram.jar
[ant:jca] JCA saved to /home/gigi/aram-applet/aram/build/javacard/applet.jca
[ant:verify] Copyright 2003 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms.
[ant:verify] Vérification du fichier CAP /home/gigi/aram-applet/aram/build/javacard/applet.cap
[ant:verify] La vérification est terminée, 0 avertissements et 0 erreurs.
:aram:compileTestJava FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Could not resolve all files for configuration ':aram:testCompileClasspath'.
> Could not resolve all dependencies for configuration ':aram:jcardsim'.
   > Could not resolve com.licel:jcardsim:3.0.4.
     Required by:
         project :aram
      > Could not resolve com.licel:jcardsim:3.0.4.
         > Failed to download SHA1 for resource 'http://dl.bintray.com/bertrandmartel/maven/com/licel/jcardsim/3.0.4/jcardsim-3.0.4.pom'.
            > For input string: "<ht"

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 3.006 secs
martinpaljak commented 1 year ago

This comes from deep in the gradle toolchain I guess. It needs a hefty update. That's a different endeavour.

Gigithecode commented 1 year ago

I'll keep you updated when install for install succeed and tested in my particuliar Thales javacard issue. Thank you a lot for your help!

ATran001 commented 8 months ago

Hi @Gigithecode, were you ever able to build out the repository? I got to the same point you did and also got the same error message.

Gigithecode commented 8 months ago

@ATran001, yes, you have to modify aram/build.gradle changing remote 'fr.bmartel:gplatform:2.1.1' to remote 'org.globalplatform:javacard:1.1' and deactivate compileTestJava.

Gigithecode commented 8 months ago

The applet is ruuning flawless on a THALES eUICC (ex. GEMALTO). I even succeeded to setup carrier privilege for an AOSP app. with it (we need the Google proprietary tag 'DB' that the original GEMALTO ARAM didn't accept. Bertrand's ARAM doesn't handle it as well but at least it allows to set up it inside an access rule) Thank you a lot for your work Bertrand!

z3ntu commented 6 months ago

I've also made a buildable tree a while ago https://github.com/z3ntu/aram-applet/commits/patches

@Gigithecode Could you share how you got the PERM-AR-DO (DB) tag onto the card? I've been looking for this also in the past but didn't get anywhere.

Gigithecode commented 6 months ago

I've also made a buildable tree a while ago https://github.com/z3ntu/aram-applet/commits/patches

@Gigithecode Could you share how you got the PERM-AR-DO (DB) tag onto the card? I've been looking for this also in the past but didn't get anywhere.

Sure! (to be passed on the appropriate DOM with SecurityDomain, TrustedPath, AuthorizedManagement - on my smartcard this isn't the ISD because the ARA-M was first installed with install for extradition on a specific ARA-M managment DOM) gp -v -d --key-ver aaa --key-enc xxx --key-mac yyy --key-dek zzz -a 00A4040009A00000015141434C0000 -a 80E290002DF02B E2 29 E1 18 4F 00 C1 14 4475ea9c85fc482fb177501fb7d349ba212bfcd9 E3 0D D0 01 01 DB 08 0000000000000001

where 4475ea9c85fc482fb177501fb7d349ba212bfcd9 is the sha1 of the APK's sign you need to acquire carrier privilege on.

z3ntu commented 6 months ago

Thanks! Not sure when I next have the need / opportunity to try this, but when the time comes I'll definitely give it a shot! (we currently have some other SIM cards which we bought from somewhere that can be used in CTS)

Gigithecode commented 6 months ago

Thanks! Not sure when I next have the need / opportunity to try this, but when the time comes I'll definitely give it a shot! (we currently have some other SIM cards which we bought from somewhere that can be used in CTS)

You're welcome! feel free to ask if you encounter some troubles.