bool ICard::readFile( unsigned char sfid, size_t chunk_size, std::vector<unsigned char>& result) { ReadBinary read = ReadBinary(0, sfid); read.setNe(chunk_size); RAPDU response = transceive(read); while (response.isOK() && response.getData().size() == chunk_size) { result.insert(result.end(), response.getData().begin(), response.getData().end()); read = ReadBinary(result.size()); read.setNe(chunk_size); response = transceive(read); } result.insert(result.end(), response.getData().begin(), response.getData().end()); if (result.empty()) { return response.isOK(); } return true; }
bool ICard::selectEF( unsigned short FID) { SelectFile select(SelectFile::P1_SELECT_EF, SelectFile::P2_NO_RESPONSE, FID); RAPDU response = transceive(select); return response.isOK(); }
bool ICard::selectMF( void) { SelectFile select(SelectFile::P1_SELECT_FID, SelectFile::P2_NO_RESPONSE); RAPDU response = transceive(select); return response.isOK(); }
bool ICard::readFile( std::vector<unsigned char>& result) { ReadBinary read = ReadBinary(); read.setNe(CAPDU::DATA_EXTENDED_MAX); RAPDU response = transceive(read); result = response.getData(); return response.isOK(); }
bool ICard::selectEF( unsigned short FID, std::vector<unsigned char>& fcp) { SelectFile select(SelectFile::P1_SELECT_EF, SelectFile::P2_FCP_TEMPLATE, FID); select.setNe(CAPDU::DATA_SHORT_MAX); RAPDU response = transceive(select); fcp = response.getData(); return response.isOK(); }