/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package org.poreid.pcscforjava;
/**
*
* @author mleromain
*/
public class PCSCErrorValues
{
// PCSC success / error / failure / warning codes
/**
*
*/
public final static int SCARD_S_SUCCESS = 0x00000000;
/**
*
*/
public final static int SCARD_F_INTERNAL_ERROR = 0x80100001;
/**
*
*/
public final static int SCARD_E_CANCELLED = 0x80100002;
/**
*
*/
public final static int SCARD_E_INVALID_HANDLE = 0x80100003;
/**
*
*/
public final static int SCARD_E_INVALID_PARAMETER = 0x80100004;
/**
*
*/
public final static int SCARD_E_INVALID_TARGET = 0x80100005;
/**
*
*/
public final static int SCARD_E_NO_MEMORY = 0x80100006;
/**
*
*/
public final static int SCARD_F_WAITED_TOO_LONG = 0x80100007;
/**
*
*/
public final static int SCARD_E_INSUFFICIENT_BUFFER = 0x80100008;
/**
*
*/
public final static int SCARD_E_UNKNOWN_READER = 0x80100009;
/**
*
*/
public final static int SCARD_E_TIMEOUT = 0x8010000A;
/**
*
*/
public final static int SCARD_E_SHARING_VIOLATION = 0x8010000B;
/**
*
*/
public final static int SCARD_E_NO_SMARTCARD = 0x8010000C;
/**
*
*/
public final static int SCARD_E_UNKNOWN_CARD = 0x8010000D;
/**
*
*/
public final static int SCARD_E_CANT_DISPOSE = 0x8010000E;
/**
*
*/
public final static int SCARD_E_PROTO_MISMATCH = 0x8010000F;
/**
*
*/
public final static int SCARD_E_NOT_READY = 0x80100010;
/**
*
*/
public final static int SCARD_E_INVALID_VALUE = 0x80100011;
/**
*
*/
public final static int SCARD_E_SYSTEM_CANCELLED = 0x80100012;
/**
*
*/
public final static int SCARD_F_COMM_ERROR = 0x80100013;
/**
*
*/
public final static int SCARD_F_UNKNOWN_ERROR = 0x80100014;
/**
*
*/
public final static int SCARD_E_INVALID_ATR = 0x80100015;
/**
*
*/
public final static int SCARD_E_NOT_TRANSACTED = 0x80100016;
/**
*
*/
public final static int SCARD_E_READER_UNAVAILABLE = 0x80100017;
/**
*
*/
public final static int SCARD_P_SHUTDOWN = 0x80100018;
/**
*
*/
public final static int SCARD_E_PCI_TOO_SMALL = 0x80100019;
/**
*
*/
public final static int SCARD_E_READER_UNSUPPORTED = 0x8010001A;
/**
*
*/
public final static int SCARD_E_DUPLICATE_READER = 0x8010001B;
/**
*
*/
public final static int SCARD_E_CARD_UNSUPPORTED = 0x8010001C;
/**
*
*/
public final static int SCARD_E_NO_SERVICE = 0x8010001D;
/**
*
*/
public final static int SCARD_E_SERVICE_STOPPED = 0x8010001E;
/**
*
*/
public final static int SCARD_E_UNEXPECTED = 0x8010001F;
/**
*
*/
public final static int SCARD_E_ICC_INSTALLATION = 0x80100020;
/**
*
*/
public final static int SCARD_E_ICC_CREATEORDER = 0x80100021;
/**
*
*/
public final static int SCARD_E_UNSUPPORTED_FEATURE = 0x80100022;
/**
*
*/
public final static int SCARD_E_DIR_NOT_FOUND = 0x80100023;
/**
*
*/
public final static int SCARD_E_FILE_NOT_FOUND = 0x80100024;
/**
*
*/
public final static int SCARD_E_NO_DIR = 0x80100025;
/**
*
*/
public final static int SCARD_E_NO_FILE = 0x80100026;
/**
*
*/
public final static int SCARD_E_NO_ACCESS = 0x80100027;
/**
*
*/
public final static int SCARD_E_WRITE_TOO_MANY = 0x80100028;
/**
*
*/
public final static int SCARD_E_BAD_SEEK = 0x80100029;
/**
*
*/
public final static int SCARD_E_INVALID_CHV = 0x8010002A;
/**
*
*/
public final static int SCARD_E_UNKNOWN_RES_MNG = 0x8010002B;
/**
*
*/
public final static int SCARD_E_NO_SUCH_CERTIFICATE = 0x8010002C;
/**
*
*/
public final static int SCARD_E_CERTIFICATE_UNAVAILABLE = 0x8010002D;
/**
*
*/
public final static int SCARD_E_NO_READERS_AVAILABLE = 0x8010002E;
/**
*
*/
public final static int SCARD_E_COMM_DATA_LOST = 0x8010002F;
/**
*
*/
public final static int SCARD_E_NO_KEY_CONTAINER = 0x80100030;
/**
*
*/
public final static int SCARD_E_SERVER_TOO_BUSY = 0x80100031;
/**
*
*/
public final static int SCARD_W_UNSUPPORTED_CARD = 0x80100065;
/**
*
*/
public final static int SCARD_W_UNRESPONSIVE_CARD = 0x80100066;
/**
*
*/
public final static int SCARD_W_UNPOWERED_CARD = 0x80100067;
/**
*
*/
public final static int SCARD_W_RESET_CARD = 0x80100068;
/**
*
*/
public final static int SCARD_W_REMOVED_CARD = 0x80100069;
/**
*
*/
public final static int SCARD_W_SECURITY_VIOLATION = 0x8010006A;
/**
*
*/
public final static int SCARD_W_WRONG_CHV = 0x8010006B;
/**
*
*/
public final static int SCARD_W_CHV_BLOCKED = 0x8010006C;
/**
*
*/
public final static int SCARD_W_EOF = 0x8010006D;
/**
*
*/
public final static int SCARD_W_CANCELLED_BY_USER = 0x8010006E;
/**
*
*/
public final static int SCARD_W_CARD_NOT_AUTHENTICATED = 0x8010006F;
// std. Windows invalid handle return code, used instead of SCARD code
/**
*
*/
public final static int WINDOWS_ERROR_INVALID_HANDLE = 6;
/**
*
*/
public final static int WINDOWS_ERROR_INVALID_PARAMETER = 87;
/**
*
*/
public final static int ERROR_IO_DEVICE = 0x0000045D;
// end std. Windows
/**
* Returns a translation of a PCSC exception integer code to PCSC exception
* string.
* @param code the PCSC exception integer code.
* @return A translation of a PCSC exception integer code to PCSC exception
* string.
*/
public static String toErrorString(int code) {
switch (code)
{
case PCSCErrorValues.SCARD_S_SUCCESS:
return "SCARD_S_SUCCESS";
case PCSCErrorValues.SCARD_F_INTERNAL_ERROR:
return "SCARD_F_INTERNAL_ERROR";
case PCSCErrorValues.SCARD_E_CANCELLED:
return "SCARD_E_CANCELLED";
case PCSCErrorValues.SCARD_E_INVALID_HANDLE:
return "SCARD_E_INVALID_HANDLE";
case PCSCErrorValues.SCARD_E_INVALID_PARAMETER:
return "SCARD_E_INVALID_PARAMETER";
case PCSCErrorValues.SCARD_E_INVALID_TARGET:
return "SCARD_E_INVALID_TARGET";
case PCSCErrorValues.SCARD_E_NO_MEMORY:
return "SCARD_E_NO_MEMORY";
case PCSCErrorValues.SCARD_F_WAITED_TOO_LONG:
return "SCARD_F_WAITED_TOO_LONG";
case PCSCErrorValues.SCARD_E_INSUFFICIENT_BUFFER:
return "SCARD_E_INSUFFICIENT_BUFFER";
case PCSCErrorValues.SCARD_E_UNKNOWN_READER:
return "SCARD_E_UNKNOWN_READER";
case PCSCErrorValues.SCARD_E_TIMEOUT:
return "SCARD_E_TIMEOUT";
case PCSCErrorValues.SCARD_E_SHARING_VIOLATION:
return "SCARD_E_SHARING_VIOLATION";
case PCSCErrorValues.SCARD_E_NO_SMARTCARD:
return "SCARD_E_NO_SMARTCARD";
case PCSCErrorValues.SCARD_E_UNKNOWN_CARD:
return "SCARD_E_UNKNOWN_CARD";
case PCSCErrorValues.SCARD_E_CANT_DISPOSE:
return "SCARD_E_CANT_DISPOSE";
case PCSCErrorValues.SCARD_E_PROTO_MISMATCH:
return "SCARD_E_PROTO_MISMATCH";
case PCSCErrorValues.SCARD_E_NOT_READY:
return "SCARD_E_NOT_READY";
case PCSCErrorValues.SCARD_E_INVALID_VALUE:
return "SCARD_E_INVALID_VALUE";
case PCSCErrorValues.SCARD_E_SYSTEM_CANCELLED:
return "SCARD_E_SYSTEM_CANCELLED";
case PCSCErrorValues.SCARD_F_COMM_ERROR:
return "SCARD_F_COMM_ERROR";
case PCSCErrorValues.SCARD_F_UNKNOWN_ERROR:
return "SCARD_F_UNKNOWN_ERROR";
case PCSCErrorValues.SCARD_E_INVALID_ATR:
return "SCARD_E_INVALID_ATR";
case PCSCErrorValues.SCARD_E_NOT_TRANSACTED:
return "SCARD_E_NOT_TRANSACTED";
case PCSCErrorValues.SCARD_E_READER_UNAVAILABLE:
return "SCARD_E_READER_UNAVAILABLE";
case PCSCErrorValues.SCARD_P_SHUTDOWN:
return "SCARD_P_SHUTDOWN";
case PCSCErrorValues.SCARD_E_PCI_TOO_SMALL:
return "SCARD_E_PCI_TOO_SMALL";
case PCSCErrorValues.SCARD_E_READER_UNSUPPORTED:
return "SCARD_E_READER_UNSUPPORTED";
case PCSCErrorValues.SCARD_E_DUPLICATE_READER:
return "SCARD_E_DUPLICATE_READER";
case PCSCErrorValues.SCARD_E_CARD_UNSUPPORTED:
return "SCARD_E_CARD_UNSUPPORTED";
case PCSCErrorValues.SCARD_E_NO_SERVICE:
return "SCARD_E_NO_SERVICE";
case PCSCErrorValues.SCARD_E_SERVICE_STOPPED:
return "SCARD_E_SERVICE_STOPPED";
case PCSCErrorValues.SCARD_E_UNEXPECTED:
if(System.getProperty("os.name").contains("Windows"))
return "SCARD_E_UNEXPECTED";
else
return "SCARD_E_UNSUPPORTED_FEATURE";
case PCSCErrorValues.SCARD_E_ICC_INSTALLATION:
return "SCARD_E_ICC_INSTALLATION";
case PCSCErrorValues.SCARD_E_ICC_CREATEORDER:
return "SCARD_E_ICC_CREATEORDER";
case PCSCErrorValues.SCARD_E_UNSUPPORTED_FEATURE:
return "SCARD_E_UNSUPPORTED_FEATURE";
case PCSCErrorValues.SCARD_E_DIR_NOT_FOUND:
return "SCARD_E_DIR_NOT_FOUND";
case PCSCErrorValues.SCARD_E_FILE_NOT_FOUND:
return "SCARD_E_FILE_NOT_FOUND";
case PCSCErrorValues.SCARD_E_NO_DIR:
return "SCARD_E_NO_DIR";
case PCSCErrorValues.SCARD_E_NO_FILE:
return "SCARD_E_NO_FILE";
case PCSCErrorValues.SCARD_E_NO_ACCESS:
return "SCARD_E_NO_ACCESS";
case PCSCErrorValues.SCARD_E_WRITE_TOO_MANY:
return "SCARD_E_WRITE_TOO_MANY";
case PCSCErrorValues.SCARD_E_BAD_SEEK:
return "SCARD_E_BAD_SEEK";
case PCSCErrorValues.SCARD_E_INVALID_CHV:
return "SCARD_E_INVALID_CHV";
case PCSCErrorValues.SCARD_E_UNKNOWN_RES_MNG:
return "SCARD_E_UNKNOWN_RES_MNG";
case PCSCErrorValues.SCARD_E_NO_SUCH_CERTIFICATE:
return "SCARD_E_NO_SUCH_CERTIFICATE";
case PCSCErrorValues.SCARD_E_CERTIFICATE_UNAVAILABLE:
return "SCARD_E_CERTIFICATE_UNAVAILABLE";
case PCSCErrorValues.SCARD_E_NO_READERS_AVAILABLE:
return "SCARD_E_NO_READERS_AVAILABLE";
case PCSCErrorValues.SCARD_E_COMM_DATA_LOST:
return "SCARD_E_COMM_DATA_LOST";
case PCSCErrorValues.SCARD_E_NO_KEY_CONTAINER:
return "SCARD_E_NO_KEY_CONTAINER";
case PCSCErrorValues.SCARD_E_SERVER_TOO_BUSY:
return "SCARD_E_SERVER_TOO_BUSY";
case PCSCErrorValues.SCARD_W_UNSUPPORTED_CARD:
return "SCARD_W_UNSUPPORTED_CARD";
case PCSCErrorValues.SCARD_W_UNRESPONSIVE_CARD:
return "SCARD_W_UNRESPONSIVE_CARD";
case PCSCErrorValues.SCARD_W_UNPOWERED_CARD:
return "SCARD_W_UNPOWERED_CARD";
case PCSCErrorValues.SCARD_W_RESET_CARD:
return "SCARD_W_RESET_CARD";
case PCSCErrorValues.SCARD_W_REMOVED_CARD:
return "SCARD_W_REMOVED_CARD";
case PCSCErrorValues.SCARD_W_SECURITY_VIOLATION:
return "SCARD_W_SECURITY_VIOLATION";
case PCSCErrorValues.SCARD_W_WRONG_CHV:
return "SCARD_W_WRONG_CHV";
case PCSCErrorValues.SCARD_W_CHV_BLOCKED:
return "SCARD_W_CHV_BLOCKED";
case PCSCErrorValues.SCARD_W_EOF:
return "SCARD_W_EOF";
case PCSCErrorValues.SCARD_W_CANCELLED_BY_USER:
return "SCARD_W_CANCELLED_BY_USER";
case PCSCErrorValues.SCARD_W_CARD_NOT_AUTHENTICATED:
return "SCARD_W_CARD_NOT_AUTHENTICATED";
case PCSCErrorValues.WINDOWS_ERROR_INVALID_HANDLE:
return "WINDOWS_ERROR_INVALID_HANDLE";
case PCSCErrorValues.WINDOWS_ERROR_INVALID_PARAMETER:
return "WINDOWS_ERROR_INVALID_PARAMETER";
case PCSCErrorValues.ERROR_IO_DEVICE:
return "ERROR_IO_DEVICE";
default:
return "SCARD_F_UNKNOWN_ERROR Precise unknown error code = 0x" +
Integer.toHexString(code);
}
}
/**
* Returns the detail of a PCSC exception from a PCSC code.
* @param iCode the PCSC code.
* @return the detail of the PCSC exception defined by the PCSC code.
*/
public static String getPcscExceptionDetail(int iCode)
{
return getPcscExceptionDetail(toErrorString(iCode));
}
/**
* Returns the detail of a PCSC exception from a PCSC string code.
* @param sCode the PCSC string code.
* @return the detail of the PCSC exception defined by the PCSC string code.
*/
public static String getPcscExceptionDetail(String sCode)
{
if(sCode.equals("SCARD_S_SUCCESS"))
return "Smart card operation succeeded.";
if(sCode.equals("SCARD_F_INTERNAL_ERROR"))
return "An internal consistency check failed.";
if(sCode.equals("SCARD_E_CANCELLED"))
return "The action was cancelled by a SCardCancel request.";
if(sCode.equals("SCARD_E_INVALID_HANDLE"))
return "The supplied handle was invalid.";
if(sCode.equals("SCARD_E_INVALID_PARAMETER"))
return "One or more of the supplied parameters could not be properly"
+ " interpreted.";
if(sCode.equals("SCARD_E_INVALID_TARGET"))
return "Registry startup information is missing or invalid.";
if(sCode.equals("SCARD_E_NO_MEMORY"))
return "Not enough memory available to complete this command.";
if(sCode.equals("SCARD_F_WAITED_TOO_LONG"))
return "An internal consistency timer has expired.";
if(sCode.equals("SCARD_E_INSUFFICIENT_BUFFER"))
return "The data buffer to receive returned data is too small for "
+ "the returned data.";
if(sCode.equals("SCARD_E_UNKNOWN_READER"))
return "The specified reader name is not recognized.";
if(sCode.equals("SCARD_E_TIMEOUT"))
return "The user-specified timeout value has expired.";
if(sCode.equals("SCARD_E_SHARING_VIOLATION"))
return "The smart card cannot be accessed because of other "
+ "connections outstanding.";
if(sCode.equals("SCARD_E_NO_SMARTCARD"))
return "The operation requires a smart card, but no smart card is "
+ "currently in the device.";
if(sCode.equals("SCARD_E_UNKNOWN_CARD"))
return "The specified smart card name is not recognized.";
if(sCode.equals("SCARD_E_CANT_DISPOSE"))
return "The system could not dispose of the media in the requested "
+ "manner.";
if(sCode.equals("SCARD_E_PROTO_MISMATCH"))
return "The requested protocols are incompatible with the protocol "
+ "currently in use with the smart card.";
if(sCode.equals("SCARD_E_NOT_READY"))
return "The reader or smart card is not ready to accept commands.";
if(sCode.equals("SCARD_E_INVALID_VALUE"))
return "One or more of the supplied parameters values could not "
+ "be properly interpreted.";
if(sCode.equals("SCARD_E_SYSTEM_CANCELLED"))
return "The action was cancelled by the system, presumably to log "
+ "off or shut down.";
if(sCode.equals("SCARD_F_COMM_ERROR"))
return "An internal communications error has been detected.";
if(sCode.equals("SCARD_F_UNKNOWN_ERROR"))
return "An internal error has been detected, but the source is "
+ "unknown.";
if(sCode.equals("SCARD_E_INVALID_ATR"))
return "An ATR obtained from the registry is not a valid ATR string.";
if(sCode.equals("SCARD_E_NOT_TRANSACTED"))
return "An attempt was made to end a non-existent transaction.";
if(sCode.equals("SCARD_E_READER_UNAVAILABLE"))
return "The specified reader is not currently available for use.";
if(sCode.equals("SCARD_P_SHUTDOWN"))
return "The operation has been aborted to allow the server "
+ "application to exit.";
if(sCode.equals("SCARD_E_PCI_TOO_SMALL"))
return "The PCI Receive buffer was too small.";
if(sCode.equals("SCARD_E_READER_UNSUPPORTED"))
return "The reader driver does not meet minimal requirements for "
+ "support.";
if(sCode.equals("SCARD_E_DUPLICATE_READER"))
return "The reader driver did not produce a unique reader name.";
if(sCode.equals("SCARD_E_CARD_UNSUPPORTED"))
return "The smart card does not meet minimal requirements for "
+ "support.";
if(sCode.equals("SCARD_E_NO_SERVICE"))
return "The Smart Card Resource Manager is not running.";
if(sCode.equals("SCARD_E_SERVICE_STOPPED"))
return "The Smart Card Resource Manager has shut down.";
if(sCode.equals("SCARD_E_UNEXPECTED"))
if(System.getProperty("os.name").contains("Windows"))
return "An unexpected card error has occurred.";
else
return "This smart card does not support the requested feature.";
if(sCode.equals("SCARD_E_ICC_INSTALLATION"))
return "No primary provider can be found for the smart card.";
if(sCode.equals("SCARD_E_ICC_CREATEORDER"))
return "The requested order of object creation is not supported.";
if(sCode.equals("SCARD_E_UNSUPPORTED_FEATURE"))
return "This smart card does not support the requested feature.";
if(sCode.equals("SCARD_E_DIR_NOT_FOUND"))
return "The identified directory does not exist in the smart card.";
if(sCode.equals("SCARD_E_FILE_NOT_FOUND"))
return "The identified file does not exist in the smart card.";
if(sCode.equals("SCARD_E_NO_DIR"))
return "The supplied path does not represent a smart card directory.";
if(sCode.equals("SCARD_E_NO_FILE"))
return "The supplied path does not represent a smart card file.";
if(sCode.equals("SCARD_E_NO_ACCESS"))
return "Access is denied to this file.";
if(sCode.equals("SCARD_E_WRITE_TOO_MANY"))
return "The smart card does not have enough memory to store the "
+ "information.";
if(sCode.equals("SCARD_E_BAD_SEEK"))
return "There was an error trying to set the smart card file "
+ "object pointer.";
if(sCode.equals("SCARD_E_INVALID_CHV"))
return "The supplied PIN is incorrect.";
if(sCode.equals("SCARD_E_UNKNOWN_RES_MNG"))
return "An unrecognized error code was returned from a layered "
+ "component.";
if(sCode.equals("SCARD_E_NO_SUCH_CERTIFICATE"))
return "The requested certificate does not exist.";
if(sCode.equals("SCARD_E_CERTIFICATE_UNAVAILABLE"))
return "The requested certificate could not be obtained.";
if(sCode.equals("SCARD_E_NO_READERS_AVAILABLE"))
return "Cannot find a smart card reader.";
if(sCode.equals("SCARD_E_COMM_DATA_LOST"))
return "A communications error with the smart card has been "
+ "detected. Retry the operation.";
if(sCode.equals("SCARD_E_NO_KEY_CONTAINER"))
return "The requested key container does not exist on the smart "
+ "card.";
if(sCode.equals("SCARD_E_SERVER_TOO_BUSY"))
return "The Smart Card Resource Manager is too busy to complete "
+ "this operation.";
if(sCode.equals("SCARD_W_UNSUPPORTED_CARD"))
return "The reader cannot communicate with the card, due to ATR "
+ "string configuration conflicts.";
if(sCode.equals("SCARD_W_UNRESPONSIVE_CARD"))
return "The smart card is not responding to a reset.";
if(sCode.equals("SCARD_W_UNPOWERED_CARD"))
return "Power has been removed from the smart card, so that further "
+ "communication is not possible.";
if(sCode.equals("SCARD_W_RESET_CARD"))
return "The smart card has been reset, so any shared state "
+ "information is invalid.";
if(sCode.equals("SCARD_W_REMOVED_CARD"))
return "The smart card has been removed, so further communication "
+ "is not possible.";
if(sCode.equals("SCARD_W_SECURITY_VIOLATION"))
return "Access was denied because of a security violation.";
if(sCode.equals("SCARD_W_WRONG_CHV"))
return "The card cannot be accessed because the wrong PIN was "
+ "presented.";
if(sCode.equals("SCARD_W_CHV_BLOCKED"))
return "The card cannot be accessed because the maximum number of "
+ "PIN entry attempts has been reached.";
if(sCode.equals("SCARD_W_EOF"))
return "The end of the smart card file has been reached.";
if(sCode.equals("SCARD_W_CANCELLED_BY_USER"))
return "The action was cancelled by the user.";
if(sCode.equals("SCARD_W_CARD_NOT_AUTHENTICATED"))
return "No PIN was presented to the smart card.";
if(sCode.equals("WINDOWS_ERROR_INVALID_HANDLE"))
return "Windows error: invalid handle value.";
if(sCode.equals("WINDOWS_ERROR_INVALID_PARAMETER"))
return "Windows error: invalid parameter value.";
if(sCode.equals("ERROR_IO_DEVICE"))
return "An input or output communication to the device failed.";
return "An internal error has been detected, but the source is "
+ "unknown.";
}
/**
* Returns the value of a PCSC exception from a PCSC string code.
* @param sCode the PCSC string code.
* @return the value of the PCSC exception defined by the PCSC string code.
*/
public static int getPcscExceptionValue(String sCode)
{
if(sCode.equals("SCARD_S_SUCCESS"))
return SCARD_S_SUCCESS;
if(sCode.equals("SCARD_F_INTERNAL_ERROR"))
return SCARD_F_INTERNAL_ERROR;
if(sCode.equals("SCARD_E_CANCELLED"))
return SCARD_E_CANCELLED;
if(sCode.equals("SCARD_E_INVALID_HANDLE"))
return SCARD_E_INVALID_HANDLE;
if(sCode.equals("SCARD_E_INVALID_PARAMETER"))
return SCARD_E_INVALID_PARAMETER;
if(sCode.equals("SCARD_E_INVALID_TARGET"))
return SCARD_E_INVALID_TARGET;
if(sCode.equals("SCARD_E_NO_MEMORY"))
return SCARD_E_NO_MEMORY;
if(sCode.equals("SCARD_F_WAITED_TOO_LONG"))
return SCARD_F_WAITED_TOO_LONG;
if(sCode.equals("SCARD_E_INSUFFICIENT_BUFFER"))
return SCARD_E_INSUFFICIENT_BUFFER;
if(sCode.equals("SCARD_E_UNKNOWN_READER"))
return SCARD_E_UNKNOWN_READER;
if(sCode.equals("SCARD_E_TIMEOUT"))
return SCARD_E_TIMEOUT;
if(sCode.equals("SCARD_E_SHARING_VIOLATION"))
return SCARD_E_SHARING_VIOLATION;
if(sCode.equals("SCARD_E_NO_SMARTCARD"))
return SCARD_E_NO_SMARTCARD;
if(sCode.equals("SCARD_E_UNKNOWN_CARD"))
return SCARD_E_UNKNOWN_CARD;
if(sCode.equals("SCARD_E_CANT_DISPOSE"))
return SCARD_E_CANT_DISPOSE;
if(sCode.equals("SCARD_E_PROTO_MISMATCH"))
return SCARD_E_PROTO_MISMATCH;
if(sCode.equals("SCARD_E_NOT_READY"))
return SCARD_E_NOT_READY;
if(sCode.equals("SCARD_E_INVALID_VALUE"))
return SCARD_E_INVALID_VALUE;
if(sCode.equals("SCARD_E_SYSTEM_CANCELLED"))
return SCARD_E_SYSTEM_CANCELLED;
if(sCode.equals("SCARD_F_COMM_ERROR"))
return SCARD_F_COMM_ERROR;
if(sCode.equals("SCARD_F_UNKNOWN_ERROR"))
return SCARD_F_UNKNOWN_ERROR;
if(sCode.equals("SCARD_E_INVALID_ATR"))
return SCARD_E_INVALID_ATR;
if(sCode.equals("SCARD_E_NOT_TRANSACTED"))
return SCARD_E_NOT_TRANSACTED;
if(sCode.equals("SCARD_E_READER_UNAVAILABLE"))
return SCARD_E_READER_UNAVAILABLE;
if(sCode.equals("SCARD_P_SHUTDOWN"))
return SCARD_P_SHUTDOWN;
if(sCode.equals("SCARD_E_PCI_TOO_SMALL"))
return SCARD_E_PCI_TOO_SMALL;
if(sCode.equals("SCARD_E_READER_UNSUPPORTED"))
return SCARD_E_READER_UNSUPPORTED;
if(sCode.equals("SCARD_E_DUPLICATE_READER"))
return SCARD_E_DUPLICATE_READER;
if(sCode.equals("SCARD_E_CARD_UNSUPPORTED"))
return SCARD_E_CARD_UNSUPPORTED;
if(sCode.equals("SCARD_E_NO_SERVICE"))
return SCARD_E_NO_SERVICE;
if(sCode.equals("SCARD_E_SERVICE_STOPPED"))
return SCARD_E_SERVICE_STOPPED;
if(sCode.equals("SCARD_E_UNEXPECTED"))
return SCARD_E_UNEXPECTED;
if(sCode.equals("SCARD_E_ICC_INSTALLATION"))
return SCARD_E_ICC_INSTALLATION;
if(sCode.equals("SCARD_E_ICC_CREATEORDER"))
return SCARD_E_ICC_CREATEORDER;
if(sCode.equals("SCARD_E_UNSUPPORTED_FEATURE"))
return SCARD_E_UNSUPPORTED_FEATURE;
if(sCode.equals("SCARD_E_DIR_NOT_FOUND"))
return SCARD_E_DIR_NOT_FOUND;
if(sCode.equals("SCARD_E_FILE_NOT_FOUND"))
return SCARD_E_FILE_NOT_FOUND;
if(sCode.equals("SCARD_E_NO_DIR"))
return SCARD_E_NO_DIR;
if(sCode.equals("SCARD_E_NO_FILE"))
return SCARD_E_NO_FILE;
if(sCode.equals("SCARD_E_NO_ACCESS"))
return SCARD_E_NO_ACCESS;
if(sCode.equals("SCARD_E_WRITE_TOO_MANY"))
return SCARD_E_WRITE_TOO_MANY;
if(sCode.equals("SCARD_E_BAD_SEEK"))
return SCARD_E_BAD_SEEK;
if(sCode.equals("SCARD_E_INVALID_CHV"))
return SCARD_E_INVALID_CHV;
if(sCode.equals("SCARD_E_UNKNOWN_RES_MNG"))
return SCARD_E_UNKNOWN_RES_MNG;
if(sCode.equals("SCARD_E_NO_SUCH_CERTIFICATE"))
return SCARD_E_NO_SUCH_CERTIFICATE;
if(sCode.equals("SCARD_E_CERTIFICATE_UNAVAILABLE"))
return SCARD_E_CERTIFICATE_UNAVAILABLE;
if(sCode.equals("SCARD_E_NO_READERS_AVAILABLE"))
return SCARD_E_NO_READERS_AVAILABLE;
if(sCode.equals("SCARD_E_COMM_DATA_LOST"))
return SCARD_E_COMM_DATA_LOST;
if(sCode.equals("SCARD_E_NO_KEY_CONTAINER"))
return SCARD_E_NO_KEY_CONTAINER;
if(sCode.equals("SCARD_E_SERVER_TOO_BUSY"))
return SCARD_E_SERVER_TOO_BUSY;
if(sCode.equals("SCARD_W_UNSUPPORTED_CARD"))
return SCARD_W_UNSUPPORTED_CARD;
if(sCode.equals("SCARD_W_UNRESPONSIVE_CARD"))
return SCARD_W_UNRESPONSIVE_CARD;
if(sCode.equals("SCARD_W_UNPOWERED_CARD"))
return SCARD_W_UNPOWERED_CARD;
if(sCode.equals("SCARD_W_RESET_CARD"))
return SCARD_W_RESET_CARD;
if(sCode.equals("SCARD_W_REMOVED_CARD"))
return SCARD_W_REMOVED_CARD;
if(sCode.equals("SCARD_W_SECURITY_VIOLATION"))
return SCARD_W_SECURITY_VIOLATION;
if(sCode.equals("SCARD_W_WRONG_CHV"))
return SCARD_W_WRONG_CHV;
if(sCode.equals("SCARD_W_CHV_BLOCKED"))
return SCARD_W_CHV_BLOCKED;
if(sCode.equals("SCARD_W_EOF"))
return SCARD_W_EOF;
if(sCode.equals("SCARD_W_CANCELLED_BY_USER"))
return SCARD_W_CANCELLED_BY_USER;
if(sCode.equals("SCARD_W_CARD_NOT_AUTHENTICATED"))
return SCARD_W_CARD_NOT_AUTHENTICATED;
if(sCode.equals("WINDOWS_ERROR_INVALID_HANDLE"))
return WINDOWS_ERROR_INVALID_HANDLE;
if(sCode.equals("WINDOWS_ERROR_INVALID_PARAMETER"))
return WINDOWS_ERROR_INVALID_PARAMETER;
if(sCode.equals("ERROR_IO_DEVICE"))
return ERROR_IO_DEVICE;
return SCARD_F_UNKNOWN_ERROR;
}
}