| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
|
|
| package com.amaze.filemanager.utils |
|
|
| import android.os.Build |
| import android.os.Build.VERSION_CODES.LOLLIPOP |
| import android.os.Build.VERSION_CODES.P |
| import androidx.test.ext.junit.runners.AndroidJUnit4 |
| import org.junit.Assert.assertArrayEquals |
| import org.junit.Test |
| import org.junit.runner.RunWith |
| import org.robolectric.annotation.Config |
| import java.io.ByteArrayInputStream |
| import java.io.ByteArrayOutputStream |
| import kotlin.random.Random |
|
|
| |
| |
| |
| @RunWith(AndroidJUnit4::class) |
| @Config(sdk = [LOLLIPOP, P, Build.VERSION_CODES.R]) |
| class AESCryptTest { |
| |
| |
| |
| @Test |
| fun testEncryptDecrypt() { |
| val contents = Random(System.currentTimeMillis()).nextBytes(256) |
| val out = ByteArrayOutputStream() |
| var crypter = AESCrypt("12345678") |
| crypter.encrypt( |
| `in` = ByteArrayInputStream(contents), |
| out = out, |
| progressHandler = ProgressHandler(), |
| ) |
| out.close() |
| val encrypted = out.toByteArray() |
| val verify = ByteArrayOutputStream() |
| crypter = AESCrypt("12345678") |
| crypter.decrypt(encrypted.size.toLong(), ByteArrayInputStream(encrypted), verify) |
| verify.close() |
| val decrypted = verify.toByteArray() |
| assertArrayEquals(contents, decrypted) |
| } |
|
|
| |
| |
| |
| @Test(expected = AESCrypt.DecryptFailureException::class) |
| fun testWrongPasswordDecrypt() { |
| val contents = Random(System.currentTimeMillis()).nextBytes(256) |
| val out = ByteArrayOutputStream() |
| var crypter = AESCrypt("password") |
| crypter.encrypt( |
| `in` = ByteArrayInputStream(contents), |
| out = out, |
| progressHandler = ProgressHandler(), |
| ) |
| out.close() |
| val encrypted = out.toByteArray() |
| val verify = ByteArrayOutputStream() |
| crypter = AESCrypt("foobar") |
| crypter.decrypt(encrypted.size.toLong(), ByteArrayInputStream(encrypted), verify) |
| verify.close() |
| |
| |
| } |
| } |
|
|