mirror of
https://github.com/docker/docs.git
synced 2026-06-19 07:35:16 +00:00
Convert TOML to YAML, tweaks to work with Jekyll
This commit is contained in:
@@ -1,158 +0,0 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"encoding/base64"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"log"
|
||||
"os"
|
||||
"os/exec"
|
||||
"os/user"
|
||||
"path"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
|
||||
"github.com/Sirupsen/logrus"
|
||||
"golang.org/x/crypto/ssh"
|
||||
)
|
||||
|
||||
// read bytes from private key PEM storage
|
||||
const privateKey string = `-----BEGIN RSA PRIVATE KEY-----
|
||||
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
|
||||
-----END RSA PRIVATE KEY-----
|
||||
`
|
||||
|
||||
func main() {
|
||||
var udid string
|
||||
// Get UDID from CLI
|
||||
if len(os.Args) > 1 {
|
||||
udid = os.Args[1]
|
||||
} else {
|
||||
udid = detectUDID()
|
||||
}
|
||||
|
||||
logrus.Debugf("UDID found: ==>%s<===", udid)
|
||||
signatureBase64, err := signUdid(udid)
|
||||
if err != nil {
|
||||
logrus.Error(err)
|
||||
}
|
||||
logrus.Debugf(signatureBase64)
|
||||
logrus.Infof("Writing signature to %s/private-invites-signature.txt", appContainerPath())
|
||||
if err := writeSignatureInFile(signatureBase64); err != nil {
|
||||
logrus.Error(err)
|
||||
}
|
||||
}
|
||||
|
||||
// signUdid signs the user udid according to the server private key
|
||||
func signUdid(udid string) (string, error) {
|
||||
|
||||
// create a signer object from the private key bytes
|
||||
signer, err := ssh.ParsePrivateKey([]byte(privateKey))
|
||||
// signer, err := ssh.ParsePrivateKey(privateKeyBytes)
|
||||
if err != nil {
|
||||
logrus.Error("unable to parse private key", err.Error())
|
||||
}
|
||||
signature, err := signer.Sign(nil, []byte(udid))
|
||||
if err != nil {
|
||||
logrus.Error("ERROR:", err.Error())
|
||||
return "", err
|
||||
}
|
||||
// encode signature into base64
|
||||
signatureBase64 := base64.StdEncoding.EncodeToString(signature.Blob)
|
||||
return signatureBase64, nil
|
||||
}
|
||||
|
||||
func appContainerPath() string {
|
||||
usr, err := user.Current()
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
return filepath.Join(usr.HomeDir, "Library", "Containers", "com.docker.docker", "Data")
|
||||
}
|
||||
|
||||
// encode signature into base64 and write it in a file
|
||||
func writeSignatureInFile(signatureBase64 string) error {
|
||||
// get path to group container
|
||||
containerPath := appContainerPath()
|
||||
filepath := path.Join(containerPath, "private-invites-signature.txt")
|
||||
err := ioutil.WriteFile(filepath, []byte(signatureBase64), os.ModePerm)
|
||||
return err
|
||||
}
|
||||
|
||||
var udidPrefix = []byte("Hardware UUID:")
|
||||
|
||||
func detectUDID() string {
|
||||
cmd := exec.Command("/usr/sbin/system_profiler", "SPHardwareDataType")
|
||||
lines := getLines(cmd)
|
||||
for _, line := range lines {
|
||||
line = bytes.TrimSpace(line)
|
||||
if bytes.HasPrefix(line, udidPrefix) {
|
||||
return string(bytes.TrimSpace(bytes.TrimPrefix(line, udidPrefix)))
|
||||
}
|
||||
}
|
||||
logrus.Fatal("udid not found; is this a Mac OSX?")
|
||||
return ""
|
||||
}
|
||||
|
||||
func getLines(cmd *exec.Cmd) [][]byte {
|
||||
out := combinedOutput(cmd)
|
||||
return bytes.Split(out, []byte("\n"))
|
||||
}
|
||||
func combinedOutput(cmd *exec.Cmd) []byte {
|
||||
out, err := cmd.CombinedOutput()
|
||||
if err != nil {
|
||||
fmt.Println(strings.Join(cmd.Args, "\n"))
|
||||
fmt.Fprintln(os.Stderr, err)
|
||||
os.Exit(1)
|
||||
}
|
||||
return out
|
||||
}
|
||||
@@ -1,67 +0,0 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"encoding/base64"
|
||||
"fmt"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
"golang.org/x/crypto/ssh"
|
||||
)
|
||||
|
||||
const publicKeyBase64 string = "AAAAB3NzaC1yc2EAAAADAQABAAACAQC/KEuXDlwXRPysCkpDBz+pm15kfS1UWcNbfXK6DLQJIkBx0wjPyc/eDAv4fNzoMGE2M+hqNGK1fE0R+g7YTA8pVexTdXl82Xn/GpbgTuRLZSNkYkc44nP+SjgwD7S7rQFLNBkMLzGj82hnTy3g+ITgOPIUVv3lIFRDn4eRiWAwU+IdUbIqpEB1fTNSIWNltevD1+HA9Y+uDHWDB5ihduBy0daIQSJR4BM07CxgIW2ss9H1TjDCV0SnUzUW3ZK/qcUKCS8ukree+qgSDhF8yVGJNfUpPV5BQEUz+jDN4DkWMtn+8GHb85meWXl5pTmBYfpG8OJvFVtmiBBJyX1MkFhS4rN1PlW8utog7b0/3jvO56eEmzpWQfWCm2gotn7PqWm4VmaR3jvYDIuesrtyZgFqBwKb7Mx8bKqNIEkvrfo+kX80crnoemNBSG5e4p4pspi9vgm6RFF/MkrrQsJsEuWIn9MQj/5DHPle1VWxDYQLa4uqu14fAEMvMAjDLzAw5FMjLVBkr5slUTaC2rnHL48i6IXSMUk98BKXUv9awrPPSJUg3dMqYcalaEmMcaQ/IaW4FGqpBJclapQDhhJ64UFxwufusAQyuHy2uHHviPAUQseA0nzSUIPvcv/7Kwo7AceuniGeakBT05Nnx8Oy2coPAvyjE0ruM3DoVntItiJg0Q=="
|
||||
|
||||
var udidTests = []struct {
|
||||
in string // input
|
||||
expected string // expected result
|
||||
}{
|
||||
{"test-udid-1", `pKBLBUgEGYpY/UpyaQls2AeFie6kqFRUXH1prvHOowI84fgcUtFrfkZnV/xiVkV95ffFiZ4kYcEWx7ffFF18FwIg47wUSXGnfp8Xt5zHMlo+XmgXd08kUlUdQEqGhPL4VfIEIogBfURYGF+JNsXfo9k33OdaHgKgBzVNN0ZNgvvhcG1D9ACnIY0t+0BXNeIZRdVT5CE6x37JTls8x279mSXl5+BEV2czDVFbG/TgYlcTqtLRqhChtwY//HhthjjfBSV893hT03h/32mJ8udynMKn8UlD0UWvIrmFx1Z+hHoEBN6N3ybdfVoOrEFdTDhP9IQX+Uz5AT/xozR0Nq0hXEA47ZtYopsTfECcgKjCOPe3DbLD+yuOeHq9cR2U+LazubCcW8krjZEymzshiPrFFfC3nHLsZK3nlS64qtxyi8mHumJLdAh8e1UkV5q564NWjabvqIfENLIFyBDMc737xS7yhGj23pV3sqQpXI1waJIq4e8wrvmZsHvtYaQvE5vN+UsiAr9pXudMbVs0baVUi5yxqWdkoeJE7VDRPrxDkvQ8c8ygKpSlaq+4W8rVSLrOJMBlbooEAZpb0LMvl2x0rBPry5vsgFJpYtyLWTJrD0mQkuPJFXUNq+joAonMfSEEggKb2czGvWenmPwBpU4/2rj11Rgnc2eJUi9cbhZn+Ag=`},
|
||||
{"test-udid-2", `u53OcTYRuaRwE9tv3uq6ovBCaHEBnlKtx5tXEtoKDq8ntYjA4TV4xXkHEL9vOdrOUzaQe6ul6KAuYi1HBH5jdYHIKMJnLyypgcKDupVyF759WR0mHVJmj/b1RQAHDfK8BViqUN4NXhUsxgpJvEMt1gAN67b9xpWIE9VXAOwXcNnQkm/5oV7fvv2y7cxkW79N1mfnbFmpYASZlCVL4kapP8tzJcOvRlEwnsIL7O5Rv3seSVUDH1HLo5+R0iZXrar0tAG+oOnvf/O4KnvgTP8JHpxJqy+Ddqvx9XI2ZoGLXweFGEDBVRxDE8LnGGr6e/b7VNxi71kdoT8T/NJBDNA8a7w1uTcJiOO3ru2JehYLDuL7MWkNpXu109PIVdo9Yu/shYoQ/3PxzOp4GqS5MP9Ez035f1YSwhvzDguU/PJ2v/RQoEc6Xk6dT7tX1S5qyH0UZVubYPgsB/yKI5RP2RynhRylG3VStB+8gY1DgO6YQGltSfzSRHBg45ts914QqrsvMgsl1m4NDZfy9NfKSzsP1k3NzR9el7gmF85guKtytq+1/nYJARQvOI8bNZCIHACRIHWEGrfTDDV7/hsgwIAIOwbwutUWfrJidUkwcc4RTzF2JH6Yb3gx2lUbh7Ook3nCTTKtTkntOXaJmDlo1QeCumA1PDO/TqsVhE1a7Y746XI=`},
|
||||
{"test-udid-3", `sh1ezj9GVrTJxlg4kE2xtCiMkiZbHEi1XVzpybSEJ4VqYullLXcCuvJlcplypELx8eG9YItVi8RJ6Xpk6TrMKyJwZIENopAZ3VfujfYZWf/8FPTXuwSsije2qi1WY01jy4+P+QX7aoJ5wrwVYK3asuCzPCXT73i+QOwlK2gMYtdJ9CZ+gWN4q5RZqDVJHcg9j3hvxBFEVFdxlWWScgKbGdgmS/E4fHxaZSOdLy01VC4FKE3goEIStOvOJa/t972/h+zZ5rgpc/on9Xxu4NL/Q70/QSgS4pfaiQdJO5ZkCXC72Sz3DcIM2XjDDQ5ZF6o9DewC9v832/pyGjG3teuUQDujGfJF3yzBtwu7qEQqXWXZiAy3zatTgU0aAz+sFceK+Zs5ryPSEsfh7gqIDBmvtv3Zzxv71BzsLQXlO2aKRo9qhAnyI6ZlByJeDDWNVFNR+GnwolBu8Ixqru702FIxISdRyWyRiOpGDBp+PmWyb9/WK0E59NapeWRo8GC/W1K7GHHVCn0vcwC0c2QYP6ZD8Ho2AAZ3EJlZLT/Skz+Dy35rA0n4680zlQf4vEWWSWDnNMGWYw809f5k99ymbCR7mN+nAiOjnzMDJtHDutm61BU+0q+KfsxH6NLGg/lsZj3IuCGtVUEiORLsGNeP6weBY9rJf1el3m6PuWeF2SniCfU=`},
|
||||
{"test-udid-4", `XNTNeLP1Sm4sqj6zgiwcKz5h8rYSQgfNH4R49KvuT5qMPkz0+iadyZFZGLvz1J7R0IsfSOqb2YGw6hddwm+T/buR/nj7laTRe40BbqU4yElJmjiZ7xL7SGAWVEiXOu6hCDQ7gmg2a7qvP/g0AFoLtonVpIQ345GSRJtxwwt6IRV6Uh1M2sGCN7wvgMX+r4hOVSYPnLyUOBpf7l3eY3g+5K8YriBYDNooDPFEYCHymUqYxhbXUNJ7pXSRLm8OkWKS8mLf7CcSl4hLIlwluK9VdOChHQzAaXwTIvx/VaxBNwPz1e1x1VyhPS+v+EmiXHA/nSvJYTZSGhJRy+Uo84xnl38/IH5gLm8qZao7r+SlyMojEepEb0WzVpbPva8hY1uWt2ADm0P8LfZRMt0qpEDlFItzuwsOyBIU8g6AMNQ08/DGof0s0zBGvF3y+cnV8u9M3qbQ8L8AXeCgznHAL92D46uAaGDuwxx7P+oDvzohIWwTYaWwPgZW1geUR2zQyiI2t7hvn0BTPCbFesCRXxly5t2RCR7BFpimfV/O8peB7oBgzIwg9PWSBBrnJ3hW6kXPT76sgWFigbtJ7kzi/9jHJz+qyX9rQwZia4V8toUQFwDuiMs9YrC0Xb90QV2nSyi6zGt5BjfjA736SVGllNUgvJ4UXr877HXpYc4MXhWaowY=`},
|
||||
{"test-udid-5", `qj6NIOFaS4ja+2HaVEUCe25RXlZFo1Rxp7GC+92aOHki6tWtrMiM1xaDC91LixTH8WejUfE6BZgdfEzq+zR545m/o2ClE9SUihIe3FkmywxdwKe+EPVDIsgZeaTlsSM1R4zqlpvdwhVerLA8Bvf9t0Sf06wEkaIiKMfgZsQSJ6/Rw6cWkXBgY4pmAnXferWTHp1Y8twiuRTFuCIMhEhinZYlJaPulF/U9r/g1pgGA/Bn7dab5YestJUePuHwxz1TFTb/3ZfXWSGzOANEcj49nVXFFi461FtLoCbZyIcbKDttnmlVBTNd/fpGbSx0HbiIsMYN2vQYjqvy7eWSQq1fru3cKPF1VzYntrzg3G4z5veHhgPR1ZwSKc6ExpQnW36JFQwNp3+YjsSYCq0LrPsPh7OREfSldbuwmZEnRM2L5BJqh4mPOjO9lUOT7nMWMRdyMQFWkEMMAgOdChnsBxMVuttGwyhKumh/3c6LBV/apq6JajjHV69WzZONX0VJIQwEOdMR53wmH/bLGwsqVh/ycEZqWWN1Cgl9SU9Ch+T1AQJf+zi8H0CIxXkdmAx+4tNa2Cu4zP1a/K2xtEY832TPUv5lgXExfndYS833q07t1iJa2P6HM5zB22qcikeQzYHESr2uTQjcYJvTnb3PODDXLbdrBbyBxfyEbbJWWyWg0lo=`},
|
||||
{"test-udid-6", `df8fsfJI9DaOMjxO8nPIc20ULi9xX5uctfTDPu7j+nA4tCeNRaV3Pe9P1pbklZCxMGqZkg9Ba2sp9tZuPYJLZnbiyDS9w9y/eTr75CKK2TI7vPGWAIffej9dLs2sqHtsZEbttYhVldhlr4pilRGmtlOgg/mhaZUc9Hr0/GE2x8/SDwDoHTIy4oAcf64/zIOTv/rQDpc/jguqTWbG/oU2RBDsKjSFGAZQRcCq8BcxJ1yVlNfPZNUaf4elqbPVsMhpn0xFNblFKinWEW++VabsvgitXwcvyX4W+QfZF1d00bVSk6a2ZamkdT4E74/FcOYlUtgGtxVGB2usji9m1Jyrn5FHcEa5iCEjSghfJOW9837c8TlDmjmDXaqZ5S2MSaeF1eT9YxECxu6SVYlSxA5Q9Aiw+xMM2vF6IJOAnU8BhJctsJosVedojGNeSStRfhEMK3dq83OXZt7UljgHgfew7WF6oXfZp22xHAQfh7M9dykT87eOYlD5KOw6yuh+R0HU6Ev5Et7syeYZgfRYNGJwSp27QISf9Bccuo4ppPZMlmkTxYkbEA/5bDN7gB1ESITiIWgIqakgizRNriPTI6ED+bF01XwI6rJv9/8pn3z4QKKW89NzIOE0Lbhn+6SzvQ0F4ynC7vkwKWLrNEA4kGfff5e4yn8NXCg8PXX2zqP7soc=`},
|
||||
{"test-udid-7", `UNexHoNiQQ+V+Ht2nwpzH6/43o3T0qe2V9Hf5H3HPZ9ss4bHIk3Y4FIsEoGQlMWjHsV29v4SjUtgBtdZV47VS09PPnFfJxFtav4BCwyecsk3sZ3Zqkdx/RAZG4YmFddp7g01ddAKh5Xi+rV83bLu0o9Mkgi0YdVLIcCw3sxJMvUVFhSdyFDUyqXeoWAMErU434fcGVfl2wCq0hdfEmKWjOAaxQudfYWk/3dA5ZRk3Gtg55gRam3YfgHvl80KvgG4d2zvpafyGnCqHh1P1iTabnvIMw23giP+9onOlnW2H6a09gXXTlZLWT5HYlwgd7FOOYUy//2fBcGxx2IoSJXbquisY8FhSm+qKIqjYS2KbVLc9jK5QJ8Eibk0NjZz2p31UAyJicCCa0K4R/vthCcKrQn9hDk9L3JcvnZ3/LyAmQh1wph8iYmCTTmuRrUmJqaw4fdNpKIN4mPhi4X4fzddK4BoGz04Gz/pM17HV3dU8SZXxVWZkD4xq/MqeBkgkfXdHpaw4phlKCtOEsx2W5fU5ibLz19gRQoVKF/xtjpdaUnRKtkDmrTzKB5MywTy/wIoabJiO88ZnqkaUUjKxTreDqMmrc+5nKClYD6+6T0BwQqX+7lz+M4FhQ9YqU/hdg/UKsLOqEqyc+OkBJz5wMhy1SBKz/pS8nB5TDeXPg5Khz8=`},
|
||||
{"test-udid-8", `KhtESQA2i6wXkVcQqRmwlQP2ZbvyoNVupXdnYUW+x6qc5As1+LhMhpLWJxt3YWAtwiMkxAqffedz/PjBtph6rykwErts1jsHa9p76+IPegt5hK98lHFZr+SdRWuzcmfLJXJsr50uwgj1m9/1pftCXd+6E/vHQVE/31LG109iHvYV3744w3BOYOXMN6wpe9XFHDOoNCQngaZaGbXYAGuMfWo5q5wPfzG35uJMvvkuOcHTlSBq/Ys3gmlP3fx1/xrykyUIhdMwI42Pl8SAqw7LHtZdKLCOHlZr5pB+RehMAq1fYcSOJkUaYg+wsU6jJKhuHhFXufwZ34nD8ABAf8rOYwq2DpmGhhT3hAUx7+wzRYLX2Ny+conYYxygET515JwTwB+HseesmeU/SDsjweSky7TcHjO0DIkwOld/EBzuvg1ndzNDX2wc1KxcnoiWIIvPPtzWkFO6c5mmvZB+30I4QF/7zkHwGq5U0e3xztcOaZ6L0yZBfasdk+V/xqXK/bRIkmxYadOmDndfiHvLOzprTShdHNsrOjGCMv6SmtLlqDceOmfedVAeqRCiSK+7XWhBs8pDRgtf7tUy7iR/yr94204sFVeLt3OFvUxE1xIs19brntU/IUseNiwAlmvGB4Dyws86Pp6mvKkutgpemdVy5cTsiiHjuY8PtpAE7mtzzPI=`},
|
||||
{"test-udid-9", `oOVa8cX0x8HxOCx6wnOz9fAdIRGHXoIgPZBvAQnRNbKgXmN5dbHwAtyyOEoKw+M49poW98OfQDgFfHc0zLV3Y7udWhxqTzXhEokfC3/t9bmmGvM9JP2L/wJs3fHEzEdLQpGWoAMGuRNHgHKYDZBfNghFABh9nPxpFudRERbQikOpcycCLY4ppkVDj8w6w94/nJQIZah/OsDvpmi8SXu45F6CHqvGAgTc0BRp+Zb3o8vhCqgftKnG6FXAt17P7hg73q9B2zmbZcipF5sahpxyUlv+jfihYjJfnmVj7qBaZC4R3+qzfcopMLNDM6Ak+L+vIOPzQciumjXLqHC9xs0c+fcszEvQFtUNac9t0dwE3DOTAokTwmEAZNLzFRyg666ahsN0tvtwfzGu7skosv7y12PzA/KGYCUY+Ju/0tVgh7pUYMFCrAfgYgmaQgjUp5m+TiHuXmXVP+32ilgKYKXY/i0NCrSlMKar0wTrmECdFwii0DOvqReKeI/ijrGT081Fsh3X2mxTAqKRlXZs/4//rm1W/0iFvS5Rs0gFy+5NNgQxbj2hIaC0Z6LdrgZQuEeaA6GC0gl6CtM9Rk72bHLXTUgSIE8o/kzzTtFazJEcQYT0ajgxWUeDXVM6GITUWBUG4ecMhlekUFXGaNiuzzKn9EyFfUpA9uHkBkhCj/rd46Y=`},
|
||||
}
|
||||
|
||||
func TestSignUdid(t *testing.T) {
|
||||
t.Log("Check if UDID are as expected")
|
||||
for _, udidTest := range udidTests {
|
||||
signatureBase64, _ := signUdid(udidTest.in)
|
||||
if signatureBase64 != udidTest.expected {
|
||||
t.Error("UDID not signed properly")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestValidSignature(t *testing.T) {
|
||||
t.Log("Check if Signed UDID are valid")
|
||||
|
||||
// decode public key bytes
|
||||
publicKeyBytes, _ := base64.StdEncoding.DecodeString(publicKeyBase64)
|
||||
// parse public key bytes to get an ssh.PublicKey object
|
||||
publicKey, _ := ssh.ParsePublicKey(publicKeyBytes)
|
||||
|
||||
for _, udidTest := range udidTests {
|
||||
signatureBase64, _ := signUdid(udidTest.in)
|
||||
// reconstruct a ssh.Signature object
|
||||
blob, _ := base64.StdEncoding.DecodeString(signatureBase64)
|
||||
sig := ssh.Signature{Format: "ssh-rsa", Blob: blob}
|
||||
// verify signature
|
||||
if err := publicKey.Verify([]byte(udidTest.in), &sig); err != nil {
|
||||
fmt.Printf("Error: %q\n", err)
|
||||
t.Error("Signed UDID is not valid")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestPath(t *testing.T) {
|
||||
expected := filepath.Join("Library", "Containers", "com.docker.docker", "Data")
|
||||
actual := appContainerPath()
|
||||
if !strings.HasSuffix(actual, expected) {
|
||||
t.Errorf("Path should end with %s got %s", expected, actual)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user