package com.bennyguitar.onions_android.Objects; import com.bennyguitar.onions_android.Security.OCSecurity; import com.bennyguitar.onions_android.Session.OCSession; import com.parse.DeleteCallback; import com.parse.ParseClassName; import com.parse.ParseObject; /** * Created by BenG on 5/31/14. */ @ParseClassName("Onion") public class Onion extends ParseObject { public final static String onionTitleKey = "onionTitle"; public final static String onionInfoKey = "onionInfo"; public final static String iterationsKey = "iterations"; public final static String userIdKey = "userId"; public final static String versionKey = "onionVersion"; public final static Double currentVersion = 2.0; public String plainTextTitle; public String plainTextInfo; // New Onion public static Onion newOnion(String title, String info) { Onion onion = new Onion(); onion.plainTextTitle = title != null ? title : ""; onion.plainTextInfo = info != null ? info : ""; onion.put(userIdKey, OCSession.mainSession.UserId); onion.encryptOnion(); return onion; } // Decrypt/Encrypt public void decryptOnion() { plainTextTitle = OCSecurity.decryptedText(getString(onionTitleKey), OCSession.mainSession.Password, getIterations()); plainTextInfo = OCSecurity.decryptedText(getString(onionInfoKey), OCSession.mainSession.Password, getIterations()); } public void encryptOnion() { String encryptedTitle = OCSecurity.encryptedText(plainTextTitle, OCSession.mainSession.Password); String encryptedInfo = OCSecurity.encryptedText(plainTextInfo, OCSession.mainSession.Password); put(onionTitleKey, encryptedTitle); put(onionInfoKey, encryptedInfo); setIterations(OCSecurity.defaultPBKDFRounds); setVersion(currentVersion); } // Iterations public int getIterations() { return getInt(iterationsKey); } public void setIterations(int iterations) { put(iterationsKey, iterations); } // Version public double getVersion() { return getDouble(versionKey); } public void setVersion(double v) { put(versionKey, v); } }