/// <summary> /// Generates and returns a password as a protected string. /// </summary> /// <param name="prf">Password profile.</param> /// <param name="crsRandomSource">Cryptographic random source.</param> /// <returns>The generated password.</returns> public override ProtectedString Generate(PwProfile prf, CryptoRandomStream crsRandomSource) { UserConfig config = UserConfig.Deserialize(prf.CustomAlgorithmOptions); SystemConfig sysConfig = new SystemConfig(); RandomUtil random = new RandomUtil(crsRandomSource); IRepositoryFactory factory = new FileRepositoryFactory(config, sysConfig); IPhraseRepository repo = factory.Make(random); ISpecialCharsRepository specialCharsRepo = factory.MakeSpecialChars(random); IPhraseGenerator generator = new PhraseGenerator(config, repo, specialCharsRepo); return(generator.Generate()); }
public void SetUp() { this.config = new UserConfig(); this.repo = new StubDicewareRepository(); this.specialCharsRepo = new StubSpecialCharsRepository(); }
/// <summary> /// Initializes a new instance of the <see cref="PhraseGenerator"/> class. /// </summary> /// <param name="config">A config instance.</param> /// <param name="repository">A phrase repository instance.</param> /// <param name="specialCharsRepo">A special chars repository instance.</param> public PhraseGenerator(UserConfig config, IPhraseRepository repository, ISpecialCharsRepository specialCharsRepo) { this.Config = config; this.Repo = repository; this.SpecialCharsRepo = specialCharsRepo; }