Repository navigation
core_security_nhi
GitHub Action edited this page Oct 1, 2026
·
1 revision
iso_doc_type: "Specification" iso_viewpoint: "ComponentView" type: "module" title: "factory-core::security::nhi β Non-Human Identity Credentials" source_path: "crates/factory-core/src/security/nhi.rs" description: "ISO 42010 ComponentView / ISO 15289 Specification documentation for factory-core::security::nhi β Non-Human Identity Credentials." tags: ['iso42010', 'okf', 'component_view', 'rust', 'ast'] timestamp: "2026-10-01T14:00:00Z" generated: "agent:okf-professional-documenter" verified: "true" last_verified_commit: "fbdc5848"
Source:
crates/factory-core/src/security/nhi.rsLayer: Domain
classDiagram
class VerifiableCredential {
+Vec~String~ context
+String id
+Vec~String~ credential_type
+String issuer
+DateTime issuance_date
+AgentSubject credential_subject
+Option~CryptographicProof~ proof
+new(id, issuer, subject) VerifiableCredential
+sign(signing_key, key_id) Result
+sign_async(signing_key, key_id) Result
+sign_batch_async(credentials, key, key_id)$ Result
+verify(verifying_key) Result~bool~
+verify_batch_async(credentials, key)$ Result~bool~
}
class AgentSubject {
+String id
+Vec~String~ roles
+Vec~String~ allowed_namespaces
}
class CryptographicProof {
+String proof_type
+DateTime created
+String verification_method
+String proof_purpose
+String jws
}
VerifiableCredential "1" *-- "1" AgentSubject
VerifiableCredential "1" *-- "0..1" CryptographicProof
note for VerifiableCredential "W3C VC Data Model\nEd25519Signature2020\nJWS: Header..Signature"
sequenceDiagram
participant Factory as Factory Orchestrator
participant NHI as NHI Module
participant Vault as Vault
participant Agent as Agent Pod
Factory->>NHI: Create VerifiableCredential(id, issuer, AgentSubject)
NHI->>Vault: Retrieve Ed25519 SigningKey
Vault-->>NHI: SigningKey
NHI->>NHI: sign(signing_key, key_id)
Note right of NHI: 1. Serialize VC without proof<br/>2. Create JWS header (EdDSA)<br/>3. Sign Header.Payload<br/>4. Attach CryptographicProof
NHI-->>Factory: Signed VerifiableCredential
Factory->>Agent: Dispatch task + VC
Agent->>Agent: verify(verifying_key)
Note right of Agent: 1. Extract JWS parts (Header..Sig)<br/>2. Decode Base64 signature<br/>3. Reconstruct signing input<br/>4. Ed25519 verify
alt Valid
Agent-->>Factory: Task executed
else Invalid
Agent-->>Factory: FactoryError::Security
end
| Method | Description | Concurrency |
|---|---|---|
sign_batch_async |
Signs multiple VCs concurrently |
tokio::task::spawn_blocking per VC |
verify_batch_async |
Verifies multiple VCs concurrently | Returns false on first failure |
Related: security.rs Β· Security Architecture
- Business Context
- Strategic Design
- Tactical Design
- Agent Specifications
- Runtime Sequences
- Infrastructure Adapters
- Mission Data Model
- lib.md
- gitlab_verifier.md
- poller_service.md
- telemetry_export.md
- Agents
- Workflows
- Bridge
- Utils
- lib.md
- github.md
- gitlab.md
- jira.md
- kafka.md
- ziti.md
- vault.md
- r2r.md
- semantica.md
- aethalgard.md
- mcp_client.md
- pipeline_classifier.md
- s3.md
- sentry.md
- security_validator.md
- cursor_store.md
- git_poller.md
- lib.md
- main.md
- protocol.md
- sandbox.md
- scratch.md
- feedback_route.md
- github_webhook.md
- Skills
-
Tools
- mod.md
- bridge.md
- deep_research_tool.md
- execute_code.md
- get_factory_status.md
- index_code.md
- inspect_kafka_topic.md
- launch_sandbox_pod.md
- list_minio_buckets.md
- list_minio_objects.md
- plan_mission.md
- retrieve_context.md
- run_tests.md
- search_jira.md
- security_review.md
- spec_kit_tasks_to_issues.md
- spec_kit_tool.md
- update_mission_status.md