Draft
Conversation
… of the version still has to match
…me from a TPM do not Err out This gets certify.rs some steps further: it then runs into an authorization error
Author
|
This is an attempt to make progress on #602 |
Author
|
With this code, certify errors with: |
Collaborator
|
This is interesting. What happens if we update the enum with new items? Will that be a breaking change to the API? |
Author
Well, today, with no Other(), any update would be a breaking change if there was no _ catch-all. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This patch changes PropertyTag into a two-level enum. PrimitivePropertyTag is what we had before.
PropertyTag now has an Other() which can accept any tag value that a TPM might return (such as if the TPM spec evolves).
This does not enable certify.rs example to work yet, but it does get past the property_tag 303 problem.
This might not be the best/most-idomatic way to do this. I thought that the change would require extensive amounts of patching, but it only required about 6 extra lines.
It is probably a breaking change for applications that use PropertyTag. Suggestions most welcome.
Instead of a two-level, one could merge the Other(u32) into the main enum, but that means not using FromPrimitive/ToPrimitive. So a big fat match case in each direction. That probably isn't a breaking change?!
Happy to go there... maybe there are macros to make this easier that I'm ignorant about.
(I think that a closed enum should never be used for any value that comes from an external source)