1 package civitas.crypto.rsapublickey;
2
3 import java.security.PublicKey;
4 import java.security.spec.InvalidKeySpecException;
5 import java.security.spec.X509EncodedKeySpec;
6 import java.util.Base64;
7
8 import org.bouncycastle.crypto.CryptoException;
9 import org.springframework.beans.factory.annotation.Autowired;
10 import org.springframework.stereotype.Service;
11
12 import civitas.crypto.CryptoBase;
13
14 @Service
15 public class ConvertStringToPublicKey {
16
17 @Autowired
18 CryptoBase cryptoBase;
19
20 public PublicKey apply(final String publicK) throws CryptoException {
21 byte[] publicBytes = Base64.getDecoder().decode(publicK);
22 X509EncodedKeySpec keySpec = new X509EncodedKeySpec(publicBytes);
23 try {
24 return cryptoBase.publicKeyFactory.generatePublic(keySpec);
25 } catch (InvalidKeySpecException e) {
26 throw new CryptoException("cannot convert", e);
27 }
28 }
29 }