Skip to content

Conversation

@csegarragonz
Copy link
Contributor

@csegarragonz csegarragonz commented Dec 6, 2025

Closes #49

@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @csegarragonz, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request introduces comprehensive support for deploying and interacting with multiple attestation services, significantly enhancing the system's flexibility and scalability. The changes span across the accli tool for provisioning and running applications, the core attestation libraries, and example applications, ensuring that the entire ecosystem can adapt to distributed attestation authority deployments. This enables more robust and resilient confidential computing environments.

Highlights

  • Multi-Attestation Service Support: The system now supports deploying and interacting with multiple attestation services, moving from single environment variables for URLs and certificates to handling lists and directories.
  • Updated accli Tooling: The accli command-line interface has been updated to manage multiple attestation service instances, including new arguments for specifying multiple URLs and certificate directories, and modifications to Azure provisioning for multi-VM deployments.
  • Application Code Adaptations: Applications like escrow-xput, hello-snp, and breakdown-snp have been refactored to accept multiple attestation service URLs and certificate paths, and to construct CP-ABE policies that can leverage these distributed authorities.
  • Build System Enhancements: The build system (applications/build.py, CMakeLists.txt, jwt/build.rs) has been adjusted to process certificate directories instead of single files, enabling the embedding of multiple certificates into binaries.
  • New Test Application: A new test application, multi-as, has been introduced to specifically validate the functionality of interacting with multiple attestation services.
Ignored Files
  • Ignored by pattern: .github/workflows/** (1)
    • .github/workflows/snp.yml
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request introduces significant changes to support multiple attestation services and refactors how certificate paths are handled, moving from single PEM files to directories of certificates. Key changes include updating Cargo.lock for dependency bumps, adding a size check in abe4.cpp for robustness, and modifying attestation-related C++ functions (attestation.cpp, attestation.h, mock_sgx.cpp, mock_snp.cpp, snp.cpp) to accept asUrl and certPath as parameters instead of relying on environment variables. The Rust build script (jwt/build.rs) and CMake configuration (jwt/cpp-bindings/CMakeLists.txt) were updated to embed multiple .pem certificates from a specified directory (ACCLESS_AS_CERT_DIR). The accli command-line tool was refactored to remove a global debug flag, add an id argument for attestation services, and replace single cert_path arguments with cert_dir arguments. The accli now uses an ApplicationBackend enum (Cvm, Docker) for running applications, simplifying the execution logic. Azure provisioning scripts were enhanced to dynamically create and provision multiple attestation service VMs, and Ansible playbooks were updated to handle dynamic inventory and per-VM variables. A new multi-as test application was added to validate multi-attestation service functionality. The escrow-xput function was updated to support multiple attestation service URLs and certificate paths, and its CP-ABE policy logic was adjusted for load-balancing across multiple services. Plotting scripts were also updated to include a new AcclessSingleAuth baseline and temporarily skip plotting AcclessMaa. Review comments highlighted the need for more descriptive error messages when unwrap() is used in build.rs and suggested extracting duplicated VM name generation logic in accli/src/main.rs into a helper function for better maintainability.

@csegarragonz csegarragonz marked this pull request as ready for review December 6, 2025 20:16
@csegarragonz csegarragonz marked this pull request as draft December 6, 2025 20:44
@csegarragonz csegarragonz force-pushed the feature-multi-as branch 2 times, most recently from 7468857 to 8d99109 Compare December 6, 2025 23:05
@csegarragonz csegarragonz marked this pull request as ready for review December 6, 2025 23:12
@csegarragonz csegarragonz marked this pull request as draft December 6, 2025 23:36
@csegarragonz csegarragonz force-pushed the feature-multi-as branch 2 times, most recently from 254c421 to 9f9de07 Compare December 7, 2025 00:42
@csegarragonz csegarragonz marked this pull request as ready for review December 7, 2025 09:27
@csegarragonz csegarragonz merged commit b5cb187 into main Dec 7, 2025
3 of 4 checks passed
@csegarragonz csegarragonz deleted the feature-multi-as branch December 7, 2025 10:59
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.

[attestation-service] Support Injecting Multiple Cert Paths

2 participants