2011-12-08 26 views
6

मैं एक स्मार्ट कार्ड आवेदन लिख रहा हूँ और उसके सहायता के साथ आवेदन की एक सफल चयन, जब यह भेजने के लिए हो जाता है के बाद हो जाओ प्रसंस्करण विकल्पअजीब अमान्य CLA आदेश (6E 00) पर जावा SmartCard आईओ

मैं 6E 00 मिलता है प्रतिक्रिया के रूप में - अवैध सीएलए आदेश। इस कोड है कि आदेश भेजता है और प्रतिक्रिया प्राप्त का हिस्सा है:

ResponseAPDU rapdu = sendCommand(new byte[]{(byte)0x80, (byte)0xA8, (byte)0x00, (byte)0x00, (byte)0x02, (byte)0x83, (byte)0x00, (byte)0x00}); 

private ResponseAPDU sendCommand(byte[] apdu) throws CardException{ 
    CommandAPDU capdu = new CommandAPDU(apdu);   
    ResponseAPDU rpd = channel.transmit(capdu); 

    return rpd; 
} 

मैं एक ही आदेश का उपयोग कर रहा Jaccal लाइब्रेरी का उपयोग कार्ड पढ़ने के लिए और यह पूरी तरह काम कर रहा है, लेकिन यह सिर्फ इतना है कि jaccal मेरे लिए उपयुक्त नहीं है है बाहरी डीएलएल फ़ाइल के उपयोग के कारण आवेदन। मुझे नहीं पता कि यह मुझे इस तरह की प्रतिक्रिया क्यों दे रहा है।

उत्तर

-1

असल में यह त्रुटि आपके द्वारा गुजरने वाले आदेश की वजह से मेल नहीं खाती है। सही जांच (0x80) पहला फ़ील्ड सही या गलत है। कार्ड में कार्ड ओएस अपेक्षित मूल्य के साथ मुट्ठी फ़ील्ड की जांच करता है यदि यह मेल नहीं खाता है सीएलए नहीं मिला अपवाद का अर्थ है 6 ई 00 त्रुटि कोड। आपको जो कुछ भी कर रहे हैं, उसके बारे में अधिक जानकारी प्रदान करने की आवश्यकता होगी - कौन सा कार्ड, संस्करण, जीपी अनुपालन, मौजूदा कार्ड की सूची जो आप तकनीक का उपयोग कर रहे हैं। आप किस भाषा में काम कर रहे हैं। (नेट या जावा) कि मैं आपकी मदद कर सकता हूँ।

6

ब्लॉग/मंच प्रविष्टियों की संख्या इस मुद्दे पर चर्चा:

मेरे मामले वीज़ा कार्ड में "क्षमा" दिखाई देते हैं, लेकिन MasterCards नहीं हैं (6 ई 00)। नोट, सलाह के विपरीत, जावा 7 में अपग्रेड करने से यह मेरे लिए ठीक नहीं हुआ। आप शायद sun.security.smartcardio.t0GetResponse समाधान और प्रतिक्रियाओं को संभालने पर देख रहे हैं।

मैं यह काम कर रहा करने के लिए निम्नलिखित किया:

प्राप्त प्रतिक्रिया के साथ
System.setProperty("sun.security.smartcardio.t0GetResponse", "false"); 

हैंडल प्रतिक्रियाओं (देखें ईएमवी 4.3 बुक 1, धारा 9.3.1.3)। इस कड़ी में भी उपयोगी है:

+1

यह सही जवाब है। कृपया इसे इस तरह चिह्नित करें। – Brad

+0

जावा 8 अभी भी इस फिक्स की आवश्यकता है। –