public Pointer set(OCPUser user, byte[] bytes) throws Exception { // 1) Create all the data objects Key[] keys = new Key[user.getBackupNbr()]; for (int i = 0; i < user.getBackupNbr(); i++) { byte[] bkp = new byte[1]; bkp[0] = (byte) i; byte[] bkpBytes = ByteUtil.concat(bkp, bytes); byte[] ciphertext = user.crypt(bkpBytes); Data data = new Data(this, user, ciphertext); keys[i] = set(data); } // 2) create the pointer link Pointer pointer = makePointer(user, keys); // 3 ) add the pointer to the user index. user.add(this, pointer); return pointer; }