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:
Tom Gundersen 2020-07-15 13:16:50 +01:00 committed by msehnout
parent 813275b6c4
commit bca53a596c
4 changed files with 15 additions and 5 deletions

View file

@ -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$"}

View file

@ -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:

View file

@ -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
} }

View file

@ -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) {