mailiverse/java/core/src/mail/streamserver/SSLContextGenerator.java

42 lines
1.4 KiB
Java

/**
* Author: Timothy Prepscius
* License: GPLv3 Affero + keep my name in the code!
*/
package mail.streamserver;
import java.io.File;
import java.security.KeyStore;
import javax.net.ssl.SSLContext;
import org.apache.mina.filter.ssl.KeyStoreFactory;
import org.apache.mina.filter.ssl.SslContextFactory;
import core.util.Streams;
public class SSLContextGenerator
{
public SSLContext getSslContext() throws Exception
{
SSLContext sslContext = null;
final KeyStoreFactory keyStoreFactory = new KeyStoreFactory();
keyStoreFactory.setData(Streams.readFullyBytes(this.getClass().getResourceAsStream("keystore.jks")));
keyStoreFactory.setPassword("password");
final KeyStoreFactory trustStoreFactory = new KeyStoreFactory();
trustStoreFactory.setData(Streams.readFullyBytes(this.getClass().getResourceAsStream("truststore.jks")));
trustStoreFactory.setPassword("password");
final SslContextFactory sslContextFactory = new SslContextFactory();
final KeyStore keyStore = keyStoreFactory.newInstance();
sslContextFactory.setKeyManagerFactoryKeyStore(keyStore);
final KeyStore trustStore = trustStoreFactory.newInstance();
sslContextFactory.setTrustManagerFactoryKeyStore(trustStore);
sslContextFactory.setKeyManagerFactoryKeyStorePassword("password");
sslContext = sslContextFactory.newInstance();
System.out.println("SSL provider is: " + sslContext.getProvider());
return sslContext;
}
}