View Javadoc
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  }