Skip to content

Commit 24da54e

Browse files
committed
Added ability to bypass APNS certificate validation
This is mostly for edge cases like some voip certs. This should fix #636
1 parent 7f43eb6 commit 24da54e

File tree

1 file changed

+20
-3
lines changed

1 file changed

+20
-3
lines changed

PushSharp.Apple/ApnsConfiguration.cs

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,22 @@ public class ApnsConfiguration
2222

2323
#endregion
2424

25+
public ApnsConfiguration (ApnsServerEnvironment serverEnvironment, string certificateFile, string certificateFilePwd, bool validateIsApnsCertificate)
26+
: this (serverEnvironment, System.IO.File.ReadAllBytes (certificateFile), certificateFilePwd, validateIsApnsCertificate)
27+
{
28+
}
29+
2530
public ApnsConfiguration (ApnsServerEnvironment serverEnvironment, string certificateFile, string certificateFilePwd)
2631
: this (serverEnvironment, System.IO.File.ReadAllBytes (certificateFile), certificateFilePwd)
2732
{
2833
}
2934

35+
public ApnsConfiguration (ApnsServerEnvironment serverEnvironment, byte[] certificateData, string certificateFilePwd, bool validateIsApnsCertificate)
36+
: this (serverEnvironment, new X509Certificate2 (certificateData, certificateFilePwd,
37+
X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.PersistKeySet | X509KeyStorageFlags.Exportable), validateIsApnsCertificate)
38+
{
39+
}
40+
3041
public ApnsConfiguration (ApnsServerEnvironment serverEnvironment, byte[] certificateData, string certificateFilePwd)
3142
: this (serverEnvironment, new X509Certificate2 (certificateData, certificateFilePwd,
3243
X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.PersistKeySet | X509KeyStorageFlags.Exportable))
@@ -44,10 +55,15 @@ public ApnsConfiguration (string overrideHost, int overridePort, bool skipSsl =
4455

4556
public ApnsConfiguration (ApnsServerEnvironment serverEnvironment, X509Certificate2 certificate)
4657
{
47-
Initialize (serverEnvironment, certificate);
58+
Initialize (serverEnvironment, certificate, true);
59+
}
60+
61+
public ApnsConfiguration (ApnsServerEnvironment serverEnvironment, X509Certificate2 certificate, bool validateIsApnsCertificate)
62+
{
63+
Initialize (serverEnvironment, certificate, validateIsApnsCertificate);
4864
}
4965

50-
void Initialize (ApnsServerEnvironment serverEnvironment, X509Certificate2 certificate)
66+
void Initialize (ApnsServerEnvironment serverEnvironment, X509Certificate2 certificate, bool validateIsApnsCertificate)
5167
{
5268
ServerEnvironment = serverEnvironment;
5369

@@ -70,7 +86,8 @@ void Initialize (ApnsServerEnvironment serverEnvironment, X509Certificate2 certi
7086
AdditionalCertificates = new List<X509Certificate2> ();
7187
AddLocalAndMachineCertificateStores = false;
7288

73-
CheckIsApnsCertificate ();
89+
if (validateIsApnsCertificate)
90+
CheckIsApnsCertificate ();
7491

7592
ValidateServerCertificate = false;
7693

0 commit comments

Comments
 (0)