7b589c4300
// FREEBIE
31 lines
1.2 KiB
Java
31 lines
1.2 KiB
Java
package org.thoughtcrime.securesms.crypto;
|
|
|
|
import android.support.annotation.NonNull;
|
|
|
|
import org.thoughtcrime.securesms.util.Base64;
|
|
import org.whispersystems.libsignal.InvalidMessageException;
|
|
|
|
import java.io.IOException;
|
|
|
|
public class MediaKey {
|
|
|
|
public static String getEncrypted(@NonNull MasterSecretUnion masterSecret, @NonNull byte[] key) {
|
|
if (masterSecret.getMasterSecret().isPresent()) {
|
|
return Base64.encodeBytes(new MasterCipher(masterSecret.getMasterSecret().get()).encryptBytes(key));
|
|
} else {
|
|
return "?ASYNC-" + Base64.encodeBytes(new AsymmetricMasterCipher(masterSecret.getAsymmetricMasterSecret().get()).encryptBytes(key));
|
|
}
|
|
}
|
|
|
|
public static byte[] getDecrypted(@NonNull MasterSecret masterSecret,
|
|
@NonNull AsymmetricMasterSecret asymmetricMasterSecret,
|
|
@NonNull String encodedKey)
|
|
throws IOException, InvalidMessageException
|
|
{
|
|
if (encodedKey.startsWith("?ASYNC-")) {
|
|
return new AsymmetricMasterCipher(asymmetricMasterSecret).decryptBytes(Base64.decode(encodedKey.substring("?ASYNC-".length())));
|
|
} else {
|
|
return new MasterCipher(masterSecret).decryptBytes(Base64.decode(encodedKey));
|
|
}
|
|
}
|
|
}
|