From 62e4773810a8c9a028cfc5b9fdb83dfb13cdfa2d Mon Sep 17 00:00:00 2001 From: =?utf8?q?Felix=20D=C3=B6rre?= Date: Wed, 21 Sep 2016 13:22:21 +0200 Subject: [PATCH] fix: S/MIME signature See https://tools.ietf.org/html/rfc5751#section-3.1.1 for reference. Change-Id: I9fcd558182395ec83cadb42c0d2bc5c785d49864 --- src/org/cacert/gigi/crypto/SMIME.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/org/cacert/gigi/crypto/SMIME.java b/src/org/cacert/gigi/crypto/SMIME.java index 2ca455c1..de39f5a1 100644 --- a/src/org/cacert/gigi/crypto/SMIME.java +++ b/src/org/cacert/gigi/crypto/SMIME.java @@ -45,6 +45,7 @@ public class SMIME { } public static void smime(String contents, PrivateKey pKey, X509Certificate c, PrintWriter to) throws IOException, GeneralSecurityException { + contents = normalizeNewlinesToCRLF(contents); Signature signature = Signature.getInstance("SHA1WithRSA"); signature.initSign(pKey); @@ -75,6 +76,10 @@ public class SMIME { mimeEncode(contents, PEM.formatBase64(bOut.toByteArray()), to); } + private static String normalizeNewlinesToCRLF(String contents) { + return contents.replace("\r\n", "\r").replace("\r", "\n").replace("\n", "\r\n"); + } + private static Random r = new Random(); private static void mimeEncode(String contents, String signature, PrintWriter to) { -- 2.39.2