Feature: Support none encryption preset for PIA

This commit is contained in:
Quentin McGaw (desktop)
2021-05-31 00:32:39 +00:00
parent 8b8bab5c58
commit 3c3cd431cd
4 changed files with 19 additions and 7 deletions

View File

@@ -50,7 +50,7 @@ func (settings *Provider) readPrivateInternetAccess(r reader) (err error) {
} }
encryptionPreset, err := r.env.Inside("PIA_ENCRYPTION", encryptionPreset, err := r.env.Inside("PIA_ENCRYPTION",
[]string{constants.PIAEncryptionPresetNormal, constants.PIAEncryptionPresetStrong}, []string{constants.PIAEncryptionPresetNone, constants.PIAEncryptionPresetNormal, constants.PIAEncryptionPresetStrong},
params.RetroKeys([]string{"ENCRYPTION"}, r.onRetroActive), params.RetroKeys([]string{"ENCRYPTION"}, r.onRetroActive),
params.Default(constants.PIACertificateStrong), params.Default(constants.PIACertificateStrong),
) )

View File

@@ -8,6 +8,7 @@ import (
//nolint:lll //nolint:lll
const ( const (
PIAEncryptionPresetNone = "none"
PIAEncryptionPresetNormal = "normal" PIAEncryptionPresetNormal = "normal"
PIAEncryptionPresetStrong = "strong" PIAEncryptionPresetStrong = "strong"
PiaX509CRLNormal = "MIICWDCCAUAwDQYJKoZIhvcNAQENBQAwgegxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTETMBEGA1UEBxMKTG9zQW5nZWxlczEgMB4GA1UEChMXUHJpdmF0ZSBJbnRlcm5ldCBBY2Nlc3MxIDAeBgNVBAsTF1ByaXZhdGUgSW50ZXJuZXQgQWNjZXNzMSAwHgYDVQQDExdQcml2YXRlIEludGVybmV0IEFjY2VzczEgMB4GA1UEKRMXUHJpdmF0ZSBJbnRlcm5ldCBBY2Nlc3MxLzAtBgkqhkiG9w0BCQEWIHNlY3VyZUBwcml2YXRlaW50ZXJuZXRhY2Nlc3MuY29tFw0xNjA3MDgxOTAwNDZaFw0zNjA3MDMxOTAwNDZaMCYwEQIBARcMMTYwNzA4MTkwMDQ2MBECAQYXDDE2MDcwODE5MDA0NjANBgkqhkiG9w0BAQ0FAAOCAQEAQZo9X97ci8EcPYu/uK2HB152OZbeZCINmYyluLDOdcSvg6B5jI+ffKN3laDvczsG6CxmY3jNyc79XVpEYUnq4rT3FfveW1+Ralf+Vf38HdpwB8EWB4hZlQ205+21CALLvZvR8HcPxC9KEnev1mU46wkTiov0EKc+EdRxkj5yMgv0V2Reze7AP+NQ9ykvDScH4eYCsmufNpIjBLhpLE2cuZZXBLcPhuRzVoU3l7A9lvzG9mjA5YijHJGHNjlWFqyrn1CfYS6koa4TGEPngBoAziWRbDGdhEgJABHrpoaFYaL61zqyMR6jC0K2ps9qyZAN74LEBedEfK7tBOzWMwr58A==" PiaX509CRLNormal = "MIICWDCCAUAwDQYJKoZIhvcNAQENBQAwgegxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTETMBEGA1UEBxMKTG9zQW5nZWxlczEgMB4GA1UEChMXUHJpdmF0ZSBJbnRlcm5ldCBBY2Nlc3MxIDAeBgNVBAsTF1ByaXZhdGUgSW50ZXJuZXQgQWNjZXNzMSAwHgYDVQQDExdQcml2YXRlIEludGVybmV0IEFjY2VzczEgMB4GA1UEKRMXUHJpdmF0ZSBJbnRlcm5ldCBBY2Nlc3MxLzAtBgkqhkiG9w0BCQEWIHNlY3VyZUBwcml2YXRlaW50ZXJuZXRhY2Nlc3MuY29tFw0xNjA3MDgxOTAwNDZaFw0zNjA3MDMxOTAwNDZaMCYwEQIBARcMMTYwNzA4MTkwMDQ2MBECAQYXDDE2MDcwODE5MDA0NjANBgkqhkiG9w0BAQ0FAAOCAQEAQZo9X97ci8EcPYu/uK2HB152OZbeZCINmYyluLDOdcSvg6B5jI+ffKN3laDvczsG6CxmY3jNyc79XVpEYUnq4rT3FfveW1+Ralf+Vf38HdpwB8EWB4hZlQ205+21CALLvZvR8HcPxC9KEnev1mU46wkTiov0EKc+EdRxkj5yMgv0V2Reze7AP+NQ9ykvDScH4eYCsmufNpIjBLhpLE2cuZZXBLcPhuRzVoU3l7A9lvzG9mjA5YijHJGHNjlWFqyrn1CfYS6koa4TGEPngBoAziWRbDGdhEgJABHrpoaFYaL61zqyMR6jC0K2ps9qyZAN74LEBedEfK7tBOzWMwr58A=="

View File

@@ -13,16 +13,22 @@ import (
func (p *PIA) BuildConf(connection models.OpenVPNConnection, func (p *PIA) BuildConf(connection models.OpenVPNConnection,
username string, settings configuration.OpenVPN) (lines []string) { username string, settings configuration.OpenVPN) (lines []string) {
var defaultCipher, defaultAuth, X509CRL, certificate string var defaultCipher, defaultAuth, X509CRL, certificate string
if settings.Provider.ExtraConfigOptions.EncryptionPreset == constants.PIAEncryptionPresetNormal { switch settings.Provider.ExtraConfigOptions.EncryptionPreset {
case constants.PIAEncryptionPresetNormal:
defaultCipher = constants.AES128cbc defaultCipher = constants.AES128cbc
defaultAuth = constants.SHA1 defaultAuth = constants.SHA1
X509CRL = constants.PiaX509CRLNormal X509CRL = constants.PiaX509CRLNormal
certificate = constants.PIACertificateNormal certificate = constants.PIACertificateNormal
} else { // strong encryption case constants.PIAEncryptionPresetStrong:
defaultCipher = constants.AES256cbc defaultCipher = constants.AES256cbc
defaultAuth = constants.SHA256 defaultAuth = constants.SHA256
X509CRL = constants.PiaX509CRLStrong X509CRL = constants.PiaX509CRLStrong
certificate = constants.PIACertificateStrong certificate = constants.PIACertificateStrong
default: // no encryption preset
defaultCipher = ""
defaultAuth = ""
X509CRL = constants.PiaX509CRLNormal
certificate = constants.PIACertificateNormal
} }
if settings.Cipher == "" { if settings.Cipher == "" {
@@ -57,10 +63,15 @@ func (p *PIA) BuildConf(connection models.OpenVPNConnection,
"auth-user-pass " + constants.OpenVPNAuthConf, "auth-user-pass " + constants.OpenVPNAuthConf,
connection.ProtoLine(), connection.ProtoLine(),
connection.RemoteLine(), connection.RemoteLine(),
"auth " + settings.Auth,
} }
if settings.Cipher != "" {
lines = append(lines, utils.CipherLines(settings.Cipher, settings.Version)...) lines = append(lines, utils.CipherLines(settings.Cipher, settings.Version)...)
}
if settings.Auth != "" {
lines = append(lines, "auth "+settings.Auth)
}
if strings.HasSuffix(settings.Cipher, "-gcm") { if strings.HasSuffix(settings.Cipher, "-gcm") {
lines = append(lines, "ncp-disable") lines = append(lines, "ncp-disable")

View File

@@ -23,14 +23,14 @@ func getPort(tcp bool, encryptionPreset string, customPort uint16) (
func getDefaultPort(tcp bool, encryptionPreset string) (port uint16) { func getDefaultPort(tcp bool, encryptionPreset string) (port uint16) {
if tcp { if tcp {
switch encryptionPreset { switch encryptionPreset {
case constants.PIAEncryptionPresetNormal: case constants.PIAEncryptionPresetNone, constants.PIAEncryptionPresetNormal:
port = 502 port = 502
case constants.PIAEncryptionPresetStrong: case constants.PIAEncryptionPresetStrong:
port = 501 port = 501
} }
} else { } else {
switch encryptionPreset { switch encryptionPreset {
case constants.PIAEncryptionPresetNormal: case constants.PIAEncryptionPresetNone, constants.PIAEncryptionPresetNormal:
port = 1198 port = 1198
case constants.PIAEncryptionPresetStrong: case constants.PIAEncryptionPresetStrong:
port = 1197 port = 1197