@@ -3,14 +3,10 @@ package main
3
3
import (
4
4
"errors"
5
5
"fmt"
6
- "io/ioutil"
7
- "math/rand"
8
6
"os"
9
- "path"
10
7
"strings"
11
8
"time"
12
9
13
- homedir "github.com/mitchellh/go-homedir"
14
10
croc "github.com/schollz/croc/src"
15
11
"github.com/urfave/cli"
16
12
)
@@ -33,7 +29,7 @@ func main() {
33
29
app .UsageText = "croc allows any two computers to directly and securely transfer files"
34
30
// app.ArgsUsage = "[args and such]"
35
31
app .Commands = []cli.Command {
36
- cli. Command {
32
+ {
37
33
Name : "send" ,
38
34
Usage : "send a file" ,
39
35
Description : "send a file over the relay" ,
@@ -47,34 +43,7 @@ func main() {
47
43
return send (c )
48
44
},
49
45
},
50
- cli.Command {
51
- Name : "gen" ,
52
- Usage : "generate a permanent key" ,
53
- Description : "generates a permanent key that is used each time" ,
54
- HelpName : "croc gen" ,
55
- ArgsUsage : "[key]" ,
56
- Flags : []cli.Flag {
57
- cli.BoolFlag {Name : "new" , Usage : "overwrite key if it exists" },
58
- },
59
- Action : func (c * cli.Context ) error {
60
- homedir , err := homedir .Dir ()
61
- if err != nil {
62
- return err
63
- }
64
- if codePhrase == "" || c .Bool ("new" ) {
65
- codePhrase = randStringBytesMaskImprSrc (50 )
66
- if c .Args ().First () != "" {
67
- codePhrase = c .Args ().First ()
68
- }
69
- os .MkdirAll (path .Join (homedir , ".config" , "croc" ), 0644 )
70
- err = ioutil .WriteFile (path .Join (homedir , ".config" , "croc" , "key" ), []byte (codePhrase ), 0644 )
71
- }
72
- fmt .Printf ("your permanent key: %s\n " , codePhrase )
73
- fmt .Println ("use -new if you want to regenerate your key" )
74
- return err
75
- },
76
- },
77
- cli.Command {
46
+ {
78
47
Name : "receive" ,
79
48
Usage : "receive a file" ,
80
49
Description : "receve a file over the relay" ,
@@ -83,7 +52,7 @@ func main() {
83
52
return receive (c )
84
53
},
85
54
},
86
- cli. Command {
55
+ {
87
56
Name : "relay" ,
88
57
Usage : "start a croc relay" ,
89
58
Description : "the croc relay will handle websocket and TCP connections" ,
@@ -125,20 +94,6 @@ func main() {
125
94
cr .Stdout = c .GlobalBool ("stdout" )
126
95
cr .LocalOnly = c .GlobalBool ("local" )
127
96
cr .NoLocal = c .GlobalBool ("no-local" )
128
-
129
- // check if permanent code phrase is here
130
- homedir , err := homedir .Dir ()
131
- if err != nil {
132
- return err
133
- }
134
- keyFile := path .Join (homedir , ".config" , "croc" , "key" )
135
- if _ , err := os .Stat (keyFile ); err == nil {
136
- codePhraseBytes , err := ioutil .ReadFile (keyFile )
137
- if err == nil {
138
- codePhrase = string (codePhraseBytes )
139
- }
140
- }
141
-
142
97
return nil
143
98
}
144
99
@@ -183,31 +138,3 @@ func relay(c *cli.Context) error {
183
138
cr .CurveType = c .String ("curve" )
184
139
return cr .Relay ()
185
140
}
186
-
187
- // needed for croc gen
188
- const letterBytes = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
189
- const (
190
- letterIdxBits = 6 // 6 bits to represent a letter index
191
- letterIdxMask = 1 << letterIdxBits - 1 // All 1-bits, as many as letterIdxBits
192
- letterIdxMax = 63 / letterIdxBits // # of letter indices fitting in 63 bits
193
- )
194
-
195
- var src = rand .NewSource (time .Now ().UnixNano ())
196
-
197
- func randStringBytesMaskImprSrc (n int ) string {
198
- b := make ([]byte , n )
199
- // A src.Int63() generates 63 random bits, enough for letterIdxMax characters!
200
- for i , cache , remain := n - 1 , src .Int63 (), letterIdxMax ; i >= 0 ; {
201
- if remain == 0 {
202
- cache , remain = src .Int63 (), letterIdxMax
203
- }
204
- if idx := int (cache & letterIdxMask ); idx < len (letterBytes ) {
205
- b [i ] = letterBytes [idx ]
206
- i --
207
- }
208
- cache >>= letterIdxBits
209
- remain --
210
- }
211
-
212
- return string (b )
213
- }
0 commit comments