Commit Graph

16 Commits

Author SHA1 Message Date
Matthew Raymer
e7b05f812a refactor: replace Python crypto with native openssl operations
- Remove Python dependency for cryptographic operations
- Implement pure bash/openssl key generation
- Maintain ES256K signature compatibility
- Add detailed error handling and logging
2025-03-05 14:11:18 +00:00
Matthew Raymer
65a6db49bf feat: add shell implementation of DID registration flow
- Match Python/TypeScript implementations
- Use consistent JWT signing approach
- Maintain payload compatibility
- Add detailed documentation
2025-03-05 14:08:27 +00:00
Matthew Raymer
9172ddee91 feat: add claim fetching functionality
- Add fetch_claim method to match TypeScript version
- Implement JWT authentication for claim fetching
- Update main flow to fetch claim after registration
- Add error handling and logging
- Match TypeScript API structure

This adds the ability to fetch claim details after
successful DID registration, completing the full
registration and verification flow.
2025-03-05 13:49:54 +00:00
Matthew Raymer
2da44c4de6 feat: implement DID registration with JWT signing
- Add full DID registration flow matching TypeScript version
- Implement ES256K JWT signing with PEM key format
- Add async/await support for JWT operations
- Improve error handling and debug output
- Add rich documentation and type hints

Technical Changes:
- Convert private key to PEM format for JWT signing
- Match TypeScript's JWT payload structure
- Add proper JWT header with ES256K algorithm
- Implement async functions for JWT creation
- Add detailed debug output for JWT parts

Documentation:
- Add module-level docstring with flow description
- Add function-level docstrings with examples
- Document security considerations
- Add technical details and error handling info

Dependencies:
- Add cryptography for key format conversion
- Add jwcrypto for JWT operations
- Update requirements.txt with versions and comments

This commit implements the complete DID registration flow,
matching the TypeScript implementation's behavior and
adding comprehensive documentation and error handling.
2025-03-05 13:44:42 +00:00
Matthew Raymer
ddcf674b94 Experimental DID creation and registration 2025-03-05 06:30:32 +00:00
b8b2c5e689 for test script: add requirements, fix endpoint, and add setup instructions 2025-03-04 21:07:55 -07:00
Matthew Raymer
292ec0e934 feat: enhance DID visibility management
- Add automatic visibility request when DID not found
- Add rich documentation for script usage and features
- Improve error handling and user feedback
- Add visual indicators for success/failure
- Add HTTPS for API endpoints
- Add proper exit codes for different scenarios
- Add detailed debug logging throughout
- Add file header documentation

This enhances the DID visibility script by adding automatic
visibility requests when a DID is not found, along with
better documentation, error handling and user feedback.
2025-03-04 13:30:10 +00:00
Matthew Raymer
c12bca1f37 feat(scripts): Add DID visibility check script
Adds dids_seen.sh script to check DID visibility permissions in endorser.ch system.
Key features:
- JWT creation and signing using ES256K-R
- DID visibility checking via API
- Environment variable and .env file support
- Debug logging with DEBUG=1 flag
- Command line argument parsing for specific DID checks
- Secure key handling with temporary files
- Pretty-printed JSON output

Security:
- Uses secure temporary files with cleanup
- Validates DER signature format
- Handles key material securely
- Supports environment variable configuration
2025-03-04 13:07:35 +00:00
Matthew Raymer
6acba7b1b8 refactor: improve DID generation and error handling
- Convert did_generator.sh to output clean JSON
- Add structured error reporting with stages
- Improve debug logging with DEBUG flag
- Better error handling in run-deeplink-tests.sh
- Add detailed debug tracing
- Fix JSON parsing and validation
- Add visual feedback for generated DIDs
- Use printf instead of echo for consistent output
- Remove stderr mixing with stdout
- Add proper exit status handling

This refactors the DID generation process to be more reliable
and maintainable by using structured JSON output and proper
error handling throughout the pipeline.
2025-03-04 12:32:19 +00:00
Matthew Raymer
9c2ff01302 fix: WIP: Update test scripts for DID verification and claim generation
- Add check-did.sh to verify DID registration using admin JWT auth
- Fix JWT signing in generate-test-claim.sh to match uport-credentials format
- Clean up DID extraction in run-deeplink-tests.sh
- Add proper error handling and response parsing

The changes improve test script reliability by:
1. Using consistent JWT signing across scripts
2. Adding ability to verify DID registration status
3. Simplifying DID info extraction
4. Adding better error messages and debug output
2025-03-04 10:20:14 +00:00
Matthew Raymer
5c09b46ec3 fix: Implement proper JWT signing in test claim generator
- Add ES256K signature generation for test claims
- Fix signature format to match endorser.ch requirements
- Remove dependency on did_generator.sh for signing
- Improve JWT creation with proper header and payload structure

The changes fix JWT verification issues by:
1. Implementing proper DER to R+S signature conversion
2. Handling secp256k1 private key formatting correctly
3. Using correct base64url encoding for JWT components
4. Adding proper issuer field to JWT payload
2025-03-04 09:12:47 +00:00
Matthew Raymer
fb10d7ba0a feat: Improve test scripts for deep link testing
- Add DID generation and management for testing
- Create .generated directory for test artifacts
- Add environment variable support for test configuration
- Improve deep link test script with better URL handling
- Add print/execute modes for testing with/without device

The changes improve the testing workflow by:
1. Generating and managing test DIDs automatically
2. Storing test artifacts in .generated directory (gitignored)
3. Adding proper URL encoding for deep links
4. Supporting both print mode for debugging and execute mode for device testing
5. Adding better error handling and validation
2025-03-04 09:01:05 +00:00
Matthew Raymer
a4279fab34 feat: Add environment variable support for DID registration
- Bash implementation of DID creation-registration
- Move admin credentials to .env file for better security
- Add .env.example with default values
- Add dotenv support to TypeScript, Python and Bash implementations
- Update dependencies to include dotenv packages
- Fix JWT signature format in Bash implementation
- Add DER signature parsing for ES256K in Bash script

The admin DID and private key can now be configured via environment
variables, with fallback to default values if not set. This allows
for easier testing and deployment across different environments.
2025-03-04 06:27:20 +00:00
Matthew Raymer
48c749a804 feat: Improve DID registration with admin credentials
- Add admin keypair (DID + private key) for proper registration signing
- Remove SQLite database dependency for admin DID lookup
- Update both TypeScript and Python implementations to use admin credentials
- Enhance documentation with detailed usage, options, and security notes
- Fix JWT signing to use admin's key as issuer
- Standardize API URL handling with defaults
- Add command-line options for admin DID and API URL override

Both implementations now successfully register new DIDs using the admin's
credentials to sign the registration claims. The admin acts as both the
agent in the claim and the issuer of the JWT.
2025-03-04 05:59:10 +00:00
Matthew Raymer
722f4132ce fix: WIP: update did_generator.ts to use registration table
Changes:
- Update SQL query to use registration table instead of accounts
- Add proper column names for registration table schema
- Add issuanceDate sorting for latest admin DID
- Improve error messages for database queries
- Add TypeScript types for database row results

This fixes DID generation by using the correct table schema
from the endorser database.
2025-03-03 13:21:51 +00:00
Matthew Raymer
053306217e feat(test-scripts): add registration attempt to TypeScript DID generator
- Added registration attempt to TypeScript DID generator to match Python version
- Added node-fetch and types for HTTP request
- Both scripts now show same UNREGISTERED_USER error from server
- Cleaned up package.json devDependencies formatting
2025-03-03 10:43:42 +00:00