Skip to content

Commit a97bb8a

Browse files
committed
create rsa public key fingerprint
1 parent a84b84b commit a97bb8a

File tree

3 files changed

+18
-13
lines changed

3 files changed

+18
-13
lines changed

core/src/main/java/com/flowci/core/secret/domain/RSASecret.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@ public final class RSASecret extends Secret {
3333

3434
private SimpleKeyPair pair;
3535

36+
private String md5Fingerprint;
37+
3638
public RSASecret() {
3739
this.pair = new SimpleKeyPair();
3840
this.setCategory(Category.SSH_RSA);

core/src/main/java/com/flowci/core/secret/service/SecretServiceImpl.java

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -31,13 +31,15 @@
3131
import com.flowci.domain.SimpleKeyPair;
3232
import com.flowci.exception.DuplicateException;
3333
import com.flowci.exception.NotFoundException;
34+
import com.flowci.exception.StatusException;
3435
import com.flowci.util.StringHelper;
3536
import lombok.extern.log4j.Log4j2;
3637
import org.springframework.beans.factory.annotation.Autowired;
3738
import org.springframework.context.event.EventListener;
3839
import org.springframework.dao.DuplicateKeyException;
3940
import org.springframework.stereotype.Service;
4041

42+
import java.security.NoSuchAlgorithmException;
4143
import java.util.List;
4244
import java.util.Optional;
4345

@@ -94,20 +96,20 @@ public SimpleKeyPair genRSA() {
9496
public RSASecret createRSA(String name) {
9597
String email = sessionManager.get().getEmail();
9698
SimpleKeyPair pair = CipherHelper.RSA.gen(email);
97-
98-
RSASecret rsaCredential = new RSASecret();
99-
rsaCredential.setName(name);
100-
rsaCredential.setPair(pair);
101-
102-
return save(rsaCredential);
99+
return createRSA(name, pair);
103100
}
104101

105102
@Override
106103
public RSASecret createRSA(String name, SimpleKeyPair pair) {
107-
RSASecret rsaCredential = new RSASecret();
108-
rsaCredential.setName(name);
109-
rsaCredential.setPair(pair);
110-
return save(rsaCredential);
104+
try {
105+
RSASecret secret = new RSASecret();
106+
secret.setName(name);
107+
secret.setPair(pair);
108+
secret.setMd5Fingerprint(CipherHelper.RSA.fingerprintMd5(pair.getPublicKey()));
109+
return save(secret);
110+
} catch (NoSuchAlgorithmException e) {
111+
throw new StatusException("failed to generate fingerprint");
112+
}
111113
}
112114

113115
@Override

core/src/test/java/com/flowci/core/test/secret/SecretServiceTest.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,9 +57,10 @@ public void should_create_rsa_secret() {
5757
Secret loaded = secretService.get("hello.rsa");
5858
Assert.assertTrue(loaded instanceof RSASecret);
5959

60-
RSASecret keyPair = (RSASecret) loaded;
61-
Assert.assertFalse(Strings.isNullOrEmpty(keyPair.getPublicKey()));
62-
Assert.assertFalse(Strings.isNullOrEmpty(keyPair.getPrivateKey()));
60+
RSASecret secret = (RSASecret) loaded;
61+
Assert.assertFalse(Strings.isNullOrEmpty(secret.getPublicKey()));
62+
Assert.assertFalse(Strings.isNullOrEmpty(secret.getPrivateKey()));
63+
Assert.assertNotNull(secret.getMd5Fingerprint());
6364
}
6465

6566
@Test

0 commit comments

Comments
 (0)