confium_tc_cmp20/
scheme.rs1use confium_tc::Result;
13use confium_tc::registry::{SessionImpl, TcScheme, TcSchemeKind};
14use confium_tc::session::SessionParams;
15
16use crate::keygen::Cmp20DkgP256;
17use crate::sign::Cmp20SignP256;
18
19pub struct Cmp20EcdsaP256;
21
22impl TcScheme for Cmp20EcdsaP256 {
23 fn name(&self) -> &'static str {
24 crate::DKG_SCHEME_NAME
25 }
26 fn kind(&self) -> TcSchemeKind {
27 TcSchemeKind::Dkg
28 }
29 fn create_session(&self, params: &SessionParams) -> Result<Box<dyn SessionImpl>> {
30 Cmp20DkgP256::build_session(params)
31 }
32}
33
34pub struct Cmp20EcdsaP256Sign;
36
37impl TcScheme for Cmp20EcdsaP256Sign {
38 fn name(&self) -> &'static str {
39 crate::SIGN_SCHEME_NAME
40 }
41 fn kind(&self) -> TcSchemeKind {
42 TcSchemeKind::Signature
43 }
44 fn create_session(&self, params: &SessionParams) -> Result<Box<dyn SessionImpl>> {
45 Cmp20SignP256::build_session(params)
46 }
47}
48
49confium_tc::register_tc_scheme!(Cmp20EcdsaP256);
50confium_tc::register_tc_scheme!(Cmp20EcdsaP256Sign);