Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
T
Titanium-Web-Proxy
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Administrator
Titanium-Web-Proxy
Commits
c8874b20
Commit
c8874b20
authored
Feb 23, 2018
by
mohammadlachgar
Committed by
GitHub
Feb 23, 2018
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add new properties
Like : *overwritePFXfile *passwordpfx *namePFXfile *saveFakeCertificates
parent
f4401f97
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
67 additions
and
45 deletions
+67
-45
ProxyServer.cs
Titanium.Web.Proxy/ProxyServer.cs
+67
-45
No files found.
Titanium.Web.Proxy/ProxyServer.cs
View file @
c8874b20
...
...
@@ -40,27 +40,30 @@ namespace Titanium.Web.Proxy
/// <summary>
/// Backing field for corresponding public property
/// </summary>
private
bool
trustRootCertificate
;
private
bool
saveCertificate
=
false
;
private
int
clientConnectionCount
;
/// <summary>
///
Password for export and load rootCert.pfx
///
Backing field for corresponding public property
/// </summary>
private
string
password_rootCert
=
string
.
Empty
;
private
int
serverConnectionCount
;
/// <summary>
/// Backing field for corresponding public property
/// </summary>
private
int
clientConnectionCount
;
private
bool
trustRootCertificate
=
false
;
private
bool
overwritePFXfile
=
true
;
/// <summary>
///
Backing field for corresponding public property
///
Password for export and load rootCert.pfx
/// </summary>
private
int
serverConnectionCount
;
private
string
passwordPFX
=
string
.
Empty
;
private
string
namePFXfile
=
string
.
Empty
;
private
X509KeyStorageFlags
storageFlag
=
X509KeyStorageFlags
.
Exportable
;
private
bool
saveFakeCertificates
=
false
;
/// <summary>
/// A object that creates tcp connection to server
...
...
@@ -132,45 +135,75 @@ namespace Titanium.Web.Proxy
set
{
trustRootCertificate
=
value
;
CertificateManager
.
TrustrootCertificate
=
trustRootCertificate
;
//if (value)
//{
////convert to public function
///now, "Manually" call this function===> EnsureRootCertificate();
//
//}
CertificateManager
.
trustRootCertificate
=
trustRootCertificate
;
}
}
/// <summary>
/// Save all fake certificates in folder "crts"(will be
save
in proxy dll directory)
///
for can load the certificate and not make new certificate every time
/// Save all fake certificates in folder "crts"(will be
created
in proxy dll directory)
///
<para>for can load the certificate and not make new certificate every time </para>
/// </summary>
public
bool
SaveFakeCertificates
{
get
=>
save
Certificate
;
get
=>
save
FakeCertificates
;
set
{
save
Certificate
=
value
;
CertificateManager
.
SaveCertificate
=
saveCertificate
;
save
FakeCertificates
=
value
;
CertificateManager
.
saveFakeCertificates
=
saveFakeCertificates
;
}
}
/// <summary>
/// Overwrite Root certificate file
/// <para>true : replace an existing .pfx file if password is incorect or if RootCertificate = null</para>
/// </summary>
public
bool
OverwritePFXfile
{
get
=>
overwritePFXfile
;
set
{
overwritePFXfile
=
value
;
CertificateManager
.
overwritePFXfile
=
this
.
overwritePFXfile
;
}
}
/// <summary>
/// add password to rootCert.pfx
/// Password of the Root certificate file
/// <para>Set a password for the .pfx file</para>
/// </summary>
public
string
Password
_rootCert
public
string
Password
PFX
{
get
=>
this
.
password_rootCert
;
get
=>
passwordPFX
;
set
{
this
.
password_rootCert
=
value
;
CertificateManager
.
Password_rootCert
=
this
.
password_rootCert
;
passwordPFX
=
value
;
CertificateManager
.
passwordpfx
=
this
.
passwordPFX
;
}
}
/// <summary>
/// Name(path) of the Root certificate file
/// <para>Set the name(path) of the .pfx file. If it is string.Empty Root certificate file will be named as "rootCert.pfx" (and will be saved in proxy dll directory)</para>
/// </summary>
public
string
NamePFXfile
{
get
=>
namePFXfile
;
set
{
namePFXfile
=
value
;
CertificateManager
.
namePFXfile
=
this
.
namePFXfile
;
}
}
public
X509KeyStorageFlags
StorageFlag
{
get
=>
storageFlag
;
set
{
storageFlag
=
value
;
CertificateManager
.
storageFlag
=
this
.
storageFlag
;
}
}
/// <summary>
/// Select Certificate Engine
...
...
@@ -417,7 +450,6 @@ namespace Titanium.Web.Proxy
SetAsSystemProxy
(
endPoint
,
ProxyProtocolType
.
Http
);
}
/// <summary>
/// Set the given explicit end point as the default proxy server for current machine
/// </summary>
...
...
@@ -563,17 +595,10 @@ namespace Titanium.Web.Proxy
throw
new
Exception
(
"Proxy is already running."
);
}
try
{
if
(
ProxyEndPoints
.
OfType
<
ExplicitProxyEndPoint
>().
Any
(
x
=>
x
.
GenericCertificate
==
null
))
{
EnsureRootCertificate
();
}
}
catch
(
Exception
ex
)
{
throw
new
Exception
(
ex
.
Message
);
}
//clear any system proxy settings which is pointing to our own endpoint (causing a cycle)
//due to non gracious proxy shutdown before or something else
...
...
@@ -626,7 +651,6 @@ namespace Titanium.Web.Proxy
}
}
/// <summary>
/// Stop this proxy server
/// </summary>
...
...
@@ -771,8 +795,6 @@ namespace Titanium.Web.Proxy
}
}
/// <summary>
/// When a connection is received from client act
/// </summary>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment