diff options
Diffstat (limited to 'vendor/github.com/mikesmitty')
| -rw-r--r-- | vendor/github.com/mikesmitty/edkey/LICENSE | 21 | ||||
| -rw-r--r-- | vendor/github.com/mikesmitty/edkey/README.md | 32 | ||||
| -rw-r--r-- | vendor/github.com/mikesmitty/edkey/edkey.go | 88 | 
3 files changed, 0 insertions, 141 deletions
diff --git a/vendor/github.com/mikesmitty/edkey/LICENSE b/vendor/github.com/mikesmitty/edkey/LICENSE deleted file mode 100644 index 79169f1..0000000 --- a/vendor/github.com/mikesmitty/edkey/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2017 Michael Smith - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/vendor/github.com/mikesmitty/edkey/README.md b/vendor/github.com/mikesmitty/edkey/README.md deleted file mode 100644 index a1690ae..0000000 --- a/vendor/github.com/mikesmitty/edkey/README.md +++ /dev/null @@ -1,32 +0,0 @@ -# edkey -edkey allows you to marshal/write ED25519 private keys in the OpenSSH private key format - -## Example -```go -package main - -import ( -	"crypto/rand" -	"encoding/pem" -	"io/ioutil" -	"github.com/mikesmitty/edkey" -	"golang.org/x/crypto/ed25519" -	"golang.org/x/crypto/ssh" -) - -func main() { -	// Generate a new private/public keypair for OpenSSH -	pubKey, privKey, _ := ed25519.GenerateKey(rand.Reader) -	publicKey, _ := ssh.NewPublicKey(pubKey) - -	pemKey := &pem.Block{ -		Type:  "OPENSSH PRIVATE KEY", -		Bytes: edkey.MarshalED25519PrivateKey(privKey), -	} -	privateKey := pem.EncodeToMemory(pemKey) -	authorizedKey := ssh.MarshalAuthorizedKey(publicKey) - -	_ = ioutil.WriteFile("id_ed25519", privateKey, 0600) -	_ = ioutil.WriteFile("id_ed25519.pub", authorizedKey, 0644) -} -``` diff --git a/vendor/github.com/mikesmitty/edkey/edkey.go b/vendor/github.com/mikesmitty/edkey/edkey.go deleted file mode 100644 index 99aca55..0000000 --- a/vendor/github.com/mikesmitty/edkey/edkey.go +++ /dev/null @@ -1,88 +0,0 @@ -package edkey - -import ( -	"math/rand" - -	"golang.org/x/crypto/ed25519" -	"golang.org/x/crypto/ssh" -) - -/* Writes ed25519 private keys into the new OpenSSH private key format. -I have no idea why this isn't implemented anywhere yet, you can do seemingly -everything except write it to disk in the OpenSSH private key format. */ -func MarshalED25519PrivateKey(key ed25519.PrivateKey) []byte { -	// Add our key header (followed by a null byte) -	magic := append([]byte("openssh-key-v1"), 0) - -	var w struct { -		CipherName   string -		KdfName      string -		KdfOpts      string -		NumKeys      uint32 -		PubKey       []byte -		PrivKeyBlock []byte -	} - -	// Fill out the private key fields -	pk1 := struct { -		Check1  uint32 -		Check2  uint32 -		Keytype string -		Pub     []byte -		Priv    []byte -		Comment string -		Pad     []byte `ssh:"rest"` -	}{} - -	// Set our check ints -	ci := rand.Uint32() -	pk1.Check1 = ci -	pk1.Check2 = ci - -	// Set our key type -	pk1.Keytype = ssh.KeyAlgoED25519 - -	// Add the pubkey to the optionally-encrypted block -	pk, ok := key.Public().(ed25519.PublicKey) -	if !ok { -		//fmt.Fprintln(os.Stderr, "ed25519.PublicKey type assertion failed on an ed25519 public key. This should never ever happen.") -		return nil -	} -	pubKey := []byte(pk) -	pk1.Pub = pubKey - -	// Add our private key -	pk1.Priv = []byte(key) - -	// Might be useful to put something in here at some point -	pk1.Comment = "" - -	// Add some padding to match the encryption block size within PrivKeyBlock (without Pad field) -	// 8 doesn't match the documentation, but that's what ssh-keygen uses for unencrypted keys. *shrug* -	bs := 8 -	blockLen := len(ssh.Marshal(pk1)) -	padLen := (bs - (blockLen % bs)) % bs -	pk1.Pad = make([]byte, padLen) - -	// Padding is a sequence of bytes like: 1, 2, 3... -	for i := 0; i < padLen; i++ { -		pk1.Pad[i] = byte(i + 1) -	} - -	// Generate the pubkey prefix "\0\0\0\nssh-ed25519\0\0\0 " -	prefix := []byte{0x0, 0x0, 0x0, 0x0b} -	prefix = append(prefix, []byte(ssh.KeyAlgoED25519)...) -	prefix = append(prefix, []byte{0x0, 0x0, 0x0, 0x20}...) - -	// Only going to support unencrypted keys for now -	w.CipherName = "none" -	w.KdfName = "none" -	w.KdfOpts = "" -	w.NumKeys = 1 -	w.PubKey = append(prefix, pubKey...) -	w.PrivKeyBlock = ssh.Marshal(pk1) - -	magic = append(magic, ssh.Marshal(w)...) - -	return magic -}  | 
