Skip to content

Commit d4e884a

Browse files
committed
Rename DeviceInfoDataSource
1 parent 4d484a4 commit d4e884a

File tree

9 files changed

+42
-22
lines changed

9 files changed

+42
-22
lines changed

app/src/main/kotlin/com/darkrockstudios/app/securecamera/AppModule.kt

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import com.darkrockstudios.app.securecamera.import.ImportPhotosViewModel
1010
import com.darkrockstudios.app.securecamera.introduction.IntroductionViewModel
1111
import com.darkrockstudios.app.securecamera.obfuscation.ObfuscatePhotoViewModel
1212
import com.darkrockstudios.app.securecamera.preferences.AppPreferencesDataSource
13-
import com.darkrockstudios.app.securecamera.security.DeviceInfo
13+
import com.darkrockstudios.app.securecamera.security.DeviceInfoDataSource
1414
import com.darkrockstudios.app.securecamera.security.SecurityLevel
1515
import com.darkrockstudios.app.securecamera.security.SecurityLevelDetector
1616
import com.darkrockstudios.app.securecamera.security.pin.PinCrypto
@@ -21,7 +21,16 @@ import com.darkrockstudios.app.securecamera.security.schemes.EncryptionScheme
2121
import com.darkrockstudios.app.securecamera.security.schemes.HardwareBackedEncryptionScheme
2222
import com.darkrockstudios.app.securecamera.security.schemes.SoftwareEncryptionScheme
2323
import com.darkrockstudios.app.securecamera.settings.SettingsViewModel
24-
import com.darkrockstudios.app.securecamera.usecases.*
24+
import com.darkrockstudios.app.securecamera.usecases.AddDecoyPhotoUseCase
25+
import com.darkrockstudios.app.securecamera.usecases.AuthorizePinUseCase
26+
import com.darkrockstudios.app.securecamera.usecases.CreatePinUseCase
27+
import com.darkrockstudios.app.securecamera.usecases.InvalidateSessionUseCase
28+
import com.darkrockstudios.app.securecamera.usecases.MigratePinHash
29+
import com.darkrockstudios.app.securecamera.usecases.PinSizeUseCase
30+
import com.darkrockstudios.app.securecamera.usecases.PinStrengthCheckUseCase
31+
import com.darkrockstudios.app.securecamera.usecases.RemovePoisonPillIUseCase
32+
import com.darkrockstudios.app.securecamera.usecases.SecurityResetUseCase
33+
import com.darkrockstudios.app.securecamera.usecases.VerifyPinUseCase
2534
import com.darkrockstudios.app.securecamera.viewphoto.ViewPhotoViewModel
2635
import org.koin.core.module.dsl.factoryOf
2736
import org.koin.core.module.dsl.singleOf
@@ -70,7 +79,7 @@ val appModule = module {
7079

7180
single { WorkManager.getInstance(get()) }
7281

73-
factoryOf(::DeviceInfo)
82+
factoryOf(::DeviceInfoDataSource)
7483

7584
factoryOf(::ThumbnailCache)
7685
factoryOf(::SecurityResetUseCase)

app/src/main/kotlin/com/darkrockstudios/app/securecamera/security/deviceInfo.kt renamed to app/src/main/kotlin/com/darkrockstudios/app/securecamera/security/DeviceInfoDataSource.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import dev.whyoleg.cryptography.algorithms.SHA512
88
import dev.whyoleg.cryptography.operations.Hasher
99
import kotlin.io.encoding.ExperimentalEncodingApi
1010

11-
class DeviceInfo(private val appContext: Context) {
11+
class DeviceInfoDataSource(private val appContext: Context) {
1212
private val hasher: Hasher = CryptographyProvider.Default.get(SHA512).hasher()
1313

1414
@OptIn(ExperimentalStdlibApi::class, ExperimentalEncodingApi::class)

app/src/main/kotlin/com/darkrockstudios/app/securecamera/security/pin/PinRepositoryHardware.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,15 @@ import com.darkrockstudios.app.securecamera.preferences.AppPreferencesDataSource
44
import com.darkrockstudios.app.securecamera.preferences.HashedPin
55
import com.darkrockstudios.app.securecamera.preferences.base64Decode
66
import com.darkrockstudios.app.securecamera.preferences.base64Encode
7-
import com.darkrockstudios.app.securecamera.security.DeviceInfo
7+
import com.darkrockstudios.app.securecamera.security.DeviceInfoDataSource
88
import com.darkrockstudios.app.securecamera.security.SchemeConfig
99
import com.darkrockstudios.app.securecamera.security.schemes.EncryptionScheme
1010
import kotlinx.serialization.json.Json
1111

1212
class PinRepositoryHardware(
1313
private val dataSource: AppPreferencesDataSource,
1414
private val encryptionScheme: EncryptionScheme,
15-
private val deviceInfo: DeviceInfo,
15+
private val deviceInfo: DeviceInfoDataSource,
1616
private val pinCrypto: PinCrypto,
1717
) : PinRepository {
1818

app/src/main/kotlin/com/darkrockstudios/app/securecamera/security/pin/PinRepositorySoftware.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,14 @@ package com.darkrockstudios.app.securecamera.security.pin
33
import com.darkrockstudios.app.securecamera.preferences.AppPreferencesDataSource
44
import com.darkrockstudios.app.securecamera.preferences.HashedPin
55
import com.darkrockstudios.app.securecamera.preferences.XorCipher
6-
import com.darkrockstudios.app.securecamera.security.DeviceInfo
6+
import com.darkrockstudios.app.securecamera.security.DeviceInfoDataSource
77
import com.darkrockstudios.app.securecamera.security.SchemeConfig
88
import kotlinx.serialization.json.Json
99
import kotlin.io.encoding.ExperimentalEncodingApi
1010

1111
class PinRepositorySoftware(
1212
private val dataSource: AppPreferencesDataSource,
13-
private val deviceInfo: DeviceInfo,
13+
private val deviceInfo: DeviceInfoDataSource,
1414
private val pinCrypto: PinCrypto,
1515
) : PinRepository {
1616

app/src/main/kotlin/com/darkrockstudios/app/securecamera/security/schemes/HardwareBackedEncryptionScheme.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import android.security.keystore.KeyProperties.PURPOSE_ENCRYPT
1010
import android.security.keystore.StrongBoxUnavailableException
1111
import com.darkrockstudios.app.securecamera.preferences.AppPreferencesDataSource
1212
import com.darkrockstudios.app.securecamera.preferences.HashedPin
13-
import com.darkrockstudios.app.securecamera.security.DeviceInfo
13+
import com.darkrockstudios.app.securecamera.security.DeviceInfoDataSource
1414
import com.darkrockstudios.app.securecamera.security.HardwareSchemeConfig
1515
import dev.whyoleg.cryptography.CryptographyProvider
1616
import dev.whyoleg.cryptography.algorithms.PBKDF2
@@ -31,7 +31,7 @@ import kotlin.time.Duration.Companion.minutes
3131

3232
class HardwareBackedEncryptionScheme(
3333
private val appContext: Context,
34-
deviceInfo: DeviceInfo,
34+
deviceInfo: DeviceInfoDataSource,
3535
private val appPreferencesDataSource: AppPreferencesDataSource,
3636
) : SoftwareEncryptionScheme(deviceInfo) {
3737
private val provider = CryptographyProvider.Default

app/src/main/kotlin/com/darkrockstudios/app/securecamera/security/schemes/SoftwareEncryptionScheme.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ package com.darkrockstudios.app.securecamera.security.schemes
22

33
import com.darkrockstudios.app.securecamera.ReentrantMutex
44
import com.darkrockstudios.app.securecamera.preferences.HashedPin
5-
import com.darkrockstudios.app.securecamera.security.DeviceInfo
5+
import com.darkrockstudios.app.securecamera.security.DeviceInfoDataSource
66
import com.darkrockstudios.app.securecamera.security.KeyParams
77
import com.darkrockstudios.app.securecamera.security.ShardedKey
88
import dev.whyoleg.cryptography.CryptographyProvider
@@ -17,7 +17,7 @@ import kotlin.io.encoding.ExperimentalEncodingApi
1717
* Implementation of EncryptionScheme that uses AES encryption with keys derived from a PIN.
1818
*/
1919
open class SoftwareEncryptionScheme(
20-
protected val deviceInfo: DeviceInfo,
20+
protected val deviceInfo: DeviceInfoDataSource,
2121
) : EncryptionScheme {
2222
private val provider = CryptographyProvider.Default
2323
protected var key: ShardedKey? = null

app/src/main/kotlin/com/darkrockstudios/app/securecamera/usecases/MigratePinHash.kt

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,13 @@
11
package com.darkrockstudios.app.securecamera.usecases
22

33
import at.favre.lib.crypto.bcrypt.BCrypt
4-
import com.darkrockstudios.app.securecamera.preferences.*
5-
import com.darkrockstudios.app.securecamera.security.DeviceInfo
4+
import com.darkrockstudios.app.securecamera.preferences.AppPreferencesDataSource
5+
import com.darkrockstudios.app.securecamera.preferences.HashedPin
6+
import com.darkrockstudios.app.securecamera.preferences.XorCipher
7+
import com.darkrockstudios.app.securecamera.preferences.base64Decode
8+
import com.darkrockstudios.app.securecamera.preferences.base64Encode
9+
import com.darkrockstudios.app.securecamera.preferences.base64EncodeUrlSafe
10+
import com.darkrockstudios.app.securecamera.security.DeviceInfoDataSource
611
import com.darkrockstudios.app.securecamera.security.SecurityLevel
712
import com.darkrockstudios.app.securecamera.security.SecurityLevelDetector
813
import com.darkrockstudios.app.securecamera.security.pin.PinRepository.Companion.ARGON_COST
@@ -13,7 +18,6 @@ import com.darkrockstudios.app.securecamera.security.schemes.HardwareBackedEncry
1318
import com.lambdapioneer.argon2kt.Argon2Kt
1419
import com.lambdapioneer.argon2kt.Argon2KtResult
1520
import com.lambdapioneer.argon2kt.Argon2Mode
16-
import kotlinx.serialization.encodeToString
1721
import kotlinx.serialization.json.Json
1822
import timber.log.Timber
1923

@@ -22,7 +26,7 @@ class MigratePinHash(
2226
private val dataSource: AppPreferencesDataSource,
2327
private val encryptionScheme: EncryptionScheme,
2428
private val removePoisonPillIUseCase: RemovePoisonPillIUseCase,
25-
private val deviceInfo: DeviceInfo,
29+
private val deviceInfo: DeviceInfoDataSource,
2630
) {
2731
private val argon2Kt = Argon2Kt()
2832

app/src/test/kotlin/com/darkrockstudios/app/securecamera/auth/AuthorizePinUseCaseTest.kt

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
1-
package testutil.com.darkrockstudios.app.securecamera.auth
1+
package com.darkrockstudios.app.securecamera.auth
22

33
import android.content.Context
44
import androidx.datastore.core.DataStore
55
import androidx.datastore.preferences.core.Preferences
66
import androidx.datastore.preferences.core.emptyPreferences
77
import com.darkrockstudios.app.securecamera.TestClock
8-
import com.darkrockstudios.app.securecamera.auth.AuthorizationRepository
98
import com.darkrockstudios.app.securecamera.preferences.AppPreferencesDataSource
109
import com.darkrockstudios.app.securecamera.preferences.HashedPin
1110
import com.darkrockstudios.app.securecamera.security.SoftwareSchemeConfig
@@ -19,7 +18,11 @@ import io.mockk.spyk
1918
import kotlinx.coroutines.flow.first
2019
import kotlinx.coroutines.test.runTest
2120
import kotlinx.serialization.json.Json
22-
import org.junit.Assert.*
21+
import org.junit.Assert.assertEquals
22+
import org.junit.Assert.assertFalse
23+
import org.junit.Assert.assertNotNull
24+
import org.junit.Assert.assertNull
25+
import org.junit.Assert.assertTrue
2326
import org.junit.Before
2427
import org.junit.Test
2528
import testutil.FakeDataStore

app/src/test/kotlin/com/darkrockstudios/app/securecamera/security/pin/PinRepositorySoftwareTest.kt

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package com.darkrockstudios.app.securecamera.security.pin
33
import com.darkrockstudios.app.securecamera.preferences.AppPreferencesDataSource
44
import com.darkrockstudios.app.securecamera.preferences.HashedPin
55
import com.darkrockstudios.app.securecamera.preferences.XorCipher
6-
import com.darkrockstudios.app.securecamera.security.DeviceInfo
6+
import com.darkrockstudios.app.securecamera.security.DeviceInfoDataSource
77
import com.darkrockstudios.app.securecamera.security.SchemeConfig
88
import com.darkrockstudios.app.securecamera.security.SoftwareSchemeConfig
99
import io.mockk.coEvery
@@ -12,14 +12,18 @@ import io.mockk.mockk
1212
import kotlinx.coroutines.ExperimentalCoroutinesApi
1313
import kotlinx.coroutines.test.runTest
1414
import kotlinx.serialization.json.Json
15-
import org.junit.Assert.*
15+
import org.junit.Assert.assertEquals
16+
import org.junit.Assert.assertFalse
17+
import org.junit.Assert.assertNotNull
18+
import org.junit.Assert.assertNull
19+
import org.junit.Assert.assertTrue
1620
import org.junit.Before
1721
import org.junit.Test
1822

1923
@OptIn(ExperimentalCoroutinesApi::class)
2024
class PinRepositorySoftwareTest {
2125
private lateinit var dataSource: AppPreferencesDataSource
22-
private lateinit var deviceInfo: DeviceInfo
26+
private lateinit var deviceInfo: DeviceInfoDataSource
2327
private lateinit var pinCrypto: PinCrypto
2428
private lateinit var repo: PinRepositorySoftware
2529

0 commit comments

Comments
 (0)