Skip to content

Commit aa63a5a

Browse files
committed
Cover the Thumbprint key reference in both directions
The matrix had BinarySecurityToken, SubjectKeyIdentifier and IssuerSerial but no Thumbprint row, and the oracle already supported the reference on both sides. The PHP-outbound row is the one that matters: the PHP side emitted its KeyIdentifier in the WSS 1.1 namespace, where no KeyIdentifier element is declared, and WSS4J answers "Unsupported KeyInfo type". A PHP round trip could not catch that, because the PHP reader accepts either namespace on the way in.
1 parent 12b750a commit aa63a5a

1 file changed

Lines changed: 5 additions & 0 deletions

File tree

tests/Wsse/SignatureInteropTest.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,10 @@ public static function phpKeyRefProvider(): iterable
8787
yield 'BinarySecurityToken' => [Outbound\KeyReference\KeyRef::BinarySecurityToken, ''];
8888
yield 'SubjectKeyIdentifier' => [Outbound\KeyReference\KeyRef::SubjectKeyIdentifier, ''];
8989
yield 'IssuerSerial' => [Outbound\KeyReference\KeyRef::IssuerSerial, '?disableBsp=true'];
90+
// Thumbprint resolves from the recipients keystore too. This row exists because the PHP side once
91+
// emitted the KeyIdentifier in the WSS 1.1 namespace, which no conformant peer resolves: only a
92+
// PHP-outbound row catches that, since the PHP reader accepts either namespace on the way in.
93+
yield 'Thumbprint' => [Outbound\KeyReference\KeyRef::Thumbprint, ''];
9094
}
9195

9296
#[DataProvider('phpKeyRefProvider')]
@@ -133,6 +137,7 @@ public static function javaKeyRefProvider(): iterable
133137
yield 'BinarySecurityToken' => ['BinarySecurityToken'];
134138
yield 'SubjectKeyIdentifier' => ['SubjectKeyIdentifier'];
135139
yield 'IssuerSerial' => ['IssuerSerial'];
140+
yield 'Thumbprint' => ['Thumbprint'];
136141
}
137142

138143
#[DataProvider('javaKeyRefProvider')]

0 commit comments

Comments
 (0)