Repository navigation
Remove the deprecated public key algorithm API - #375
alexanderdibenedetto merged 2 commits into
Conversation
kTSKPublicKeyAlgorithms, TSKSupportedAlgorithm and the kTSKAlgorithm* constants have been deprecated since 1.6.0. Configs that still set TSKPublicKeyAlgorithms keep working because the parser ignores unknown keys. Also delete the unused internal TSKPublicKeyAlgorithm.h and rename TSKPublicKeyAlgorithmTests to TSKSPKIHashCacheTests, after the class it tests.
There was a problem hiding this comment.
I reviewed this PR and didn't find any bugs. It removes exported public symbols, though, so any client that still references them will stop compiling. A maintainer should confirm this goes into a release that's allowed to break source compatibility.
What was reviewed:
- Searched for leftover references to
kTSKPublicKeyAlgorithms,TSKSupportedAlgorithm, thekTSKAlgorithm*constants andTSKPublicKeyAlgorithmoutsidedocs/. There are none in sources, tests, Package.swift or the project file. - Checked that configs which still set
TSKPublicKeyAlgorithmskeep working.parse_configuration.mlooks up each known key by name, so an extra key is ignored. The only exception is a domain withTSKExcludeSubdomainFromParentPolicyset, which already rejected this key before the change. - Checked the test rename in all five test targets in the pbxproj (file reference IDs are kept), and the NUL-safe
existing()filter inscripts/lint.sh. - The generated HTML in
docs/documentationstill lists the removed symbols until it is regenerated.
Extended reasoning...
The change deletes deprecated public constants and a typedef from TSKTrustKitConfig.h/.m, removes an unused internal header, renames a test file, and filters deleted paths out of lint.sh. It touches no runtime pinning or crypto logic: SPKI hashing and validation are unchanged, and the parser never read the removed key. The code is mechanical and consistent across the project file. I deferred because removing exported symbols breaks the public API for downstream clients, and whether to do that now is a versioning call for a maintainer.
Remove:
kTSKPublicKeyAlgorithms, TSKSupportedAlgorithm and the kTSKAlgorithm*
constants have been deprecated since 1.6.0. Configs that still set
TSKPublicKeyAlgorithms keep working because the parser ignores unknown keys.
Also delete the unused internal TSKPublicKeyAlgorithm.h and rename
TSKPublicKeyAlgorithmTests to TSKSPKIHashCacheTests, after the class it tests.