2010-07-27 08:10:09 -04:00
|
|
|
package com.fsck.k9.crypto;
|
|
|
|
|
|
|
|
import android.app.Activity;
|
|
|
|
import android.content.Context;
|
|
|
|
import android.content.Intent;
|
|
|
|
|
|
|
|
import com.fsck.k9.mail.Message;
|
|
|
|
|
2010-08-05 06:55:59 -04:00
|
|
|
/**
|
|
|
|
* A CryptoProvider provides functionalities such as encryption, decryption, digital signatures.
|
|
|
|
* It currently also stores the results of such encryption or decryption.
|
|
|
|
* TODO: separate the storage from the provider
|
|
|
|
*/
|
2010-08-22 05:51:17 -04:00
|
|
|
abstract public class CryptoProvider
|
2010-07-27 08:10:09 -04:00
|
|
|
{
|
|
|
|
static final long serialVersionUID = 0x21071234;
|
|
|
|
|
|
|
|
abstract public boolean isAvailable(Context context);
|
|
|
|
abstract public boolean isEncrypted(Message message);
|
|
|
|
abstract public boolean isSigned(Message message);
|
|
|
|
abstract public boolean onActivityResult(Activity activity, int requestCode, int resultCode,
|
2010-08-22 05:51:17 -04:00
|
|
|
Intent data, PgpData pgpData);
|
|
|
|
abstract public boolean selectSecretKey(Activity activity, PgpData pgpData);
|
|
|
|
abstract public boolean selectEncryptionKeys(Activity activity, String emails, PgpData pgpData);
|
|
|
|
abstract public boolean encrypt(Activity activity, String data, PgpData pgpData);
|
|
|
|
abstract public boolean decrypt(Activity activity, String data, PgpData pgpData);
|
2010-07-27 08:10:09 -04:00
|
|
|
abstract public long[] getSecretKeyIdsFromEmail(Context context, String email);
|
|
|
|
abstract public String getUserId(Context context, long keyId);
|
|
|
|
abstract public String getName();
|
|
|
|
abstract public boolean test(Context context);
|
|
|
|
|
2010-08-22 05:51:17 -04:00
|
|
|
public static CryptoProvider createInstance(String name)
|
2010-07-27 08:10:09 -04:00
|
|
|
{
|
2010-08-22 05:51:17 -04:00
|
|
|
if (Apg.NAME.equals(name))
|
2010-07-27 08:10:09 -04:00
|
|
|
{
|
2010-08-22 05:51:17 -04:00
|
|
|
return Apg.createInstance();
|
2010-07-27 08:10:09 -04:00
|
|
|
}
|
|
|
|
|
2010-08-22 05:51:17 -04:00
|
|
|
return None.createInstance();
|
2010-07-27 08:10:09 -04:00
|
|
|
}
|
|
|
|
}
|