diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 00000000..70775b09 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,13 @@ +# Changelog + +## [3.2.0](https://github.com/aklivity/k3po/tree/3.2.0) (2024-06-10) + +[Full Changelog](https://github.com/aklivity/k3po/compare/284507aec12987508378f7fb470ccc88754e17f1...3.2.0) + +**Merged pull requests:** + +- Initial tidy [\#4](https://github.com/aklivity/k3po/pull/4) ([jfallows](https://github.com/jfallows)) + + + +\* *This Changelog was automatically generated by [github_changelog_generator](https://github.com/github-changelog-generator/github-changelog-generator)* diff --git a/pom.xml b/pom.xml index b1cfdd47..5a1c00d7 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ 4.0.0 io.aklivity.k3po k3po - 3.2.0 + 3.3.0 pom k3po https://github.com/aklivity/k3po @@ -115,12 +115,12 @@ com.fasterxml.jackson.core jackson-databind - 2.9.10.6 + 2.12.7.1 org.apache.maven maven-compat - 3.5.0 + 3.8.1 provided diff --git a/runtime/control-junit/pom.xml b/runtime/control-junit/pom.xml index e3ecccc3..28bc421e 100644 --- a/runtime/control-junit/pom.xml +++ b/runtime/control-junit/pom.xml @@ -7,7 +7,7 @@ io.aklivity.k3po runtime - 3.2.0 + 3.3.0 ../pom.xml diff --git a/runtime/control/pom.xml b/runtime/control/pom.xml index 8c7b841c..ebfa8236 100644 --- a/runtime/control/pom.xml +++ b/runtime/control/pom.xml @@ -7,7 +7,7 @@ io.aklivity.k3po runtime - 3.2.0 + 3.3.0 ../pom.xml diff --git a/runtime/driver/pom.xml b/runtime/driver/pom.xml index 3696e12c..67543abc 100644 --- a/runtime/driver/pom.xml +++ b/runtime/driver/pom.xml @@ -7,7 +7,7 @@ io.aklivity.k3po runtime - 3.2.0 + 3.3.0 ../pom.xml diff --git a/runtime/driver/src/main/java/io/aklivity/k3po/runtime/driver/internal/ext/tls/TlsTypeSystem.java b/runtime/driver/src/main/java/io/aklivity/k3po/runtime/driver/internal/ext/tls/TlsTypeSystem.java index 033bafbb..22b3ed4d 100644 --- a/runtime/driver/src/main/java/io/aklivity/k3po/runtime/driver/internal/ext/tls/TlsTypeSystem.java +++ b/runtime/driver/src/main/java/io/aklivity/k3po/runtime/driver/internal/ext/tls/TlsTypeSystem.java @@ -36,6 +36,7 @@ public final class TlsTypeSystem implements TypeSystemSpi public static final TypeInfo OPTION_APPLICATION_PROTOCOLS = new TypeInfo<>("applicationProtocols", String.class); public static final TypeInfo OPTION_NEED_CLIENT_AUTH = new TypeInfo<>("needClientAuth", Boolean.class); public static final TypeInfo OPTION_WANT_CLIENT_AUTH = new TypeInfo<>("wantClientAuth", Boolean.class); + public static final TypeInfo OPTION_CIPHER_SUITES = new TypeInfo<>("cipherSuites", String.class); private final Set> acceptOptions; private final Set> connectOptions; @@ -57,6 +58,7 @@ public TlsTypeSystem() acceptOptions.add(OPTION_APPLICATION_PROTOCOLS); acceptOptions.add(OPTION_NEED_CLIENT_AUTH); acceptOptions.add(OPTION_WANT_CLIENT_AUTH); + acceptOptions.add(OPTION_CIPHER_SUITES); this.acceptOptions = unmodifiableSet(acceptOptions); Set> connectOptions = new LinkedHashSet<>(); @@ -66,6 +68,7 @@ public TlsTypeSystem() connectOptions.add(OPTION_TRUST_STORE_FILE); connectOptions.add(OPTION_TRUST_STORE_PASSWORD); connectOptions.add(OPTION_APPLICATION_PROTOCOLS); + connectOptions.add(OPTION_CIPHER_SUITES); this.connectOptions = unmodifiableSet(connectOptions); this.readOptions = emptySet(); diff --git a/runtime/driver/src/main/java/io/aklivity/k3po/runtime/driver/internal/ext/tls/bootstrap/DefaultTlsChannelConfig.java b/runtime/driver/src/main/java/io/aklivity/k3po/runtime/driver/internal/ext/tls/bootstrap/DefaultTlsChannelConfig.java index 902a2952..a9f1ceb1 100644 --- a/runtime/driver/src/main/java/io/aklivity/k3po/runtime/driver/internal/ext/tls/bootstrap/DefaultTlsChannelConfig.java +++ b/runtime/driver/src/main/java/io/aklivity/k3po/runtime/driver/internal/ext/tls/bootstrap/DefaultTlsChannelConfig.java @@ -29,6 +29,7 @@ public class DefaultTlsChannelConfig extends DefaultChannelConfig implements Tls private File trustStoreFile; private char[] trustStorePassword; private String[] applicationProtocols; + private String[] cipherSuites; @Override public void setParameters(SSLParameters parameters) { @@ -105,6 +106,19 @@ public void setApplicationProtocols( this.applicationProtocols = applicationProtocol; } + @Override + public String[] getCipherSuites() + { + return cipherSuites; + } + + @Override + public void setCipherSuites( + String[] cipherSuites) + { + this.cipherSuites = cipherSuites; + } + @Override protected boolean setOption0( String key, @@ -130,6 +144,10 @@ else if ("applicationProtocols".equals(key)) { applicationProtocols = ((String) value).split(","); } + else if ("cipherSuites".equals(key)) + { + cipherSuites = ((String) value).split(","); + } else { return false; diff --git a/runtime/driver/src/main/java/io/aklivity/k3po/runtime/driver/internal/ext/tls/bootstrap/DefaultTlsServerChannelConfig.java b/runtime/driver/src/main/java/io/aklivity/k3po/runtime/driver/internal/ext/tls/bootstrap/DefaultTlsServerChannelConfig.java index eb6b9c34..686354bf 100644 --- a/runtime/driver/src/main/java/io/aklivity/k3po/runtime/driver/internal/ext/tls/bootstrap/DefaultTlsServerChannelConfig.java +++ b/runtime/driver/src/main/java/io/aklivity/k3po/runtime/driver/internal/ext/tls/bootstrap/DefaultTlsServerChannelConfig.java @@ -31,6 +31,7 @@ public class DefaultTlsServerChannelConfig extends DefaultServerChannelConfig im private String[] applicationProtocols; private boolean needClientAuth; private boolean wantClientAuth; + private String[] cipherSuites; @Override public void setParameters(SSLParameters parameters) { @@ -107,6 +108,19 @@ public void setApplicationProtocols( this.applicationProtocols = applicationProtocol; } + @Override + public String[] getCipherSuites() + { + return cipherSuites; + } + + @Override + public void setCipherSuites( + String[] cipherSuites) + { + this.cipherSuites = cipherSuites; + } + @Override protected boolean setOption0( String key, @@ -134,6 +148,9 @@ protected boolean setOption0( case "wantClientAuth": wantClientAuth = Boolean.valueOf((String) value); break; + case "cipherSuites": + cipherSuites = ((String) value).split(","); + break; default: return false; } diff --git a/runtime/driver/src/main/java/io/aklivity/k3po/runtime/driver/internal/ext/tls/bootstrap/TlsChannelConfig.java b/runtime/driver/src/main/java/io/aklivity/k3po/runtime/driver/internal/ext/tls/bootstrap/TlsChannelConfig.java index 28b64971..0c94c0eb 100644 --- a/runtime/driver/src/main/java/io/aklivity/k3po/runtime/driver/internal/ext/tls/bootstrap/TlsChannelConfig.java +++ b/runtime/driver/src/main/java/io/aklivity/k3po/runtime/driver/internal/ext/tls/bootstrap/TlsChannelConfig.java @@ -46,4 +46,8 @@ public interface TlsChannelConfig extends ChannelConfig { void setApplicationProtocols(String[] applicationProtocol); String[] getApplicationProtocols(); + + void setCipherSuites(String[] cipherSuites); + + String[] getCipherSuites(); } diff --git a/runtime/driver/src/main/java/io/aklivity/k3po/runtime/driver/internal/ext/tls/bootstrap/TlsClientChannelSink.java b/runtime/driver/src/main/java/io/aklivity/k3po/runtime/driver/internal/ext/tls/bootstrap/TlsClientChannelSink.java index 52e69bdb..274cc57a 100644 --- a/runtime/driver/src/main/java/io/aklivity/k3po/runtime/driver/internal/ext/tls/bootstrap/TlsClientChannelSink.java +++ b/runtime/driver/src/main/java/io/aklivity/k3po/runtime/driver/internal/ext/tls/bootstrap/TlsClientChannelSink.java @@ -132,6 +132,7 @@ protected void connectRequested(ChannelPipeline pipeline, ChannelStateEvent evt) char[] keyStorePassword = tlsConnectConfig.getKeyStorePassword(); char[] trustStorePassword = tlsConnectConfig.getTrustStorePassword(); String[] applicationProtocols = tlsConnectConfig.getApplicationProtocols(); + String[] cipherSuites = tlsConnectConfig.getCipherSuites(); ChannelPipelineFactory pipelineFactory = new ChannelPipelineFactory() { @Override @@ -174,6 +175,9 @@ public ChannelPipeline getPipeline() throws Exception { if (applicationProtocols != null && applicationProtocols.length > 0) { setApplicationProtocols(tlsParameters, applicationProtocols); } + if (cipherSuites != null && cipherSuites.length > 0) { + tlsParameters.setCipherSuites(cipherSuites); + } tlsEngine.setSSLParameters(tlsParameters); SslHandler sslHandler = new SslHandler(tlsEngine); diff --git a/runtime/driver/src/main/java/io/aklivity/k3po/runtime/driver/internal/ext/tls/bootstrap/TlsServerChannelSink.java b/runtime/driver/src/main/java/io/aklivity/k3po/runtime/driver/internal/ext/tls/bootstrap/TlsServerChannelSink.java index ceb972fe..9d04edeb 100644 --- a/runtime/driver/src/main/java/io/aklivity/k3po/runtime/driver/internal/ext/tls/bootstrap/TlsServerChannelSink.java +++ b/runtime/driver/src/main/java/io/aklivity/k3po/runtime/driver/internal/ext/tls/bootstrap/TlsServerChannelSink.java @@ -101,6 +101,7 @@ protected void bindRequested(ChannelPipeline pipeline, ChannelStateEvent evt) th String[] applicationProtocols = tlsConnectConfig.getApplicationProtocols(); boolean wantClientAuth = tlsConnectConfig.getWantClientAuth(); boolean needClientAuth = tlsConnectConfig.getNeedClientAuth(); + String[] cipherSuites = tlsConnectConfig.getCipherSuites(); ChannelPipelineFactory pipelineFactory = new ChannelPipelineFactory() { @Override @@ -148,6 +149,9 @@ public ChannelPipeline getPipeline() throws Exception { if (applicationProtocols != null && applicationProtocols.length > 0) { setApplicationProtocols(tlsParameters, applicationProtocols); } + if (cipherSuites != null && cipherSuites.length > 0) { + tlsParameters.setCipherSuites(cipherSuites); + } tlsEngine.setSSLParameters(tlsParameters); SslHandler sslHandler = new SslHandler(tlsEngine); diff --git a/runtime/k3po-maven-plugin/pom.xml b/runtime/k3po-maven-plugin/pom.xml index cc15bf2e..76e9cfbd 100644 --- a/runtime/k3po-maven-plugin/pom.xml +++ b/runtime/k3po-maven-plugin/pom.xml @@ -7,7 +7,7 @@ io.aklivity.k3po runtime - 3.2.0 + 3.3.0 ../pom.xml diff --git a/runtime/lang/pom.xml b/runtime/lang/pom.xml index ab23b42e..9d8034e4 100644 --- a/runtime/lang/pom.xml +++ b/runtime/lang/pom.xml @@ -7,7 +7,7 @@ io.aklivity.k3po runtime - 3.2.0 + 3.3.0 ../pom.xml diff --git a/runtime/pom.xml b/runtime/pom.xml index e898116e..06ede064 100644 --- a/runtime/pom.xml +++ b/runtime/pom.xml @@ -8,7 +8,7 @@ io.aklivity.k3po k3po - 3.2.0 + 3.3.0 ../pom.xml diff --git a/specs/control.spec/pom.xml b/specs/control.spec/pom.xml index 3aa97e57..2b3799cc 100644 --- a/specs/control.spec/pom.xml +++ b/specs/control.spec/pom.xml @@ -7,7 +7,7 @@ io.aklivity.k3po specs - 3.2.0 + 3.3.0 ../pom.xml diff --git a/specs/pom.xml b/specs/pom.xml index a556c934..1bf7f4ce 100644 --- a/specs/pom.xml +++ b/specs/pom.xml @@ -8,7 +8,7 @@ io.aklivity.k3po k3po - 3.2.0 + 3.3.0 ../pom.xml