]> WPIA git - gigi.git/blobdiff - src/org/cacert/gigi/crypto/SMIME.java
fix: S/MIME signature
[gigi.git] / src / org / cacert / gigi / crypto / SMIME.java
index 2ca455c173621ef8ca7e6836e2d960e65ce7078f..de39f5a190793e267e16828f027d9cbcba86e220 100644 (file)
@@ -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) {