/*
* 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;
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.testng.Assert.assertNotSame;
import static org.unitedid.yhsm.internal.Defines.YSM_DATA_BUF_SIZE;
public class BufferCmdTest extends SetupCommon {
@BeforeTest
public void setUp() throws Exception {
super.setUp();
}
@AfterTest
public void tearDown() throws Exception {
super.tearDown();
}
@Test
public void testLoadData() throws YubiHSMErrorException {
assertEquals(BufferCmd.loadData(deviceHandler, "12345", 0), 5);
assertEquals(BufferCmd.loadData(deviceHandler, "12", 5), 7);
assertEquals(BufferCmd.loadData(deviceHandler, "12", 0), 2);
}
@Test
public void testRandom() throws YubiHSMCommandFailedException, YubiHSMErrorException, YubiHSMInputException {
String nonce = "112233445566";
hsm.loadRandomBufferData(20, 0);
Map aead1 = hsm.generateBufferAEAD(nonce, keyHandle);
hsm.loadRandomBufferData(20, 0);
Map aead2 = hsm.generateBufferAEAD(nonce, keyHandle);
assertNotSame(aead1, aead2);
}
@Test
public void testWouldOverflowBuffer() throws YubiHSMErrorException {
assertEquals(hsm.loadRandomBufferData(16, YSM_DATA_BUF_SIZE - 8), 64);
assertEquals(hsm.loadRandomBufferData(16, 0), 16);
assertEquals(hsm.loadRandomBufferData(1, 16), 17);
assertEquals(hsm.loadRandomBufferData(7, 10), 17);
assertEquals(hsm.loadRandomBufferData(1, 62), 63);
assertEquals(hsm.loadRandomBufferData(63, 62), 64);
}
}