'''
Created on 12.04.2010

@author: frank
'''

oHost = "Host"  #gui
oAddressFamily = "AddressFamily"
oBatchMode = "BatchMode"
oBindAddress = "BindAddress"
oChallengeResponseAuthentication = "ChallengeResponseAuthentication" #gui
oCheckHostIP = "CheckHostIP" #gui
oCipher = "Cipher"
oCiphers = "Ciphers"
oClearAllForwardings = "ClearAllForwardings" #gui
oCompression = "Compression" #gui
oCompressionLevel = "CompressionLevel" #gui
oConnectionAttempts = "ConnectionAttempts"
oConnectTimeout = "ConnectTimeout"
oControlMaster = "ControlMaster"
oControlPath = "ControlPath"
oDynamicForward = "DynamicForward"
oEnableSSHKeysign = "EnableSSHKeysign"
oEscapeChar = "EscapeChar"
oExitOnForwardFailure = "ExitOnForwardFailure" #gui
oForwardAgent = "ForwardAgent" #gui
oForwardX11 = "ForwardX11" #gui
oForwardX11Trusted = "ForwardX11Trusted" #gui
oGatewayPorts = "GatewayPorts" #gui
oGlobalKnownHostsFile = "GlobalKnownHostsFile"
oGSSAPIAuthentication = "GSSAPIAuthentication" #gui
oGSSAPIKeyExchange = "GSSAPIKeyExchange" #gui
oGSSAPIDelegateCredentials = "GSSAPIDelegateCredentials" #gui
oGSSAPITrustDns = "GSSAPITrustDns" #gui
oHashKnownHosts = "HashKnownHosts" #gui
oHostbasedAuthentication = "HostbasedAuthentication" #gui
oHostKeyAlgorithms = "HostKeyAlgorithms"
oHostKeyAlias = "HostKeyAlias"
oHostName = "HostName" #gui
oIdentitiesOnly = "IdentitiesOnly" #gui
oIdentityFile = "IdentityFile"
oKbdInteractiveAuthentication = "KbdInteractiveAuthentication" #gui
oKbdInteractiveDevices = "KbdInteractiveDevices"
oLocalCommand = "LocalCommand"
oLocalForward = "LocalForward" #gui
oLogLevel = "LogLevel"
oMACs = "MACs"
oNoHostAuthenticationForLocalhost = "NoHostAuthenticationForLocalhost"
oNumberOfPasswordPrompts = "NumberOfPasswordPrompts"
oPasswordAuthentication = "PasswordAuthentication" #gui
oPermitLocalCommand = "PermitLocalCommand" #gui
oPort = "Port" #gui
oPreferredAuthentications = "PreferredAuthentications"
oProtocol = "Protocol"
oProxyCommand = "ProxyCommand"
oPubkeyAuthentication = "PubkeyAuthentication" #gui
oRekeyLimit = "RekeyLimit"
oRemoteForward = "RemoteForward" #gui
oRhostsRSAAuthentication = "RhostsRSAAuthentication" #gui
oRSAAuthentication = "RSAAuthentication" #gui
oSendEnv = "SendEnv" 
oServerAliveCountMax = "ServerAliveCountMax"
oServerAliveInterval = "ServerAliveInterval"
oSmartcardDevice = "SmartcardDevice"
oStrictHostKeyChecking = "StrictHostKeyChecking" #gui
oTCPKeepAlive = "TCPKeepAlive" #gui
oTunnel = "Tunnel" #gui
oTunnelDevice = "TunnelDevice" 
oUseBlacklistedKeys = "UseBlacklistedKeys" #gui
oUsePrivilegedPort = "UsePrivilegedPort" #gui
oUser = "User" #gui
oUserKnownHostsFile = "UserKnownHostsFile"
oVerifyHostKeyDNS = "VerifyHostKeyDNS" #gui
oVisualHostKey = "VisualHostKey" #gui
oXAuthLocation = "XAuthLocation"


option = {
           oHost : oHost.lower(),
           oAddressFamily : oAddressFamily.lower(),
           oBatchMode : oBatchMode.lower(),
           oBindAddress : oBindAddress.lower(),
           oChallengeResponseAuthentication : oChallengeResponseAuthentication.lower(),
           oCheckHostIP : oCheckHostIP.lower(),
           oCipher : oCipher.lower(),
           oCiphers : oCiphers.lower(),
           oClearAllForwardings : oClearAllForwardings.lower(),
           oCompression : oCompression.lower(),
           oCompressionLevel : oCompressionLevel.lower(),
           oConnectionAttempts : oConnectionAttempts.lower(),
           oConnectTimeout : oConnectTimeout.lower(),
           oControlMaster : oControlMaster.lower(),
           oControlPath : oControlPath.lower(),
           oDynamicForward : oDynamicForward.lower(),
           oEnableSSHKeysign : oEnableSSHKeysign.lower(),
           oEscapeChar : oEscapeChar.lower(),
           oExitOnForwardFailure : oExitOnForwardFailure.lower(),
           oForwardAgent : oForwardAgent.lower(),
           oForwardX11 : oForwardX11.lower(),
           oForwardX11Trusted : oForwardX11Trusted.lower(),
           oGatewayPorts : oGatewayPorts.lower(),
           oGlobalKnownHostsFile : oGlobalKnownHostsFile.lower(),
           oGSSAPIAuthentication : oGSSAPIAuthentication.lower(),
           oGSSAPIKeyExchange : oGSSAPIKeyExchange.lower(),
           oGSSAPIDelegateCredentials : oGSSAPIDelegateCredentials.lower(),
           oGSSAPITrustDns : oGSSAPITrustDns.lower(),
           oHashKnownHosts : oHashKnownHosts.lower(),
           oHostbasedAuthentication : oHostbasedAuthentication.lower(),
           oHostKeyAlgorithms : oHostKeyAlgorithms.lower(),
           oHostKeyAlias : oHostKeyAlias.lower(),
           oHostName : oHostName.lower(),
           oIdentitiesOnly : oIdentitiesOnly.lower(),
           oIdentityFile : oIdentityFile.lower(),
           oKbdInteractiveAuthentication : oKbdInteractiveAuthentication.lower(),
           oKbdInteractiveDevices : oKbdInteractiveDevices.lower(),
           oLocalCommand : oLocalCommand.lower(),
           oLocalForward : oLocalForward.lower(),
           oLogLevel : oLogLevel.lower(),
           oMACs : oMACs.lower(),
           oNoHostAuthenticationForLocalhost : oNoHostAuthenticationForLocalhost.lower(),
           oNumberOfPasswordPrompts : oNumberOfPasswordPrompts.lower(),
           oPasswordAuthentication : oPasswordAuthentication.lower(),
           oPermitLocalCommand : oPermitLocalCommand.lower(),
           oPort : oPort.lower(),
           oPreferredAuthentications : oPreferredAuthentications.lower(),
           oProtocol : oProtocol.lower(),
           oProxyCommand : oProxyCommand.lower(),
           oPubkeyAuthentication : oPubkeyAuthentication.lower(),
           oRekeyLimit : oRekeyLimit.lower(),
           oRemoteForward : oRemoteForward.lower(),
           oRhostsRSAAuthentication : oRhostsRSAAuthentication.lower(),
           oRSAAuthentication : oRSAAuthentication.lower(),
           oSendEnv : oSendEnv.lower(),
           oServerAliveCountMax : oServerAliveCountMax.lower(),
           oServerAliveInterval : oServerAliveInterval.lower(),
           oSmartcardDevice : oSmartcardDevice.lower(),
           oStrictHostKeyChecking : oStrictHostKeyChecking.lower(),
           oTCPKeepAlive : oTCPKeepAlive.lower(),
           oTunnel : oTunnel.lower(),
           oTunnelDevice : oTunnelDevice.lower(),
           oUseBlacklistedKeys : oUseBlacklistedKeys.lower(),
           oUsePrivilegedPort : oUsePrivilegedPort.lower(),
           oUser : oUser.lower(),
           oUserKnownHostsFile : oUserKnownHostsFile.lower(),
           oVerifyHostKeyDNS : oVerifyHostKeyDNS.lower(),
           oVisualHostKey : oVisualHostKey.lower(),
           oXAuthLocation : oXAuthLocation.lower(),
         }

default_value =  {
                    oBatchMode : "no",
                    oChallengeResponseAuthentication : "yes",
                    oCheckHostIP : "yes",
                    oCipher : "3des",
                    oCiphers : "aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour128,arcfour256,arcfour,aes192-cbc,aes256-cbc,aes128-ctr,aes192-ctr,aes256-ctr",
                    oClearAllForwardings : "no",
                    oCompression : "no",
                    oCompressionLevel : 6,
                    oConnectionAttempts : 1,
                    oEnableSSHKeysign : "no",
                    oEscapeChar : "~",
                    oExitOnForwardFailure : "no",
                    oForwardAgent : "no",
                    oForwardX11 : "no",
                    oForwardX11Trusted : "yes",
                    oGatewayPorts : "no",
                    oGlobalKnownHostsFile : "/etc/ssh/ssh_known_hosts",
                    oGSSAPIAuthentication : "no",
                    oGSSAPIKeyExchange : "no",
                    oGSSAPIDelegateCredentials : "no",
                    oGSSAPITrustDns : "no",
                    oHashKnownHosts : "no",
                    oHostKeyAlgorithms : "ssh-rsa,ssh-dss",
                    oHostbasedAuthentication : "no",
                    oIdentitiesOnly : "no",
                    oKbdInteractiveAuthentication : "yes",
                    oLogLevel : "INFO",
                    oMACs : "hmac-md5,hmac-sha1,umac-64@openssh.com,hmac-ripemd160,hmac-sha1-96,hmac-md5-96",
                    oNumberOfPasswordPrompts : 3,
                    oPasswordAuthentication : "yes",
                    oPermitLocalCommand : "no",
                    oPort : "22",
                    oPreferredAuthentications : "gssapi-with-mic, hostbased, publickey, keyboard-interactive, password",
                    oProtocol : "2,1",
                    oPubkeyAuthentication : "yes",
                    oRhostsRSAAuthentication : "no", 
                    oRSAAuthentication : "yes",
                    oServerAliveInterval : "0",
                    oStrictHostKeyChecking : "ask",
                    oTCPKeepAlive : "yes",
                    oTunnel : "no",
                    oTunnelDevice : "any:any",
                    oUseBlacklistedKeys : "no",
                    oUsePrivilegedPort : "no",
                    oUserKnownHostsFile : "~/.ssh/known_hosts",
                    oVerifyHostKeyDNS : "no",
                    oVisualHostKey : "no",
                    oXAuthLocation : "/usr/bin/X11/xauth",
                  }