当前位置: 首页>>代码示例>>Java>>正文


Java ISO7816.SW_NO_ERROR属性代码示例

本文整理汇总了Java中javacard.framework.ISO7816.SW_NO_ERROR属性的典型用法代码示例。如果您正苦于以下问题:Java ISO7816.SW_NO_ERROR属性的具体用法?Java ISO7816.SW_NO_ERROR怎么用?Java ISO7816.SW_NO_ERROR使用的例子?那么恭喜您, 这里精选的属性代码示例或许可以为您提供帮助。您也可以进一步了解该属性所在javacard.framework.ISO7816的用法示例。


在下文中一共展示了ISO7816.SW_NO_ERROR属性的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: testAPDU

void testAPDU(CardManager cardMngr, String input, String expectedOutput) {
    try {
        ResponseAPDU response = cardMngr.transmit(new CommandAPDU(hexStringToByteArray(input)));
        if (response.getSW() == (ISO7816.SW_NO_ERROR & 0xffff)) {
            if (!expectedOutput.isEmpty()) {
                byte[] data = response.getData();
                String output = Util.bytesToHex(data);
                assertTrue(expectedOutput.equalsIgnoreCase(output), "Result provided by card mismatch expected");
            }
        }
        else {
            assertTrue(false, String.format("Card failed with 0x%x", response.getSW()));
        }                
    }
    catch (Exception e) {
        e.printStackTrace();
        assertTrue(false, "Card transmit failed with execption");
    }
}
 
开发者ID:OpenCryptoProject,项目名称:JCMathLib,代码行数:19,代码来源:JCMathLibTests.java

示例2: corruptCurve

/**
 * @param keypair
 * @param key
 * @param corruptParams
 * @param corruption
 * @param buffer
 * @param offset
 * @return
 */
public short corruptCurve(KeyPair keypair, byte key, short corruptParams, byte corruption, byte[] buffer, short offset) {
    sw = ISO7816.SW_NO_ERROR;
    if (corruptParams == EC_Consts.PARAMETERS_NONE) {
        return sw;
    }

    //go through param bit by bit, and invalidate all selected params
    short paramMask = EC_Consts.PARAMETER_FP;
    while (paramMask <= EC_Consts.PARAMETER_S) {
        short masked = (short) (paramMask & corruptParams);
        if (masked != 0) {
            short length = exportParameter(keypair, key, masked, buffer, offset);
            length = EC_Consts.corruptParameter(corruption, buffer, offset, length);
            sw = setParameter(keypair, key, masked, buffer, offset, length);
            if (sw != ISO7816.SW_NO_ERROR) break;
        }
        paramMask = (short) (paramMask << 1);
    }
    return sw;
}
 
开发者ID:crocs-muni,项目名称:ECTester,代码行数:29,代码来源:ECKeyGenerator.java

示例3: setExternalCurve

/**
 * @param keypair
 * @param key
 * @param params
 * @param inBuffer
 * @param inOffset
 * @return
 */
public short setExternalCurve(KeyPair keypair, byte key, short params, byte[] inBuffer, short inOffset) {
    sw = ISO7816.SW_NO_ERROR;
    if (params == EC_Consts.PARAMETERS_NONE) {
        return sw;
    }

    short paramMask = EC_Consts.PARAMETER_FP;
    while (paramMask <= EC_Consts.PARAMETER_S) {
        short masked = (short) (paramMask & params);
        if (masked != 0) {
            short paramLength = Util.getShort(inBuffer, inOffset);
            inOffset += 2;
            sw = setParameter(keypair, key, masked, inBuffer, inOffset, paramLength);
            inOffset += paramLength;
            if (sw != ISO7816.SW_NO_ERROR) break;
        }
        paramMask = (short) (paramMask << 1);
    }
    return sw;
}
 
开发者ID:crocs-muni,项目名称:ECTester,代码行数:28,代码来源:ECKeyGenerator.java

示例4: exportParameters

/**
 * Exports selected parameters from a given keyPairs key.
 * Raw parameter data is always prepended by its length as a
 * short value. The order of parameters is the usual one from
 * EC_Consts: field,a,b,g,r,k,w,s.
 *
 * @param keypair keyPair to export from
 * @param key     key to export from (KEY_PUBLIC || KEY_PRIVATE)
 * @param params  params to export (EC_Consts.PARAMETER_* | ...)
 * @param buffer  buffer to export to
 * @param offset  offset to start writing in buffer
 * @return length of data written
 */
public short exportParameters(KeyPair keypair, byte key, short params, byte[] buffer, short offset) {
    sw = ISO7816.SW_NO_ERROR;
    if (params == EC_Consts.PARAMETERS_NONE) {
        return sw;
    }

    short length = 0;
    short paramMask = EC_Consts.PARAMETER_FP;
    while (paramMask <= EC_Consts.PARAMETER_S) {
        short masked = (short) (paramMask & params);
        if (masked != 0) {
            short len = exportParameter(keypair, key, masked, buffer, (short) (offset + 2));
            if (len == 0) {
                paramMask = (short) (paramMask << 1);
                continue;
            }
            Util.setShort(buffer, offset, len);
            offset += len + 2;
            length += len + 2;
        }
        paramMask = (short) (paramMask << 1);
    }
    return length;
}
 
开发者ID:crocs-muni,项目名称:ECTester,代码行数:37,代码来源:ECKeyGenerator.java

示例5: testBOTH

/**
 * @param privatePair  KeyPair from which the private key is used
 * @param publicPair   KeyPair from which the public key is used
 * @param pubkeyBuffer buffer to be used for the public key
 * @param pubkeyOffset offset into pubkeyBuffer that can be used for the public key
 * @param outputBuffer buffer to be used for the secret output
 * @param outputOffset offset into the outputBuffer
 * @param corruption   (EC_Consts.CORRUPTION_* | ...)
 * @return
 */
public short testBOTH(KeyPair privatePair, KeyPair publicPair, byte[] pubkeyBuffer, short pubkeyOffset, byte[] outputBuffer, short outputOffset, short corruption) {
    short ecdhLength = testECDH(privatePair, publicPair, pubkeyBuffer, pubkeyOffset, outputBuffer, outputOffset, corruption);
    if (sw != ISO7816.SW_NO_ERROR) {
        return ecdhLength;
    }
    short ecdhcLength = testECDHC(privatePair, publicPair, pubkeyBuffer, pubkeyOffset, outputBuffer, (short) (outputOffset + ecdhLength), corruption);
    short length = (short) (ecdhLength + ecdhcLength);
    if (sw != ISO7816.SW_NO_ERROR) {
        return length;
    }
    if (javacard.framework.Util.arrayCompare(outputBuffer, outputOffset, outputBuffer, (short) (outputOffset + ecdhLength), ecdhLength) != 0) {
        sw = ECTesterApplet.SW_DH_DHC_MISMATCH;
    }
    return length;
}
 
开发者ID:crocs-muni,项目名称:ECTester,代码行数:25,代码来源:ECKeyTester.java

示例6: compare

public boolean compare(ResponseAPDU response) {
    boolean bResult = false;
    if (response.getSW() == (ISO7816.SW_NO_ERROR & 0xffff)) {
        bResult = Arrays.equals(m_expected.getEncoded(), response.getData());
    } else {
        bResult = false;
        System.out.println(String.format("fail (0x%x)", response.getSW()));
    }
    return bResult;
}
 
开发者ID:OpenCryptoProject,项目名称:JCMathLib,代码行数:10,代码来源:TestClient.java

示例7: verifyAndLogResponse

static boolean verifyAndLogResponse(String operationName, ResponseAPDU response, Long lastTransmitTime, int expected, FileOutputStream perfFile, ArrayList<String> failedTestsList) throws IOException {
    boolean bResult = false;
    if (response.getSW () == (ISO7816.SW_NO_ERROR & 0xffff)) {
        bResult = Util.BytesToInt(response.getData()) == expected;
    }
    else {
        System.out.println(String.format("fail (0x%x)", response.getSW()));
    }
    logResponse(operationName, bResult, lastTransmitTime, perfFile, failedTestsList);
    return bResult;
}
 
开发者ID:OpenCryptoProject,项目名称:JCMathLib,代码行数:11,代码来源:TestClient.java

示例8: checkSW

private static boolean checkSW(ResponseAPDU response) {
    if (response.getSW() != (ISO7816.SW_NO_ERROR & 0xffff)) {
        System.err.printf("Received error status: %02X.\n",
                response.getSW());
        return false;
    }
    return true;
}
 
开发者ID:OpenCryptoProject,项目名称:JCMathLib,代码行数:8,代码来源:Util.java

示例9: connectToAllCardsByTerminalFactory

private static void connectToAllCardsByTerminalFactory(TerminalFactory factory, byte[] appAID, ArrayList<CardChannel> cardsList) throws CardException {
    ArrayList<CardTerminal> terminals = new ArrayList<>();

    Card card = null;
    try {
        for (CardTerminal t : factory.terminals().list()) {
            terminals.add(t);
            if (t.isCardPresent()) {
                System.out.print("Connecting...");
                card = t.connect("*"); // Connect with the card

                System.out.println(" Done.");

                System.out.print("Establishing channel...");
                CardChannel channel = card.getBasicChannel();

                System.out.println(" Done.");

                // Select applet (mpcapplet)
                System.out.println("Smartcard: Selecting applet...");
                CommandAPDU cmd = new CommandAPDU(appAID);
                ResponseAPDU response = transmit(channel, cmd);

                if (response.getSW() == (ISO7816.SW_NO_ERROR & 0xffff)) {
                    cardsList.add(channel);
                }
            }
        }
    } catch (Exception e) {
        System.out.println("Failed.");
    }

    System.out.println("MPC cards found: " + cardsList.size());
}
 
开发者ID:OpenCryptoProject,项目名称:Myst,代码行数:34,代码来源:CardManagement.java

示例10: checkSW

public static boolean checkSW(ResponseAPDU response) {
    if (response.getSW() != (ISO7816.SW_NO_ERROR & 0xffff)) {
        System.err.printf("Received error status: %02X.\n",
                response.getSW());
        return false;
    }
    return true;
}
 
开发者ID:OpenCryptoProject,项目名称:Myst,代码行数:8,代码来源:CardManagement.java

示例11: getSWString

public static String getSWString(short sw) {
    if (sw == ISO7816.SW_NO_ERROR) {
        return "OK   (0x9000)";
    } else {
        String str = getSW(sw);
        return String.format("fail (%s, 0x%04x)", str, sw);
    }
}
 
开发者ID:crocs-muni,项目名称:ECTester,代码行数:8,代码来源:Util.java

示例12: setCurve

/**
 *
 * @param keypair
 * @param key
 * @param curve
 * @param params
 * @param buffer
 * @param offset
 * @return
 */
public short setCurve(KeyPair keypair, byte key, byte curve, short params, byte[] buffer, short offset) {
    byte alg = EC_Consts.getCurveType(curve);
    sw = ISO7816.SW_NO_ERROR;

    if (params == EC_Consts.PARAMETERS_NONE) {
        return sw;
    }

    short length;
    //handle fp and f2m differently, as a FP KeyPair doesnt contain a F2M field and vice versa.
    if (alg == KeyPair.ALG_EC_FP && (params & EC_Consts.PARAMETER_FP) != 0) {
        length = EC_Consts.getCurveParameter(curve, EC_Consts.PARAMETER_FP, buffer, offset);
        sw = setParameter(keypair, key, EC_Consts.PARAMETER_FP, buffer, offset, length);
    } else if (alg == KeyPair.ALG_EC_F2M && (params & EC_Consts.PARAMETER_F2M) != 0) {
        length = EC_Consts.getCurveParameter(curve, EC_Consts.PARAMETER_F2M, buffer, offset);
        sw = setParameter(keypair, key, EC_Consts.PARAMETER_F2M, buffer, offset, length);
    }
    if (sw != ISO7816.SW_NO_ERROR) return sw;

    //go through all params
    short paramMask = EC_Consts.PARAMETER_A;
    while (paramMask <= EC_Consts.PARAMETER_S) {
        short masked = (short) (paramMask & params);
        if (masked != 0) {
            length = EC_Consts.getCurveParameter(curve, masked, buffer, offset);
            sw = setParameter(keypair, key, masked, buffer, offset, length);
            if (sw != ISO7816.SW_NO_ERROR) break;
        }
        paramMask = (short) (paramMask << 1);
    }
    return sw;
}
 
开发者ID:crocs-muni,项目名称:ECTester,代码行数:42,代码来源:ECKeyGenerator.java

示例13: allocateECDH

public short allocateECDH(byte algorithm) {
    sw = ISO7816.SW_NO_ERROR;
    try {
        ecdhKeyAgreement = KeyAgreement.getInstance(algorithm, false);
    } catch (CardRuntimeException ce) {
        sw = ce.getReason();
    }
    return sw;
}
 
开发者ID:crocs-muni,项目名称:ECTester,代码行数:9,代码来源:ECKeyTester.java

示例14: allocateECDHC

public short allocateECDHC(byte algorithm) {
    sw = ISO7816.SW_NO_ERROR;
    try {
        ecdhcKeyAgreement = KeyAgreement.getInstance(algorithm, false);
    } catch (CardRuntimeException ce) {
        sw = ce.getReason();
    }
    return sw;
}
 
开发者ID:crocs-muni,项目名称:ECTester,代码行数:9,代码来源:ECKeyTester.java

示例15: allocateECDSA

public short allocateECDSA() {
    sw = ISO7816.SW_NO_ERROR;
    try {
        ecdsaSignature = Signature.getInstance(Signature.ALG_ECDSA_SHA, false);
    } catch (CardRuntimeException ce) {
        sw = ce.getReason();
    }
    return sw;
}
 
开发者ID:crocs-muni,项目名称:ECTester,代码行数:9,代码来源:ECKeyTester.java


注:本文中的javacard.framework.ISO7816.SW_NO_ERROR属性示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。