Some values that should be configurable are currently hardcoded and cannot be changed. Allow these values to be changed by consumers to make the library more flexible.
The values that should be configurable are:
the NtpTimeProvider timeout
the algorithm that is used when generating codes
the number of digits in the codes produced
the number of seconds in each "time bucket"
the number of time buckets before and after the current time bucket to generate valid codes for when verifying a code (time discrepency)
Some values that should be configurable are currently hardcoded and cannot be changed. Allow these values to be changed by consumers to make the library more flexible.
The values that should be configurable are: