import java.io.IOException;
import java.security.GeneralSecurityException;
+import java.security.Key;
import java.security.KeyStore;
+import java.security.KeyStoreException;
+import java.security.NoSuchAlgorithmException;
+import java.security.UnrecoverableKeyException;
+import java.security.cert.Certificate;
import java.util.List;
import java.util.Properties;
+import java.util.TimeZone;
import javax.net.ssl.ExtendedSSLSession;
import javax.net.ssl.SNIHostName;
import javax.net.ssl.SSLSession;
import org.cacert.gigi.api.GigiAPI;
+import org.cacert.gigi.email.EmailProvider;
import org.cacert.gigi.natives.SetUID;
import org.cacert.gigi.util.CipherInfo;
import org.cacert.gigi.util.ServerConstants;
public class Launcher {
public static void main(String[] args) throws Exception {
+ TimeZone.setDefault(TimeZone.getTimeZone("UTC"));
GigiConfig conf = GigiConfig.parse(System.in);
ServerConstants.init(conf.getMainProps());
+ initEmails(conf);
Server s = new Server();
// === SSL HTTP Configuration ===
ServerConnector connector = new ServerConnector(s, createConnectionFactory(conf), new HttpConnectionFactory(https_config));
connector.setHost(conf.getMainProps().getProperty("host"));
connector.setPort(Integer.parseInt(conf.getMainProps().getProperty("port")));
+ connector.setAcceptQueueSize(100);
s.setConnectors(new Connector[] {
connector
});
}
}
+ private static void initEmails(GigiConfig conf) throws GeneralSecurityException, IOException, KeyStoreException, NoSuchAlgorithmException, UnrecoverableKeyException {
+ KeyStore privateStore = conf.getPrivateStore();
+ Certificate mail = privateStore.getCertificate("mail");
+ Key k = privateStore.getKey("mail", conf.getPrivateStorePw().toCharArray());
+ EmailProvider.initSystem(conf.getMainProps(), mail, k);
+ }
+
private static SslConnectionFactory createConnectionFactory(GigiConfig conf) throws GeneralSecurityException, IOException {
final SslContextFactory sslContextFactory = generateSSLContextFactory(conf, "www");
final SslContextFactory secureContextFactory = generateSSLContextFactory(conf, "secure");