10
0
Fork 0

demo centralized

This commit is contained in:
Kevin Redon 2011-05-02 17:34:56 +02:00
parent a99dce361d
commit 93aa6bc904
4 changed files with 62 additions and 14 deletions

View File

@ -69,6 +69,7 @@ VERBOSE = 0
include APDU
# tell APDU methods how to send
def transmit_apdu(apdu)
return @client.apdu(apdu)
end

60
src/demo_server.rb Executable file
View File

@ -0,0 +1,60 @@
#!/usr/bin/env ruby
=begin
This file is part of SAP.
SAP is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
SAP is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with SAP. If not, see <http://www.gnu.org/licenses/>.
Copyright (C) 2011 Kevin "tsaitgaist" Redon kevredon@mail.tsaitgaist.info
=end
# this program is there to start a server
require 'socket'
require 'pcsc_server'
require 'sim_server'
# the io the server should use (:tcp, :unix)
io_type = :tcp
# the server to use (:pcsc, :sim)
server_type = :pcsc
# create the IO
case io_type
when :tcp
TCP_HOST = "localhost"
TCP_PORT = "1337"
socket = TCPServer.new(TCP_HOST,TCP_PORT)
when :unix
UNIX = "/tmp/sap_server.socket"
socket = UNIXServer.new(APDU_SOCKET)
else
raise "unkown IO type"
end
# wait for a client to connect
io = socket.accept
case server_type
when :pcsc
server = PCSCServer.new(io)
when :sim
server = SIMServer.new(io)
else
raise "unkown server type"
end
# starting the server
server.start
# close IO when finished
io.close
server.close

7
src/pcsc_server.rb Executable file → Normal file
View File

@ -18,7 +18,6 @@ along with SAP. If not, see <http://www.gnu.org/licenses/>.
Copyright (C) 2011 Kevin "tsaitgaist" Redon kevredon@mail.tsaitgaist.info
=end
require 'lib/server'
require 'socket'
require 'rubygems'
require 'smartcard'
=begin
@ -109,9 +108,3 @@ class PCSCServer < Server
end
end
# demo application, using TCP socket
socket = TCPServer.new("localhost",1337)
io = socket.accept
server = PCSCServer.new(io)
server.start

8
src/sim_server.rb Executable file → Normal file
View File

@ -140,7 +140,7 @@ class SIMServer < Server
# select file using the file ID
# node representing the file is returned
# nil is return if file does not exist or is unaccessible
def select (id)
def select(id)
response = nil
# get the current directory
dfs = [0x3f,0x5f,0x7f]
@ -179,9 +179,3 @@ class SIMServer < Server
end
end
# demo application, using TCP socket
socket = TCPServer.new("localhost",1337)
io = socket.accept
server = SIMServer.new(io)
server.start