auths-python 0.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (622) hide show
  1. auths_python-0.1.0/Cargo.toml +94 -0
  2. auths_python-0.1.0/PKG-INFO +152 -0
  3. auths_python-0.1.0/README.md +124 -0
  4. auths_python-0.1.0/crates/auths-core/Cargo.toml +108 -0
  5. auths_python-0.1.0/crates/auths-core/README.md +29 -0
  6. auths_python-0.1.0/crates/auths-core/benches/crypto.rs +127 -0
  7. auths_python-0.1.0/crates/auths-core/cbindgen.toml +14 -0
  8. auths_python-0.1.0/crates/auths-core/clippy.toml +58 -0
  9. auths_python-0.1.0/crates/auths-core/src/agent/client.rs +673 -0
  10. auths_python-0.1.0/crates/auths-core/src/agent/core.rs +178 -0
  11. auths_python-0.1.0/crates/auths-core/src/agent/handle.rs +577 -0
  12. auths_python-0.1.0/crates/auths-core/src/agent/mod.rs +19 -0
  13. auths_python-0.1.0/crates/auths-core/src/agent/session.rs +399 -0
  14. auths_python-0.1.0/crates/auths-core/src/api/ffi.rs +964 -0
  15. auths_python-0.1.0/crates/auths-core/src/api/mod.rs +8 -0
  16. auths_python-0.1.0/crates/auths-core/src/api/runtime.rs +821 -0
  17. auths_python-0.1.0/crates/auths-core/src/config.rs +358 -0
  18. auths_python-0.1.0/crates/auths-core/src/crypto/encryption.rs +336 -0
  19. auths_python-0.1.0/crates/auths-core/src/crypto/mod.rs +44 -0
  20. auths_python-0.1.0/crates/auths-core/src/crypto/provider_bridge.rs +55 -0
  21. auths_python-0.1.0/crates/auths-core/src/crypto/said.rs +121 -0
  22. auths_python-0.1.0/crates/auths-core/src/crypto/secp256k1.rs +235 -0
  23. auths_python-0.1.0/crates/auths-core/src/crypto/signer.rs +97 -0
  24. auths_python-0.1.0/crates/auths-core/src/crypto/ssh/encoding.rs +49 -0
  25. auths_python-0.1.0/crates/auths-core/src/crypto/ssh/error.rs +61 -0
  26. auths_python-0.1.0/crates/auths-core/src/crypto/ssh/keys.rs +64 -0
  27. auths_python-0.1.0/crates/auths-core/src/crypto/ssh/mod.rs +14 -0
  28. auths_python-0.1.0/crates/auths-core/src/crypto/ssh/signatures.rs +153 -0
  29. auths_python-0.1.0/crates/auths-core/src/error.rs +278 -0
  30. auths_python-0.1.0/crates/auths-core/src/lib.rs +74 -0
  31. auths_python-0.1.0/crates/auths-core/src/pairing/error.rs +78 -0
  32. auths_python-0.1.0/crates/auths-core/src/pairing/mod.rs +18 -0
  33. auths_python-0.1.0/crates/auths-core/src/pairing/qr.rs +158 -0
  34. auths_python-0.1.0/crates/auths-core/src/paths.rs +81 -0
  35. auths_python-0.1.0/crates/auths-core/src/platform/android.rs +0 -0
  36. auths_python-0.1.0/crates/auths-core/src/platform/ios.rs +0 -0
  37. auths_python-0.1.0/crates/auths-core/src/platform/macos.rs +0 -0
  38. auths_python-0.1.0/crates/auths-core/src/platform/mod.rs +0 -0
  39. auths_python-0.1.0/crates/auths-core/src/policy/decision.rs +216 -0
  40. auths_python-0.1.0/crates/auths-core/src/policy/device.rs +404 -0
  41. auths_python-0.1.0/crates/auths-core/src/policy/mod.rs +70 -0
  42. auths_python-0.1.0/crates/auths-core/src/policy/org.rs +371 -0
  43. auths_python-0.1.0/crates/auths-core/src/ports/clock.rs +7 -0
  44. auths_python-0.1.0/crates/auths-core/src/ports/config_store.rs +63 -0
  45. auths_python-0.1.0/crates/auths-core/src/ports/id.rs +20 -0
  46. auths_python-0.1.0/crates/auths-core/src/ports/mod.rs +15 -0
  47. auths_python-0.1.0/crates/auths-core/src/ports/namespace.rs +477 -0
  48. auths_python-0.1.0/crates/auths-core/src/ports/network.rs +409 -0
  49. auths_python-0.1.0/crates/auths-core/src/ports/pairing.rs +133 -0
  50. auths_python-0.1.0/crates/auths-core/src/ports/platform.rs +260 -0
  51. auths_python-0.1.0/crates/auths-core/src/ports/ssh_agent.rs +84 -0
  52. auths_python-0.1.0/crates/auths-core/src/ports/storage/blob_reader.rs +53 -0
  53. auths_python-0.1.0/crates/auths-core/src/ports/storage/blob_writer.rs +40 -0
  54. auths_python-0.1.0/crates/auths-core/src/ports/storage/error.rs +94 -0
  55. auths_python-0.1.0/crates/auths-core/src/ports/storage/event_log_reader.rs +45 -0
  56. auths_python-0.1.0/crates/auths-core/src/ports/storage/event_log_writer.rs +33 -0
  57. auths_python-0.1.0/crates/auths-core/src/ports/storage/mod.rs +17 -0
  58. auths_python-0.1.0/crates/auths-core/src/ports/storage/ref_reader.rs +39 -0
  59. auths_python-0.1.0/crates/auths-core/src/ports/storage/ref_writer.rs +41 -0
  60. auths_python-0.1.0/crates/auths-core/src/proto.rs +28 -0
  61. auths_python-0.1.0/crates/auths-core/src/server.rs +9 -0
  62. auths_python-0.1.0/crates/auths-core/src/signing.rs +1055 -0
  63. auths_python-0.1.0/crates/auths-core/src/storage/android_keystore.rs +151 -0
  64. auths_python-0.1.0/crates/auths-core/src/storage/encrypted_file.rs +633 -0
  65. auths_python-0.1.0/crates/auths-core/src/storage/ios_keychain.rs +463 -0
  66. auths_python-0.1.0/crates/auths-core/src/storage/keychain.rs +663 -0
  67. auths_python-0.1.0/crates/auths-core/src/storage/linux_secret_service.rs +376 -0
  68. auths_python-0.1.0/crates/auths-core/src/storage/macos_keychain.rs +672 -0
  69. auths_python-0.1.0/crates/auths-core/src/storage/memory.rs +268 -0
  70. auths_python-0.1.0/crates/auths-core/src/storage/mod.rs +23 -0
  71. auths_python-0.1.0/crates/auths-core/src/storage/passphrase_cache.rs +670 -0
  72. auths_python-0.1.0/crates/auths-core/src/storage/pkcs11.rs +583 -0
  73. auths_python-0.1.0/crates/auths-core/src/storage/windows_credential.rs +326 -0
  74. auths_python-0.1.0/crates/auths-core/src/testing/builder.rs +362 -0
  75. auths_python-0.1.0/crates/auths-core/src/testing/deterministic_uuid.rs +54 -0
  76. auths_python-0.1.0/crates/auths-core/src/testing/fake_config_store.rs +105 -0
  77. auths_python-0.1.0/crates/auths-core/src/testing/in_memory_storage.rs +227 -0
  78. auths_python-0.1.0/crates/auths-core/src/testing/mod.rs +56 -0
  79. auths_python-0.1.0/crates/auths-core/src/trust/continuity.rs +139 -0
  80. auths_python-0.1.0/crates/auths-core/src/trust/mod.rs +27 -0
  81. auths_python-0.1.0/crates/auths-core/src/trust/pinned.rs +523 -0
  82. auths_python-0.1.0/crates/auths-core/src/trust/policy.rs +74 -0
  83. auths_python-0.1.0/crates/auths-core/src/trust/resolve.rs +402 -0
  84. auths_python-0.1.0/crates/auths-core/src/trust/roots_file.rs +274 -0
  85. auths_python-0.1.0/crates/auths-core/src/utils.rs +6 -0
  86. auths_python-0.1.0/crates/auths-core/src/witness/async_provider.rs +259 -0
  87. auths_python-0.1.0/crates/auths-core/src/witness/collector.rs +396 -0
  88. auths_python-0.1.0/crates/auths-core/src/witness/duplicity.rs +387 -0
  89. auths_python-0.1.0/crates/auths-core/src/witness/error.rs +202 -0
  90. auths_python-0.1.0/crates/auths-core/src/witness/hash.rs +307 -0
  91. auths_python-0.1.0/crates/auths-core/src/witness/mod.rs +109 -0
  92. auths_python-0.1.0/crates/auths-core/src/witness/noop.rs +86 -0
  93. auths_python-0.1.0/crates/auths-core/src/witness/provider.rs +132 -0
  94. auths_python-0.1.0/crates/auths-core/src/witness/receipt.rs +381 -0
  95. auths_python-0.1.0/crates/auths-core/src/witness/server.rs +1041 -0
  96. auths_python-0.1.0/crates/auths-core/src/witness/storage.rs +451 -0
  97. auths_python-0.1.0/crates/auths-core/tests/cases/assurance_level.rs +50 -0
  98. auths_python-0.1.0/crates/auths-core/tests/cases/key_export.rs +178 -0
  99. auths_python-0.1.0/crates/auths-core/tests/cases/mod.rs +7 -0
  100. auths_python-0.1.0/crates/auths-core/tests/cases/namespace.rs +257 -0
  101. auths_python-0.1.0/crates/auths-core/tests/cases/pkcs11.rs +260 -0
  102. auths_python-0.1.0/crates/auths-core/tests/cases/said_cross_validation.rs +85 -0
  103. auths_python-0.1.0/crates/auths-core/tests/cases/ssh_crypto.rs +110 -0
  104. auths_python-0.1.0/crates/auths-core/tests/cases/witness.rs +200 -0
  105. auths_python-0.1.0/crates/auths-core/tests/integration.rs +10 -0
  106. auths_python-0.1.0/crates/auths-core/tests/passphrase_cache_manual.rs +50 -0
  107. auths_python-0.1.0/crates/auths-crypto/Cargo.toml +47 -0
  108. auths_python-0.1.0/crates/auths-crypto/clippy.toml +58 -0
  109. auths_python-0.1.0/crates/auths-crypto/src/did_key.rs +139 -0
  110. auths_python-0.1.0/crates/auths-crypto/src/error.rs +27 -0
  111. auths_python-0.1.0/crates/auths-crypto/src/keri.rs +148 -0
  112. auths_python-0.1.0/crates/auths-crypto/src/key_material.rs +239 -0
  113. auths_python-0.1.0/crates/auths-crypto/src/lib.rs +40 -0
  114. auths_python-0.1.0/crates/auths-crypto/src/pkcs8.rs +70 -0
  115. auths_python-0.1.0/crates/auths-crypto/src/provider.rs +171 -0
  116. auths_python-0.1.0/crates/auths-crypto/src/ring_provider.rs +114 -0
  117. auths_python-0.1.0/crates/auths-crypto/src/ssh.rs +52 -0
  118. auths_python-0.1.0/crates/auths-crypto/src/testing.rs +64 -0
  119. auths_python-0.1.0/crates/auths-crypto/src/webcrypto_provider.rs +115 -0
  120. auths_python-0.1.0/crates/auths-crypto/tests/cases/mod.rs +4 -0
  121. auths_python-0.1.0/crates/auths-crypto/tests/cases/provider.rs +69 -0
  122. auths_python-0.1.0/crates/auths-crypto/tests/cases/ssh.rs +40 -0
  123. auths_python-0.1.0/crates/auths-crypto/tests/integration.rs +10 -0
  124. auths_python-0.1.0/crates/auths-crypto/tests/wasm_provider.rs +84 -0
  125. auths_python-0.1.0/crates/auths-id/Cargo.toml +75 -0
  126. auths_python-0.1.0/crates/auths-id/README.md +23 -0
  127. auths_python-0.1.0/crates/auths-id/clippy.toml +58 -0
  128. auths_python-0.1.0/crates/auths-id/src/agent_identity.rs +469 -0
  129. auths_python-0.1.0/crates/auths-id/src/attestation/core.rs +128 -0
  130. auths_python-0.1.0/crates/auths-id/src/attestation/create.rs +206 -0
  131. auths_python-0.1.0/crates/auths-id/src/attestation/encoders.rs +6 -0
  132. auths_python-0.1.0/crates/auths-id/src/attestation/export.rs +24 -0
  133. auths_python-0.1.0/crates/auths-id/src/attestation/group.rs +48 -0
  134. auths_python-0.1.0/crates/auths-id/src/attestation/json_schema_encoder.rs +43 -0
  135. auths_python-0.1.0/crates/auths-id/src/attestation/load.rs +68 -0
  136. auths_python-0.1.0/crates/auths-id/src/attestation/mod.rs +15 -0
  137. auths_python-0.1.0/crates/auths-id/src/attestation/revoke.rs +115 -0
  138. auths_python-0.1.0/crates/auths-id/src/attestation/verify.rs +204 -0
  139. auths_python-0.1.0/crates/auths-id/src/domain/attestation_message.rs +102 -0
  140. auths_python-0.1.0/crates/auths-id/src/domain/kel_port.rs +69 -0
  141. auths_python-0.1.0/crates/auths-id/src/domain/keri_resolve.rs +295 -0
  142. auths_python-0.1.0/crates/auths-id/src/domain/mod.rs +7 -0
  143. auths_python-0.1.0/crates/auths-id/src/error.rs +147 -0
  144. auths_python-0.1.0/crates/auths-id/src/freeze.rs +287 -0
  145. auths_python-0.1.0/crates/auths-id/src/identity/events.rs +145 -0
  146. auths_python-0.1.0/crates/auths-id/src/identity/helpers.rs +174 -0
  147. auths_python-0.1.0/crates/auths-id/src/identity/initialize.rs +196 -0
  148. auths_python-0.1.0/crates/auths-id/src/identity/managed.rs +9 -0
  149. auths_python-0.1.0/crates/auths-id/src/identity/mod.rs +15 -0
  150. auths_python-0.1.0/crates/auths-id/src/identity/resolve.rs +250 -0
  151. auths_python-0.1.0/crates/auths-id/src/identity/rotate.rs +338 -0
  152. auths_python-0.1.0/crates/auths-id/src/keri/anchor.rs +546 -0
  153. auths_python-0.1.0/crates/auths-id/src/keri/cache.rs +608 -0
  154. auths_python-0.1.0/crates/auths-id/src/keri/event.rs +651 -0
  155. auths_python-0.1.0/crates/auths-id/src/keri/inception.rs +513 -0
  156. auths_python-0.1.0/crates/auths-id/src/keri/incremental.rs +442 -0
  157. auths_python-0.1.0/crates/auths-id/src/keri/kel.rs +1051 -0
  158. auths_python-0.1.0/crates/auths-id/src/keri/mod.rs +153 -0
  159. auths_python-0.1.0/crates/auths-id/src/keri/resolve.rs +335 -0
  160. auths_python-0.1.0/crates/auths-id/src/keri/rotation.rs +666 -0
  161. auths_python-0.1.0/crates/auths-id/src/keri/seal.rs +155 -0
  162. auths_python-0.1.0/crates/auths-id/src/keri/state.rs +221 -0
  163. auths_python-0.1.0/crates/auths-id/src/keri/types.rs +72 -0
  164. auths_python-0.1.0/crates/auths-id/src/keri/validate.rs +1344 -0
  165. auths_python-0.1.0/crates/auths-id/src/keri/witness_integration.rs +131 -0
  166. auths_python-0.1.0/crates/auths-id/src/lib.rs +74 -0
  167. auths_python-0.1.0/crates/auths-id/src/policy/mod.rs +862 -0
  168. auths_python-0.1.0/crates/auths-id/src/ports/mod.rs +18 -0
  169. auths_python-0.1.0/crates/auths-id/src/ports/registry.rs +14 -0
  170. auths_python-0.1.0/crates/auths-id/src/ports/storage.rs +9 -0
  171. auths_python-0.1.0/crates/auths-id/src/storage/attestation.rs +76 -0
  172. auths_python-0.1.0/crates/auths-id/src/storage/driver.rs +166 -0
  173. auths_python-0.1.0/crates/auths-id/src/storage/git_refs.rs +43 -0
  174. auths_python-0.1.0/crates/auths-id/src/storage/identity.rs +35 -0
  175. auths_python-0.1.0/crates/auths-id/src/storage/indexed.rs +169 -0
  176. auths_python-0.1.0/crates/auths-id/src/storage/keri.rs +655 -0
  177. auths_python-0.1.0/crates/auths-id/src/storage/layout.rs +402 -0
  178. auths_python-0.1.0/crates/auths-id/src/storage/mod.rs +19 -0
  179. auths_python-0.1.0/crates/auths-id/src/storage/receipts.rs +466 -0
  180. auths_python-0.1.0/crates/auths-id/src/storage/registry/backend.rs +881 -0
  181. auths_python-0.1.0/crates/auths-id/src/storage/registry/hooks.rs +579 -0
  182. auths_python-0.1.0/crates/auths-id/src/storage/registry/mod.rs +24 -0
  183. auths_python-0.1.0/crates/auths-id/src/storage/registry/org_member.rs +387 -0
  184. auths_python-0.1.0/crates/auths-id/src/storage/registry/schemas.rs +246 -0
  185. auths_python-0.1.0/crates/auths-id/src/storage/registry/shard.rs +540 -0
  186. auths_python-0.1.0/crates/auths-id/src/testing/contracts/mod.rs +1 -0
  187. auths_python-0.1.0/crates/auths-id/src/testing/contracts/registry.rs +337 -0
  188. auths_python-0.1.0/crates/auths-id/src/testing/fakes/attestation.rs +85 -0
  189. auths_python-0.1.0/crates/auths-id/src/testing/fakes/identity_storage.rs +57 -0
  190. auths_python-0.1.0/crates/auths-id/src/testing/fakes/mod.rs +10 -0
  191. auths_python-0.1.0/crates/auths-id/src/testing/fakes/registry.rs +321 -0
  192. auths_python-0.1.0/crates/auths-id/src/testing/fixtures.rs +104 -0
  193. auths_python-0.1.0/crates/auths-id/src/testing/mocks.rs +88 -0
  194. auths_python-0.1.0/crates/auths-id/src/testing/mod.rs +7 -0
  195. auths_python-0.1.0/crates/auths-id/src/trailer.rs +342 -0
  196. auths_python-0.1.0/crates/auths-id/src/trust/mod.rs +141 -0
  197. auths_python-0.1.0/crates/auths-id/src/witness.rs +97 -0
  198. auths_python-0.1.0/crates/auths-id/src/witness_config.rs +128 -0
  199. auths_python-0.1.0/crates/auths-id/tests/cases/keri.rs +341 -0
  200. auths_python-0.1.0/crates/auths-id/tests/cases/lifecycle.rs +531 -0
  201. auths_python-0.1.0/crates/auths-id/tests/cases/mod.rs +7 -0
  202. auths_python-0.1.0/crates/auths-id/tests/cases/proptest_keri.rs +261 -0
  203. auths_python-0.1.0/crates/auths-id/tests/cases/recovery.rs +151 -0
  204. auths_python-0.1.0/crates/auths-id/tests/cases/registry_contract.rs +4 -0
  205. auths_python-0.1.0/crates/auths-id/tests/cases/rotation_edge_cases.rs +268 -0
  206. auths_python-0.1.0/crates/auths-id/tests/cases/serialization_pinning.rs +145 -0
  207. auths_python-0.1.0/crates/auths-id/tests/integration.rs +9 -0
  208. auths_python-0.1.0/crates/auths-infra-git/Cargo.toml +28 -0
  209. auths_python-0.1.0/crates/auths-infra-git/src/audit.rs +143 -0
  210. auths_python-0.1.0/crates/auths-infra-git/src/blob_store.rs +100 -0
  211. auths_python-0.1.0/crates/auths-infra-git/src/error.rs +113 -0
  212. auths_python-0.1.0/crates/auths-infra-git/src/event_log.rs +106 -0
  213. auths_python-0.1.0/crates/auths-infra-git/src/helpers.rs +72 -0
  214. auths_python-0.1.0/crates/auths-infra-git/src/lib.rs +25 -0
  215. auths_python-0.1.0/crates/auths-infra-git/src/ref_store.rs +66 -0
  216. auths_python-0.1.0/crates/auths-infra-git/src/repo.rs +74 -0
  217. auths_python-0.1.0/crates/auths-infra-git/tests/cases/blob_store.rs +89 -0
  218. auths_python-0.1.0/crates/auths-infra-git/tests/cases/event_log.rs +72 -0
  219. auths_python-0.1.0/crates/auths-infra-git/tests/cases/git_log_contract.rs +58 -0
  220. auths_python-0.1.0/crates/auths-infra-git/tests/cases/mod.rs +4 -0
  221. auths_python-0.1.0/crates/auths-infra-git/tests/cases/ref_store.rs +65 -0
  222. auths_python-0.1.0/crates/auths-infra-git/tests/integration.rs +9 -0
  223. auths_python-0.1.0/crates/auths-infra-http/Cargo.toml +47 -0
  224. auths_python-0.1.0/crates/auths-infra-http/src/async_witness_client.rs +285 -0
  225. auths_python-0.1.0/crates/auths-infra-http/src/claim_client.rs +91 -0
  226. auths_python-0.1.0/crates/auths-infra-http/src/error.rs +76 -0
  227. auths_python-0.1.0/crates/auths-infra-http/src/github_gist.rs +91 -0
  228. auths_python-0.1.0/crates/auths-infra-http/src/github_oauth.rs +195 -0
  229. auths_python-0.1.0/crates/auths-infra-http/src/github_ssh_keys.rs +305 -0
  230. auths_python-0.1.0/crates/auths-infra-http/src/identity_resolver.rs +94 -0
  231. auths_python-0.1.0/crates/auths-infra-http/src/lib.rs +76 -0
  232. auths_python-0.1.0/crates/auths-infra-http/src/namespace/cargo_verifier.rs +317 -0
  233. auths_python-0.1.0/crates/auths-infra-http/src/namespace/mod.rs +30 -0
  234. auths_python-0.1.0/crates/auths-infra-http/src/namespace/npm_verifier.rs +325 -0
  235. auths_python-0.1.0/crates/auths-infra-http/src/namespace/pypi_verifier.rs +428 -0
  236. auths_python-0.1.0/crates/auths-infra-http/src/npm_auth.rs +77 -0
  237. auths_python-0.1.0/crates/auths-infra-http/src/oidc_platforms.rs +275 -0
  238. auths_python-0.1.0/crates/auths-infra-http/src/oidc_tsa_client.rs +90 -0
  239. auths_python-0.1.0/crates/auths-infra-http/src/oidc_validator.rs +356 -0
  240. auths_python-0.1.0/crates/auths-infra-http/src/pairing_client.rs +293 -0
  241. auths_python-0.1.0/crates/auths-infra-http/src/platform_context.rs +120 -0
  242. auths_python-0.1.0/crates/auths-infra-http/src/registry_client.rs +160 -0
  243. auths_python-0.1.0/crates/auths-infra-http/src/request.rs +90 -0
  244. auths_python-0.1.0/crates/auths-infra-http/src/witness_client.rs +77 -0
  245. auths_python-0.1.0/crates/auths-infra-http/tests/cases/mod.rs +2 -0
  246. auths_python-0.1.0/crates/auths-infra-http/tests/cases/witness.rs +179 -0
  247. auths_python-0.1.0/crates/auths-infra-http/tests/integration.rs +9 -0
  248. auths_python-0.1.0/crates/auths-oidc-port/Cargo.toml +19 -0
  249. auths_python-0.1.0/crates/auths-oidc-port/README.md +33 -0
  250. auths_python-0.1.0/crates/auths-oidc-port/src/error.rs +205 -0
  251. auths_python-0.1.0/crates/auths-oidc-port/src/lib.rs +10 -0
  252. auths_python-0.1.0/crates/auths-oidc-port/src/ports.rs +321 -0
  253. auths_python-0.1.0/crates/auths-pairing-daemon/Cargo.toml +44 -0
  254. auths_python-0.1.0/crates/auths-pairing-daemon/README.md +59 -0
  255. auths_python-0.1.0/crates/auths-pairing-daemon/docs/mdns_discovery.md +35 -0
  256. auths_python-0.1.0/crates/auths-pairing-daemon/src/discovery.rs +199 -0
  257. auths_python-0.1.0/crates/auths-pairing-daemon/src/error.rs +26 -0
  258. auths_python-0.1.0/crates/auths-pairing-daemon/src/handlers.rs +152 -0
  259. auths_python-0.1.0/crates/auths-pairing-daemon/src/lib.rs +45 -0
  260. auths_python-0.1.0/crates/auths-pairing-daemon/src/network.rs +133 -0
  261. auths_python-0.1.0/crates/auths-pairing-daemon/src/rate_limiter.rs +139 -0
  262. auths_python-0.1.0/crates/auths-pairing-daemon/src/router.rs +61 -0
  263. auths_python-0.1.0/crates/auths-pairing-daemon/src/security_audit.md +113 -0
  264. auths_python-0.1.0/crates/auths-pairing-daemon/src/server.rs +293 -0
  265. auths_python-0.1.0/crates/auths-pairing-daemon/src/state.rs +209 -0
  266. auths_python-0.1.0/crates/auths-pairing-daemon/src/token.rs +58 -0
  267. auths_python-0.1.0/crates/auths-pairing-daemon/tests/cases/builder.rs +41 -0
  268. auths_python-0.1.0/crates/auths-pairing-daemon/tests/cases/mod.rs +34 -0
  269. auths_python-0.1.0/crates/auths-pairing-daemon/tests/cases/rate_limiter.rs +41 -0
  270. auths_python-0.1.0/crates/auths-pairing-daemon/tests/cases/router.rs +286 -0
  271. auths_python-0.1.0/crates/auths-pairing-daemon/tests/cases/token.rs +22 -0
  272. auths_python-0.1.0/crates/auths-pairing-daemon/tests/integration.rs +1 -0
  273. auths_python-0.1.0/crates/auths-pairing-protocol/Cargo.toml +37 -0
  274. auths_python-0.1.0/crates/auths-pairing-protocol/src/error.rs +50 -0
  275. auths_python-0.1.0/crates/auths-pairing-protocol/src/lib.rs +23 -0
  276. auths_python-0.1.0/crates/auths-pairing-protocol/src/protocol.rs +315 -0
  277. auths_python-0.1.0/crates/auths-pairing-protocol/src/response.rs +291 -0
  278. auths_python-0.1.0/crates/auths-pairing-protocol/src/sas.rs +367 -0
  279. auths_python-0.1.0/crates/auths-pairing-protocol/src/token.rs +329 -0
  280. auths_python-0.1.0/crates/auths-pairing-protocol/src/types.rs +131 -0
  281. auths_python-0.1.0/crates/auths-policy/Cargo.toml +25 -0
  282. auths_python-0.1.0/crates/auths-policy/README.md +23 -0
  283. auths_python-0.1.0/crates/auths-policy/src/approval.rs +158 -0
  284. auths_python-0.1.0/crates/auths-policy/src/builder.rs +610 -0
  285. auths_python-0.1.0/crates/auths-policy/src/compile.rs +995 -0
  286. auths_python-0.1.0/crates/auths-policy/src/compiled.rs +343 -0
  287. auths_python-0.1.0/crates/auths-policy/src/context.rs +355 -0
  288. auths_python-0.1.0/crates/auths-policy/src/decision.rs +277 -0
  289. auths_python-0.1.0/crates/auths-policy/src/enforce.rs +228 -0
  290. auths_python-0.1.0/crates/auths-policy/src/eval.rs +965 -0
  291. auths_python-0.1.0/crates/auths-policy/src/expr.rs +358 -0
  292. auths_python-0.1.0/crates/auths-policy/src/glob.rs +280 -0
  293. auths_python-0.1.0/crates/auths-policy/src/lib.rs +65 -0
  294. auths_python-0.1.0/crates/auths-policy/src/trust.rs +373 -0
  295. auths_python-0.1.0/crates/auths-policy/src/types.rs +570 -0
  296. auths_python-0.1.0/crates/auths-policy/tests/cases/approval.rs +356 -0
  297. auths_python-0.1.0/crates/auths-policy/tests/cases/mod.rs +1 -0
  298. auths_python-0.1.0/crates/auths-policy/tests/integration.rs +3 -0
  299. auths_python-0.1.0/crates/auths-sdk/Cargo.toml +60 -0
  300. auths_python-0.1.0/crates/auths-sdk/README.md +249 -0
  301. auths_python-0.1.0/crates/auths-sdk/clippy.toml +58 -0
  302. auths_python-0.1.0/crates/auths-sdk/docs/wasm_compatibility.md +23 -0
  303. auths_python-0.1.0/crates/auths-sdk/src/audit.rs +22 -0
  304. auths_python-0.1.0/crates/auths-sdk/src/context.rs +453 -0
  305. auths_python-0.1.0/crates/auths-sdk/src/device.rs +3 -0
  306. auths_python-0.1.0/crates/auths-sdk/src/domains/agents/delegation.rs +187 -0
  307. auths_python-0.1.0/crates/auths-sdk/src/domains/agents/mod.rs +24 -0
  308. auths_python-0.1.0/crates/auths-sdk/src/domains/agents/persistence.rs +29 -0
  309. auths_python-0.1.0/crates/auths-sdk/src/domains/agents/registry.rs +319 -0
  310. auths_python-0.1.0/crates/auths-sdk/src/domains/agents/service.rs +212 -0
  311. auths_python-0.1.0/crates/auths-sdk/src/domains/agents/types.rs +133 -0
  312. auths_python-0.1.0/crates/auths-sdk/src/domains/auth/error.rs +135 -0
  313. auths_python-0.1.0/crates/auths-sdk/src/domains/auth/mod.rs +12 -0
  314. auths_python-0.1.0/crates/auths-sdk/src/domains/auth/service.rs +1 -0
  315. auths_python-0.1.0/crates/auths-sdk/src/domains/auth/types.rs +1 -0
  316. auths_python-0.1.0/crates/auths-sdk/src/domains/ci/environment.rs +56 -0
  317. auths_python-0.1.0/crates/auths-sdk/src/domains/ci/error.rs +75 -0
  318. auths_python-0.1.0/crates/auths-sdk/src/domains/ci/mod.rs +9 -0
  319. auths_python-0.1.0/crates/auths-sdk/src/domains/ci/types.rs +48 -0
  320. auths_python-0.1.0/crates/auths-sdk/src/domains/compliance/error.rs +68 -0
  321. auths_python-0.1.0/crates/auths-sdk/src/domains/compliance/mod.rs +12 -0
  322. auths_python-0.1.0/crates/auths-sdk/src/domains/compliance/service.rs +108 -0
  323. auths_python-0.1.0/crates/auths-sdk/src/domains/compliance/types.rs +1 -0
  324. auths_python-0.1.0/crates/auths-sdk/src/domains/device/error.rs +152 -0
  325. auths_python-0.1.0/crates/auths-sdk/src/domains/device/mod.rs +11 -0
  326. auths_python-0.1.0/crates/auths-sdk/src/domains/device/service.rs +348 -0
  327. auths_python-0.1.0/crates/auths-sdk/src/domains/device/types.rs +144 -0
  328. auths_python-0.1.0/crates/auths-sdk/src/domains/diagnostics/error.rs +1 -0
  329. auths_python-0.1.0/crates/auths-sdk/src/domains/diagnostics/mod.rs +8 -0
  330. auths_python-0.1.0/crates/auths-sdk/src/domains/diagnostics/service.rs +119 -0
  331. auths_python-0.1.0/crates/auths-sdk/src/domains/diagnostics/types.rs +54 -0
  332. auths_python-0.1.0/crates/auths-sdk/src/domains/identity/error.rs +258 -0
  333. auths_python-0.1.0/crates/auths-sdk/src/domains/identity/mod.rs +19 -0
  334. auths_python-0.1.0/crates/auths-sdk/src/domains/identity/provision.rs +183 -0
  335. auths_python-0.1.0/crates/auths-sdk/src/domains/identity/registration.rs +119 -0
  336. auths_python-0.1.0/crates/auths-sdk/src/domains/identity/rotation.rs +840 -0
  337. auths_python-0.1.0/crates/auths-sdk/src/domains/identity/service.rs +482 -0
  338. auths_python-0.1.0/crates/auths-sdk/src/domains/identity/types.rs +625 -0
  339. auths_python-0.1.0/crates/auths-sdk/src/domains/mod.rs +21 -0
  340. auths_python-0.1.0/crates/auths-sdk/src/domains/namespace/error.rs +1 -0
  341. auths_python-0.1.0/crates/auths-sdk/src/domains/namespace/mod.rs +10 -0
  342. auths_python-0.1.0/crates/auths-sdk/src/domains/namespace/service.rs +1 -0
  343. auths_python-0.1.0/crates/auths-sdk/src/domains/namespace/types.rs +1 -0
  344. auths_python-0.1.0/crates/auths-sdk/src/domains/org/error.rs +121 -0
  345. auths_python-0.1.0/crates/auths-sdk/src/domains/org/mod.rs +7 -0
  346. auths_python-0.1.0/crates/auths-sdk/src/domains/org/service.rs +546 -0
  347. auths_python-0.1.0/crates/auths-sdk/src/domains/org/types.rs +1 -0
  348. auths_python-0.1.0/crates/auths-sdk/src/domains/signing/error.rs +1 -0
  349. auths_python-0.1.0/crates/auths-sdk/src/domains/signing/mod.rs +7 -0
  350. auths_python-0.1.0/crates/auths-sdk/src/domains/signing/platform.rs +84 -0
  351. auths_python-0.1.0/crates/auths-sdk/src/domains/signing/service.rs +514 -0
  352. auths_python-0.1.0/crates/auths-sdk/src/domains/signing/types.rs +67 -0
  353. auths_python-0.1.0/crates/auths-sdk/src/error.rs +51 -0
  354. auths_python-0.1.0/crates/auths-sdk/src/keys.rs +108 -0
  355. auths_python-0.1.0/crates/auths-sdk/src/lib.rs +74 -0
  356. auths_python-0.1.0/crates/auths-sdk/src/namespace_registry.rs +111 -0
  357. auths_python-0.1.0/crates/auths-sdk/src/oidc_jti_registry.rs +186 -0
  358. auths_python-0.1.0/crates/auths-sdk/src/pairing/lan.rs +46 -0
  359. auths_python-0.1.0/crates/auths-sdk/src/pairing/mod.rs +861 -0
  360. auths_python-0.1.0/crates/auths-sdk/src/platform.rs +3 -0
  361. auths_python-0.1.0/crates/auths-sdk/src/ports/agent.rs +163 -0
  362. auths_python-0.1.0/crates/auths-sdk/src/ports/allowed_signers.rs +25 -0
  363. auths_python-0.1.0/crates/auths-sdk/src/ports/artifact.rs +74 -0
  364. auths_python-0.1.0/crates/auths-sdk/src/ports/diagnostics.rs +149 -0
  365. auths_python-0.1.0/crates/auths-sdk/src/ports/git.rs +117 -0
  366. auths_python-0.1.0/crates/auths-sdk/src/ports/git_config.rs +22 -0
  367. auths_python-0.1.0/crates/auths-sdk/src/ports/mod.rs +16 -0
  368. auths_python-0.1.0/crates/auths-sdk/src/ports/pairing.rs +2 -0
  369. auths_python-0.1.0/crates/auths-sdk/src/ports/platform.rs +10 -0
  370. auths_python-0.1.0/crates/auths-sdk/src/presentation/html.rs +156 -0
  371. auths_python-0.1.0/crates/auths-sdk/src/presentation/mod.rs +1 -0
  372. auths_python-0.1.0/crates/auths-sdk/src/registration.rs +4 -0
  373. auths_python-0.1.0/crates/auths-sdk/src/result.rs +18 -0
  374. auths_python-0.1.0/crates/auths-sdk/src/setup.rs +3 -0
  375. auths_python-0.1.0/crates/auths-sdk/src/signing.rs +7 -0
  376. auths_python-0.1.0/crates/auths-sdk/src/testing/contracts/artifact.rs +57 -0
  377. auths_python-0.1.0/crates/auths-sdk/src/testing/contracts/diagnostics.rs +78 -0
  378. auths_python-0.1.0/crates/auths-sdk/src/testing/contracts/git_config.rs +49 -0
  379. auths_python-0.1.0/crates/auths-sdk/src/testing/contracts/git_log.rs +60 -0
  380. auths_python-0.1.0/crates/auths-sdk/src/testing/contracts/mod.rs +9 -0
  381. auths_python-0.1.0/crates/auths-sdk/src/testing/fakes/agent.rs +147 -0
  382. auths_python-0.1.0/crates/auths-sdk/src/testing/fakes/allowed_signers_store.rs +105 -0
  383. auths_python-0.1.0/crates/auths-sdk/src/testing/fakes/artifact.rs +133 -0
  384. auths_python-0.1.0/crates/auths-sdk/src/testing/fakes/diagnostics.rs +92 -0
  385. auths_python-0.1.0/crates/auths-sdk/src/testing/fakes/git.rs +60 -0
  386. auths_python-0.1.0/crates/auths-sdk/src/testing/fakes/git_config.rs +111 -0
  387. auths_python-0.1.0/crates/auths-sdk/src/testing/fakes/mod.rs +17 -0
  388. auths_python-0.1.0/crates/auths-sdk/src/testing/fakes/namespace.rs +99 -0
  389. auths_python-0.1.0/crates/auths-sdk/src/testing/fakes/signer.rs +33 -0
  390. auths_python-0.1.0/crates/auths-sdk/src/testing/mod.rs +4 -0
  391. auths_python-0.1.0/crates/auths-sdk/src/types.rs +15 -0
  392. auths_python-0.1.0/crates/auths-sdk/src/workflows/allowed_signers.rs +635 -0
  393. auths_python-0.1.0/crates/auths-sdk/src/workflows/approval.rs +108 -0
  394. auths_python-0.1.0/crates/auths-sdk/src/workflows/artifact.rs +186 -0
  395. auths_python-0.1.0/crates/auths-sdk/src/workflows/audit.rs +145 -0
  396. auths_python-0.1.0/crates/auths-sdk/src/workflows/auth.rs +188 -0
  397. auths_python-0.1.0/crates/auths-sdk/src/workflows/ci/batch_attest.rs +281 -0
  398. auths_python-0.1.0/crates/auths-sdk/src/workflows/ci/machine_identity.rs +422 -0
  399. auths_python-0.1.0/crates/auths-sdk/src/workflows/ci/mod.rs +6 -0
  400. auths_python-0.1.0/crates/auths-sdk/src/workflows/diagnostics.rs +119 -0
  401. auths_python-0.1.0/crates/auths-sdk/src/workflows/git_integration.rs +39 -0
  402. auths_python-0.1.0/crates/auths-sdk/src/workflows/mcp.rs +121 -0
  403. auths_python-0.1.0/crates/auths-sdk/src/workflows/mod.rs +21 -0
  404. auths_python-0.1.0/crates/auths-sdk/src/workflows/namespace.rs +527 -0
  405. auths_python-0.1.0/crates/auths-sdk/src/workflows/org.rs +546 -0
  406. auths_python-0.1.0/crates/auths-sdk/src/workflows/platform.rs +490 -0
  407. auths_python-0.1.0/crates/auths-sdk/src/workflows/policy_diff.rs +243 -0
  408. auths_python-0.1.0/crates/auths-sdk/src/workflows/provision.rs +183 -0
  409. auths_python-0.1.0/crates/auths-sdk/src/workflows/rotation.rs +839 -0
  410. auths_python-0.1.0/crates/auths-sdk/src/workflows/signing.rs +237 -0
  411. auths_python-0.1.0/crates/auths-sdk/src/workflows/status.rs +188 -0
  412. auths_python-0.1.0/crates/auths-sdk/src/workflows/transparency.rs +569 -0
  413. auths_python-0.1.0/crates/auths-sdk/tests/cases/allowed_signers.rs +176 -0
  414. auths_python-0.1.0/crates/auths-sdk/tests/cases/artifact.rs +191 -0
  415. auths_python-0.1.0/crates/auths-sdk/tests/cases/audit.rs +109 -0
  416. auths_python-0.1.0/crates/auths-sdk/tests/cases/ci_setup.rs +93 -0
  417. auths_python-0.1.0/crates/auths-sdk/tests/cases/device.rs +148 -0
  418. auths_python-0.1.0/crates/auths-sdk/tests/cases/diagnostics.rs +97 -0
  419. auths_python-0.1.0/crates/auths-sdk/tests/cases/helpers.rs +125 -0
  420. auths_python-0.1.0/crates/auths-sdk/tests/cases/mod.rs +13 -0
  421. auths_python-0.1.0/crates/auths-sdk/tests/cases/org.rs +572 -0
  422. auths_python-0.1.0/crates/auths-sdk/tests/cases/pairing.rs +123 -0
  423. auths_python-0.1.0/crates/auths-sdk/tests/cases/rotation.rs +302 -0
  424. auths_python-0.1.0/crates/auths-sdk/tests/cases/setup.rs +124 -0
  425. auths_python-0.1.0/crates/auths-sdk/tests/cases/signing.rs +219 -0
  426. auths_python-0.1.0/crates/auths-sdk/tests/cases/ssh_key_upload.rs +115 -0
  427. auths_python-0.1.0/crates/auths-sdk/tests/integration.rs +9 -0
  428. auths_python-0.1.0/crates/auths-sdk/tests/sign_commit_attestation.rs +221 -0
  429. auths_python-0.1.0/crates/auths-storage/Cargo.toml +59 -0
  430. auths_python-0.1.0/crates/auths-storage/README.md +44 -0
  431. auths_python-0.1.0/crates/auths-storage/benches/registry.rs +334 -0
  432. auths_python-0.1.0/crates/auths-storage/src/git/adapter.rs +4206 -0
  433. auths_python-0.1.0/crates/auths-storage/src/git/approval.rs +233 -0
  434. auths_python-0.1.0/crates/auths-storage/src/git/attestation_adapter.rs +341 -0
  435. auths_python-0.1.0/crates/auths-storage/src/git/config.rs +121 -0
  436. auths_python-0.1.0/crates/auths-storage/src/git/identity_adapter.rs +427 -0
  437. auths_python-0.1.0/crates/auths-storage/src/git/mod.rs +21 -0
  438. auths_python-0.1.0/crates/auths-storage/src/git/paths.rs +164 -0
  439. auths_python-0.1.0/crates/auths-storage/src/git/standalone_attestation.rs +227 -0
  440. auths_python-0.1.0/crates/auths-storage/src/git/standalone_export.rs +162 -0
  441. auths_python-0.1.0/crates/auths-storage/src/git/standalone_identity.rs +185 -0
  442. auths_python-0.1.0/crates/auths-storage/src/git/tree_ops.rs +607 -0
  443. auths_python-0.1.0/crates/auths-storage/src/git/vfs.rs +247 -0
  444. auths_python-0.1.0/crates/auths-storage/src/lib.rs +34 -0
  445. auths_python-0.1.0/crates/auths-storage/src/postgres/adapter.rs +149 -0
  446. auths_python-0.1.0/crates/auths-storage/src/postgres/mod.rs +3 -0
  447. auths_python-0.1.0/crates/auths-storage/tests/cases/batch_events.rs +115 -0
  448. auths_python-0.1.0/crates/auths-storage/tests/cases/concurrent_batch.rs +290 -0
  449. auths_python-0.1.0/crates/auths-storage/tests/cases/concurrent_writes.rs +181 -0
  450. auths_python-0.1.0/crates/auths-storage/tests/cases/mock_ed25519_keypairs.rs +261 -0
  451. auths_python-0.1.0/crates/auths-storage/tests/cases/mod.rs +6 -0
  452. auths_python-0.1.0/crates/auths-storage/tests/cases/registry_contract.rs +9 -0
  453. auths_python-0.1.0/crates/auths-storage/tests/integration.rs +9 -0
  454. auths_python-0.1.0/crates/auths-telemetry/Cargo.toml +40 -0
  455. auths_python-0.1.0/crates/auths-telemetry/src/config.rs +234 -0
  456. auths_python-0.1.0/crates/auths-telemetry/src/emitter.rs +79 -0
  457. auths_python-0.1.0/crates/auths-telemetry/src/event.rs +54 -0
  458. auths_python-0.1.0/crates/auths-telemetry/src/lib.rs +42 -0
  459. auths_python-0.1.0/crates/auths-telemetry/src/logging.rs +79 -0
  460. auths_python-0.1.0/crates/auths-telemetry/src/metrics.rs +22 -0
  461. auths_python-0.1.0/crates/auths-telemetry/src/ports.rs +26 -0
  462. auths_python-0.1.0/crates/auths-telemetry/src/sinks/composite.rs +90 -0
  463. auths_python-0.1.0/crates/auths-telemetry/src/sinks/http.rs +236 -0
  464. auths_python-0.1.0/crates/auths-telemetry/src/sinks/mod.rs +6 -0
  465. auths_python-0.1.0/crates/auths-telemetry/src/sinks/stdout.rs +48 -0
  466. auths_python-0.1.0/crates/auths-telemetry/src/testing.rs +139 -0
  467. auths_python-0.1.0/crates/auths-telemetry/telemetry-schema.md +88 -0
  468. auths_python-0.1.0/crates/auths-telemetry/tests/cases/composite.rs +96 -0
  469. auths_python-0.1.0/crates/auths-telemetry/tests/cases/config.rs +168 -0
  470. auths_python-0.1.0/crates/auths-telemetry/tests/cases/emitter.rs +55 -0
  471. auths_python-0.1.0/crates/auths-telemetry/tests/cases/http_sink.rs +202 -0
  472. auths_python-0.1.0/crates/auths-telemetry/tests/cases/mod.rs +6 -0
  473. auths_python-0.1.0/crates/auths-telemetry/tests/cases/schema.rs +49 -0
  474. auths_python-0.1.0/crates/auths-telemetry/tests/integration.rs +9 -0
  475. auths_python-0.1.0/crates/auths-transparency/Cargo.toml +48 -0
  476. auths_python-0.1.0/crates/auths-transparency/clippy.toml +21 -0
  477. auths_python-0.1.0/crates/auths-transparency/src/bundle.rs +363 -0
  478. auths_python-0.1.0/crates/auths-transparency/src/checkpoint.rs +146 -0
  479. auths_python-0.1.0/crates/auths-transparency/src/entry.rs +256 -0
  480. auths_python-0.1.0/crates/auths-transparency/src/error.rs +43 -0
  481. auths_python-0.1.0/crates/auths-transparency/src/fs_store.rs +178 -0
  482. auths_python-0.1.0/crates/auths-transparency/src/lib.rs +132 -0
  483. auths_python-0.1.0/crates/auths-transparency/src/merkle.rs +603 -0
  484. auths_python-0.1.0/crates/auths-transparency/src/note.rs +232 -0
  485. auths_python-0.1.0/crates/auths-transparency/src/proof.rs +125 -0
  486. auths_python-0.1.0/crates/auths-transparency/src/s3_store.rs +176 -0
  487. auths_python-0.1.0/crates/auths-transparency/src/store.rs +30 -0
  488. auths_python-0.1.0/crates/auths-transparency/src/tile.rs +149 -0
  489. auths_python-0.1.0/crates/auths-transparency/src/types.rs +202 -0
  490. auths_python-0.1.0/crates/auths-transparency/src/verify.rs +797 -0
  491. auths_python-0.1.0/crates/auths-transparency/src/witness.rs +554 -0
  492. auths_python-0.1.0/crates/auths-transparency/tests/cases/merkle.rs +113 -0
  493. auths_python-0.1.0/crates/auths-transparency/tests/cases/mod.rs +6 -0
  494. auths_python-0.1.0/crates/auths-transparency/tests/cases/note.rs +85 -0
  495. auths_python-0.1.0/crates/auths-transparency/tests/cases/tile.rs +70 -0
  496. auths_python-0.1.0/crates/auths-transparency/tests/cases/verify.rs +276 -0
  497. auths_python-0.1.0/crates/auths-transparency/tests/cases/witness.rs +239 -0
  498. auths_python-0.1.0/crates/auths-transparency/tests/integration.rs +2 -0
  499. auths_python-0.1.0/crates/auths-utils/Cargo.toml +15 -0
  500. auths_python-0.1.0/crates/auths-utils/src/lib.rs +2 -0
  501. auths_python-0.1.0/crates/auths-utils/src/path.rs +35 -0
  502. auths_python-0.1.0/crates/auths-utils/src/url.rs +19 -0
  503. auths_python-0.1.0/crates/auths-utils/tests/cases/mod.rs +2 -0
  504. auths_python-0.1.0/crates/auths-utils/tests/cases/path.rs +30 -0
  505. auths_python-0.1.0/crates/auths-utils/tests/cases/url.rs +13 -0
  506. auths_python-0.1.0/crates/auths-utils/tests/integration.rs +1 -0
  507. auths_python-0.1.0/crates/auths-verifier/Cargo.toml +64 -0
  508. auths_python-0.1.0/crates/auths-verifier/README.md +205 -0
  509. auths_python-0.1.0/crates/auths-verifier/cbindgen.toml +6 -0
  510. auths_python-0.1.0/crates/auths-verifier/src/action.rs +194 -0
  511. auths_python-0.1.0/crates/auths-verifier/src/clock.rs +41 -0
  512. auths_python-0.1.0/crates/auths-verifier/src/commit.rs +271 -0
  513. auths_python-0.1.0/crates/auths-verifier/src/commit_error.rs +102 -0
  514. auths_python-0.1.0/crates/auths-verifier/src/core.rs +1905 -0
  515. auths_python-0.1.0/crates/auths-verifier/src/error.rs +180 -0
  516. auths_python-0.1.0/crates/auths-verifier/src/ffi.rs +552 -0
  517. auths_python-0.1.0/crates/auths-verifier/src/keri.rs +1329 -0
  518. auths_python-0.1.0/crates/auths-verifier/src/lib.rs +290 -0
  519. auths_python-0.1.0/crates/auths-verifier/src/ssh_sig.rs +356 -0
  520. auths_python-0.1.0/crates/auths-verifier/src/testing.rs +257 -0
  521. auths_python-0.1.0/crates/auths-verifier/src/types.rs +911 -0
  522. auths_python-0.1.0/crates/auths-verifier/src/verifier.rs +225 -0
  523. auths_python-0.1.0/crates/auths-verifier/src/verify.rs +1987 -0
  524. auths_python-0.1.0/crates/auths-verifier/src/wasm.rs +460 -0
  525. auths_python-0.1.0/crates/auths-verifier/src/witness.rs +333 -0
  526. auths_python-0.1.0/crates/auths-verifier/tests/cases/capability_fromstr.rs +83 -0
  527. auths_python-0.1.0/crates/auths-verifier/tests/cases/commit_verify.rs +116 -0
  528. auths_python-0.1.0/crates/auths-verifier/tests/cases/did_parsing.rs +311 -0
  529. auths_python-0.1.0/crates/auths-verifier/tests/cases/expiration_skew.rs +290 -0
  530. auths_python-0.1.0/crates/auths-verifier/tests/cases/ffi_smoke.rs +333 -0
  531. auths_python-0.1.0/crates/auths-verifier/tests/cases/kel_verification.rs +165 -0
  532. auths_python-0.1.0/crates/auths-verifier/tests/cases/mod.rs +12 -0
  533. auths_python-0.1.0/crates/auths-verifier/tests/cases/newtypes.rs +209 -0
  534. auths_python-0.1.0/crates/auths-verifier/tests/cases/proptest_core.rs +256 -0
  535. auths_python-0.1.0/crates/auths-verifier/tests/cases/revocation_adversarial.rs +145 -0
  536. auths_python-0.1.0/crates/auths-verifier/tests/cases/serialization_pinning.rs +305 -0
  537. auths_python-0.1.0/crates/auths-verifier/tests/cases/ssh_sig.rs +60 -0
  538. auths_python-0.1.0/crates/auths-verifier/tests/fixtures/payload.txt +5 -0
  539. auths_python-0.1.0/crates/auths-verifier/tests/fixtures/pubkey.hex +1 -0
  540. auths_python-0.1.0/crates/auths-verifier/tests/fixtures/signature.pem +6 -0
  541. auths_python-0.1.0/crates/auths-verifier/tests/fixtures/signed_commit.txt +11 -0
  542. auths_python-0.1.0/crates/auths-verifier/tests/integration.rs +10 -0
  543. auths_python-0.1.0/crates/auths-verifier/tests/wasm_bindings.rs +73 -0
  544. auths_python-0.1.0/packages/auths-python/Cargo.lock +4870 -0
  545. auths_python-0.1.0/packages/auths-python/Cargo.toml +41 -0
  546. auths_python-0.1.0/packages/auths-python/README.md +124 -0
  547. auths_python-0.1.0/packages/auths-python/docs/releases.md +29 -0
  548. auths_python-0.1.0/packages/auths-python/examples/quickstart.py +14 -0
  549. auths_python-0.1.0/packages/auths-python/src/artifact_publish.rs +129 -0
  550. auths_python-0.1.0/packages/auths-python/src/artifact_sign.rs +271 -0
  551. auths_python-0.1.0/packages/auths-python/src/attestation_query.rs +168 -0
  552. auths_python-0.1.0/packages/auths-python/src/audit.rs +143 -0
  553. auths_python-0.1.0/packages/auths-python/src/commit_sign.rs +98 -0
  554. auths_python-0.1.0/packages/auths-python/src/commit_verify.rs +114 -0
  555. auths_python-0.1.0/packages/auths-python/src/device_ext.rs +125 -0
  556. auths_python-0.1.0/packages/auths-python/src/diagnostics.rs +108 -0
  557. auths_python-0.1.0/packages/auths-python/src/git_integration.rs +51 -0
  558. auths_python-0.1.0/packages/auths-python/src/identity.rs +631 -0
  559. auths_python-0.1.0/packages/auths-python/src/identity_sign.rs +331 -0
  560. auths_python-0.1.0/packages/auths-python/src/lib.rs +138 -0
  561. auths_python-0.1.0/packages/auths-python/src/org.rs +432 -0
  562. auths_python-0.1.0/packages/auths-python/src/pairing.rs +451 -0
  563. auths_python-0.1.0/packages/auths-python/src/policy.rs +192 -0
  564. auths_python-0.1.0/packages/auths-python/src/rotation.rs +128 -0
  565. auths_python-0.1.0/packages/auths-python/src/runtime.rs +12 -0
  566. auths_python-0.1.0/packages/auths-python/src/sign.rs +176 -0
  567. auths_python-0.1.0/packages/auths-python/src/token.rs +94 -0
  568. auths_python-0.1.0/packages/auths-python/src/trust.rs +209 -0
  569. auths_python-0.1.0/packages/auths-python/src/types.rs +195 -0
  570. auths_python-0.1.0/packages/auths-python/src/verify.rs +596 -0
  571. auths_python-0.1.0/packages/auths-python/src/witness.rs +136 -0
  572. auths_python-0.1.0/packages/auths-python/tests/conftest.py +87 -0
  573. auths_python-0.1.0/packages/auths-python/tests/test_agent.py +65 -0
  574. auths_python-0.1.0/packages/auths-python/tests/test_artifact_sign.py +183 -0
  575. auths_python-0.1.0/packages/auths-python/tests/test_attestation_query.py +108 -0
  576. auths_python-0.1.0/packages/auths-python/tests/test_audit.py +119 -0
  577. auths_python-0.1.0/packages/auths-python/tests/test_client.py +57 -0
  578. auths_python-0.1.0/packages/auths-python/tests/test_commit_sign.py +54 -0
  579. auths_python-0.1.0/packages/auths-python/tests/test_device_ext.py +57 -0
  580. auths_python-0.1.0/packages/auths-python/tests/test_doctor.py +30 -0
  581. auths_python-0.1.0/packages/auths-python/tests/test_git.py +323 -0
  582. auths_python-0.1.0/packages/auths-python/tests/test_identity.py +65 -0
  583. auths_python-0.1.0/packages/auths-python/tests/test_identity_sign.py +45 -0
  584. auths_python-0.1.0/packages/auths-python/tests/test_imports.py +56 -0
  585. auths_python-0.1.0/packages/auths-python/tests/test_jwt.py +105 -0
  586. auths_python-0.1.0/packages/auths-python/tests/test_org.py +162 -0
  587. auths_python-0.1.0/packages/auths-python/tests/test_org_debug.py +59 -0
  588. auths_python-0.1.0/packages/auths-python/tests/test_pairing.py +163 -0
  589. auths_python-0.1.0/packages/auths-python/tests/test_policy.py +283 -0
  590. auths_python-0.1.0/packages/auths-python/tests/test_rotation.py +87 -0
  591. auths_python-0.1.0/packages/auths-python/tests/test_sign.py +131 -0
  592. auths_python-0.1.0/packages/auths-python/tests/test_trust.py +52 -0
  593. auths_python-0.1.0/packages/auths-python/tests/test_verify.py +118 -0
  594. auths_python-0.1.0/packages/auths-python/tests/test_verify_at_time.py +102 -0
  595. auths_python-0.1.0/packages/auths-python/tests/test_verify_capability.py +60 -0
  596. auths_python-0.1.0/packages/auths-python/tests/test_verify_witnesses.py +98 -0
  597. auths_python-0.1.0/packages/auths-python/tests/test_witness.py +37 -0
  598. auths_python-0.1.0/packages/auths-python/uv.lock +577 -0
  599. auths_python-0.1.0/pyproject.toml +47 -0
  600. auths_python-0.1.0/python/auths/__init__.py +147 -0
  601. auths_python-0.1.0/python/auths/__init__.pyi +486 -0
  602. auths_python-0.1.0/python/auths/_client.py +713 -0
  603. auths_python-0.1.0/python/auths/_errors.py +80 -0
  604. auths_python-0.1.0/python/auths/agent.py +55 -0
  605. auths_python-0.1.0/python/auths/artifact.py +60 -0
  606. auths_python-0.1.0/python/auths/attestation_query.py +141 -0
  607. auths_python-0.1.0/python/auths/audit.py +226 -0
  608. auths_python-0.1.0/python/auths/commit.py +28 -0
  609. auths_python-0.1.0/python/auths/devices.py +162 -0
  610. auths_python-0.1.0/python/auths/doctor.py +109 -0
  611. auths_python-0.1.0/python/auths/git.py +473 -0
  612. auths_python-0.1.0/python/auths/identity.py +221 -0
  613. auths_python-0.1.0/python/auths/jwt.py +253 -0
  614. auths_python-0.1.0/python/auths/org.py +310 -0
  615. auths_python-0.1.0/python/auths/pairing.py +216 -0
  616. auths_python-0.1.0/python/auths/policy.py +382 -0
  617. auths_python-0.1.0/python/auths/py.typed +0 -0
  618. auths_python-0.1.0/python/auths/rotation.py +30 -0
  619. auths_python-0.1.0/python/auths/sign.py +5 -0
  620. auths_python-0.1.0/python/auths/trust.py +169 -0
  621. auths_python-0.1.0/python/auths/verify.py +111 -0
  622. auths_python-0.1.0/python/auths/witness.py +91 -0
@@ -0,0 +1,94 @@
1
+ [workspace]
2
+ resolver = "3"
3
+ members = [
4
+ "crates/auths",
5
+ "crates/auths-core",
6
+ "crates/auths-cli",
7
+ "crates/auths-id",
8
+ "crates/auths-index",
9
+ "crates/auths-policy",
10
+ "crates/auths-verifier",
11
+ "crates/auths-telemetry",
12
+ "crates/auths-crypto",
13
+ "crates/auths-sdk",
14
+ "crates/auths-infra-git",
15
+ "crates/auths-infra-http",
16
+ "crates/auths-storage",
17
+ "crates/auths-transparency",
18
+ "crates/auths-keri",
19
+ "crates/auths-jwt",
20
+ "crates/auths-mcp-server",
21
+ "crates/auths-pairing-daemon",
22
+ "crates/auths-pairing-protocol",
23
+ "crates/auths-radicle",
24
+ "crates/auths-scim",
25
+ "crates/auths-utils",
26
+ "crates/auths-oidc-port",
27
+ "crates/xtask", "crates/auths-api",
28
+ ]
29
+
30
+ [workspace.package]
31
+ version = "0.0.1-rc.10"
32
+ license = "Apache-2.0"
33
+ rust-version = "1.93"
34
+ repository = "https://github.com/auths-dev/auths"
35
+ homepage = "https://github.com/auths-dev/auths"
36
+
37
+ [workspace.dependencies]
38
+ tokio = { version = "1", features = ["full"] }
39
+ bs58 = "0.5.1"
40
+ ring = "0.17.14"
41
+ base64 = "0.22.1"
42
+ thiserror = "2"
43
+ uuid = { version = "1", features = ["v4"] }
44
+ git2 = { version = "0.20.4", default-features = false, features = ["vendored-libgit2"] }
45
+ glob = "0.3"
46
+ parking_lot = "0.12"
47
+ schemars = "0.8"
48
+ subtle = "2.6"
49
+ zeroize = { version = "1.8.1", features = ["serde", "derive"] }
50
+ # Exact pin: canonicalization changes silently break all existing attestation signatures.
51
+ json-canon = "=0.1.3"
52
+
53
+ auths-core = { path = "crates/auths-core", version = "0.0.1-rc.9" }
54
+ auths-id = { path = "crates/auths-id", version = "0.0.1-rc.9" }
55
+ auths-verifier = { path = "crates/auths-verifier", version = "0.0.1-rc.9", default-features = false }
56
+ auths-policy = { path = "crates/auths-policy", version = "0.0.1-rc.9" }
57
+ auths-index = { path = "crates/auths-index", version = "0.0.1-rc.9" }
58
+ auths-telemetry = { path = "crates/auths-telemetry", version = "0.0.1-rc.9" }
59
+ auths-crypto = { path = "crates/auths-crypto", version = "0.0.1-rc.9", default-features = false }
60
+ auths-sdk = { path = "crates/auths-sdk", version = "0.0.1-rc.9" }
61
+ auths-infra-git = { path = "crates/auths-infra-git", version = "0.0.1-rc.9" }
62
+ auths-infra-http = { path = "crates/auths-infra-http", version = "0.0.1-rc.9" }
63
+ auths-jwt = { path = "crates/auths-jwt", version = "0.0.1-rc.9" }
64
+ auths-pairing-daemon = { path = "crates/auths-pairing-daemon", version = "0.0.1-rc.9" }
65
+ auths-pairing-protocol = { path = "crates/auths-pairing-protocol", version = "0.0.1-rc.9" }
66
+ auths-storage = { path = "crates/auths-storage", version = "0.0.1-rc.9" }
67
+ auths-transparency = { path = "crates/auths-transparency", version = "0.0.1-rc.9", default-features = false }
68
+ auths-utils = { path = "crates/auths-utils", version = "0.0.1-rc.9" }
69
+ insta = { version = "1", features = ["json"] }
70
+
71
+ # Compile crypto-heavy crates with optimizations even in dev/test builds.
72
+ # Without this, Argon2id key derivation (m=64 MiB, t=3) takes ~5-10s per
73
+ # call in unoptimized builds, causing E2E test timeouts on CI runners.
74
+
75
+ [profile.dev.package.argon2]
76
+ opt-level = 3
77
+ [profile.dev.package.chacha20poly1305]
78
+ opt-level = 3
79
+ [profile.dev.package.aes-gcm]
80
+ opt-level = 3
81
+ [profile.dev.package.ring]
82
+ opt-level = 3
83
+
84
+ [workspace.lints.clippy]
85
+ unwrap_used = "deny"
86
+ expect_used = "deny"
87
+ print_stdout = "deny"
88
+ print_stderr = "deny"
89
+ exit = "deny"
90
+ dbg_macro = "deny"
91
+ disallowed_methods = "deny"
92
+
93
+ [workspace.lints.rustdoc]
94
+ broken_intra_doc_links = "deny"
@@ -0,0 +1,152 @@
1
+ Metadata-Version: 2.4
2
+ Name: auths-python
3
+ Version: 0.1.0
4
+ Classifier: Development Status :: 4 - Beta
5
+ Classifier: Programming Language :: Python :: 3
6
+ Classifier: Programming Language :: Python :: Implementation :: CPython
7
+ Classifier: Programming Language :: Rust
8
+ Classifier: Operating System :: MacOS
9
+ Classifier: Operating System :: Microsoft :: Windows
10
+ Classifier: Operating System :: POSIX :: Linux
11
+ Classifier: License :: OSI Approved :: Apache Software License
12
+ Classifier: Typing :: Typed
13
+ Classifier: Topic :: Security :: Cryptography
14
+ Classifier: Topic :: Software Development :: Version Control :: Git
15
+ Requires-Dist: pyjwt>=2.0 ; extra == 'jwt'
16
+ Requires-Dist: cryptography>=3.0 ; extra == 'jwt'
17
+ Provides-Extra: jwt
18
+ Summary: Auths Python SDK - decentralized identity for developers and AI agents
19
+ Keywords: identity,cryptography,did,signing,verification,git,keri
20
+ License: Apache-2.0
21
+ Requires-Python: >=3.8
22
+ Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
23
+ Project-URL: Bug Tracker, https://github.com/auths-dev/auths/issues
24
+ Project-URL: Documentation, https://docs.auths.dev
25
+ Project-URL: Homepage, https://auths.dev
26
+ Project-URL: Repository, https://github.com/auths-dev/auths
27
+
28
+ # Auths Python SDK
29
+
30
+ Decentralized identity for developers and AI agents. Sign, verify, and manage cryptographic identities with Git-native storage.
31
+
32
+ ## Install
33
+
34
+ ```bash
35
+ pip install auths-python
36
+ ```
37
+
38
+ ## Quick start
39
+
40
+ ```python
41
+ from auths import Auths
42
+
43
+ auths = Auths()
44
+
45
+ # Verify an attestation
46
+ result = auths.verify(attestation_json=data, issuer_key=public_key_hex)
47
+ print(result.valid) # True
48
+
49
+ # Sign bytes
50
+ signature = auths.sign(b"hello world", private_key=secret_key_hex)
51
+ ```
52
+
53
+ ## Identity management
54
+
55
+ ```python
56
+ from auths import Auths
57
+
58
+ auths = Auths(repo_path="~/.auths")
59
+
60
+ # Create a cryptographic identity
61
+ identity = auths.identities.create(label="laptop")
62
+ print(identity.did) # did:keri:EBfd...
63
+
64
+ # Provision an agent (for CI, MCP servers, etc.)
65
+ agent = auths.identities.provision_agent(
66
+ identity.did,
67
+ name="deploy-bot",
68
+ capabilities=["sign"],
69
+ )
70
+
71
+ # Sign using the keychain-stored identity key
72
+ sig = auths.sign_as(b"hello world", identity=identity.did)
73
+
74
+ # Link and manage devices
75
+ device = auths.devices.link(identity_did=identity.did, capabilities=["sign"])
76
+ auths.devices.revoke(device.did, identity_did=identity.did, note="replaced")
77
+ ```
78
+
79
+ ## Git commit verification
80
+
81
+ ```python
82
+ from auths.git import verify_commit_range
83
+
84
+ result = verify_commit_range("HEAD~5..HEAD")
85
+ for commit in result.commits:
86
+ print(f"{commit.commit_sha}: {'valid' if commit.is_valid else commit.error}")
87
+ ```
88
+
89
+ ## Capability-aware verification
90
+
91
+ ```python
92
+ # Verify an attestation grants a specific capability
93
+ result = auths.verify(attestation_json=data, issuer_key=key, required_capability="sign_commit")
94
+
95
+ # Verify an entire chain grants a capability
96
+ report = auths.verify_chain(chain, root_key, required_capability="deploy")
97
+ ```
98
+
99
+ ## Agent auth for MCP / AI frameworks
100
+
101
+ ```python
102
+ from auths.agent import AgentAuth
103
+
104
+ auth = AgentAuth(
105
+ bridge_url="https://bridge.example.com",
106
+ attestation_chain_path=".auths/agent-chain.json",
107
+ )
108
+ token = auth.get_token(capabilities=["read", "write"])
109
+ ```
110
+
111
+ ## Error handling
112
+
113
+ ```python
114
+ from auths import Auths, VerificationError, NetworkError
115
+
116
+ auths = Auths()
117
+ try:
118
+ result = auths.verify(attestation_json=data, issuer_key=key)
119
+ except VerificationError as e:
120
+ print(e.code) # "expired_attestation"
121
+ print(e.message) # "Attestation expired at 2024-01-15T..."
122
+ except NetworkError as e:
123
+ if e.should_retry:
124
+ pass # safe to retry
125
+ ```
126
+
127
+ All errors inherit from `AuthsError` and carry `.code`, `.message`, and `.context`.
128
+
129
+ ## Configuration
130
+
131
+ ```python
132
+ # Auto-discover (uses ~/.auths)
133
+ auths = Auths()
134
+
135
+ # Explicit repo path
136
+ auths = Auths(repo_path="/path/to/identity-repo")
137
+
138
+ # With passphrase (or set AUTHS_PASSPHRASE env var)
139
+ auths = Auths(passphrase="my-secret")
140
+
141
+ # Headless / CI mode
142
+ # Set AUTHS_KEYCHAIN_BACKEND=file for environments without a system keychain
143
+ ```
144
+
145
+ ## API reference
146
+
147
+ Type stubs are bundled (`py.typed` + `__init__.pyi`). Your editor will show full signatures, docstrings, and return types for all methods.
148
+
149
+ ## License
150
+
151
+ Apache-2.0
152
+
@@ -0,0 +1,124 @@
1
+ # Auths Python SDK
2
+
3
+ Decentralized identity for developers and AI agents. Sign, verify, and manage cryptographic identities with Git-native storage.
4
+
5
+ ## Install
6
+
7
+ ```bash
8
+ pip install auths-python
9
+ ```
10
+
11
+ ## Quick start
12
+
13
+ ```python
14
+ from auths import Auths
15
+
16
+ auths = Auths()
17
+
18
+ # Verify an attestation
19
+ result = auths.verify(attestation_json=data, issuer_key=public_key_hex)
20
+ print(result.valid) # True
21
+
22
+ # Sign bytes
23
+ signature = auths.sign(b"hello world", private_key=secret_key_hex)
24
+ ```
25
+
26
+ ## Identity management
27
+
28
+ ```python
29
+ from auths import Auths
30
+
31
+ auths = Auths(repo_path="~/.auths")
32
+
33
+ # Create a cryptographic identity
34
+ identity = auths.identities.create(label="laptop")
35
+ print(identity.did) # did:keri:EBfd...
36
+
37
+ # Provision an agent (for CI, MCP servers, etc.)
38
+ agent = auths.identities.provision_agent(
39
+ identity.did,
40
+ name="deploy-bot",
41
+ capabilities=["sign"],
42
+ )
43
+
44
+ # Sign using the keychain-stored identity key
45
+ sig = auths.sign_as(b"hello world", identity=identity.did)
46
+
47
+ # Link and manage devices
48
+ device = auths.devices.link(identity_did=identity.did, capabilities=["sign"])
49
+ auths.devices.revoke(device.did, identity_did=identity.did, note="replaced")
50
+ ```
51
+
52
+ ## Git commit verification
53
+
54
+ ```python
55
+ from auths.git import verify_commit_range
56
+
57
+ result = verify_commit_range("HEAD~5..HEAD")
58
+ for commit in result.commits:
59
+ print(f"{commit.commit_sha}: {'valid' if commit.is_valid else commit.error}")
60
+ ```
61
+
62
+ ## Capability-aware verification
63
+
64
+ ```python
65
+ # Verify an attestation grants a specific capability
66
+ result = auths.verify(attestation_json=data, issuer_key=key, required_capability="sign_commit")
67
+
68
+ # Verify an entire chain grants a capability
69
+ report = auths.verify_chain(chain, root_key, required_capability="deploy")
70
+ ```
71
+
72
+ ## Agent auth for MCP / AI frameworks
73
+
74
+ ```python
75
+ from auths.agent import AgentAuth
76
+
77
+ auth = AgentAuth(
78
+ bridge_url="https://bridge.example.com",
79
+ attestation_chain_path=".auths/agent-chain.json",
80
+ )
81
+ token = auth.get_token(capabilities=["read", "write"])
82
+ ```
83
+
84
+ ## Error handling
85
+
86
+ ```python
87
+ from auths import Auths, VerificationError, NetworkError
88
+
89
+ auths = Auths()
90
+ try:
91
+ result = auths.verify(attestation_json=data, issuer_key=key)
92
+ except VerificationError as e:
93
+ print(e.code) # "expired_attestation"
94
+ print(e.message) # "Attestation expired at 2024-01-15T..."
95
+ except NetworkError as e:
96
+ if e.should_retry:
97
+ pass # safe to retry
98
+ ```
99
+
100
+ All errors inherit from `AuthsError` and carry `.code`, `.message`, and `.context`.
101
+
102
+ ## Configuration
103
+
104
+ ```python
105
+ # Auto-discover (uses ~/.auths)
106
+ auths = Auths()
107
+
108
+ # Explicit repo path
109
+ auths = Auths(repo_path="/path/to/identity-repo")
110
+
111
+ # With passphrase (or set AUTHS_PASSPHRASE env var)
112
+ auths = Auths(passphrase="my-secret")
113
+
114
+ # Headless / CI mode
115
+ # Set AUTHS_KEYCHAIN_BACKEND=file for environments without a system keychain
116
+ ```
117
+
118
+ ## API reference
119
+
120
+ Type stubs are bundled (`py.typed` + `__init__.pyi`). Your editor will show full signatures, docstrings, and return types for all methods.
121
+
122
+ ## License
123
+
124
+ Apache-2.0
@@ -0,0 +1,108 @@
1
+ [package]
2
+ name = "auths-core"
3
+ version.workspace = true
4
+ edition = "2024"
5
+ authors = ["bordumb <bordumbb@gmail.com>"]
6
+ description = "Core cryptography and keychain integration for Auths"
7
+ publish = true
8
+ license.workspace = true
9
+ repository.workspace = true
10
+ homepage.workspace = true
11
+ documentation = "https://docs.rs/auths-core"
12
+ readme = "README.md"
13
+ keywords = ["cryptography", "keychain", "ed25519", "ssh", "identity"]
14
+ categories = ["cryptography", "authentication"]
15
+
16
+ [lib]
17
+ crate-type = ["rlib", "staticlib"]
18
+
19
+ [dependencies]
20
+ chacha20poly1305 = { version = "0.10", features = ["std"] }
21
+ log = "0.4"
22
+ once_cell = "1.19"
23
+ serde = { version = "1.0", features = ["derive"] }
24
+ serde_json = "1.0"
25
+ toml = "1.0"
26
+ ssh-agent-lib = "0.5.1"
27
+ ssh-key = { version = "0.6.7", features = ["ed25519"] }
28
+ thiserror.workspace = true
29
+ tokio = { version = "1", features = ["full"] }
30
+ async-trait = "0.1"
31
+ zeroize.workspace = true
32
+ aes-gcm = "0.10.3"
33
+ sha2 = "0.10.8"
34
+ argon2 = "0.5"
35
+ libc = "0.2.171"
36
+ rand = "0.8"
37
+ base64.workspace = true
38
+ byteorder = "1.5.0"
39
+ dirs = "6.0.0"
40
+ multibase = "0.9.1"
41
+ auths-crypto = { workspace = true, features = ["native"] }
42
+ auths-pairing-protocol = { workspace = true }
43
+ blake3 = "1.5"
44
+ parking_lot.workspace = true
45
+ subtle.workspace = true
46
+ pkcs8 = "0.10.2"
47
+ hex = "0.4.3"
48
+ tempfile = "3.19.1"
49
+ chrono = { version = "0.4", features = ["serde"] }
50
+ qrcode = "0.14"
51
+ schemars.workspace = true
52
+ x25519-dalek = { version = "2", features = ["static_secrets"] }
53
+
54
+ auths-verifier = { workspace = true, features = ["native"] }
55
+ url = { version = "2", features = ["serde"] }
56
+ uuid.workspace = true
57
+
58
+ # Optional secp256k1/BIP340 Schnorr support for Nostr
59
+ k256 = { version = "0.13", features = ["schnorr"], optional = true }
60
+
61
+ # Optional PKCS#11 HSM support
62
+ cryptoki = { version = "0.12", optional = true }
63
+
64
+ # Optional witness server dependencies
65
+ axum = { version = "0.8", optional = true }
66
+ tower = { version = "0.5", features = ["util"], optional = true }
67
+ tower-http = { version = "0.6", features = ["trace"], optional = true }
68
+ sqlite = { version = "0.32", features = ["bundled"], optional = true }
69
+ axum-server = { version = "0.7", features = ["tls-rustls"], optional = true }
70
+
71
+ # macOS/iOS keychain dependencies
72
+ [target.'cfg(any(target_os = "macos", target_os = "ios"))'.dependencies]
73
+ core-foundation = "0.9"
74
+ security-framework = { version = "2.10", features = ["OSX_10_15"] }
75
+ security-framework-sys = "2.9"
76
+
77
+ [target.'cfg(target_os = "linux")'.dependencies]
78
+ secret-service = { version = "5.0", features = ["rt-tokio-crypto-rust"], optional = true }
79
+
80
+ [target.'cfg(target_os = "windows")'.dependencies]
81
+ windows = { version = "0.58", features = ["Security_Credentials", "Foundation_Collections"], optional = true }
82
+
83
+ [dev-dependencies]
84
+ ring.workspace = true
85
+ anyhow = "1.0"
86
+ assert_matches = "1.5.0"
87
+ auths-verifier = { workspace = true, features = ["test-utils"] }
88
+ criterion = { version = "0.5", features = ["html_reports"] }
89
+ mockall = "0.13.1"
90
+ rand = "0.8"
91
+ tokio = { version = "1", features = ["full"] }
92
+ [[bench]]
93
+ name = "crypto"
94
+ harness = false
95
+
96
+ [features]
97
+ default = []
98
+ test-utils = ["auths-crypto/test-utils"]
99
+ keychain-linux-secretservice = ["dep:secret-service"]
100
+ keychain-windows = ["dep:windows"]
101
+ keychain-file-fallback = []
102
+ crypto-secp256k1 = ["dep:k256"]
103
+ keychain-pkcs11 = ["dep:cryptoki"]
104
+ witness-server = ["dep:axum", "dep:tower", "dep:tower-http", "dep:sqlite"]
105
+ tls = ["dep:axum-server", "witness-server"]
106
+
107
+ [lints]
108
+ workspace = true
@@ -0,0 +1,29 @@
1
+ # auths-core
2
+
3
+ Core cryptography and keychain integration for Auths.
4
+
5
+ ## Features
6
+
7
+ - Ed25519 key generation and signing
8
+ - Platform keychain support (macOS, Linux, Windows)
9
+ - Secure key storage with encryption
10
+
11
+ ## Platform Support
12
+
13
+ - macOS/iOS: Security Framework
14
+ - Linux: Secret Service (optional)
15
+ - Windows: Credential Manager (optional)
16
+
17
+ ## Usage
18
+
19
+ ```rust
20
+ use auths_core::{Keychain, KeyPair};
21
+
22
+ let keychain = Keychain::new()?;
23
+ let keypair = KeyPair::generate()?;
24
+ keychain.store("my-key", &keypair)?;
25
+ ```
26
+
27
+ ## License
28
+
29
+ MIT OR Apache-2.0
@@ -0,0 +1,127 @@
1
+ //! Benchmarks for cryptographic operations in auths-core.
2
+ //!
3
+ //! Run with: cargo bench --package auths_core
4
+ #![allow(clippy::unwrap_used, clippy::expect_used)]
5
+
6
+ use auths_core::crypto::signer::{SeedSignerKey, SignerKey, decrypt_keypair, encrypt_keypair};
7
+ use criterion::{BenchmarkId, Criterion, Throughput, black_box, criterion_group, criterion_main};
8
+ use ring::rand::SystemRandom;
9
+ use ring::signature::{Ed25519KeyPair, KeyPair};
10
+
11
+ /// Generate a test Ed25519 keypair for benchmarking (ring, for encrypt/decrypt benches).
12
+ fn generate_test_keypair() -> Ed25519KeyPair {
13
+ let rng = SystemRandom::new();
14
+ let pkcs8 = Ed25519KeyPair::generate_pkcs8(&rng).expect("key generation should succeed");
15
+ Ed25519KeyPair::from_pkcs8(pkcs8.as_ref()).expect("parsing should succeed")
16
+ }
17
+
18
+ /// Generate a SeedSignerKey for benchmarking the SignerKey trait.
19
+ fn generate_test_signer() -> SeedSignerKey {
20
+ let (seed, pubkey) = auths_core::crypto::provider_bridge::generate_ed25519_keypair_sync()
21
+ .expect("keypair generation should succeed");
22
+ SeedSignerKey::new(seed, pubkey)
23
+ }
24
+
25
+ /// Benchmark Ed25519 keypair generation.
26
+ fn bench_key_generation(c: &mut Criterion) {
27
+ let rng = SystemRandom::new();
28
+
29
+ c.bench_function("ed25519_key_generation", |b| {
30
+ b.iter(|| {
31
+ let pkcs8 =
32
+ Ed25519KeyPair::generate_pkcs8(&rng).expect("key generation should succeed");
33
+ Ed25519KeyPair::from_pkcs8(pkcs8.as_ref()).expect("parsing should succeed")
34
+ })
35
+ });
36
+ }
37
+
38
+ /// Benchmark Ed25519 signing with different message sizes.
39
+ fn bench_sign(c: &mut Criterion) {
40
+ let keypair = generate_test_keypair();
41
+
42
+ let mut group = c.benchmark_group("ed25519_sign");
43
+
44
+ for size in [64, 256, 1024, 4096, 16384].iter() {
45
+ let data = vec![0u8; *size];
46
+
47
+ group.throughput(Throughput::Bytes(*size as u64));
48
+ group.bench_with_input(BenchmarkId::from_parameter(size), size, |b, _| {
49
+ b.iter(|| keypair.sign(black_box(&data)))
50
+ });
51
+ }
52
+
53
+ group.finish();
54
+ }
55
+
56
+ /// Benchmark Ed25519 signature verification with different message sizes.
57
+ fn bench_verify(c: &mut Criterion) {
58
+ use ring::signature::{ED25519, UnparsedPublicKey};
59
+
60
+ let keypair = generate_test_keypair();
61
+ let public_key_bytes = keypair.public_key().as_ref();
62
+
63
+ let mut group = c.benchmark_group("ed25519_verify");
64
+
65
+ for size in [64, 256, 1024, 4096, 16384].iter() {
66
+ let data = vec![0u8; *size];
67
+ let signature = keypair.sign(&data);
68
+
69
+ group.throughput(Throughput::Bytes(*size as u64));
70
+ group.bench_with_input(BenchmarkId::from_parameter(size), size, |b, _| {
71
+ b.iter(|| {
72
+ let public_key = UnparsedPublicKey::new(&ED25519, public_key_bytes);
73
+ public_key
74
+ .verify(black_box(&data), black_box(signature.as_ref()))
75
+ .expect("verification should succeed")
76
+ })
77
+ });
78
+ }
79
+
80
+ group.finish();
81
+ }
82
+
83
+ /// Benchmark key encryption (encrypt_keypair).
84
+ fn bench_key_encryption(c: &mut Criterion) {
85
+ // Generate a sample PKCS#8 key
86
+ let rng = SystemRandom::new();
87
+ let pkcs8 = Ed25519KeyPair::generate_pkcs8(&rng).expect("key generation should succeed");
88
+ let passphrase = "Bench-P@ss12345!";
89
+
90
+ c.bench_function("key_encryption", |b| {
91
+ b.iter(|| encrypt_keypair(black_box(pkcs8.as_ref()), black_box(passphrase)))
92
+ });
93
+ }
94
+
95
+ /// Benchmark key decryption (decrypt_keypair).
96
+ fn bench_key_decryption(c: &mut Criterion) {
97
+ // Generate and encrypt a sample key
98
+ let rng = SystemRandom::new();
99
+ let pkcs8 = Ed25519KeyPair::generate_pkcs8(&rng).expect("key generation should succeed");
100
+ let passphrase = "Bench-P@ss12345!";
101
+ let encrypted = encrypt_keypair(pkcs8.as_ref(), passphrase).expect("encryption should succeed");
102
+
103
+ c.bench_function("key_decryption", |b| {
104
+ b.iter(|| decrypt_keypair(black_box(&encrypted), black_box(passphrase)))
105
+ });
106
+ }
107
+
108
+ /// Benchmark signing through the SignerKey trait.
109
+ fn bench_signer_trait(c: &mut Criterion) {
110
+ let signer = generate_test_signer();
111
+ let data = vec![0u8; 1024];
112
+
113
+ c.bench_function("signer_trait_sign_1kb", |b| {
114
+ b.iter(|| SignerKey::sign(&signer, black_box(&data)))
115
+ });
116
+ }
117
+
118
+ criterion_group!(
119
+ benches,
120
+ bench_key_generation,
121
+ bench_sign,
122
+ bench_verify,
123
+ bench_key_encryption,
124
+ bench_key_decryption,
125
+ bench_signer_trait,
126
+ );
127
+ criterion_main!(benches);
@@ -0,0 +1,14 @@
1
+ language = "C"
2
+
3
+ include_guard = "MOBILE_SSH_AGENT_H"
4
+
5
+ [defines]
6
+ "__APPLE__" = "APPLE"
7
+
8
+ [parse]
9
+ parse_deps = false
10
+ clean = true
11
+
12
+ [export]
13
+ include = ["ffi_*", "TAG_LEN", "NONCE_LEN", "SALT_LEN", "SYMMETRIC_KEY_LEN"]
14
+ prefix = ""