@@ -36,18 +36,21 @@ public CertAbuseProcessor(ILdapUtils utils, ILogger log = null)
3636 /// <param name="objectDomain"></param>
3737 /// <param name="computerName"></param>
3838 /// <returns></returns>
39- public async Task < APIResult < ACE [ ] > > ProcessRegistryEnrollmentPermissions ( string caName , string objectDomain , string computerName , string computerObjectId )
39+ public async Task < AceRegistryAPIResult > ProcessRegistryEnrollmentPermissions ( string caName , string objectDomain , string computerName , string computerObjectId )
4040 {
41+ var data = new AceRegistryAPIResult ( ) ;
42+
4143 var aceData = GetCASecurity ( computerName , caName ) ;
42-
44+ data . Collected = aceData . Collected ;
4345 if ( ! aceData . Collected )
4446 {
45- return APIResult < ACE [ ] > . Failure ( aceData . FailureReason ) ;
47+ data . FailureReason = aceData . FailureReason ;
48+ return data ;
4649 }
4750
4851 if ( aceData . Value == null )
4952 {
50- return APIResult < ACE [ ] > . Success ( [ ] ) ;
53+ return data ;
5154 }
5255
5356 var descriptor = _utils . MakeSecurityDescriptor ( ) ;
@@ -141,29 +144,33 @@ public async Task<APIResult<ACE[]>> ProcessRegistryEnrollmentPermissions(string
141144 } ) ;
142145 }
143146
144- return APIResult < ACE [ ] > . Success ( aces . ToArray ( ) ) ;
147+ data . Data = aces . ToArray ( ) ;
148+ return data ;
145149 }
146150
147151 /// <summary>
148- /// This function will retrieve the enrollment agent restrictions from a ca
152+ /// This function will retrieve the enrollment agent restrictions from a CA
149153 /// </summary>
150154 /// <param name="caName"></param>
151155 /// <param name="objectDomain"></param>
152156 /// <param name="computerName"></param>
153157 /// <param name="computerObjectId"></param>
154158 /// <returns></returns>
155- public async Task < APIResult < EnrollmentAgentRestriction [ ] > > ProcessEAPermissions ( string caName , string objectDomain , string computerName , string computerObjectId )
159+ public async Task < EnrollmentAgentRegistryAPIResult > ProcessEAPermissions ( string caName , string objectDomain , string computerName , string computerObjectId )
156160 {
161+ var ret = new EnrollmentAgentRegistryAPIResult ( ) ;
157162 var regData = GetEnrollmentAgentRights ( computerName , caName ) ;
158163
159- if ( ! regData . Collected )
164+ ret . Collected = regData . Collected ;
165+ if ( ! ret . Collected )
160166 {
161- return APIResult < EnrollmentAgentRestriction [ ] > . Failure ( regData . FailureReason ) ;
167+ ret . FailureReason = regData . FailureReason ;
168+ return ret ;
162169 }
163170
164171 if ( regData . Value == null )
165172 {
166- return APIResult < EnrollmentAgentRestriction [ ] > . Success ( [ ] ) ;
173+ return ret ;
167174 }
168175
169176 var isDomainController = await _utils . IsDomainController ( computerObjectId , objectDomain ) ;
@@ -178,7 +185,10 @@ public async Task<APIResult<EnrollmentAgentRestriction[]>> ProcessEAPermissions(
178185 enrollmentAgentRestrictions . Add ( restriction ) ;
179186 }
180187 }
181- return APIResult < EnrollmentAgentRestriction [ ] > . Success ( enrollmentAgentRestrictions . ToArray ( ) ) ;
188+
189+ ret . Restrictions = enrollmentAgentRestrictions . ToArray ( ) ;
190+
191+ return ret ;
182192 }
183193
184194 public async Task < ( IEnumerable < TypedPrincipal > resolvedTemplates , IEnumerable < string > unresolvedTemplates ) > ProcessCertTemplates ( IEnumerable < string > templates , string domainName )
@@ -238,25 +248,30 @@ private RegistryResult GetEnrollmentAgentRights(string target, string caName)
238248 /// <param name="caName"></param>
239249 /// <returns></returns>
240250 [ ExcludeFromCodeCoverage ]
241- public APIResult < bool > IsUserSpecifiesSanEnabled ( string target , string caName )
251+ public BoolRegistryAPIResult IsUserSpecifiesSanEnabled ( string target , string caName )
242252 {
253+ var ret = new BoolRegistryAPIResult ( ) ;
243254 var subKey =
244255 $ "SYSTEM\\ CurrentControlSet\\ Services\\ CertSvc\\ Configuration\\ { caName } \\ PolicyModules\\ CertificateAuthority_MicrosoftDefault.Policy";
245256 const string subValue = "EditFlags" ;
246257 var data = Helpers . GetRegistryKeyData ( target , subKey , subValue , _log ) ;
247258
259+ ret . Collected = data . Collected ;
248260 if ( ! data . Collected )
249261 {
250- return APIResult < bool > . Failure ( data . FailureReason ) ;
262+ ret . FailureReason = data . FailureReason ;
263+ return ret ;
251264 }
252265
253266 if ( data . Value == null )
254267 {
255- return APIResult < bool > . Success ( false ) ;
268+ return ret ;
256269 }
257270
258271 var editFlags = ( int ) data . Value ;
259- return APIResult < bool > . Success ( ( editFlags & 0x00040000 ) == 0x00040000 ) ;
272+ ret . Value = ( editFlags & 0x00040000 ) == 0x00040000 ;
273+
274+ return ret ;
260275 }
261276
262277 /// <summary>
@@ -267,24 +282,30 @@ public APIResult<bool> IsUserSpecifiesSanEnabled(string target, string caName)
267282 /// <param name="target"></param>
268283 /// <param name="caName"></param>
269284 /// <returns></returns>
285+ /// <exception cref="Exception"></exception>
270286 [ ExcludeFromCodeCoverage ]
271- public APIResult < bool > RoleSeparationEnabled ( string target , string caName )
287+ public BoolRegistryAPIResult RoleSeparationEnabled ( string target , string caName )
272288 {
289+ var ret = new BoolRegistryAPIResult ( ) ;
273290 var regSubKey = $ "SYSTEM\\ CurrentControlSet\\ Services\\ CertSvc\\ Configuration\\ { caName } ";
274291 const string regValue = "RoleSeparationEnabled" ;
275292 var data = Helpers . GetRegistryKeyData ( target , regSubKey , regValue , _log ) ;
276293
294+ ret . Collected = data . Collected ;
277295 if ( ! data . Collected )
278296 {
279- return APIResult < bool > . Failure ( data . FailureReason ) ;
297+ ret . FailureReason = data . FailureReason ;
298+ return ret ;
280299 }
281300
282301 if ( data . Value == null )
283302 {
284- return APIResult < bool > . Success ( false ) ;
303+ return ret ;
285304 }
286305
287- return APIResult < bool > . Success ( ( int ) data . Value == 1 ) ;
306+ ret . Value = ( int ) data . Value == 1 ;
307+
308+ return ret ;
288309 }
289310
290311 public async Task < ( bool Success , TypedPrincipal Principal ) > GetRegistryPrincipal ( SecurityIdentifier sid , string computerDomain , string computerName , bool isDomainController , string computerObjectId , SecurityIdentifier machineSid )
0 commit comments