File: variant.go

package info (click to toggle)
golang-github-go-crypt-crypt 0.4.7-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 516 kB
  • sloc: makefile: 4
file content (51 lines) | stat: -rw-r--r-- 1,229 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
package md5crypt

// NewVariant converts an identifier string to a md5crypt.Variant.
func NewVariant(identifier string) (variant Variant) {
	switch identifier {
	case AlgIdentifier, AlgName, VariantNameStandard, "common":
		return VariantStandard
	case AlgIdentifierVariantSun, VariantNameSun:
		return VariantSun
	default:
		return VariantNone
	}
}

// Variant is a variant of the md5crypt.Digest.
type Variant int

const (
	// VariantNone is a variant of the md5crypt.Digest which is unknown.
	VariantNone Variant = iota

	// VariantStandard is a variant of the md5crypt.Digest which uses the standard md5crypt format.
	VariantStandard

	// VariantSun is a variant of the md5crypt.Digest designed at Sun.
	VariantSun
)

// String implements the fmt.Stringer returning a string representation of the md5crypt.Variant.
func (v Variant) String() (prefix string) {
	switch v {
	case VariantStandard:
		return VariantNameStandard
	case VariantSun:
		return VariantNameSun
	default:
		return
	}
}

// Prefix returns the md5crypt.Variant prefix identifier.
func (v Variant) Prefix() (prefix string) {
	switch v {
	case VariantStandard:
		return AlgIdentifier
	case VariantSun:
		return AlgIdentifierVariantSun
	default:
		return
	}
}