@Override public String generateKey(String projectId, String name) throws IOException, NoSuchAlgorithmException, AlreadyExistingException { log.debug("Generating keypair"); if (keyRepository.findKey(projectId, name) != null) throw new AlreadyExistingException("A key with the name " + name + " exists already."); KeyPair keyPair = KeyHelper.generateRSAKey(); RSAPrivateKey privateKey = (RSAPrivateKey) keyPair.getPrivate(); RSAPublicKey publicKey = (RSAPublicKey) keyPair.getPublic(); String publicKeyString = KeyHelper.encodePublicKey(publicKey, name); Key key = new Key(); key.setName(name); key.setProjectId(projectId); key.setFingerprint(KeyHelper.calculateFingerprint(publicKey.getEncoded())); key.setPublicKey(publicKeyString); log.debug(publicKeyString); keyRepository.save(key); log.info("Added new key: " + key); return KeyHelper.parsePrivateKey(privateKey.getEncoded()); }
@Override public Key addKey(String projectId, String name, String key) throws NoSuchAlgorithmException, BadFormatException, AlreadyExistingException { if (keyRepository.findKey(projectId, name) != null) throw new AlreadyExistingException("A key with the name " + name + " exists already."); Key keyToAdd = new Key(); keyToAdd.setName(name); keyToAdd.setProjectId(projectId); keyToAdd.setPublicKey(key); keyToAdd.setFingerprint(KeyHelper.calculateFingerprint(KeyHelper.parsePublicKey(key))); keyRepository.save(keyToAdd); return keyToAdd; } }