applied proposed patch by mattispasch for issue 99

This commit is contained in:
Thialfihar 2011-03-19 18:23:54 +00:00
parent 4e37568eab
commit 3a22ac4197

View File

@ -18,6 +18,7 @@ package org.thialfihar.android.apg;
import java.io.ByteArrayOutputStream; import java.io.ByteArrayOutputStream;
import java.io.File; import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException; import java.io.IOException;
import java.io.OutputStream; import java.io.OutputStream;
import java.security.NoSuchAlgorithmException; import java.security.NoSuchAlgorithmException;
@ -30,6 +31,7 @@ import org.bouncycastle2.openpgp.PGPPublicKey;
import org.bouncycastle2.openpgp.PGPPublicKeyRing; import org.bouncycastle2.openpgp.PGPPublicKeyRing;
import org.bouncycastle2.openpgp.PGPSecretKey; import org.bouncycastle2.openpgp.PGPSecretKey;
import org.bouncycastle2.openpgp.PGPSecretKeyRing; import org.bouncycastle2.openpgp.PGPSecretKeyRing;
import org.thialfihar.android.apg.provider.DataProvider;
import org.thialfihar.android.apg.utils.Choice; import org.thialfihar.android.apg.utils.Choice;
import android.app.Dialog; import android.app.Dialog;
@ -699,21 +701,30 @@ public class EncryptActivity extends BaseActivity {
out.close(); out.close();
if (mEncryptTarget != Id.target.file) { if (mEncryptTarget != Id.target.file) {
if (useAsciiArmour) {
String extraData = new String(((ByteArrayOutputStream)out).toByteArray()); if(out instanceof ByteArrayOutputStream) {
if (mGenerateSignature) { if (useAsciiArmour) {
data.putString(Apg.EXTRA_SIGNATURE_TEXT, extraData); String extraData = new String(((ByteArrayOutputStream)out).toByteArray());
} else { if (mGenerateSignature) {
data.putString(Apg.EXTRA_ENCRYPTED_MESSAGE, extraData); data.putString(Apg.EXTRA_SIGNATURE_TEXT, extraData);
} } else {
} else { data.putString(Apg.EXTRA_ENCRYPTED_MESSAGE, extraData);
byte extraData[] = ((ByteArrayOutputStream)out).toByteArray(); }
if (mGenerateSignature) { } else {
data.putByteArray(Apg.EXTRA_SIGNATURE_DATA, extraData); byte extraData[] = ((ByteArrayOutputStream)out).toByteArray();
} else { if (mGenerateSignature) {
data.putByteArray(Apg.EXTRA_ENCRYPTED_DATA, extraData); data.putByteArray(Apg.EXTRA_SIGNATURE_DATA, extraData);
} } else {
} data.putByteArray(Apg.EXTRA_ENCRYPTED_DATA, extraData);
}
}
} else if(out instanceof FileOutputStream) {
String fileName = mDataDestination.getStreamFilename();
String uri = "content://" + DataProvider.AUTHORITY + "/data/" + fileName;
data.putString(Apg.EXTRA_RESULT_URI, uri);
} else {
throw new Apg.GeneralException("No output-data found.");
}
} }
} catch (IOException e) { } catch (IOException e) {
error = "" + e; error = "" + e;