diff --git a/lib/X509/CertificationPath/PathValidation/ValidatorState.php b/lib/X509/CertificationPath/PathValidation/ValidatorState.php index cf9560c..fa4d643 100644 --- a/lib/X509/CertificationPath/PathValidation/ValidatorState.php +++ b/lib/X509/CertificationPath/PathValidation/ValidatorState.php @@ -173,7 +173,7 @@ public static function initialize(PathValidationConfig $config, $state->_workingPublicKey = $tbsCert->subjectPublicKeyInfo(); $state->_workingPublicKeyParameters = self::getAlgorithmParameters( $state->_workingPublicKey->algorithmIdentifier()); - $state->_workingIssuerName = $tbsCert->issuer(); + $state->_workingIssuerName = $tbsCert->subject(); $state->_maxPathLength = $config->maxLength(); return $state; } diff --git a/test/unit/certification-path/CertificationPathValidationTest.php b/test/unit/certification-path/CertificationPathValidationTest.php index 118dcdf..b410d0e 100644 --- a/test/unit/certification-path/CertificationPathValidationTest.php +++ b/test/unit/certification-path/CertificationPathValidationTest.php @@ -101,6 +101,16 @@ public function testExplicitTrustAnchor() $validator->validate()); } + public function testExplicitTrustAnchorWithIntermediateCertificate() + { + $config = PathValidationConfig::defaultConfig()->withTrustAnchor( + self::$_path->certificates()[1]); + $validator = new PathValidator(Crypto::getDefault(), $config, + ...[self::$_path->certificates()[2]]); + $this->assertInstanceOf(PathValidationResult::class, + $validator->validate()); + } + public function testValidateFailNoCerts() { $validator = new PathValidator(Crypto::getDefault(),