signstar_crypto/key/base/
nethsm.rs1use nethsm_sdk_rs::models::SignMode;
4
5use crate::key::base::{DecryptMode, EncryptMode, KeyMechanism, KeyType, SignatureType};
6
7impl From<KeyType> for nethsm_sdk_rs::models::KeyType {
8 fn from(value: KeyType) -> Self {
9 match value {
10 KeyType::Curve25519 => Self::Curve25519,
11 KeyType::EcP256 => Self::EcP256,
12 KeyType::EcP384 => Self::EcP384,
13 KeyType::EcP521 => Self::EcP521,
14 KeyType::Generic => Self::Generic,
15 KeyType::Rsa => Self::Rsa,
16 }
17 }
18}
19
20impl TryFrom<nethsm_sdk_rs::models::KeyType> for KeyType {
21 type Error = crate::key::Error;
22 fn try_from(value: nethsm_sdk_rs::models::KeyType) -> Result<Self, Self::Error> {
30 Ok(match value {
31 nethsm_sdk_rs::models::KeyType::Curve25519 => Self::Curve25519,
32 nethsm_sdk_rs::models::KeyType::EcP224 => {
33 unimplemented!(
34 "Elliptic Curve P224 is not implemented and the nethsm-sdk-rs crate will drop it in the future"
35 )
36 }
37 nethsm_sdk_rs::models::KeyType::EcP256 => Self::EcP256,
38 nethsm_sdk_rs::models::KeyType::EcP384 => Self::EcP384,
39 nethsm_sdk_rs::models::KeyType::EcP521 => Self::EcP521,
40 nethsm_sdk_rs::models::KeyType::Generic => Self::Generic,
41 nethsm_sdk_rs::models::KeyType::Rsa => Self::Rsa,
42 })
43 }
44}
45
46impl From<&nethsm_sdk_rs::models::KeyMechanism> for KeyMechanism {
47 fn from(value: &nethsm_sdk_rs::models::KeyMechanism) -> Self {
48 match value {
49 nethsm_sdk_rs::models::KeyMechanism::AesDecryptionCbc => Self::AesDecryptionCbc,
50 nethsm_sdk_rs::models::KeyMechanism::AesEncryptionCbc => Self::AesEncryptionCbc,
51 nethsm_sdk_rs::models::KeyMechanism::EcdsaSignature => Self::EcdsaSignature,
52 nethsm_sdk_rs::models::KeyMechanism::EdDsaSignature => Self::EdDsaSignature,
53 nethsm_sdk_rs::models::KeyMechanism::RsaDecryptionOaepMd5 => Self::RsaDecryptionOaepMd5,
54 nethsm_sdk_rs::models::KeyMechanism::RsaDecryptionOaepSha1 => {
55 Self::RsaDecryptionOaepSha1
56 }
57 nethsm_sdk_rs::models::KeyMechanism::RsaDecryptionOaepSha224 => {
58 Self::RsaDecryptionOaepSha224
59 }
60 nethsm_sdk_rs::models::KeyMechanism::RsaDecryptionOaepSha256 => {
61 Self::RsaDecryptionOaepSha256
62 }
63 nethsm_sdk_rs::models::KeyMechanism::RsaDecryptionOaepSha384 => {
64 Self::RsaDecryptionOaepSha384
65 }
66 nethsm_sdk_rs::models::KeyMechanism::RsaDecryptionOaepSha512 => {
67 Self::RsaDecryptionOaepSha512
68 }
69 nethsm_sdk_rs::models::KeyMechanism::RsaDecryptionPkcs1 => Self::RsaDecryptionPkcs1,
70 nethsm_sdk_rs::models::KeyMechanism::RsaDecryptionRaw => Self::RsaDecryptionRaw,
71 nethsm_sdk_rs::models::KeyMechanism::RsaSignaturePkcs1 => Self::RsaSignaturePkcs1,
72 nethsm_sdk_rs::models::KeyMechanism::RsaSignaturePssMd5 => Self::RsaSignaturePssMd5,
73 nethsm_sdk_rs::models::KeyMechanism::RsaSignaturePssSha1 => Self::RsaSignaturePssSha1,
74 nethsm_sdk_rs::models::KeyMechanism::RsaSignaturePssSha224 => {
75 Self::RsaSignaturePssSha224
76 }
77 nethsm_sdk_rs::models::KeyMechanism::RsaSignaturePssSha256 => {
78 Self::RsaSignaturePssSha256
79 }
80 nethsm_sdk_rs::models::KeyMechanism::RsaSignaturePssSha384 => {
81 Self::RsaSignaturePssSha384
82 }
83 nethsm_sdk_rs::models::KeyMechanism::RsaSignaturePssSha512 => {
84 Self::RsaSignaturePssSha512
85 }
86 }
87 }
88}
89
90impl From<KeyMechanism> for nethsm_sdk_rs::models::KeyMechanism {
91 fn from(value: KeyMechanism) -> Self {
92 match value {
93 KeyMechanism::AesDecryptionCbc => Self::AesDecryptionCbc,
94 KeyMechanism::AesEncryptionCbc => Self::AesEncryptionCbc,
95 KeyMechanism::EcdsaSignature => Self::EcdsaSignature,
96 KeyMechanism::EdDsaSignature => Self::EdDsaSignature,
97 KeyMechanism::RsaDecryptionOaepMd5 => Self::RsaDecryptionOaepMd5,
98 KeyMechanism::RsaDecryptionOaepSha1 => Self::RsaDecryptionOaepSha1,
99 KeyMechanism::RsaDecryptionOaepSha224 => Self::RsaDecryptionOaepSha224,
100 KeyMechanism::RsaDecryptionOaepSha256 => Self::RsaDecryptionOaepSha256,
101 KeyMechanism::RsaDecryptionOaepSha384 => Self::RsaDecryptionOaepSha384,
102 KeyMechanism::RsaDecryptionOaepSha512 => Self::RsaDecryptionOaepSha512,
103 KeyMechanism::RsaDecryptionPkcs1 => Self::RsaDecryptionPkcs1,
104 KeyMechanism::RsaDecryptionRaw => Self::RsaDecryptionRaw,
105 KeyMechanism::RsaSignaturePkcs1 => Self::RsaSignaturePkcs1,
106 KeyMechanism::RsaSignaturePssMd5 => Self::RsaSignaturePssMd5,
107 KeyMechanism::RsaSignaturePssSha1 => Self::RsaSignaturePssSha1,
108 KeyMechanism::RsaSignaturePssSha224 => Self::RsaSignaturePssSha224,
109 KeyMechanism::RsaSignaturePssSha256 => Self::RsaSignaturePssSha256,
110 KeyMechanism::RsaSignaturePssSha384 => Self::RsaSignaturePssSha384,
111 KeyMechanism::RsaSignaturePssSha512 => Self::RsaSignaturePssSha512,
112 }
113 }
114}
115
116impl From<SignatureType> for SignMode {
117 fn from(value: SignatureType) -> Self {
124 match value {
125 SignatureType::Pkcs1 => SignMode::Pkcs1,
126 SignatureType::PssMd5 => SignMode::PssMd5,
127 SignatureType::PssSha1 => SignMode::PssSha1,
128 SignatureType::PssSha224 => SignMode::PssSha224,
129 SignatureType::PssSha256 => SignMode::PssSha256,
130 SignatureType::PssSha384 => SignMode::PssSha384,
131 SignatureType::PssSha512 => SignMode::PssSha512,
132 SignatureType::EdDsa => SignMode::EdDsa,
133 SignatureType::EcdsaP256 | SignatureType::EcdsaP384 | SignatureType::EcdsaP521 => {
134 SignMode::Ecdsa
135 }
136 }
137 }
138}
139
140impl From<EncryptMode> for nethsm_sdk_rs::models::EncryptMode {
141 fn from(value: EncryptMode) -> Self {
142 match value {
143 EncryptMode::AesCbc => Self::AesCbc,
144 }
145 }
146}
147
148impl From<DecryptMode> for nethsm_sdk_rs::models::DecryptMode {
149 fn from(value: DecryptMode) -> Self {
150 match value {
151 DecryptMode::AesCbc => Self::AesCbc,
152 DecryptMode::OaepMd5 => Self::OaepMd5,
153 DecryptMode::OaepSha1 => Self::OaepSha1,
154 DecryptMode::OaepSha224 => Self::OaepSha224,
155 DecryptMode::OaepSha256 => Self::OaepSha256,
156 DecryptMode::OaepSha384 => Self::OaepSha384,
157 DecryptMode::OaepSha512 => Self::OaepSha512,
158 DecryptMode::Pkcs1 => Self::Pkcs1,
159 DecryptMode::Raw => Self::Raw,
160 }
161 }
162}