package im.actor.runtime.crypto.box; import im.actor.runtime.crypto.primitives.util.ByteStrings; /** * Actor Box key. Used for encryption and decryption of Actor Boxes. * * @author Steve Kite (steve@actor.im) */ public class ActorBoxKey { private byte[] keyAES; private byte[] macAES; private byte[] keyKuz; private byte[] macKuz; public ActorBoxKey(byte[] keyAES, byte[] macAES, byte[] keyKuz, byte[] macKuz) { this.keyAES = keyAES; this.macAES = macAES; this.keyKuz = keyKuz; this.macKuz = macKuz; } public ActorBoxKey(byte[] key) { this(ByteStrings.substring(key, 0, 32), ByteStrings.substring(key, 32, 32), ByteStrings.substring(key, 64, 32), ByteStrings.substring(key, 96, 32)); } public byte[] getKeyAES() { return keyAES; } public byte[] getMacAES() { return macAES; } public byte[] getKeyKuz() { return keyKuz; } public byte[] getMacKuz() { return macKuz; } public byte[] toByteArray() { return ByteStrings.merge(keyAES, macAES, keyKuz, macKuz); } }