mirror of
				https://codeberg.org/forgejo/forgejo.git
				synced 2025-11-04 00:11:04 +00: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
		
			
				
	
	
		
			48 lines
		
	
	
	
		
			981 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
	
		
			981 B
		
	
	
	
		
			Go
		
	
	
	
	
	
// Package utils contain some utilities which are needed to create barcodes
 | 
						|
package utils
 | 
						|
 | 
						|
import (
 | 
						|
	"image"
 | 
						|
	"image/color"
 | 
						|
 | 
						|
	"github.com/boombuler/barcode"
 | 
						|
)
 | 
						|
 | 
						|
type base1DCode struct {
 | 
						|
	*BitList
 | 
						|
	kind     string
 | 
						|
	content  string
 | 
						|
	checksum int
 | 
						|
}
 | 
						|
 | 
						|
func (c *base1DCode) Content() string {
 | 
						|
	return c.content
 | 
						|
}
 | 
						|
 | 
						|
func (c *base1DCode) Metadata() barcode.Metadata {
 | 
						|
	return barcode.Metadata{c.kind, 1}
 | 
						|
}
 | 
						|
 | 
						|
func (c *base1DCode) ColorModel() color.Model {
 | 
						|
	return color.Gray16Model
 | 
						|
}
 | 
						|
 | 
						|
func (c *base1DCode) Bounds() image.Rectangle {
 | 
						|
	return image.Rect(0, 0, c.Len(), 1)
 | 
						|
}
 | 
						|
 | 
						|
func (c *base1DCode) At(x, y int) color.Color {
 | 
						|
	if c.GetBit(x) {
 | 
						|
		return color.Black
 | 
						|
	}
 | 
						|
	return color.White
 | 
						|
}
 | 
						|
 | 
						|
func (c *base1DCode) CheckSum() int {
 | 
						|
	return c.checksum
 | 
						|
}
 | 
						|
 | 
						|
// New1DCode creates a new 1D barcode where the bars are represented by the bits in the bars BitList
 | 
						|
func New1DCode(codeKind, content string, bars *BitList, checksum int) barcode.Barcode {
 | 
						|
	return &base1DCode{bars, codeKind, content, checksum}
 | 
						|
}
 |