Skip to content

Commit b7a3e6c

Browse files
committed
fix(runtime): remove dead helpers left behind by Phase 9 + Phase 12
MSVC under /W4 /WX doesn't flag unused anonymous-namespace functions as errors (they compile fine and get DCE'd), but clang/gcc with -Werror -Wunused-function do. CI caught six orphans that the local Windows build had happily buried: runtime/src/provider/local_embedded.cpp — Phase 9 fallout parse_provider_class_text parse_policy_floor_uint parse_recovery_model_uint parse_bool_uint is_known_requirement_key Every validation these five helpers used to do is now covered by the schema-driven parser's field descriptors (EnumUintField, EnumTextArrayField, BoolField, reject_unknown_keys). Leave a one-line comment pointing at the replacement so nobody re-adds them thinking they're missing. runtime/src/tokens.cpp — Phase 6 fallout require_bytes Previously called by the now-removed verify_auth_wrapper helper that Phase 6 (signed_partition template) replaced. The wrapper's signature_bytes reach comes through the SignedPartitionView now, no call site left. All 1124 tests still green on dev-win. Should unblock clang-18, gcc-14, and apple-clang CI.
1 parent 34be016 commit b7a3e6c

2 files changed

Lines changed: 5 additions & 62 deletions

File tree

runtime/src/provider/local_embedded.cpp

Lines changed: 5 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -79,65 +79,11 @@ constexpr std::size_t kMaxAllowedProviderClassesLength = 8;
7979

8080
constexpr std::string_view kRequirementVersionV1 = "policy-requirement-v1";
8181

82-
tl::expected<ProviderClass, PolicyRequirementParseError>
83-
parse_provider_class_text(std::string_view s) noexcept {
84-
if (s == "local_embedded") return ProviderClass::LocalEmbedded;
85-
if (s == "local_tpm") return ProviderClass::LocalTpm;
86-
if (s == "local_tee") return ProviderClass::LocalTee;
87-
if (s == "cloud_attested_vm") return ProviderClass::CloudAttestedVm;
88-
if (s == "cloud_hsm") return ProviderClass::CloudHsm;
89-
if (s == "external_kms") return ProviderClass::ExternalKms;
90-
return tl::make_unexpected(PolicyRequirementParseError::UnknownEnumValue);
91-
}
92-
93-
tl::expected<VMPilot::DomainLabels::PolicyId, PolicyRequirementParseError>
94-
parse_policy_floor_uint(std::uint64_t v) noexcept {
95-
using VMPilot::DomainLabels::PolicyId;
96-
switch (v) {
97-
case static_cast<std::uint64_t>(PolicyId::Debug): return PolicyId::Debug;
98-
case static_cast<std::uint64_t>(PolicyId::Standard): return PolicyId::Standard;
99-
case static_cast<std::uint64_t>(PolicyId::HighSec): return PolicyId::HighSec;
100-
}
101-
return tl::make_unexpected(PolicyRequirementParseError::UnknownEnumValue);
102-
}
103-
104-
tl::expected<RecoveryModel, PolicyRequirementParseError>
105-
parse_recovery_model_uint(std::uint64_t v) noexcept {
106-
switch (v) {
107-
case static_cast<std::uint64_t>(RecoveryModel::SelfService):
108-
return RecoveryModel::SelfService;
109-
case static_cast<std::uint64_t>(RecoveryModel::SignedReprovision):
110-
return RecoveryModel::SignedReprovision;
111-
case static_cast<std::uint64_t>(RecoveryModel::Quorum):
112-
return RecoveryModel::Quorum;
113-
}
114-
return tl::make_unexpected(PolicyRequirementParseError::UnknownEnumValue);
115-
}
116-
117-
tl::expected<bool, PolicyRequirementParseError>
118-
parse_bool_uint(std::uint64_t v) noexcept {
119-
if (v == 0) return false;
120-
if (v == 1) return true;
121-
return tl::make_unexpected(PolicyRequirementParseError::UnknownEnumValue);
122-
}
123-
124-
bool is_known_requirement_key(std::uint64_t k) noexcept {
125-
switch (k) {
126-
case kReq_RequirementVersion:
127-
case kReq_RequiredPolicyFloor:
128-
case kReq_RequiredFamilySet:
129-
case kReq_RequireHardwareBound:
130-
case kReq_RequireNonExportableKey:
131-
case kReq_RequireOnlineFreshness:
132-
case kReq_RequireRemoteAttestation:
133-
case kReq_RequireRecoveryModel:
134-
case kReq_AllowedProviderClasses:
135-
case kReq_MinimumProviderEpoch:
136-
return true;
137-
default:
138-
return false;
139-
}
140-
}
82+
// Phase 9 replaced the hand-rolled helpers (parse_provider_class_text,
83+
// parse_policy_floor_uint, parse_recovery_model_uint, parse_bool_uint,
84+
// is_known_requirement_key) with the schema-driven parser. The schema
85+
// descriptors (EnumUintField / EnumTextArrayField / BoolField /
86+
// reject_unknown_keys) cover every validation the helpers used to do.
14187

14288
// ProviderEvidence canonical schema (strict CBOR map, uint keys):
14389
//

runtime/src/tokens.cpp

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -86,9 +86,6 @@ inline tl::unexpected<TokenError> err(TokenError code) noexcept {
8686
inline auto require_text(const Value& m, std::uint64_t k) noexcept {
8787
return VMPilot::Cbor::require_text<TokenError>(m, k);
8888
}
89-
inline auto require_bytes(const Value& m, std::uint64_t k) noexcept {
90-
return VMPilot::Cbor::require_bytes<TokenError>(m, k);
91-
}
9289
inline auto require_hash32(const Value& m, std::uint64_t k) noexcept {
9390
return VMPilot::Cbor::require_hash<TokenError, 32>(m, k);
9491
}

0 commit comments

Comments
 (0)