mirror of
https://github.com/go-gitea/gitea.git
synced 2024-08-28 15:17:26 +02:00
* Initial commit for 2FA support Signed-off-by: Andrew <write@imaginarycode.com> * Add vendored files * Add missing depends * A few clean ups * Added improvements, proper encryption * Better encryption key * Simplify "key" generation * Make 2FA enrollment page more robust * Fix typo * Rename twofa/2FA to TwoFactor * UNIQUE INDEX -> UNIQUE
30 lines
639 B
Go
30 lines
639 B
Go
package qr
|
|
|
|
import (
|
|
"github.com/boombuler/barcode/utils"
|
|
)
|
|
|
|
type errorCorrection struct {
|
|
rs *utils.ReedSolomonEncoder
|
|
}
|
|
|
|
var ec = newErrorCorrection()
|
|
|
|
func newErrorCorrection() *errorCorrection {
|
|
fld := utils.NewGaloisField(285, 256, 0)
|
|
return &errorCorrection{utils.NewReedSolomonEncoder(fld)}
|
|
}
|
|
|
|
func (ec *errorCorrection) calcECC(data []byte, eccCount byte) []byte {
|
|
dataInts := make([]int, len(data))
|
|
for i := 0; i < len(data); i++ {
|
|
dataInts[i] = int(data[i])
|
|
}
|
|
res := ec.rs.Encode(dataInts, int(eccCount))
|
|
result := make([]byte, len(res))
|
|
for i := 0; i < len(res); i++ {
|
|
result[i] = byte(res[i])
|
|
}
|
|
return result
|
|
}
|