/*
*******************************************************************************
* BTChip Bitcoin Hardware Wallet Java Card implementation
* (c) 2013 BTChip - 1BTChip7VfTnrPra5jqci7ejnMguuHogTn
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program 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 Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*******************************************************************************
*/
package com.btchip.applet.poc;
import javacard.framework.Util;
/**
* Basic operations on 64 bits unsigned integers
* @author BTChip
*
*/
public class Uint64Helper {
public static void clear(byte[] buffer, short offset) {
Util.arrayFillNonAtomic(buffer, offset, (short)8, (byte)0x00);
}
public static void add(byte[] a, short aOffset, byte[] b, short bOffset) {
GenericBEHelper.add((byte)8, a, aOffset, a, aOffset, b, bOffset);
}
public static void add(byte[] target, short targetOffset, byte[] a, short aOffset, byte[] b, short bOffset) {
GenericBEHelper.add((byte)8, target, targetOffset, a, aOffset, b, bOffset);
}
public static void sub(byte[] target, short targetOffset, byte[] a, short aOffset, byte[] b, short bOffset) {
GenericBEHelper.sub((byte)8, target, targetOffset, a, aOffset, b, bOffset);
}
public static void swap(byte[] target, short targetOffset, byte[] a, short aOffset) {
GenericBEHelper.swap((byte)8, target, targetOffset, a, aOffset);
}
public static boolean isZero(byte[] a, short aOffset) {
return GenericBEHelper.isZero((byte)8, a, aOffset);
}
}