package edu.princeton.bitcointwofactorauth.android; import java.io.IOException; import java.io.Serializable; import java.security.SecureRandom; import java.security.cert.X509Certificate; import threshold.mr04.Bob; public class WalletData implements Serializable { private static final long serialVersionUID = -2087859102158713425L; public byte[] mOneTimePass; public X509Certificate mCert; public Bob mBob; public byte[] mPublicKey; public String mName; public static final String TAG = "WalletData"; private boolean mInitialized; public WalletData(byte[] oneTimePass, X509Certificate cert) { this.mOneTimePass = oneTimePass; this.mCert = cert; this.mName = "Awesome Wallet"; this.mInitialized = false; } public boolean initialize(TFAConnection connection, SecureRandom rand, X509Certificate phoneCert) throws IOException, ClassNotFoundException { InitializationParams ip = connection.initializeWallet(mOneTimePass, phoneCert); if (ip != null) { mPublicKey = ip.mPublicKey; mBob = new Bob(ip.mBobShare, ip.mPublicKey, rand, ip.mParams); mInitialized = true; } return ip != null; } public String displayName() { if (mInitialized) { return mName; } else { return mName + " (uninitialized)"; } } public String toString() { return displayName(); } }