Skip to content

Commit 987dcda

Browse files
authored
Better CN/SAN matching
1 parent 5ab5b53 commit 987dcda

File tree

1 file changed

+28
-28
lines changed

1 file changed

+28
-28
lines changed

src/GlobalSignCAProxy/Api/GlobalSignEnrollRequest.cs

Lines changed: 28 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -7,18 +7,18 @@
77

88
using CSS.Common.Logging;
99

10-
using Keyfactor.Extensions.AnyGateway.GlobalSign.Services.Order;
10+
using Keyfactor.Extensions.AnyGateway.GlobalSign.Services.Order;
1111

12-
using System.Collections.Generic;
12+
using System.Collections.Generic;
1313
using System.Linq;
14-
using System.Text;
15-
16-
namespace Keyfactor.Extensions.AnyGateway.GlobalSign.Api
17-
{
14+
using System.Text;
15+
16+
namespace Keyfactor.Extensions.AnyGateway.GlobalSign.Api
17+
{
1818
public class GlobalSignEnrollRequest : LoggingClientBase
1919
{
2020
internal GlobalSignCAConfig Config;
21-
21+
2222
public GlobalSignEnrollRequest(GlobalSignCAConfig config)
2323
{
2424
Config = config;
@@ -90,27 +90,26 @@ public BmV2PvOrderRequest Request
9090
Logger.Info($"SAN Entry {item} matches CN, removing from request");
9191
continue;
9292
}
93-
string trimCN = CommonName, trimItem = item;
94-
if (trimCN.StartsWith("*."))
95-
{
96-
trimCN = trimCN.Substring(2);
97-
}
98-
else if (trimCN.StartsWith("www."))
99-
{
100-
trimCN = trimCN.Substring(4);
101-
}
102-
if (trimItem.StartsWith("*."))
93+
string trimCN = CommonName;
94+
if (CommonName.StartsWith("*."))
10395
{
104-
trimItem = trimItem.Substring(2);
96+
trimCN = CommonName.Substring(2);
97+
List<string> equivs = new List<string> { $"*.{trimCN}", $"www.{trimCN}", $"{trimCN}" };
98+
if (equivs.Contains(item, StringComparer.OrdinalIgnoreCase))
99+
{
100+
Logger.Info($"SAN Entry {item} is equivalent to CN ignoring wildcards or www prefix, removing from request");
101+
continue;
102+
}
105103
}
106-
else if (trimItem.StartsWith("www."))
104+
else if (CommonName.StartsWith("www."))
107105
{
108-
trimItem = trimItem.Substring(4);
109-
}
110-
if (string.Equals(trimCN, trimItem, System.StringComparison.OrdinalIgnoreCase))
111-
{
112-
Logger.Info($"SAN Entry {item} is equivalent to CN ignoring wildcards or www prefix, removing from request");
113-
continue;
106+
trimCN = CommonName.Substring(4);
107+
List<string> equivs = new List<string> { $"www.{trimCN}", $"{trimCN}" };
108+
if (equivs.Contains(item, StringComparer.OrdinalIgnoreCase))
109+
{
110+
Logger.Info($"SAN Entry {item} is equivalent to CN ignoring wildcards or www prefix, removing from request");
111+
continue;
112+
}
114113
}
115114
SANEntry entry = new SANEntry();
116115
entry.SubjectAltName = item;
@@ -156,9 +155,10 @@ public BmV2PvOrderRequest Request
156155
{
157156
request.OrderRequestParameter.BaseOption = BaseOption;
158157
}
159-
158+
160159
return request;
161160
}
162161
}
163-
}
164-
}
162+
163+
}
164+
}

0 commit comments

Comments
 (0)