Commit Graph

52 Commits

Author SHA1 Message Date
Oliver Smith b80a9f87e4 spec: mention more EF to invalidate 2020-04-15 11:46:36 +02:00
Oliver Smith 9748cdc622 IMSIPseudo.java: Cosmetic: fix missing space 2020-04-07 09:38:44 +02:00
Oliver Smith 15c3bfb49f Invalidate Kc, too 2020-02-26 12:02:47 +01:00
Oliver Smith 134f41f5d1 Invalidate TMSI, P-TMSI after changing IMSI
Now the ME doesn't try to send the TMSI anymore in the next Location
Updating Request, it directly sends the IMSI.
2020-02-26 11:47:45 +01:00
Neels Hofmeyr 4ac43a2f1b add SIM REFRESH command after IMSI change 2020-02-26 02:02:53 +01:00
Neels Hofmeyr 872140db64 add make reflash 2020-02-25 03:43:12 +01:00
Neels Hofmeyr ff5364a5bd Makefile: add some .PHONY 2020-02-25 03:41:53 +01:00
Neels Hofmeyr 7c5e973e25 add 'make list' 2020-02-25 03:39:53 +01:00
Neels Hofmeyr b5ca312419 Test: Bytes.toStr() 2020-02-25 03:39:53 +01:00
Neels Hofmeyr 483f5a4f74 refactor the menu, the mi2str() implementation, and tests
Instead of a sub-menu for changing the IMSI, just offer a dialog with the
current IMSI pre-filled in an edit field.
"Show IMSI" becomes just "Change IMSI" without changing anything.

Change mi2str() so that it simply returns a byte[] of the right size.

Test new mi2str()
2020-02-25 03:39:51 +01:00
Neels Hofmeyr 26256941eb make writeIMSI() safe against invalid length 2020-02-25 03:36:27 +01:00
Neels Hofmeyr cf04db0318 drop unnecessary 'new byte[]' before {...} 2020-02-25 03:36:27 +01:00
Neels Hofmeyr 9a3428e46e prompt(): add prefillVal arg 2020-02-25 03:36:27 +01:00
Neels Hofmeyr ad4531a414 add Bytes.java 2020-02-25 03:36:27 +01:00
Neels Hofmeyr 583bfecc34 eliminate itemCount param from showMenu() 2020-02-25 03:36:27 +01:00
Neels Hofmeyr 41b6f543a3 write user entered IMSI to SIM 2020-02-25 03:36:25 +01:00
Neels Hofmeyr d20f93a2c0 add MobileIdentity as separate class, add test
Use fixed applet-project.mk to put Mobile Identity implementations in a
separate class MobileIdentity.java.

That allows trivially testing the MobileIdentity implementation outside of an
actual SIM card environment: add a 'test' target to the Makefile and a
Test.java class that runs some tests.
2020-02-25 03:34:40 +01:00
Neels Hofmeyr faeef438bc fix applet-project.mk: allow multiple .java sources, separate jar target 2020-02-24 22:51:56 +01:00
Neels Hofmeyr c916b97761 copy applet-project.mk here, to be able to apply changes 2020-02-24 22:51:21 +01:00
Neels Hofmeyr c24fdd1ad7 readIMSI, writeIMSI 2020-02-24 22:48:00 +01:00
Neels Hofmeyr 0866f3a036 add Enter IMSI dialog 2020-02-24 21:31:43 +01:00
Neels Hofmeyr c0c95621ea add hexdump() 2020-02-24 21:31:43 +01:00
Neels Hofmeyr 984627047e Mobile Identity routines 2020-02-24 21:31:43 +01:00
Neels Hofmeyr ba7a6f22a5 return result of user interaction prompts 2020-02-24 21:31:43 +01:00
Neels Hofmeyr c8e96413cb tweak indent in switch statement 2020-02-24 21:31:43 +01:00
Neels Hofmeyr 7d7e33f119 more aggressively set private final on class vars 2020-02-24 21:24:02 +01:00
Neels Hofmeyr cfb476d207 add showMsgAndWaitKey() to keep decoded IMSI on display 2020-02-24 19:00:03 +01:00
Neels Hofmeyr b7a20e3bfc properly read IMSI as Mobile Identity (3GPP TS 24.008) 2020-02-24 18:58:56 +01:00
Oliver Smith 89879a09c2 IMSIPseudo.java: fix up length somewhat
Since it is counting nibbles, we need to take the length, which is in
bytes, two times. Also increase the size of the whole string, because
there are additional numbers infront of the imsi, it seems.

There are still two numbers missing at the end, and there is a
mysterious ) character. But other than that, it's working.
2020-02-24 15:46:38 +01:00
Oliver Smith 6634a5d26b IMSIPseudo.java: remove unneeded return in showMsg() 2020-02-24 15:25:10 +01:00
Oliver Smith 89d18bc61e IMSIPseudo.java: return if reading IMSI fails 2020-02-24 15:24:43 +01:00
Oliver Smith 799fe1dd55 sim-applet: flash: set --access-domain=00
Make the AC_NOT_FULFILLED error go away.
2020-02-24 15:21:54 +01:00
Oliver Smith 05b1332d75 sim-applet/LICENSE: add Apache-2.0 2020-02-24 14:18:20 +01:00
Oliver Smith d7f18920c3 IMSIPseudo.java: show exception error code
Current code gives E03 (AC_NOT_FULFILLED). The error codes are explained
in TS_101_476/Annex_A_HTML/sim/access/SIMViewException.html.
2020-02-24 12:29:33 +01:00
Oliver Smith 2259cb9fd7 IMSIPseudo: implement "Show IMSI" (WIP)
This will need some adjustments before it actually works.
2020-02-24 12:28:50 +01:00
Oliver Smith 0f7c8bb3cc sim-applet/Makefile: add "delete" alias 2020-02-24 11:32:48 +01:00
Oliver Smith 4eee13d7e7 IMSIPseudo.java: import all
It takes time to figure out where exactly a certain class/object/... is
located. Just import all of them. It does not seem to impact the size of
the applet, as there's a blog post writing about performance that does
it the same way [1]. Besides, except for the HelloSTK hello world, I've
seen it in all other code done that way, including 3GPP 03.19 Annex C.

[1]: https://gelvaos.blogspot.com/2011/04/
2020-02-24 11:28:39 +01:00
Oliver Smith cef081c1e7 IMSIPseudo.java: move showMsg down 2020-02-24 10:02:14 +01:00
Oliver Smith ca866fe7c5 IMSIPseudo.java: display menu
Add a menu with the following actions:

IMSI Pseudonymization
1 Show LU counter
2 Show IMSI
3 Change IMSI

Selecting "Change IMSI" opens a submenu:

Change IMSI
1 Set 1 as last digit
2 Set 2 as last digit

Except for "Show LU counter", the actions are not implemented yet.
2020-02-24 09:58:28 +01:00
Oliver Smith 234ab54bf7 IMSIPseudo.java: rename showHello to showMsg
Add msg as parameter.
2020-02-24 08:26:29 +01:00
Oliver Smith 2dcbfabb2d IMSIPseudo.java: rename menuItemText to title 2020-02-21 15:40:21 +01:00
Oliver Smith 1e5cc46d7f IMSIPseudo.java: rename welcomeMsg to LUCounter 2020-02-21 15:39:14 +01:00
Oliver Smith 041b0e0af1 IMSIPesudo.java: simple LU counter 2020-02-21 15:24:29 +01:00
Oliver Smith e28705aff5 IMSIPseudo.java: show hello world on LU 2020-02-21 11:20:49 +01:00
Oliver Smith c6a2ba99d0 sim-applet/README.md: describe flashing 2020-02-21 09:39:50 +01:00
Oliver Smith c18064a760 sim-applet: add "flash" and "remove" targets
Using wrong arguments for shadysim.py (e.g. wrong --max-menu-entry-text)
results in cryptic errors, so let's version them along with the source.
2020-02-21 09:29:20 +01:00
Oliver Smith 8f58642c4d IMSIPseudo.java: change menu entry title
To make this work, flash with increased --max-menu-entry-text option for
shadysim.py. I'll add a "make flash" target for convenience.
2020-02-21 08:55:57 +01:00
Oliver Smith 4e5e516a0e IMSIPseudo.java: convert line endings to unix 2020-02-21 08:47:36 +01:00
Oliver Smith 7528b38c60 sim-applet: rename to org.osmocom.IMSIPseudo 2020-02-21 08:43:25 +01:00
Oliver Smith 04f258699a Makefile: adjust path to sim-tools 2020-02-19 12:16:01 +01:00