From d085e04168b01905fac5190ab6d408ed8c6b170b Mon Sep 17 00:00:00 2001 From: Sergey Shkurov Date: Sat, 5 Aug 2023 02:00:39 +0400 Subject: [PATCH] Remove RsaKeysHolder --- docker-compose.yml | 1 - rsa_keys/example.key | 28 ------- .../packmate/service/StreamService.java | 8 +- .../service/optimization/RsaKeysHolder.java | 75 ------------------- .../service/optimization/StreamOptimizer.java | 1 - 5 files changed, 2 insertions(+), 111 deletions(-) delete mode 100644 rsa_keys/example.key delete mode 100644 src/main/java/ru/serega6531/packmate/service/optimization/RsaKeysHolder.java diff --git a/docker-compose.yml b/docker-compose.yml index cb42a90..626c4dc 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -21,7 +21,6 @@ services: image: registry.gitlab.com/packmate/packmate:${BUILD_TAG:-latest} volumes: - "./pcaps/:/app/pcaps/:ro" - - "./rsa_keys/:/app/rsa_keys/:ro" depends_on: db: condition: service_healthy diff --git a/rsa_keys/example.key b/rsa_keys/example.key deleted file mode 100644 index 3b9801a..0000000 --- a/rsa_keys/example.key +++ /dev/null @@ -1,28 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDWJO65om/5LMA0 -8w9Uk36h4ukQ7Qt8nbpbeHzxorl4lGwWBASEAEmDYNUcGO0CxglOE93F9BPNGn6q -Vj8Ypp3kcTGOzsXcFrd0wRpXbSwbynnmqTCYigiLzIidasfUrGul4s1fVZFdkQZS -p2Y5pEUxq1GKcAgCVwjMyWC1dhGqvTcA5ps0JoSRoA+Nzs/BeTHlTm8UvT9eD9ER -8RmYVOi1edcJ/eztj1CVydq5X27QNmwLuqsAwq38I27nlq1NU5ShqDQ16bg8IY/c -Ll4QJB7SVbrLf3dJ7KY5i7DNEoYUiJGRwDJZt+wcZLtFSzj0cn0BuEU6M0PYglUI -uQTeosUZAgMBAAECggEAehq7CJyHzoPm4QpLDoW/qh1RmfYgG6FwVqHgVIPdz9SJ -wQ/vZzkmscPwIEJSOsejHKMVTL983vGhkgz1k1/GHjEw+eYLShCl8Ov+0iUNBpew -ZIbKj9/9OYGZ0HDHmwvpocAuLJME/V4pRc3v6yQw1D6EkzSITJVGDkcxXqcBMeIA -uNVr+pwLH9vO7ybva+e3T4ROWxlecHrcB94THops4fy5+SGVILwvKaP4cRhjLfD4 -2XV4O5N0imdPAYsNNHyHbAzjvZPoCOsuH3B/tWmRHq3oOa4ZcFUNTDmO9GgfbtY/ -PHEFV34XxMjy3bK0vLxHqS9CEj1cvfq8e1NqkDTugQKBgQD6CEezGf9OFb3byBui -X3OzXWdWQ5jnodOTPb/P+y9DrORJPy1/0BcXh/cHF58kNDZvzVwTFcAjfx6bxS41 -JAddFRZjNuHXEOtFRkD3Wp4W7Atrv/yeKbpE9PCaNYtUDasL8RKcdJiHNFpN4xRl -jpQtIiQ9pikrjUXLgW0S88zzyQKBgQDbQV+DMxGS2Cee6nfMmUcGjgQd8D0cXLjk -OZSmEnk4FCvV8ZdysjirqmuitFTE+PYmOJzhlQl8lubEs4Kc7L9CfEwbK9mNN0ZG -BNdT21nFuJp7YoZzZDTHuwF0nBjQFYcdaWDW+qFqrqs9mKbmCQ5vSzql6al+pzdX -X/YS0QTO0QKBgDUMprHQdUPLByJnnb1gxTqsOa2q3/ldc3eNJXJqWAfi2fjUh8HT -k+KxPW9qyqAy1832429FMSQW55ajSn+J6moMfFiGn3ozI8fp9QTGXD5+zJmK/X1N -WzEgSyBc9ffago0hFBLQBkDBkdtur7gwfS3qTYgrBhcwfTuFdXAM/FJJAoGABIQ2 -OXel1waI2mcuDJLjuajXQN6gA6ONU3Y0L6+Vu6f+tyuA2SX+sNqT2Qgp7tzKBUOJ -R8RQK7bYDhk8iYr+7Zmt36lpk9Udp3eWD+4mzUHePMhsyJe51pttjj9g63hmDh8L -laIYDSCH+n7YgUiSeYxtKtnDWg6Lv0sEwKJ5nOECgYBsF5PoHRE4Q/Vs18qbI4t/ -zPwWWNP0sb3PYRlWLTKMBowQdDOxnXAF12txoLNhpOn9DjZdNEb2EMsqlzdNjphN -uUWZq89d5kDwKfj4ji087elcjsW79R5oqwrN8a0NimftZ4eBPbcn8Y0r5psPcSzE -36iKGM2euQYD8Ub+aDOSLQ== ------END PRIVATE KEY----- diff --git a/src/main/java/ru/serega6531/packmate/service/StreamService.java b/src/main/java/ru/serega6531/packmate/service/StreamService.java index 5f4ad54..1ed8d01 100644 --- a/src/main/java/ru/serega6531/packmate/service/StreamService.java +++ b/src/main/java/ru/serega6531/packmate/service/StreamService.java @@ -12,7 +12,6 @@ import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; -import ru.serega6531.packmate.properties.PackmateProperties; import ru.serega6531.packmate.model.CtfService; import ru.serega6531.packmate.model.FoundPattern; import ru.serega6531.packmate.model.Packet; @@ -26,8 +25,8 @@ import ru.serega6531.packmate.model.pojo.StreamDto; import ru.serega6531.packmate.model.pojo.StreamPagination; import ru.serega6531.packmate.model.pojo.SubscriptionMessage; import ru.serega6531.packmate.model.pojo.UnfinishedStream; +import ru.serega6531.packmate.properties.PackmateProperties; import ru.serega6531.packmate.repository.StreamRepository; -import ru.serega6531.packmate.service.optimization.RsaKeysHolder; import ru.serega6531.packmate.service.optimization.StreamOptimizer; import java.time.ZonedDateTime; @@ -46,7 +45,6 @@ public class StreamService { private final ServicesService servicesService; private final CountingService countingService; private final SubscriptionService subscriptionService; - private final RsaKeysHolder keysHolder; private final ModelMapper modelMapper; private final boolean ignoreEmptyPackets; @@ -58,7 +56,6 @@ public class StreamService { ServicesService servicesService, CountingService countingService, SubscriptionService subscriptionService, - RsaKeysHolder keysHolder, ModelMapper modelMapper, PackmateProperties properties) { this.repository = repository; @@ -66,7 +63,6 @@ public class StreamService { this.servicesService = servicesService; this.countingService = countingService; this.subscriptionService = subscriptionService; - this.keysHolder = keysHolder; this.modelMapper = modelMapper; this.ignoreEmptyPackets = properties.ignoreEmptyPackets(); } @@ -104,7 +100,7 @@ public class StreamService { int packetsSize = packets.stream().mapToInt(p -> p.getContent().length).sum(); int packetsCount = packets.size(); - List optimizedPackets = new StreamOptimizer(keysHolder, service, packets).optimizeStream(); + List optimizedPackets = new StreamOptimizer(service, packets).optimizeStream(); if (isStreamIgnored(optimizedPackets, service)) { log.debug("New stream is ignored"); diff --git a/src/main/java/ru/serega6531/packmate/service/optimization/RsaKeysHolder.java b/src/main/java/ru/serega6531/packmate/service/optimization/RsaKeysHolder.java deleted file mode 100644 index 4817360..0000000 --- a/src/main/java/ru/serega6531/packmate/service/optimization/RsaKeysHolder.java +++ /dev/null @@ -1,75 +0,0 @@ -package ru.serega6531.packmate.service.optimization; - -import lombok.SneakyThrows; -import lombok.extern.slf4j.Slf4j; -import org.springframework.boot.context.event.ApplicationReadyEvent; -import org.springframework.context.event.EventListener; -import org.springframework.stereotype.Service; - -import java.io.File; -import java.io.IOException; -import java.math.BigInteger; -import java.nio.file.Files; -import java.security.KeyFactory; -import java.security.NoSuchAlgorithmException; -import java.security.interfaces.RSAPrivateKey; -import java.security.spec.InvalidKeySpecException; -import java.security.spec.PKCS8EncodedKeySpec; -import java.util.Base64; -import java.util.HashMap; -import java.util.Map; -import java.util.Objects; - -@Service -@Slf4j -public class RsaKeysHolder { - - // Key: N from RSA public key - private final Map keys = new HashMap<>(); - - public RSAPrivateKey getKey(BigInteger modulus) { - return keys.get(modulus); - } - - @EventListener(ApplicationReadyEvent.class) - public void afterStartup(ApplicationReadyEvent event) { - log.info("Loading RSA keys..."); - File dir = new File("rsa_keys"); - if (dir.exists() && dir.isDirectory()) { - for (File keyFile : Objects.requireNonNull(dir.listFiles())) { - addKey(keyFile); - } - } - } - - @SneakyThrows - public void addKey(File keyFile) { - if (!keyFile.exists()) { - throw new IllegalArgumentException("Key file does not exist"); - } - - try { - RSAPrivateKey privateKey = loadFromFile(keyFile); - keys.put(privateKey.getModulus(), privateKey); - String n = privateKey.getModulus().toString(); - log.info("Loaded RSA key with N={}...", n.substring(0, Math.min(n.length(), 8))); - } catch (IOException | InvalidKeySpecException e) { - log.error("Error loading rsa key", e); - } - } - - private RSAPrivateKey loadFromFile(File keyFile) throws IOException, InvalidKeySpecException, NoSuchAlgorithmException { - String content = Files.readString(keyFile.toPath()); - - content = content.replaceAll("-----BEGIN (RSA )?PRIVATE KEY-----", "") - .replaceAll("-----END (RSA )?PRIVATE KEY-----", "") - .replace("\n", ""); - - byte[] keyBytes = Base64.getDecoder().decode(content); - - PKCS8EncodedKeySpec spec = new PKCS8EncodedKeySpec(keyBytes); - KeyFactory kf = KeyFactory.getInstance("RSA"); - return (RSAPrivateKey) kf.generatePrivate(spec); - } - -} diff --git a/src/main/java/ru/serega6531/packmate/service/optimization/StreamOptimizer.java b/src/main/java/ru/serega6531/packmate/service/optimization/StreamOptimizer.java index a0af23d..2b984d4 100644 --- a/src/main/java/ru/serega6531/packmate/service/optimization/StreamOptimizer.java +++ b/src/main/java/ru/serega6531/packmate/service/optimization/StreamOptimizer.java @@ -11,7 +11,6 @@ import java.util.List; @Slf4j public class StreamOptimizer { - private final RsaKeysHolder keysHolder; private final CtfService service; private List packets;