package im.actor.crypto.primitives.kuznechik;
import im.actor.crypto.primitives.util.ByteStrings;
/**
* 128-bit variable
*/
public class Kuz128 {
private final byte[] b;
public Kuz128(byte[] b) {
this.b = b;
}
public Kuz128() {
this.b = new byte[16];
}
public long getQ(int index) {
return ByteStrings.bytesToLong(b, index * 8);
}
public void setQ(int index, long l) {
byte[] data = ByteStrings.longToBytes(l);
for (int i = 0; i < 8; i++) {
b[i + index * 8] = data[i];
}
}
public void set(Kuz128 kuz128) {
for (int i = 0; i < 16; i++) {
b[i] = kuz128.b[i];
}
}
public byte[] getB() {
return b;
}
}