(self, request: GetTlsKeyArgs)
| 256 | |
| 257 | impl DstackGuestRpc for InternalRpcHandler { |
| 258 | async fn get_tls_key(self, request: GetTlsKeyArgs) -> anyhow::Result<GetTlsKeyResponse> { |
| 259 | let mut seed = [0u8; 32]; |
| 260 | SystemRandom::new() |
| 261 | .fill(&mut seed) |
| 262 | .context("Failed to generate secure seed")?; |
| 263 | let derived_key = |
| 264 | derive_p256_key_pair_from_bytes(&seed, &[]).context("Failed to derive key")?; |
| 265 | let config = CertConfigV2 { |
| 266 | org_name: None, |
| 267 | subject: request.subject, |
| 268 | subject_alt_names: request.alt_names, |
| 269 | usage_server_auth: request.usage_server_auth, |
| 270 | usage_client_auth: request.usage_client_auth, |
| 271 | ext_quote: request.usage_ra_tls, |
| 272 | ext_app_info: request.with_app_info, |
| 273 | not_after: request.not_after, |
| 274 | not_before: request.not_before, |
| 275 | }; |
| 276 | let certificate_chain = self.state.inner.issue_cert(&derived_key, config).await?; |
| 277 | Ok(GetTlsKeyResponse { |
| 278 | key: derived_key.serialize_pem(), |
| 279 | certificate_chain, |
| 280 | }) |
| 281 | } |
| 282 | |
| 283 | async fn get_key(self, request: GetKeyArgs) -> Result<GetKeyResponse> { |
| 284 | let k256_app_key = &self.state.inner.keys.k256_key; |
no test coverage detected