@@ -348,16 +348,14 @@ private void BuildAndSetProperties((X509Certificate2, int)[] elementTuples)
348
348
349
349
for ( int i = 0 ; i < elementTuples . Length ; i ++ )
350
350
{
351
- ( X509Certificate2 , int ) tuple = elementTuples [ i ] ;
351
+ ( X509Certificate2 cert , int chainStatus ) = elementTuples [ i ] ;
352
352
353
- elements [ i ] = BuildElement ( tuple . Item1 , tuple . Item2 ) ;
354
- allStatus |= tuple . Item2 ;
353
+ elements [ i ] = new X509ChainElement ( cert , BuildChainElementStatuses ( cert , chainStatus ) , "" ) ;
354
+ allStatus |= chainStatus ;
355
355
}
356
356
357
357
ChainElements = elements ;
358
-
359
- X509ChainElement rollupElement = BuildElement ( null ! , allStatus ) ;
360
- ChainStatus = rollupElement . ChainElementStatus ;
358
+ ChainStatus = BuildChainElementStatuses ( null , allStatus ) ;
361
359
}
362
360
363
361
private static void FixupRevocationStatus (
@@ -457,11 +455,11 @@ private static X509ChainStatusFlags FindUntrustedRootReason(X509Certificate2 cer
457
455
return X509ChainStatusFlags . UntrustedRoot ;
458
456
}
459
457
460
- private X509ChainElement BuildElement ( X509Certificate2 cert , int dwStatus )
458
+ private X509ChainStatus [ ] BuildChainElementStatuses ( X509Certificate2 ? cert , int dwStatus )
461
459
{
462
460
if ( dwStatus == 0 )
463
461
{
464
- return new X509ChainElement ( cert , Array . Empty < X509ChainStatus > ( ) , "" ) ;
462
+ return Array . Empty < X509ChainStatus > ( ) ;
465
463
}
466
464
467
465
List < X509ChainStatus > statuses = new List < X509ChainStatus > ( ) ;
@@ -499,7 +497,7 @@ private X509ChainElement BuildElement(X509Certificate2 cert, int dwStatus)
499
497
}
500
498
}
501
499
502
- return new X509ChainElement ( cert , statuses . ToArray ( ) , "" ) ;
500
+ return statuses . ToArray ( ) ;
503
501
}
504
502
505
503
private readonly struct X509ChainErrorMapping
0 commit comments