/*
* Copyright (c) 2012, Redbilled.fr. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle in the LICENSE file that accompanied this code.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
package org.poreid.security.pcscforjava;
/**
* Class which supplies all the PCSC defines for the library.<br />
* And some functions to manage it.
*
* @since 1.6
* @author Matthieu Leromain
*/
public class PCSCDefines
{
/**
* SCARD_SCOPE_USER
*/
final static int SCARD_SCOPE_USER = 0x0000;
/**
* SCARD_SCOPE_TERMINAL
*/
final static int SCARD_SCOPE_TERMINAL = 0x0001;
/**
* SCARD_SCOPE_SYSTEM
*/
final static int SCARD_SCOPE_SYSTEM = 0x0002;
/**
* SCARD_SCOPE_GLOBAL
*/
final static int SCARD_SCOPE_GLOBAL = 0x0003;
/**
* SCARD_SHARE_EXCLUSIVE
*/
final static int SCARD_SHARE_EXCLUSIVE = 0x0001;
/**
* SCARD_SHARE_SHARED
*/
final static int SCARD_SHARE_SHARED = 0x0002;
/**
* SCARD_SHARE_DIRECT
*/
final static int SCARD_SHARE_DIRECT = 0x0003;
/**
* SCARD_LEAVE_CARD
*/
final static int SCARD_LEAVE_CARD = 0x0000;
/**
* SCARD_RESET_CARD
*/
final static int SCARD_RESET_CARD = 0x0001;
/**
* SCARD_UNPOWER_CARD
*/
final static int SCARD_UNPOWER_CARD = 0x0002;
/**
* SCARD_EJECT_CARD
*/
final static int SCARD_EJECT_CARD = 0x0003;
/**
* SCARD_STATE_UNAWARE
*/
final static int SCARD_STATE_UNAWARE = 0x0000;
/**
* SCARD_STATE_IGNORE
*/
final static int SCARD_STATE_IGNORE = 0x0001;
/**
* SCARD_STATE_CHANGED
*/
final static int SCARD_STATE_CHANGED = 0x0002;
/**
* SCARD_STATE_UNKNOWN
*/
final static int SCARD_STATE_UNKNOWN = 0x0004;
/**
* SCARD_STATE_UNAVAILABLE
*/
final static int SCARD_STATE_UNAVAILABLE = 0x0008;
/**
* SCARD_STATE_EMPTY
*/
final static int SCARD_STATE_EMPTY = 0x0010;
/**
* SCARD_STATE_PRESENT
*/
final static int SCARD_STATE_PRESENT = 0x0020;
/**
* SCARD_STATE_ATRMATCH
*/
final static int SCARD_STATE_ATRMATCH = 0x0040;
/**
* SCARD_STATE_EXCLUSIVE
*/
final static int SCARD_STATE_EXCLUSIVE = 0x0080;
/**
* SCARD_STATE_INUSE
*/
final static int SCARD_STATE_INUSE = 0x0100;
/**
* SCARD_STATE_MUTE
*/
final static int SCARD_STATE_MUTE = 0x0200;
/**
* SCARD_STATE_UNPOWERED
*/
final static int SCARD_STATE_UNPOWERED = 0x0400;
/**
* Vendor information definitions
*/
final static int SCARD_CLASS_VENDOR_INFO = 1;
/**
* Communication definitions
*/
final static int SCARD_CLASS_COMMUNICATIONS = 2;
/**
* Protocol definitions
*/
final static int SCARD_CLASS_PROTOCOL = 3;
/**
* Power Management definitions
*/
final static int SCARD_CLASS_POWER_MGMT = 4;
/**
* Security Assurance definitions
*/
final static int SCARD_CLASS_SECURITY = 5;
/**
* Mechanical characteristic definitions
*/
final static int SCARD_CLASS_MECHANICAL = 6;
/**
* Vendor specific definitions
*/
final static int SCARD_CLASS_VENDOR_DEFINED = 7;
/**
* Interface Device Protocol options
*/
final static int SCARD_CLASS_IFD_PROTOCOL = 8;
/**
* ICC State specific definitions
*/
final static int SCARD_CLASS_ICC_STATE = 9;
/**
* Performace counters
*/
final static int SCARD_CLASS_PERF = 0x7ffe;
/**
* System-specific definitions
*/
final static int SCARD_CLASS_SYSTEM = 0x7fff;
/**
* SCARD_ATTR_ATR_STRING
*/
final static int SCARD_ATTR_ATR_STRING =
SCARD_ATTR_VALUE(SCARD_CLASS_ICC_STATE, 0x0303);
/**
* SCARD_ATTR_CHARACTERISTICS
*/
final static int SCARD_ATTR_CHARACTERISTICS =
SCARD_ATTR_VALUE(SCARD_CLASS_MECHANICAL, 0x0150);
/**
* SCARD_ATTR_CURRENT_BWT
*/
final static int SCARD_ATTR_CURRENT_BWT =
SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL, 0x0209);
/**
* SCARD_ATTR_CURRENT_CLK
*/
final static int SCARD_ATTR_CURRENT_CLK =
SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL, 0x0202);
/**
* SCARD_ATTR_CURRENT_CWT
*/
final static int SCARD_ATTR_CURRENT_CWT =
SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL, 0x020a);
/**
* SCARD_ATTR_CURRENT_D
*/
final static int SCARD_ATTR_CURRENT_D =
SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL, 0x0204);
/**
* SCARD_ATTR_CURRENT_EBC_ENCODING
*/
final static int SCARD_ATTR_CURRENT_EBC_ENCODING =
SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL, 0x020b);
/**
* SCARD_ATTR_CURRENT_F
*/
final static int SCARD_ATTR_CURRENT_F =
SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL, 0x0203);
/**
* SCARD_ATTR_CURRENT_IFSC
*/
final static int SCARD_ATTR_CURRENT_IFSC =
SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL, 0x0207);
/**
* SCARD_ATTR_CURRENT_IFSD
*/
final static int SCARD_ATTR_CURRENT_IFSD =
SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL, 0x0208);
/**
* SCARD_ATTR_CURRENT_N
*/
final static int SCARD_ATTR_CURRENT_N =
SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL, 0x0205);
/**
* SCARD_ATTR_CURRENT_PROTOCOL_TYPE
*/
final static int SCARD_ATTR_CURRENT_PROTOCOL_TYPE =
SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL, 0x0201);
/**
* SCARD_ATTR_CURRENT_W
*/
final static int SCARD_ATTR_CURRENT_W =
SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL, 0x0206);
/**
* SCARD_ATTR_DEFAULT_CLK
*/
final static int SCARD_ATTR_DEFAULT_CLK =
SCARD_ATTR_VALUE(SCARD_CLASS_PROTOCOL, 0x0121);
/**
* SCARD_ATTR_DEFAULT_DATA_RATE
*/
final static int SCARD_ATTR_DEFAULT_DATA_RATE =
SCARD_ATTR_VALUE(SCARD_CLASS_PROTOCOL, 0x0123);
/**
* SCARD_ATTR_DEVICE_FRIENDLY_NAME
*/
final static int SCARD_ATTR_DEVICE_FRIENDLY_NAME =
SCARD_ATTR_VALUE(SCARD_CLASS_SYSTEM, 0x0003);
/**
* SCARD_ATTR_DEVICE_IN_USE
*/
final static int SCARD_ATTR_DEVICE_IN_USE =
SCARD_ATTR_VALUE(SCARD_CLASS_SYSTEM, 0x0002);
/**
* SCARD_ATTR_DEVICE_SYSTEM_NAME
*/
final static int SCARD_ATTR_DEVICE_SYSTEM_NAME =
SCARD_ATTR_VALUE(SCARD_CLASS_SYSTEM, 0x0004);
/**
* SCARD_ATTR_DEVICE_UNIT
*/
final static int SCARD_ATTR_DEVICE_UNIT =
SCARD_ATTR_VALUE(SCARD_CLASS_SYSTEM, 0x0001);
/**
* SCARD_ATTR_ICC_INTERFACE_STATUS
*/
final static int SCARD_ATTR_ICC_INTERFACE_STATUS =
SCARD_ATTR_VALUE(SCARD_CLASS_ICC_STATE, 0x0301);
/**
* SCARD_ATTR_ICC_PRESENCE
*/
final static int SCARD_ATTR_ICC_PRESENCE =
SCARD_ATTR_VALUE(SCARD_CLASS_ICC_STATE, 0x0300);
/**
* SCARD_ATTR_ICC_TYPE_PER_ATR
*/
final static int SCARD_ATTR_ICC_TYPE_PER_ATR =
SCARD_ATTR_VALUE(SCARD_CLASS_ICC_STATE, 0x0304);
/**
* SCARD_ATTR_MAX_CLK
*/
final static int SCARD_ATTR_MAX_CLK =
SCARD_ATTR_VALUE(SCARD_CLASS_PROTOCOL, 0x0122);
/**
* SCARD_ATTR_MAX_DATA_RATE
*/
final static int SCARD_ATTR_MAX_DATA_RATE =
SCARD_ATTR_VALUE(SCARD_CLASS_PROTOCOL, 0x0124);
/**
* SCARD_ATTR_MAX_IFSD
*/
final static int SCARD_ATTR_MAX_IFSD =
SCARD_ATTR_VALUE(SCARD_CLASS_PROTOCOL, 0x0125);
/**
* SCARD_ATTR_POWER_MGMT_SUPPORT
*/
final static int SCARD_ATTR_POWER_MGMT_SUPPORT =
SCARD_ATTR_VALUE(SCARD_CLASS_POWER_MGMT, 0x0131);
/**
* SCARD_ATTR_PROTOCOL_TYPES
*/
final static int SCARD_ATTR_PROTOCOL_TYPES =
SCARD_ATTR_VALUE(SCARD_CLASS_PROTOCOL, 0x0120);
/**
* SCARD_ATTR_VENDOR_IFD_SERIAL_NO
*/
final static int SCARD_ATTR_VENDOR_IFD_SERIAL_NO =
SCARD_ATTR_VALUE(SCARD_CLASS_VENDOR_INFO, 0x0103);
/**
* SCARD_ATTR_VENDOR_IFD_TYPE
*/
final static int SCARD_ATTR_VENDOR_IFD_TYPE =
SCARD_ATTR_VALUE(SCARD_CLASS_VENDOR_INFO, 0x0101);
/**
* SCARD_ATTR_VENDOR_IFD_VERSION
*/
final static int SCARD_ATTR_VENDOR_IFD_VERSION =
SCARD_ATTR_VALUE(SCARD_CLASS_VENDOR_INFO, 0x0102);
/**
* SCARD_ATTR_VENDOR_NAME
*/
final static int SCARD_ATTR_VENDOR_NAME =
SCARD_ATTR_VALUE(SCARD_CLASS_VENDOR_INFO, 0x0100);
/**
* SCARD_ATTR_SUPRESS_T1_IFS_REQUEST
*/
final static int SCARD_ATTR_SUPRESS_T1_IFS_REQUEST =
SCARD_ATTR_VALUE(SCARD_CLASS_SYSTEM, 0x0007);
/**
* Returns the SCARD ATTR VALUE for a class and a tag.
* @param iClass the class.
* @param iTag the tag.
* @return the SCARD ATTR VALUE for a class and a tag.
*/
private static int SCARD_ATTR_VALUE(int iClass, int iTag)
{
return (iClass << 16) | iTag;
}
}