CppSecurity  1.1.1.0
C++ Security Library
password_generator.inl
Go to the documentation of this file.
1 
9 namespace CppSecurity {
10 
11 template <class TOutputStream>
12 inline TOutputStream& operator<<(TOutputStream& stream, PasswordFlags flags)
13 {
14  bool first = true;
15  if ((flags & PasswordFlags::lower) && ((flags & PasswordFlags::lower).value() == PasswordFlags::lower))
16  {
17  stream << (first ? "" : "|") << "lower";
18  first = false;
19  }
20  if ((flags & PasswordFlags::upper) && ((flags & PasswordFlags::upper).value() == PasswordFlags::upper))
21  {
22  stream << (first ? "" : "|") << "upper";
23  first = false;
24  }
25  if ((flags & PasswordFlags::digits) && ((flags & PasswordFlags::digits).value() == PasswordFlags::digits))
26  {
27  stream << (first ? "" : "|") << "digits";
28  first = false;
29  }
30  if ((flags & PasswordFlags::symbols) && ((flags & PasswordFlags::symbols).value() == PasswordFlags::symbols))
31  {
32  stream << (first ? "" : "|") << "symbols";
33  first = false;
34  }
35  return stream;
36 }
37 
38 } // namespace CppSecurity
TOutputStream & operator<<(TOutputStream &stream, CipherAlgorithm algorithm)
Definition: cipher.inl:12
PasswordFlags
Password flags.
@ upper
Password must contain alphabet characters in upper case (A-Z)
@ symbols
Password must contain punctuation symbols (!"#$%&'()*+,-./:;<=>?@[]^_`{|}~)
@ lower
Password must contain alphabet characters in lower case (a-z)
@ digits
Password must contain digits (0-9)