hsmtool/util/key/mod.rs
1// Copyright lowRISC contributors (OpenTitan project).
2// Licensed under the Apache License, Version 2.0, see LICENSE for details.
3// SPDX-License-Identifier: Apache-2.0
4
5use clap;
6use serde::{Deserialize, Serialize};
7
8pub mod ecdsa;
9pub mod mldsa;
10pub mod rsa;
11
12#[derive(clap::ValueEnum, Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
13pub enum KeyEncoding {
14 /// When saving, Pem means Pkcs8Pem.
15 #[serde(alias = "pem")]
16 Pem,
17 /// When saving, Der means Pkcs8Der.
18 #[serde(alias = "der")]
19 Der,
20 /// When saving, Pkcs1 means Pkcs1Pem.
21 #[serde(alias = "pkcs1")]
22 Pkcs1,
23 /// When saving, Pkcs8 means Pkcs8Pem.
24 #[serde(alias = "pkcs8")]
25 Pkcs8,
26 /// Pcks1 encoding in a PEM container.
27 #[serde(alias = "pkcs1-pem")]
28 Pkcs1Pem,
29 /// Pcks8 encoding in a PEM container.
30 #[serde(alias = "pkcs8-pem")]
31 Pkcs8Pem,
32 /// Pcks1 encoding in a DER container.
33 #[serde(alias = "pkcs1-der")]
34 Pkcs1Der,
35 /// Pcks8 encoding in a DER container.
36 #[serde(alias = "pkcs8-der")]
37 Pkcs8Der,
38}