package main

import (
	"crypto/rand"
	"encoding/base32"
	"log"
	"net/http"

	"m.cluseau.fr/go/httperr"
)

func newToken(sizeInBytes int) (token string, err error) {
	randBytes := make([]byte, sizeInBytes)

	_, err = rand.Read(randBytes)
	if err != nil {
		log.Print("rand read error: ", err)
		err = httperr.New(http.StatusInternalServerError, err)
		return
	}

	token = base32.StdEncoding.WithPadding(base32.NoPadding).EncodeToString(randBytes)
	return
}