]> www.average.org Git - YkNeoCR.git/blobdiff - src/org/average/nfcauthcr/NFCAuthCRYubiNeo.java
Renamed classes
[YkNeoCR.git] / src / org / average / nfcauthcr / NFCAuthCRYubiNeo.java
diff --git a/src/org/average/nfcauthcr/NFCAuthCRYubiNeo.java b/src/org/average/nfcauthcr/NFCAuthCRYubiNeo.java
deleted file mode 100644 (file)
index 67596e6..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-package org.average.nfcauthcr;
-
-import java.io.IOException;
-import java.util.Arrays;
-
-import android.nfc.NfcAdapter;
-import android.nfc.Tag;
-import android.nfc.TagLostException;
-import android.nfc.tech.IsoDep;
-import android.util.Log;
-
-import org.average.nfcauthcr.NFCAuthCRYubiNeo;
-
-public class NFCAuthCRYubiNeo {
-
-       private static final String TAG = "NFCAuthCRYubiNeo";
-
-       // Is it CCID APDU? ISO 7816-4?
-
-       // 00 A4 04 00 xx AID - GlobalPlatform - SELECT
-       // Le send data = 07: A0 00 00 05 27 20 01
-       // Le recv data = 00
-       private static final byte[] selectCommand =
-               {0x00, (byte) 0xA4, 0x04, 0x00, 0x07, (byte) 0xA0,
-                0x00, 0x00, 0x05, 0x27, 0x20, 0x01, 0x00};
-
-       private static final byte[] crCommand =
-               {0x00, 0x01, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00};
-
-       private static final byte SLOT_CHAL_HMAC1 = 0x30;
-       private static final byte SLOT_CHAL_HMAC2 = 0x38;
-
-       public static final byte[] doChallengeYubiKey(IsoDep isoTag, int slot,
-                                               byte[] challenge) {
-               try {
-                       isoTag.connect();
-                       byte[] resp = isoTag.transceive(selectCommand);
-                       int length = resp.length;
-                       Log.v(TAG, "response to select length is " + length);
-                       if (resp[length - 2] != (byte)0x90 ||
-                           resp[length - 1] != 0x00) {
-                               Log.v(TAG, "Wrong response to select");
-                               //Toast.makeText(this, R.string.tag_error,
-                               //              Toast.LENGTH_LONG).show();
-                               return null;
-                       }
-                       byte[] apdu = new byte[69];
-                       apdu[0] = 0x00; // CLA
-                       apdu[1] = 0x01; // INS
-                       switch (slot) {
-                       case 1: apdu[2] = SLOT_CHAL_HMAC1; break; // P1
-                       case 2: apdu[2] = SLOT_CHAL_HMAC2; break; // P1
-                       }
-                       apdu[3] = 0x00; // P2
-                       apdu[4] = 63;   // Lc
-                       System.arraycopy(challenge, 0, apdu, 5,
-                                                       challenge.length);
-                       apdu[apdu.length-1] = 22;
-                       resp = isoTag.transceive(apdu);
-                       length = resp.length;
-                       if (resp[length - 2] != (byte)0x90 ||
-                           resp[length - 1] != 0x00) {
-                               Log.v(TAG, "Wrong response to challenge");
-                               //Toast.makeText(this, R.string.tag_error,
-                               //              Toast.LENGTH_LONG).show();
-                               return null;
-                       }
-                       Log.v(TAG, "response to challenge length is " + length);
-                       return Arrays.copyOf(resp, length-2);
-               } catch (TagLostException e) {
-                       Log.v(TAG, e.getMessage());
-                       //Toast.makeText(this,
-                       //      R.string.tag_lost, Toast.LENGTH_LONG).show();
-               } catch (IOException e) {
-                       Log.v(TAG, e.getMessage());
-                       //Toast.makeText(this,
-                       //      getText(R.string.tag_error) +
-                       //      e.getMessage(),
-                       //      Toast.LENGTH_LONG).show();
-               }
-               return null;
-       }
-}