diff --git a/components/nexus-repository-services/src/main/java/org/sonatype/nexus/repository/security/GpgUtils.java b/components/nexus-repository-services/src/main/java/org/sonatype/nexus/repository/security/GpgUtils.java index 2d74ba1e611..333edf7aa42 100644 --- a/components/nexus-repository-services/src/main/java/org/sonatype/nexus/repository/security/GpgUtils.java +++ b/components/nexus-repository-services/src/main/java/org/sonatype/nexus/repository/security/GpgUtils.java @@ -175,17 +175,13 @@ public static byte[] signInline(final String input, final String secretKey, fina sigGenerator.setHashedSubpackets(sigSubpacketGenerator.generate()); } - String[] lines = input.split("\r?\n"); try (ArmoredOutputStream aOut = new ArmoredOutputStream(buffer)) { aOut.beginClearText(SHA256); - boolean firstLine = true; - for (String line : lines) { - String sigLine = (firstLine ? "" : "\r\n") + line.replaceAll("\\s*$", ""); - sigGenerator.update(sigLine.getBytes(UTF_8)); - aOut.write((line + "\n").getBytes(UTF_8)); - firstLine = false; - } + sigGenerator.update(input.getBytes(UTF_8)); // the signature input must match bit for bit. No modifications are allowed here + aOut.write(input.getBytes(UTF_8)); + aOut.write(10); // newline required between signed content and signature + aOut.endClearText(); sigGenerator.generate().encode(new BCPGOutputStream(aOut));