crypt: add automatic darwin support
Currently one would have to pass a `macos` flag explicitly to build on OSX, but if we replace `macos` with `darwin` this happens automatically. Signed-off-by: Tom Gundersen <teg@jklm.no>
This commit is contained in:
parent
813275b6c4
commit
bca53a596c
4 changed files with 15 additions and 5 deletions
|
|
@ -6,6 +6,9 @@ import (
|
||||||
"strings"
|
"strings"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// CryptSHA512 encrypts the given password with SHA512 and a random salt.
|
||||||
|
//
|
||||||
|
// Note that this function is not deterministic.
|
||||||
func CryptSHA512(phrase string) (string, error) {
|
func CryptSHA512(phrase string) (string, error) {
|
||||||
const SHA512SaltLength = 16
|
const SHA512SaltLength = 16
|
||||||
|
|
||||||
|
|
@ -35,6 +38,13 @@ func genSalt(length int) (string, error) {
|
||||||
return string(b), nil
|
return string(b), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// PasswordIsCrypted returns true if the password appears to be an encrypted
|
||||||
|
// one, according to a very simple heuristic.
|
||||||
|
//
|
||||||
|
// Any string starting with one of $2$, $6$ or $5$ is considered to be
|
||||||
|
// encrypted. Any other string is consdirede to be unencrypted.
|
||||||
|
//
|
||||||
|
// This functionality is taken from pylorax.
|
||||||
func PasswordIsCrypted(s string) bool {
|
func PasswordIsCrypted(s string) bool {
|
||||||
// taken from lorax src: src/pylorax/api/compose.py:533
|
// taken from lorax src: src/pylorax/api/compose.py:533
|
||||||
prefixes := [...]string{"$2b$", "$6$", "$5$"}
|
prefixes := [...]string{"$2b$", "$6$", "$5$"}
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// +build !macos
|
// +build !darwin
|
||||||
|
|
||||||
// Copied from https://github.com/amoghe/go-crypt/blob/b3e291286513a0c993f7c4dd7060d327d2d56143/crypt_r.go
|
// Copied from https://github.com/amoghe/go-crypt/blob/b3e291286513a0c993f7c4dd7060d327d2d56143/crypt_r.go
|
||||||
// Original sources are under MIT license:
|
// Original sources are under MIT license:
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,7 @@
|
||||||
// +build macos
|
// +build darwin
|
||||||
|
|
||||||
package crypt
|
package crypt
|
||||||
|
|
||||||
func crypt(pass, salt string) (string, error) {
|
func crypt(pass, salt string) (string, error) {
|
||||||
panic("You must not run osbuild-composer on macOS!")
|
panic("You must not run osbuild-composer on macOS!")
|
||||||
return "", nil
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,11 @@
|
||||||
// +build !macos
|
// +build !darwin
|
||||||
|
|
||||||
package crypt
|
package crypt
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/stretchr/testify/assert"
|
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
"github.com/stretchr/testify/assert"
|
||||||
)
|
)
|
||||||
|
|
||||||
func Test_crypt_PasswordIsCrypted(t *testing.T) {
|
func Test_crypt_PasswordIsCrypted(t *testing.T) {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue