class Mifare::Ultralight
Constants
- CMD_3DES_AUTH
- CMD_READ
- CMD_WRITE
Public Class Methods
new(pcd, uid, sak)
click to toggle source
Calls superclass method
PICC::new
# File lib/mifare/ultralight.rb, line 7 def initialize(pcd, uid, sak) super @model_c = false # Check if Ultralight C if support_3des_auth? extend UltralightC @model_c = true end end
Public Instance Methods
model_c?()
click to toggle source
# File lib/mifare/ultralight.rb, line 35 def model_c? @model_c end
read(block_addr)
click to toggle source
# File lib/mifare/ultralight.rb, line 18 def read(block_addr) buffer = [CMD_READ, block_addr] @pcd.picc_transceive(buffer) end
write(page, send_data)
click to toggle source
# File lib/mifare/ultralight.rb, line 24 def write(page, send_data) if send_data.size != 4 raise UnexpectedDataError, "Expect 4 bytes data, got: #{send_data.size} byte" end buffer = [CMD_WRITE, page] buffer.concat(send_data) @pcd.picc_transceive(buffer) end
Private Instance Methods
support_3des_auth?()
click to toggle source
Check if PICC
support Ultralight
3DES command
# File lib/mifare/ultralight.rb, line 42 def support_3des_auth? # Ask for authentication buffer = [CMD_3DES_AUTH, 0x00] begin @pcd.picc_transceive(buffer) result = true rescue CommunicationError result = false end resume_communication result end