10
0
Fork 0
A software SIM card simulation written in ruby
Go to file
Kevin Redon 93aa6bc904 demo centralized 2011-05-02 17:34:56 +02:00
spec initial commit 2011-02-03 18:22:59 +01:00
src demo centralized 2011-05-02 17:34:56 +02:00
LICENSE add gpl3 license 2011-05-02 12:34:31 +02:00
README SIM server created 2011-04-27 12:54:33 +02:00
Rakefile initial commit 2011-02-03 18:22:59 +01:00

README

SAP is a ruby implementation of the BTSAP (Bluetooth SIM Access Profile) spec.

client and server share common contsants, functions, pricipiles
this common part is defined in common.rb
client.rb is a child of common.rb, it implements the client part of SAP
server.rb is a child of common.rb, it implements the server part of SAP
client.rb and server.rb do not work on there own, but are "interfaces"

common.rb :
- is contains the contanst for SAP, the method to create and parse the message,
methods to get and send messages, and the state machine call
- the verbosity is definied in this class in VERBOSE

client.rb :
- it implements the client side of the state machine
- a IO to the server has to be provided
- it provides the main functions : connect,atr,apdu,disconnect

server.rb :
- it implements the server part of the state machine
- a IO to accept clients has to be provided
- the main functions have to be implemented to

bluetooth_client.rb :
- it searches for bluetooth SAP servers and connects to it
- a path to the serial port is provided
- it used BlueZ over dbus (see file head for details)

demo_client :
- it's purpose it to test the client implementation (just the basics)
- choose between :bt and :tcp if the head of the file
- if :tcp is chosen, it will connect to a SAP server using a network socket
- if :bt is chosen, it will connect to a SAP server using bluetooth
(using bluetooth_client.rb)
- the demo application will only connect to the server, get the ATR,
send a single APDU, and disconnect

demo_server.rb :
- nothing implemented yet

pcsc_server.rb :
- this is a server implementation that uses a classic smart card reader to
connect to the SIM
- it uses a network port to listen for clients
- the gem smartcard is used (see head for details)

STATE :
- it does not implement the functions for the proactive SIM : power_on/off,
reset , ...