<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Reading Mifare 1K Card using Java in Linux</title>
	<atom:link href="http://www.pikopong.com/blog/2009/02/11/reading-mifare-1k-card-using-java-in-linux/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.pikopong.com/blog/2009/02/11/reading-mifare-1k-card-using-java-in-linux/</link>
	<description>it&#039;s all about knowledge</description>
	<lastBuildDate>Tue, 13 Jul 2010 20:00:11 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
	<item>
		<title>By: amree</title>
		<link>http://www.pikopong.com/blog/2009/02/11/reading-mifare-1k-card-using-java-in-linux/comment-page-1/#comment-857</link>
		<dc:creator>amree</dc:creator>
		<pubDate>Thu, 22 Apr 2010 12:12:14 +0000</pubDate>
		<guid isPermaLink="false">http://www.pikopong.com/blog/?p=179#comment-857</guid>
		<description>@Bilss

I&#039;m not sure why, but waitForCardPresent(0) only works in Linux not Windows, for Windows I use these codes:

&lt;pre lang=&quot;cpp&quot; line=&quot;1&quot;&gt;
#ifdef Q_OS_WIN32
    do {

        rgReaderStates.szReader = &amp;mszReaders[iList[iReader]];
        rgReaderStates.dwCurrentState = SCARD_STATE_PRESENT;
        rgReaderStates.dwEventState = SCARD_STATE_PRESENT;


        rv = SCardGetStatusChange(hContext,
                                  INFINITE,
                                  &amp;rgReaderStates,
                                  1);

    } while ((rgReaderStates.dwEventState &amp; SCARD_STATE_EMPTY) == 0);
#else
    rgReaderStates[0].szReader = &amp;mszReaders[iList[iReader]];
    rgReaderStates[0].dwCurrentState = SCARD_STATE_PRESENT;
    rv = SCardGetStatusChange(hContext, INFINITE, rgReaderStates, 1);
#endif
&lt;/pre&gt;

As you can see, I had to use different codes for different OS. Those codes are in C++, but it&#039;s pretty much the same for Java.</description>
		<content:encoded><![CDATA[<p>@Bilss</p>
<p>I&#8217;m not sure why, but waitForCardPresent(0) only works in Linux not Windows, for Windows I use these codes:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
</pre></td><td class="code"><pre class="cpp" style="font-family:monospace;"><span style="color: #339900;">#ifdef Q_OS_WIN32</span>
    <span style="color: #0000ff;">do</span> <span style="color: #008000;">&#123;</span>
&nbsp;
        rgReaderStates.<span style="color: #007788;">szReader</span> <span style="color: #000080;">=</span> <span style="color: #000040;">&amp;</span>mszReaders<span style="color: #008000;">&#91;</span>iList<span style="color: #008000;">&#91;</span>iReader<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
        rgReaderStates.<span style="color: #007788;">dwCurrentState</span> <span style="color: #000080;">=</span> SCARD_STATE_PRESENT<span style="color: #008080;">;</span>
        rgReaderStates.<span style="color: #007788;">dwEventState</span> <span style="color: #000080;">=</span> SCARD_STATE_PRESENT<span style="color: #008080;">;</span>
&nbsp;
&nbsp;
        rv <span style="color: #000080;">=</span> SCardGetStatusChange<span style="color: #008000;">&#40;</span>hContext,
                                  INFINITE,
                                  <span style="color: #000040;">&amp;</span>rgReaderStates,
                                  <span style="color: #0000dd;">1</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
&nbsp;
    <span style="color: #008000;">&#125;</span> <span style="color: #0000ff;">while</span> <span style="color: #008000;">&#40;</span><span style="color: #008000;">&#40;</span>rgReaderStates.<span style="color: #007788;">dwEventState</span> <span style="color: #000040;">&amp;</span> SCARD_STATE_EMPTY<span style="color: #008000;">&#41;</span> <span style="color: #000080;">==</span> <span style="color: #0000dd;">0</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
<span style="color: #339900;">#else</span>
    rgReaderStates<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">0</span><span style="color: #008000;">&#93;</span>.<span style="color: #007788;">szReader</span> <span style="color: #000080;">=</span> <span style="color: #000040;">&amp;</span>mszReaders<span style="color: #008000;">&#91;</span>iList<span style="color: #008000;">&#91;</span>iReader<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
    rgReaderStates<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">0</span><span style="color: #008000;">&#93;</span>.<span style="color: #007788;">dwCurrentState</span> <span style="color: #000080;">=</span> SCARD_STATE_PRESENT<span style="color: #008080;">;</span>
    rv <span style="color: #000080;">=</span> SCardGetStatusChange<span style="color: #008000;">&#40;</span>hContext, INFINITE, rgReaderStates, <span style="color: #0000dd;">1</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
<span style="color: #339900;">#endif</span></pre></td></tr></table></div>

<p>As you can see, I had to use different codes for different OS. Those codes are in C++, but it&#8217;s pretty much the same for Java.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bilss</title>
		<link>http://www.pikopong.com/blog/2009/02/11/reading-mifare-1k-card-using-java-in-linux/comment-page-1/#comment-856</link>
		<dc:creator>Bilss</dc:creator>
		<pubDate>Thu, 22 Apr 2010 10:36:36 +0000</pubDate>
		<guid isPermaLink="false">http://www.pikopong.com/blog/?p=179#comment-856</guid>
		<description>Mikael, 

I have the same exception.
I&#039;ve been looking around and found this :http://lxr.js-home.org/lxr/source/sun/security/smartcardio/TerminalImpl.java

Apparently this happens when timeout has expired and when no card is present.
Since you called waitForCardPresent(0) , it should be inifinite timeout...

I am in the same situation, have you found a solution?</description>
		<content:encoded><![CDATA[<p>Mikael, </p>
<p>I have the same exception.<br />
I&#8217;ve been looking around and found this :http://lxr.js-home.org/lxr/source/sun/security/smartcardio/TerminalImpl.java</p>
<p>Apparently this happens when timeout has expired and when no card is present.<br />
Since you called waitForCardPresent(0) , it should be inifinite timeout&#8230;</p>
<p>I am in the same situation, have you found a solution?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mikael</title>
		<link>http://www.pikopong.com/blog/2009/02/11/reading-mifare-1k-card-using-java-in-linux/comment-page-1/#comment-802</link>
		<dc:creator>Mikael</dc:creator>
		<pubDate>Thu, 04 Mar 2010 11:00:56 +0000</pubDate>
		<guid isPermaLink="false">http://www.pikopong.com/blog/?p=179#comment-802</guid>
		<description>Hi i have successfully run the application with ACR 122 without the line 
&lt;pre lang=&quot;java&quot;&gt;
terminal.waitForCardPresent(0);
&lt;/pre&gt;
if i have this active my reader gets an error:
&lt;pre lang=&quot;java&quot; line=&quot;1&quot;&gt;
javax.smartcardio.CardException: wait mismatch
        at sun.security.smartcardio.TerminalImpl.waitForCard(TerminalImpl.java:103)
        at sun.security.smartcardio.TerminalImpl.waitForCardPresent(TerminalImpl.java:116)
&lt;/pre&gt;
what does this error mean?</description>
		<content:encoded><![CDATA[<p>Hi i have successfully run the application with ACR 122 without the line</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;">terminal.<span style="color: #006633;">waitForCardPresent</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>if i have this active my reader gets an error:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="java" style="font-family:monospace;">javax.<span style="color: #006633;">smartcardio</span>.<span style="color: #006633;">CardException</span><span style="color: #339933;">:</span> wait mismatch
        at sun.<span style="color: #006633;">security</span>.<span style="color: #006633;">smartcardio</span>.<span style="color: #006633;">TerminalImpl</span>.<span style="color: #006633;">waitForCard</span><span style="color: #009900;">&#40;</span>TerminalImpl.<span style="color: #006633;">java</span><span style="color: #339933;">:</span><span style="color: #cc66cc;">103</span><span style="color: #009900;">&#41;</span>
        at sun.<span style="color: #006633;">security</span>.<span style="color: #006633;">smartcardio</span>.<span style="color: #006633;">TerminalImpl</span>.<span style="color: #006633;">waitForCardPresent</span><span style="color: #009900;">&#40;</span>TerminalImpl.<span style="color: #006633;">java</span><span style="color: #339933;">:</span><span style="color: #cc66cc;">116</span><span style="color: #009900;">&#41;</span></pre></td></tr></table></div>

<p>what does this error mean?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: caramel</title>
		<link>http://www.pikopong.com/blog/2009/02/11/reading-mifare-1k-card-using-java-in-linux/comment-page-1/#comment-801</link>
		<dc:creator>caramel</dc:creator>
		<pubDate>Tue, 02 Mar 2010 07:34:27 +0000</pubDate>
		<guid isPermaLink="false">http://www.pikopong.com/blog/?p=179#comment-801</guid>
		<description>ive runned the code.but below is the error displayed.
ive used gemplus 8kb combicard as a card and omnikey 5321 as reader.so,is that mean dat dis progrm cannt read my card?

&lt;pre lang=&quot;text&quot; line=&quot;1&quot;&gt;
List of PC/SC Readers connected:
Reader: OMNIKEY CardMan 5x21 0
Reader: OMNIKEY CardMan 5x21-CL 0
Terminal fetched: OMNIKEY CardMan 5x21 0
Terminal NOT connected: javax.smartcardio.CardException: connect() failed
Error: null
BUILD SUCCESSFUL (total time: 16 seconds)
&lt;/pre&gt;</description>
		<content:encoded><![CDATA[<p>ive runned the code.but below is the error displayed.<br />
ive used gemplus 8kb combicard as a card and omnikey 5321 as reader.so,is that mean dat dis progrm cannt read my card?</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
</pre></td><td class="code"><pre class="text" style="font-family:monospace;">List of PC/SC Readers connected:
Reader: OMNIKEY CardMan 5x21 0
Reader: OMNIKEY CardMan 5x21-CL 0
Terminal fetched: OMNIKEY CardMan 5x21 0
Terminal NOT connected: javax.smartcardio.CardException: connect() failed
Error: null
BUILD SUCCESSFUL (total time: 16 seconds)</pre></td></tr></table></div>

]]></content:encoded>
	</item>
	<item>
		<title>By: Basti</title>
		<link>http://www.pikopong.com/blog/2009/02/11/reading-mifare-1k-card-using-java-in-linux/comment-page-1/#comment-797</link>
		<dc:creator>Basti</dc:creator>
		<pubDate>Sun, 17 Jan 2010 22:03:42 +0000</pubDate>
		<guid isPermaLink="false">http://www.pikopong.com/blog/?p=179#comment-797</guid>
		<description>Hello,
I&#039;ve runned the code. It succeeds for the UID (ends with 9000), but have problems sending the load key. As I&#039;ve seen there is a couple of bytes that have to changed depending on the card. How do I ger the load key for my card?
Thanks</description>
		<content:encoded><![CDATA[<p>Hello,<br />
I&#8217;ve runned the code. It succeeds for the UID (ends with 9000), but have problems sending the load key. As I&#8217;ve seen there is a couple of bytes that have to changed depending on the card. How do I ger the load key for my card?<br />
Thanks</p>
]]></content:encoded>
	</item>
</channel>
</rss>
