objectguild / GoogleAuthenticator

Implements time based one time passwords (TOTP) in Pharo.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

GoogleAuthenticator

An implementation of time based one time passwords (TOTP) in Pharo, adapted to use Sodium for random number generation.

Build Status Coverage Status Pharo 7.0 Pharo 8.0

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.

Collective Code Construction Contract (C4)

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.

Loading

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.

Additional instructions Sodium

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.

About

Implements time based one time passwords (TOTP) in Pharo.

License:MIT License


Languages

Language:Smalltalk 100.0%