Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement partial APID 0.1.0 with UDL bindings #234

Merged

Conversation

KendallWeihe
Copy link
Contributor

@KendallWeihe KendallWeihe commented Jun 14, 2024

This PR implements partial APID v0.1.0 proposed in #229 with comprehensive UDL bindings. This is not considered to be a complete implementation, but implements enough to unblock downstream Kotlin binded implementation (cc @nitro-neal ). The changes are compartmentalized to a new web5::apid module, and does not remove any of the prior web5 code; the prior web5 code still has code for reference (namely, VC, did:dht and did:web) which needs to be subsequently moved into this apid module, whereafter everything in the apid module will be moved into the root web5 module.

Missing Pieces

  • Doc comments
  • Tests & test vectors
  • JOSE implementations using josekit
  • did:dht

All of the above implementation will be implemented in subsequent pull requests.

Known Limitations

  • presentation definition's recursive Filter's contains property is problematic, temporarily removed support
  • VC issuer only string support (temporary)

Both of the above limitations will be solvable, but may require additional development on the Kotlin side of the fence, so for the sake of agility I am temporarily removing support as to unblock kt development.

@KendallWeihe KendallWeihe force-pushed the kendall/empty-udl-apid-0.1.0_with-dictionaries_wrangling branch from bf4763c to fa13331 Compare June 17, 2024 15:03
@KendallWeihe KendallWeihe marked this pull request as ready for review June 17, 2024 15:10
Cargo.toml Outdated Show resolved Hide resolved
VerifiableCredential as RcbVerifiableCredentialData,
},
},
dids::{
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ahh I thought the top level was going to be exported as RcbDids, to clear up the namespace in Kotlin.. but.. we can handle it at the kotlin layer :hmm:

string? fragment;
};

interface RcbDid {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

or maybe the kotlin will see RcbDid instead of "Did" but yea either can work!

Copy link
Contributor

@nitro-neal nitro-neal left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Legendary PR 👍 👍

type Result<T> = std::result::Result<T, JwkError>;

impl Jwk {
pub fn compute_thumbprint(&self) -> Result<String> {
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

compute_thumbprint() isn't in the APID, but it's here as an implementation detail

over time we should consider adding it to the APID (but keeping lean for now)

@KendallWeihe KendallWeihe merged commit 6718525 into main Jun 17, 2024
6 checks passed
@KendallWeihe KendallWeihe deleted the kendall/empty-udl-apid-0.1.0_with-dictionaries_wrangling branch June 17, 2024 18:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants