Commit 4bbdd2e
authored
Add support for verifying kernels (#635)
* Add support for verifying kernels
This change adds support for verifying kernels. Verification consists of
two parts:
1. Verify that `metadata.json` is correctly signed using the detached
signature in `metadata.json.sigstore`; and if so,
2. verify that the kernel file hashes are the same as the digest in
`metadata.json`.
The digest in `metadata.json` protects the kernel files, the detached
signature in `metadata.json.sigstore` protects the metadata. For
signing, we use sigstore, so that kernels can be signed using ephemeral
keys. Ephemeral keys reduce the attack surface of leaked keys.
In this change, only the API is added. It is not exposed at the
top-level, since it is not fully stable yet. It is also not wired up
in `get_kernel`, etc. yet because we still want to test code signing
for some time. See `test_verify.py` for actual use of the API. Besides
that we'll add a `kernels` subcommand for verifying kernels in the PR
after this one.
* Add `Metadata.from_bytes`, use in signature verification
* Check the digest algorithm in verification
Also introduce the `DigestAlgorithm` type in Python, to strongly type
the algorithm.
* Fix RST -> HF doc builder markup in `kernels_data.pyi`
* Do not assert on sigstore error messages
They are not stable between releases1 parent eb0863b commit 4bbdd2e
12 files changed
Lines changed: 1898 additions & 17 deletions
File tree
- kernels-data
- bindings/python
- src
- tests
- src
- kernels
- src/kernels
- tests
- nix-builder/pkgs/python-modules/kernels
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
174 | 174 | | |
175 | 175 | | |
176 | 176 | | |
| 177 | + | |
177 | 178 | | |
178 | 179 | | |
179 | 180 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
7 | | - | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
8 | 19 | | |
9 | 20 | | |
10 | 21 | | |
| |||
25 | 36 | | |
26 | 37 | | |
27 | 38 | | |
28 | | - | |
29 | | - | |
| 39 | + | |
| 40 | + | |
30 | 41 | | |
31 | 42 | | |
32 | 43 | | |
| |||
54 | 65 | | |
55 | 66 | | |
56 | 67 | | |
57 | | - | |
| 68 | + | |
58 | 69 | | |
59 | 70 | | |
60 | 71 | | |
61 | 72 | | |
62 | 73 | | |
63 | 74 | | |
64 | | - | |
| 75 | + | |
65 | 76 | | |
66 | 77 | | |
67 | 78 | | |
| |||
79 | 90 | | |
80 | 91 | | |
81 | 92 | | |
82 | | - | |
| 93 | + | |
83 | 94 | | |
84 | 95 | | |
85 | | - | |
| 96 | + | |
86 | 97 | | |
87 | 98 | | |
88 | 99 | | |
| |||
99 | 110 | | |
100 | 111 | | |
101 | 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 | + | |
102 | 226 | | |
103 | 227 | | |
104 | | - | |
| 228 | + | |
105 | 229 | | |
106 | 230 | | |
107 | 231 | | |
108 | | - | |
| 232 | + | |
109 | 233 | | |
110 | 234 | | |
111 | 235 | | |
112 | 236 | | |
113 | 237 | | |
114 | 238 | | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
| 246 | + | |
| 247 | + | |
115 | 248 | | |
116 | 249 | | |
117 | 250 | | |
| |||
128 | 261 | | |
129 | 262 | | |
130 | 263 | | |
| 264 | + | |
| 265 | + | |
131 | 266 | | |
0 commit comments