app: add diceware injection module
This commit is contained in:
parent
5bcbf8da08
commit
0e8f899434
1 changed files with 55 additions and 0 deletions
|
@ -0,0 +1,55 @@
|
||||||
|
/*
|
||||||
|
* Copyright © 2014-2021 The Android Password Store Authors. All Rights Reserved.
|
||||||
|
* SPDX-License-Identifier: GPL-3.0-only
|
||||||
|
*/
|
||||||
|
|
||||||
|
package dev.msfjarvis.aps.injection.pwgen
|
||||||
|
|
||||||
|
import android.content.Context
|
||||||
|
import dagger.Module
|
||||||
|
import dagger.Provides
|
||||||
|
import dagger.hilt.InstallIn
|
||||||
|
import dagger.hilt.android.components.FragmentComponent
|
||||||
|
import dagger.hilt.android.qualifiers.ApplicationContext
|
||||||
|
import dev.msfjarvis.aps.passgen.diceware.DicewarePassphraseGenerator
|
||||||
|
import dev.msfjarvis.aps.passgen.diceware.Die
|
||||||
|
import dev.msfjarvis.aps.passgen.diceware.RandomIntGenerator
|
||||||
|
import java.io.InputStream
|
||||||
|
import java.security.SecureRandom
|
||||||
|
import javax.inject.Qualifier
|
||||||
|
|
||||||
|
@Module
|
||||||
|
@InstallIn(FragmentComponent::class)
|
||||||
|
object DicewareModule {
|
||||||
|
|
||||||
|
@Provides
|
||||||
|
fun provideDicewareGenerator(
|
||||||
|
die: Die,
|
||||||
|
@WordlistQualifier wordList: InputStream,
|
||||||
|
): DicewarePassphraseGenerator {
|
||||||
|
return DicewarePassphraseGenerator(die, wordList)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Provides
|
||||||
|
fun provideDie(
|
||||||
|
intGenerator: RandomIntGenerator,
|
||||||
|
): Die {
|
||||||
|
return Die(6, intGenerator)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Provides
|
||||||
|
fun provideRandomIntGenerator(): RandomIntGenerator {
|
||||||
|
return RandomIntGenerator { range ->
|
||||||
|
SecureRandom().nextInt(range.last).coerceAtLeast(range.first)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@[Provides WordlistQualifier]
|
||||||
|
fun provideDefaultWordList(@ApplicationContext context: Context): InputStream {
|
||||||
|
return context.resources.openRawResource(
|
||||||
|
dev.msfjarvis.aps.passgen.diceware.R.raw.diceware_wordlist
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Qualifier annotation class WordlistQualifier
|
Loading…
Reference in a new issue