github.com/tommi2day/gomodules@v1.13.2-0.20240423190010-b7d55d252a27/pwlib/totp.go (about)

     1  package pwlib
     2  
     3  import (
     4  	"fmt"
     5  
     6  	"github.com/xlzd/gotp"
     7  )
     8  
     9  // GetOtp calculates a standard 6 digit TOTP from given secret
    10  func GetOtp(secret string) (val string, e error) {
    11  	e = nil
    12  	// trap panics
    13  	defer func() {
    14  		if err := recover(); err != nil {
    15  			e = fmt.Errorf("panic:%v", err)
    16  		}
    17  	}()
    18  	otp := gotp.NewDefaultTOTP(secret)
    19  	if otp != nil {
    20  		val = otp.Now()
    21  	}
    22  	return
    23  }