- 
                Notifications
    You must be signed in to change notification settings 
- Fork 18
add passkey implementation #3748
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
base: dev
Are you sure you want to change the base?
Conversation
         BillyWooo
  
      
      
      commented
      
            BillyWooo
  
      
      
      commented
        Oct 5, 2025 
      
    
  
- Passkey Challenge System: New challenge generation and verification mechanism for secure passkey operations: executor-storage/src/passkey_challenge.rs
- Passkey Storage & Management: Storage layer for passkey credentials with CRUD operations: executor-storage/src/passkey.rs
- WebAuthn Crypto Support: Full passkey cryptographic operations including signature verification: executor-crypto/src/passkey.rs
- RPC Endpoints: New API methods for passkey lifecycle management
- 
- omni_requestPasskeyChallenge - Generate authentication challenges
 
- 
- omni_attachPasskey - Register new passkeys to accounts
 
- 
- omni_removePasskey - Remove passkeys from accounts
 
| Claude finished @BillyWooo's task —— View job PR Review: Passkey ImplementationI've completed a comprehensive review of the passkey implementation. Overall, this is a well-structured implementation with good security practices. Here's my analysis: Todo List:
 SummaryThis PR implements a comprehensive passkey system with three main components: 
 Code Quality & Best Practices ✅Strengths: 
 Areas for improvement: 
 Security Analysis 🔒Strong security measures: 
 Potential concerns: 
 Performance Considerations ⚡Efficient design: 
 Potential optimizations: 
 Test Coverage 🧪Excellent test coverage: 
 Test quality is very high - comprehensive scenarios including concurrent sessions and error conditions. Potential Bugs & Issues 🐛
 Recommendations 📋High Priority:
 Medium Priority:
 Low Priority:
 Dependencies & Security 🔐New dependencies look appropriate and are well-maintained: 
 All dependencies are industry-standard choices for WebAuthn implementation. Overall Assessment ⭐This is a high-quality implementation that follows WebAuthn standards correctly and implements proper security measures. The code is well-tested, properly structured, and handles edge cases appropriately. Recommendation: Approve with minor suggestions - The implementation is solid and secure, with only minor improvements suggested for production readiness. | 
| Claude finished @BillyWooo's task —— View job PR Review: Passkey ImplementationThis is a comprehensive and well-implemented passkey system that follows WebAuthn standards with proper security measures. Here's my detailed analysis: Todo List:
 SummaryThis PR implements a complete passkey system with three main components: 
 Code Quality & Best Practices ✅Strengths: 
 Areas for improvement: 
 Security Analysis 🔒Strong security measures: 
 Potential concerns: 
 Performance Considerations ⚡Efficient design: 
 Potential optimizations: 
 Test Coverage 🧪Excellent test coverage: 
 Test quality is very high - comprehensive scenarios including concurrent sessions and error conditions. Potential Bugs & Issues 🐛
 Recommendations 📋High Priority:
 Medium Priority:
 Low Priority:
 Dependencies & Security 🔐New dependencies look appropriate and are well-maintained: 
 All dependencies are industry-standard choices for WebAuthn implementation. Overall Assessment ⭐This is a high-quality implementation that follows WebAuthn standards correctly and implements proper security measures. The code is well-tested, properly structured, and handles edge cases appropriately. Recommendation: Approve with minor suggestions - The implementation is solid and secure, with only minor improvements suggested for production readiness. | 
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.
Thank you - the overall logic looks fine, I didn't go very detailed into e.g. passkey verification, attach/removal.
I mainly have questions regarding db read/write
        
          
                tee-worker/omni-executor/executor-storage/src/passkey_challenge.rs
              
                Outdated
          
            Show resolved
            Hide resolved
        
      | ErrorCode::ParseError | ||
| })?; | ||
|  | ||
| let identity = Identity::try_from(params.user_id.clone()).map_err(|_| { | 
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.
Since it's "attaching" passkey, shall we check the user_id can't be of passkey type?
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.
Maybe not? Shall we allow multiple passkey? @Kailai-Wang
| match e { | ||
| PasskeyChallengeError::ChallengeNotFound => { | ||
| error!("Challenge not found"); | ||
| }, | ||
| PasskeyChallengeError::ChallengeExpired => { | ||
| error!("Challenge expired"); | ||
| }, | ||
| PasskeyChallengeError::InvalidChallenge => { | ||
| error!("Invalid challenge"); | ||
| }, | ||
| _ => { | ||
| error!("Challenge verification failed: {:?}", e); | ||
| }, | ||
| } | ||
| executor_crypto::passkey::PasskeyError::ChallengeVerificationFailed | ||
| }) | ||
| }, | ||
| ) | ||
| .map_err(|e| { | ||
| error!("Client data verification failed: {:?}", e); | ||
| match e { | ||
| executor_crypto::passkey::PasskeyError::ChallengeVerificationFailed => { | 
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.
Hopefully we could simpify this a bit after #3780 is merged
        
          
                tee-worker/omni-executor/rpc-server/src/methods/omni/get_hyperliquid_signature_data.rs
          
            Show resolved
            Hide resolved
        
              
          
                tee-worker/omni-executor/executor-storage/src/passkey_challenge.rs
              
                Outdated
          
            Show resolved
            Hide resolved
        
              
          
                tee-worker/omni-executor/rpc-server/src/methods/omni/attach_passkey.rs
              
                Outdated
          
            Show resolved
            Hide resolved
        
              
          
                tee-worker/omni-executor/executor-storage/src/passkey_challenge.rs
              
                Outdated
          
            Show resolved
            Hide resolved
        
      | The latest updates on your projects. Learn more about Vercel for GitHub. 
 |