security: add certificate revocation record#189
Conversation
|
https://github.com/UCLA-IRL/ndnrevoke. Please use this as reference for Revocation Record. |
Co-authored-by: Cursor <cursoragent@cursor.com>
|
Thanks for the pointer. I looked through The public API is still limited to the requested low-level surface: Revoke(cert ndn.Data)
IsRevoked(cert ndn.Data) boolInternally, I reran: go test ./std/security -run 'TestCertificateRevocationRecord' -count=20
go test -race ./std/security
go test ./std/security
make testAll passed. |
|
Thanks for the initial work! I saw that you currently have a struct storing revocation records and make the code checks against that. That's exactly the next step we want to work on. The library has a module trust_config that automates the data authentication and authorization workflow, and actually the downstream applications who uses ndnd mainly rely on the high-level APIs that are binded to this module to get rid of the crypto details. At high level, it executes the NDN trust schema and recursively climb the certification chain for a received data until reaching a bootstrapped (or otherwise externally authenticated) trust anchor. We need corporate the revocation here -- so obviously we need to store received revocation records here....but first lets think about design space. |
|
Thanks for the context. I’ll pause on further implementation for now and read through |
|
I went through the My understanding is that I also see why the Envelope-related code can look like it jumps between trust anchors. I’ll avoid touching that part for now unless needed, and focus only on where revocation records should be stored and checked inside the current validation workflow. |
Summary
RevokeandIsRevokedcertificate revocation APIs instd/security.UCLA-IRL/ndnrevoke's revocation record shape.REVOKE-style record names from certificate names and keep record metadata including the certificate name, public key hash, reason, and timestamp.Test plan
go test ./std/security -run 'TestCertificateRevocationRecord' -count=20go test -race ./std/securitygo test ./std/securitymake test