share_link.go: improve standard coherence

- we now support "none" encryption
- tested with 100% code coverage
This commit is contained in:
DuckSoft
2020-07-18 10:08:32 +08:00
parent be718e562d
commit 4b45e575fa
2 changed files with 9 additions and 4 deletions
+4 -4
View File
@@ -19,7 +19,8 @@ var validTypes = map[string]struct{}{
}
var validEncryptionProviders = map[string]struct{}{
"ss": {},
"ss": {},
"none": {},
}
var validSSEncryptionMap = map[string]struct{}{
@@ -179,9 +180,8 @@ func NewShareInfoFromURL(shareLink string) (info ShareInfo, e error) {
e = errors.New("ss password cannot be empty")
return
}
} else {
e = errors.New(fmt.Sprintf("encryption param %s is not supported", info.Encryption))
return
} else if encryptionProviderName == "none" {
// no encryption. do nothing.
}
}
+5
View File
@@ -219,6 +219,11 @@ func TestNewShareInfoFromURL_Encryption_Unknown(t *testing.T) {
assert.Error(t, e, "unknown encryption should not be supported")
}
func TestNewShareInfoFromURL_Encryption_None(t *testing.T) {
_, e := NewShareInfoFromURL("trojan-go://what@ever.me?encryption=none")
assert.Nil(t, e, "should support none encryption")
}
func TestNewShareInfoFromURL_Encryption_SS_NotSupportedMethods(t *testing.T) {
invalidMethods := []string{"rc4-md5", "rc4", "des-cfb", "table", "salsa20-ctr"}
for _, invalidMethod := range invalidMethods {