// Path: src/test/java/org/unitedid/yhsm/SetupCommon.java
// public class SetupCommon {
//     public YubiHSM hsm;
//     public DeviceHandler deviceHandler;
//     public int keyHandle = 8192;
//     public final String configPassPhrase = "";
//     public final String hsmPassPhrase = "badabada";
//     public final String adminYubikey = "ftftftfteeee";
// 
// 
//     @BeforeTest
//     public void setUp() throws Exception {
//         String deviceName = "/dev/ttyACM0";
//         if (System.getProperty("hsm.test.deviceName") != null) {
//             deviceName = System.getProperty("hsm.test.deviceName");
//         }
//         hsm = new YubiHSM(deviceName);
//         deviceHandler = hsm.getRawDevice();
//     }
// 
//     @AfterTest
//     public void tearDown() throws Exception {
//         hsm = null;
//         deviceHandler = null;
//     }
// 
// }
// 
// Path: src/main/java/org/unitedid/yhsm/internal/Defines.java
// final static public byte YSM_HMAC_SHA1_FINAL = 0x02;
// 
// Path: src/main/java/org/unitedid/yhsm/internal/Defines.java
// final static public byte YSM_HMAC_SHA1_RESET = 0x01;
// 
// Path: src/main/java/org/unitedid/yhsm/internal/Defines.java
// final static public int YSM_SHA1_HASH_SIZE = 20;


import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;
import org.unitedid.yhsm.SetupCommon;
import java.util.Map;
import static org.testng.Assert.assertEquals;
import static org.unitedid.yhsm.internal.Defines.YSM_HMAC_SHA1_FINAL;
import static org.unitedid.yhsm.internal.Defines.YSM_HMAC_SHA1_RESET;
import static org.unitedid.yhsm.internal.Defines.YSM_SHA1_HASH_SIZE;
/*
 * Copyright (c) 2011 - 2013 United ID.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package org.unitedid.yhsm.internal;




public class HMACCmdTest extends SetupCommon {

    private String data = "Sample #2";
    private String expectedHash = "0922d3405faa3d194f82a45830737d5cc6c75d24";
    private String expectedNextHash = "0000000000000000000000000000000000000000";
    private int keyHandle = 12337;

    @BeforeTest
    public void setUp() throws Exception {
        super.setUp();
    }

    @AfterTest
    public void tearDown() throws Exception {
        super.tearDown();
    }

    @Test
    public void testHMACSHA1WithNumericFlags() throws Exception {
// Path: src/test/java/org/unitedid/yhsm/SetupCommon.java
// public class SetupCommon {
//     public YubiHSM hsm;
//     public DeviceHandler deviceHandler;
//     public int keyHandle = 8192;
//     public final String configPassPhrase = "";
//     public final String hsmPassPhrase = "badabada";
//     public final String adminYubikey = "ftftftfteeee";
// 
// 
//     @BeforeTest
//     public void setUp() throws Exception {
//         String deviceName = "/dev/ttyACM0";
//         if (System.getProperty("hsm.test.deviceName") != null) {
//             deviceName = System.getProperty("hsm.test.deviceName");
//         }
//         hsm = new YubiHSM(deviceName);
//         deviceHandler = hsm.getRawDevice();
//     }
// 
//     @AfterTest
//     public void tearDown() throws Exception {
//         hsm = null;
//         deviceHandler = null;
//     }
// 
// }
// 
// Path: src/main/java/org/unitedid/yhsm/internal/Defines.java
// final static public byte YSM_HMAC_SHA1_FINAL = 0x02;
// 
// Path: src/main/java/org/unitedid/yhsm/internal/Defines.java
// final static public byte YSM_HMAC_SHA1_RESET = 0x01;
// 
// Path: src/main/java/org/unitedid/yhsm/internal/Defines.java
// final static public int YSM_SHA1_HASH_SIZE = 20;


// Path: src/test/java/org/unitedid/yhsm/internal/HMACCmdTest.java
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;
import org.unitedid.yhsm.SetupCommon;
import java.util.Map;
import static org.testng.Assert.assertEquals;
import static org.unitedid.yhsm.internal.Defines.YSM_HMAC_SHA1_FINAL;
import static org.unitedid.yhsm.internal.Defines.YSM_HMAC_SHA1_RESET;
import static org.unitedid.yhsm.internal.Defines.YSM_SHA1_HASH_SIZE;

/*
 * Copyright (c) 2011 - 2013 United ID.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package org.unitedid.yhsm.internal;




public class HMACCmdTest extends SetupCommon {

    private String data = "Sample #2";
    private String expectedHash = "0922d3405faa3d194f82a45830737d5cc6c75d24";
    private String expectedNextHash = "0000000000000000000000000000000000000000";
    private int keyHandle = 12337;

    @BeforeTest
    public void setUp() throws Exception {
        super.setUp();
    }

    @AfterTest
    public void tearDown() throws Exception {
        super.tearDown();
    }

    @Test
    public void testHMACSHA1WithNumericFlags() throws Exception {
        byte flags = YSM_HMAC_SHA1_RESET | YSM_HMAC_SHA1_FINAL;