import java.security.PrivateKey;
import java.security.Signature;
import java.security.cert.X509Certificate;
-import java.util.Base64;
import java.util.Random;
+import org.cacert.gigi.util.PEM;
+
import sun.security.pkcs.ContentInfo;
import sun.security.pkcs.PKCS7;
import sun.security.pkcs.SignerInfo;
ByteArrayOutputStream bOut = new DerOutputStream();
p7.encodeSignedData(bOut);
- mimeEncode(contents, Base64.getEncoder().encodeToString(bOut.toByteArray()).replaceAll("(.{64})(?=.)", "$1\n"), to);
+ mimeEncode(contents, PEM.formatBase64(bOut.toByteArray()), to);
}
private static Random r = new Random();
import java.util.Properties;
import java.util.regex.Pattern;
+import org.cacert.gigi.util.PEM;
import org.cacert.gigi.util.ServerConstants;
public class Sendmail extends EmailProvider {
// out.print(chunk_split(base64_encode(recode("html..utf-8",
// $message)))."\r\n.\r\n");
headers.append("\r\n");
- headers.append(Base64.getEncoder().encodeToString(message.getBytes("UTF-8")).replaceAll("(.{64})(?=.)", "$1\r\n"));
+ headers.append(PEM.formatBase64(message.getBytes("UTF-8")));
headers.append("\r\n");
try {
package org.cacert.gigi.util;
import java.util.Base64;
+import java.util.regex.Pattern;
public class PEM {
+ public static final Pattern LINE = Pattern.compile("(.{64})(?=.)");
+
public static String encode(String type, byte[] data) {
return "-----BEGIN " + type + "-----\n" + //
- Base64.getEncoder().encodeToString(data).replaceAll("(.{64})(?=.)", "$1\n") + //
+ formatBase64(data) + //
"\n-----END " + type + "-----";
}
return Base64.getDecoder().decode(data);
}
+
+ public static String formatBase64(byte[] bytes) {
+ return LINE.matcher(Base64.getEncoder().encodeToString(bytes)).replaceAll("$1\n");
+ }
}