-
Notifications
You must be signed in to change notification settings - Fork 136
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
credential-bbs #1408
base: next
Are you sure you want to change the base?
credential-bbs #1408
Conversation
Hi @nickreynolds. How do we proceed? |
@veromassera the test failure appears related to a dependency issue in browser.
I see that the package you're relying on that brings in this dependency should work in all environments, but there might be some resolution issue that needs to be addressed. Perhaps @mirceanis has more insight |
Hi @nickreynolds . You're right. I only saw the timeout log. |
Hey @nickreynolds, any updates on this? Did you get a chance to look it over? Does the implementation and design of the plugin look good to you?" |
@veromassera the implementation and design looks pretty much good, but we haven't had a chance to look into the dependency issue yet. Hopefully we can sometime this week, but if you make any progress on it, let us know |
@veromassera I took a quick look. Didn't find the solution, but I did notice that your |
Hi @nickreynolds. I've been reviewing the package.json configuration and I believe I've resolved the asn1 error. Please verify if the fix is correct. However, another error still remains: 'Conflicting values for 'process.env.NODE_ENV'. |
Hi @nickreynolds , I've tried everything I can think of to get the tests to pass, but I haven't been successful. In fact, to try and isolate the issues, I created a new PR called 'PR generated to test if all tests work' that has no code differences from the Next branch. I ran the tests on GitHub and they're failing as well. :( I would appreciate it if you could take a look at the tests when you have a chance, as I'm stuck at this point |
@veromassera the tests failing on |
f48ec4f
to
00c7a3f
Compare
Hi @nickreynolds , here's something I don't know why it's happening... just in case you can help me. In the "PR generated to test if all tests work" there is an error that also occurs in the credential-bbs PR, related to process.node_env in the "browser_test" tests The big difference is that after that error in your PR the entire test suite is then executed, but in my PR (credential-bbs) the tests are not executed. Any suggestions? It must be related to React Native compatibility) |
@veromassera the error about ReactDOM.render being deprecated does not cause issues and can be ignored (but I can put up a PR to remove that error anyways). I believe the process.env error is the only one you should be concerned with since that's the only difference in the logs |
The process env error also occurs in the next branch... and in PR generated to test if all tests work line 143 of "run browser test" log However, after that error, the tests run on your branches and are not executed on the credential-bbs PR. |
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. |
@nickreynolds @mirceanis I'm trying to get back to the credential-bbs PR (#1408), trying to see if the dependency error no longer exists with the new code updates. Also, to rule out possible errors in my code, I synced the "Test next" PR (#1436). It's a PR with no changes, just one character in the readme. I'm using it to run continuous integration tests, and this PR, which has no changes, is also failing in the test-browser. Once the next code passes all the tests, I'll sync my code again and see if all the tests pass in my PR. Does that sound good? I hope you're all doing well. Best regards, |
hey @veromassera , I'm going to try to take a look at this sometime in the next few days. Your approach sounds good though and thanks for sticking with this! I will get back to you soon |
@veromassera we merged a PR that should fix the issue you were seeing on the test deployment, so you should be unblocked now. Let me know if you still see issues |
Hi @nickreynolds, this is amazing. |
Hi @nickreynolds , how are you? |
@veromassera Mircea is reviewing this PR and will likely have some feedback for changes. I also was going to ask you to update the we will also need to check that it works on React Native, but we can do that outside of this repository. |
Okay, I will add the tests inside test-react-app |
} | ||
} | ||
|
||
async keyManagerGetKey({ kid }: IKeyManagerGetArgs) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@veromassera could you explain why this method is needed? The name is a bit confusing and it lacks a return type. If it's really necessary, we should probably just update the key-manager plugin instead of creating a 1-off
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I was just reviewing that name.
I’m about to change it to BBSKeyManager.
Just to provide context on where it is used.
The reason I created it is because I need the private key in the getSuiteForSigning method of VeramoBbsBlsSignature.
On the other hand, if I remember correctly (I developed this quite some time ago), in the KeyManagementSystem class, the sign method retrieves the manageKey from the keyStore, but then goes through a series of nested if statements where it checks the type, and that is not scaling correctly for BBS type keys.
My intention was to deliver the BBS package with this CustomKeyManager, since from this extension I’m creating, I cannot modify the sign method of KeyManagementSystem because it belongs to the core of VERAMO. "I didn't want the need for a change in the core to block me.
I’m about to submit some changes where I added tests in react-app.
Among these changes, I am modifying that name from CustomKeyManager to BBSKeyManager.
If you don’t want me to submit it, please let me know soon. Thank you.
|
||
], | ||
}) | ||
issuer = await agent.didManagerGetByAlias({ alias: 'sepolia_1' }) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
how do the issuer and holder have bbs
keys?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The CreateKey of the KeyManagementSystem from Veramo has a switch for the key type, and that also doesn't scale well for BBS type keys. For that reason, when creating the keys, I modified the code to include the BBS type in the switch. However, I did not include that in the BBS credentials package
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I used the class I created called 'MIALocalSourceKeyManagementSystem' extending from LocalSourceKeyManagementSystem. I am attaching it.
mia-local-source-kms.zip
hi @nickreynolds . |
What issue is this PR fixing
This plugin implements a verifiable credential provider with BBS signature.
This provider enables the issuing of credentials and the generation of presentations from BBS signatures.
It also offers the ability to verify credentials and presentations.
This type of credential allows the holder to share credentials containing only a selected portion of the original VC data through selective disclosure, giving the holders real control over which data is shared.
The plugin extends the Veramo agent with the functionality of createSelectiveDisclosureCredentialBbs and verifyDerivedProofBbs.
This implementation is built on top of the jsonld-signatures-bbs libraries provided by mattrglobal https://github.com/mattrglobal/jsonld-signatures-bbs
Quality
Check all that apply:
pnpm i
,pnpm build
,pnpm test
,pnpm test:browser
locally.