Register hosts under Containers/VMs/Docker with encrypted key storage, and require re-authentication for sensitive account changes.
25 lines
466 B
Go
25 lines
466 B
Go
package auth
|
|
|
|
import (
|
|
"crypto/rand"
|
|
"fmt"
|
|
)
|
|
|
|
// NewUUID returns a random RFC 4122 version-4 UUID string.
|
|
func NewUUID() (string, error) {
|
|
buffer := make([]byte, 16)
|
|
if _, err := rand.Read(buffer); err != nil {
|
|
return "", fmt.Errorf("uuid: %w", err)
|
|
}
|
|
buffer[6] = (buffer[6] & 0x0f) | 0x40
|
|
buffer[8] = (buffer[8] & 0x3f) | 0x80
|
|
return fmt.Sprintf(
|
|
"%x-%x-%x-%x-%x",
|
|
buffer[0:4],
|
|
buffer[4:6],
|
|
buffer[6:8],
|
|
buffer[8:10],
|
|
buffer[10:16],
|
|
), nil
|
|
}
|