There were three issues with calculating control character for Finnish personal identity code (henkilötunnus).
Three-digit part after birthdate was not taken into account when calculating it.
Invalid characters were not skipped.
Gender was ignored.
It was also (rarely) possible to get 000 or 001 as the number part, both of which invalid.
This also changes that the number part is always between 002-899. Numbers 900-999 do not exist "in the wild", they are strictly reserved for temporary identity codes.
There could of course be an option to also allow temporary codes, or generate only them. I can add them if you wish.
There were three issues with calculating control character for Finnish personal identity code (henkilötunnus).
It was also (rarely) possible to get 000 or 001 as the number part, both of which invalid.
This also changes that the number part is always between 002-899. Numbers 900-999 do not exist "in the wild", they are strictly reserved for temporary identity codes. There could of course be an option to also allow temporary codes, or generate only them. I can add them if you wish.
How the identity code is formed: https://dvv.fi/en/personal-identity-code
Fixes #392