1 package civitas.common.tabteller;
2
3 import org.springframework.beans.factory.annotation.Autowired;
4 import org.springframework.stereotype.Controller;
5
6 import civitas.common.ConvertToXml;
7 import civitas.common.tabteller.keysharecommitment.TabTellerKeyShareCommitment;
8 import civitas.crypto.algorithms.ConvertToBase64;
9 import civitas.crypto.messagedigest.CryptoHash;
10 import jakarta.xml.bind.JAXBException;
11
12 @Controller
13 public class ConstructTabTellerKeyShareCommitment {
14 @Autowired
15 CryptoHash cryptoHash;
16
17 @Autowired
18 ConvertToBase64 convertToBase64;
19
20 @Autowired
21 ConvertToXml convertToXml;
22
23 public TabTellerKeyShareCommitment apply(final TabTellerKeyShare that) throws JAXBException {
24 String xml = convertToXml.apply(that);
25 byte[] hash = cryptoHash.apply(xml.getBytes());
26 return new TabTellerKeyShareCommitment(that.tellerIndex(), convertToBase64.apply(hash));
27 }
28 }