Commit 1c0ffa4
feat: implement claim-forge attestation service
- Full Rust implementation with Axum web framework
- Ed25519 cryptographic signing with SHA3-512
- SLSA provenance attestation generation
- HTTP API with /health, /attestation/generate, /attestation/verify endpoints
- Production-ready with tracing, error handling, and JSON API
- Successfully tested and running on port 8080
Features:
- Generate cryptographic attestations for artifacts
- Sign attestations with Ed25519 (quantum-resistant curve)
- Verify signatures with public key cryptography
- SLSA provenance format support
- Comprehensive logging with tracing
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>1 parent b04ed2c commit 1c0ffa4
968 files changed
Lines changed: 25889 additions & 0 deletions
File tree
- services/claim-forge
- src
- target
- release
- .fingerprint
- anyhow-04d131cd857cb5bc
- anyhow-b0631f3ed13c61aa
- anyhow-d0512b7b0b463051
- async-trait-fab4c9f7401c1faf
- atomic-waker-295a627647d21b17
- autocfg-751c322a99f5c3d5
- axum-core-c65c20e60d708ae1
- axum-f795bbd2ce7a0667
- base64-39031956d2db124f
- bitflags-7efe2448d7ed4fdf
- block-buffer-9be7eaa86461814d
- bytes-e892017e009b33b8
- cfg-if-819986caf38a5803
- chrono-2a39b0521c23763f
- claim-forge-6426f3a9a0abb0a8
- cpufeatures-75f2a67bd5368b39
- crypto-common-efa72cc61e35bd18
- curve25519-dalek-2946fcd062294515
- curve25519-dalek-d683afa57ef5cb1c
- curve25519-dalek-derive-43f9e62aeb40eeb4
- curve25519-dalek-f855c205d72bfc3a
- digest-ad40412f4faf5a5e
- ed25519-b843653830b7be52
- ed25519-dalek-6d20349a08a4f340
- errno-f9d8f508d873c704
- form_urlencoded-c95ed42c0c026be9
- futures-channel-15166d32a084f119
- futures-core-abdf47c7b564af9b
- futures-task-832f70131f73d619
- futures-util-9381dcfa96f93f9b
- generic-array-54d3ae5e93bb31d4
- generic-array-63225f3b7316e800
- generic-array-cb54359ea8b8184a
- getrandom-833d1420a656ede3
- hex-44e7740920742450
- http-body-2efa39b9d6dc9a3f
- http-body-util-d45b5eba5556b40d
- http-d88ca9ea734ba84d
- httparse-1a23e03c08f8f84a
- httparse-4a1bda7695bc53ff
- httparse-a6324e64a2c7397b
- httpdate-1d8a36e733735a0c
- hyper-d11a95776bc48e0c
- hyper-util-560c5150b4ad6126
- iana-time-zone-6aaee514a52ede4f
- itoa-0ac176f60509452f
- keccak-97844b0bfc354027
- lazy_static-4affb30795a09750
- libc-169c7053effc8aae
- libc-b0a07082dc08688e
- libc-b5490adbc7772f01
- lock_api-ab2c6b8599bb354b
- log-a18f403972f81d88
- matchers-6ee69c50fa040e86
- matchit-bdf6b041f7316d49
- memchr-1ee2546b95630255
- mime-cdb18b26f4e5beae
- mio-fefec4d317a2a20e
- nu-ansi-term-ad148eb8cb6bba74
- num-traits-8804496871b3b245
- num-traits-92ffa5e2705cf107
- num-traits-997a0755fee0384f
- once_cell-3f1171a930ac7653
- parking_lot-b912de30c664e9ce
- parking_lot_core-7311b3f0e0f54ba6
- parking_lot_core-78d733fcffd40ed3
- parking_lot_core-af2fa7e1d7111846
- percent-encoding-f5748bc85f5f08c4
- pin-project-lite-a441bf195f19add4
- pin-utils-29d69d14bd252904
- ppv-lite86-fa33ec40a9cd7623
- proc-macro2-2e522ed7a4073d0c
- proc-macro2-544b8d231d8c3a29
- proc-macro2-eb0a6dc1a4bba162
- quote-2acaa95ca5b72a02
- quote-df4fb59aff63dbe8
- quote-fb52485bdd763fe6
- rand-327c02aa5d2b2097
- rand_chacha-ca7c461caf173898
- rand_core-6f1e2a67b889fe04
- regex-automata-ea9bfef2ef8c3c97
- regex-syntax-f40de2667be77055
- rustc_version-20092b8187f1e7dd
- rustversion-2d5bffabe91b0f9d
- rustversion-2d78267e575f68d9
- rustversion-7d7d58cf1368ba63
- ryu-e6c1c6ee5a7c50b8
- scopeguard-75b131dda1dc56af
- semver-f5da3de7f414a609
- serde-41e97f31a0c20611
- serde-5fa5b590484ba9aa
- serde-fc6b8b1cb7827998
- serde_core-2152f799cbcc42ad
- serde_core-4a68a0887bc5cf5f
- serde_core-9416e238740ca0b6
- serde_derive-dddd171d26ba290c
- serde_json-423e9fe298a9df10
- serde_json-a10850f1753b6964
- serde_json-dac2ca5cfb7dcbe6
- serde_path_to_error-a91e85e61d5a79f2
- serde_urlencoded-a0f89a5b6f7f2b6c
- sha2-32beebcbf54556d7
- sha3-cbf4c4407034dd7b
- sharded-slab-edd548f6742ab44b
- signal-hook-registry-8a585feefb30fd39
- signature-d9a1b3c734fb2267
- smallvec-9286545ab6f7f066
- socket2-5ce6707369345655
- subtle-fc709674cc88b369
- syn-35be08d08fed3d99
- sync_wrapper-d58aae496924f166
- thiserror-2b15dc33362b96aa
- thiserror-8c6baef0b2e66587
- thiserror-93c02f55fe35928c
- thiserror-impl-88490fa72a9ecffe
- thread_local-c7ad76e2dbec0f0a
- tokio-9d9de5080d043c69
- tokio-macros-8441bd88bdfdac09
- tower-348455d6ac72a070
- tower-a87ea60ec0081c13
- tower-http-df519d5f0f723bf7
- tower-layer-180a63afbbecf9c3
- tower-service-4f30d10afe0739db
- tracing-attributes-c32dddf2e1ecefe8
- tracing-core-ef339257589e12b0
- tracing-fbfbe322838fc742
- tracing-log-5856407346600fb0
- tracing-subscriber-f3971357aa4e57a4
- typenum-41f73052a3af05b5
- typenum-51ede5c69ebfa953
- typenum-e8f2976cb03ee015
- unicode-ident-1a16bffeac9b6960
- version_check-07f5b2810f043238
- zerocopy-2e9f852e3bb87525
- zerocopy-e33e01c75316e2e8
- zerocopy-e79499704bbf2a49
- zeroize-4d2fae8c70236207
- zmij-64e11b32e7a32310
- zmij-cf351f132dab5fdf
- zmij-ffbcdf8d403deca3
- build
- anyhow-b0631f3ed13c61aa
- anyhow-d0512b7b0b463051
- curve25519-dalek-2946fcd062294515
- curve25519-dalek-f855c205d72bfc3a
- generic-array-63225f3b7316e800
- generic-array-cb54359ea8b8184a
- httparse-1a23e03c08f8f84a
- httparse-a6324e64a2c7397b
- libc-169c7053effc8aae
- libc-b5490adbc7772f01
- num-traits-92ffa5e2705cf107
- num-traits-997a0755fee0384f
- parking_lot_core-7311b3f0e0f54ba6
- parking_lot_core-78d733fcffd40ed3
- proc-macro2-544b8d231d8c3a29
- proc-macro2-eb0a6dc1a4bba162
- quote-2acaa95ca5b72a02
- quote-df4fb59aff63dbe8
- rustversion-2d5bffabe91b0f9d
- rustversion-7d7d58cf1368ba63
- out
- serde-41e97f31a0c20611
- out
- serde-5fa5b590484ba9aa
- serde_core-4a68a0887bc5cf5f
- out
- serde_core-9416e238740ca0b6
- serde_json-423e9fe298a9df10
- serde_json-dac2ca5cfb7dcbe6
- thiserror-8c6baef0b2e66587
- thiserror-93c02f55fe35928c
- typenum-51ede5c69ebfa953
- out
- typenum-e8f2976cb03ee015
- zerocopy-2e9f852e3bb87525
- zerocopy-e33e01c75316e2e8
- zmij-64e11b32e7a32310
- zmij-cf351f132dab5fdf
- deps
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
Whitespace-only changes.
Binary file not shown.
Lines changed: 1 addition & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
Lines changed: 1 addition & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
Lines changed: 1 addition & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
0 commit comments