An implementation of time based one time passwords (TOTP) in Pharo, adapted to use Sodium for random number generation.
The original author is Sven van Caekenberghe. See Sven's article The code behind Google Authenticator. There is still a static copy of the original repository of SmalltalkHub to be found here.
It is Object Guild's intention to use the Collective Code Construction Contract (C4) for collaboration on this project. Please familiarize yourself with its contents when you want to collaborate on GoogleAuthenticator.
The C4 states that the project should have clearly documented guidelines for code style. Since these are currently missing (20 October 2021), these will be created as needed and will thus be a work in progress.
We will use incoming issues and pull requests for purposes of learning to apply C4, so please be patient with us :-)
Comments are welcome. You are kindly requested to use the project issue tracker for this purpose.
A new baseline GoogleAuthenticator
has been created, which defines the groups Core
, Random
and Tests
, with the default only loading the Core
group. This group includes the GoogleAuthenticator-Sodium
package, which loads the Sodium implementation of the #randomByteArrayOfSize: byteCount
method (as extension).
Metacello new
baseline: 'GoogleAuthenticator';
repository: 'github://objectguild/GoogleAuthenticator:main';
load.
In order to use the secure Sodium random implementation, which is the default, make sure you have the Libsodium native library installed on your system. See details on how to do this in the README of the Crypto-Nacl
repository.