Skip to content

Commit 59f6afd

Browse files
committed
First attempt in fixing client authentication
1 parent 40893b7 commit 59f6afd

23 files changed

+279
-120
lines changed

TLS-Core/src/main/java/de/rub/nds/tlsattacker/core/config/Config.java

Lines changed: 65 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -644,9 +644,14 @@ public static Config createConfig(InputStream stream) {
644644

645645
private Boolean doDTLSRetransmits = false;
646646

647-
private BigInteger defaultDhGenerator = new BigInteger("2");
647+
private BigInteger defaultServerDhGenerator = new BigInteger("2");
648648

649-
private BigInteger defaultDhModulus = new BigInteger(
649+
private BigInteger defaultServerDhModulus = new BigInteger(
650+
"15458150092069033378601573800816703249401189342134115050806105600042321586262936062413786779796157671421516779431947968642017250021834283152850968840396649272235097918348324");
651+
652+
private BigInteger defaultClientDhGenerator = new BigInteger("2");
653+
654+
private BigInteger defaultClientDhModulus = new BigInteger(
650655
"15458150092069033378601573800816703249401189342134115050806105600042321586262936062413786779796157671421516779431947968642017250021834283152850968840396649272235097918348324");
651656

652657
private BigInteger defaultServerDhPrivateKey = new BigInteger(
@@ -813,6 +818,8 @@ public static Config createConfig(InputStream stream) {
813818

814819
private NamedCurve defaultSelectedCurve = NamedCurve.SECP192R1;
815820

821+
private NamedCurve defaultEcCertificateCurve = NamedCurve.SECP192R1;
822+
816823
private CustomECPoint defaultClientEcPublicKey;
817824

818825
private CustomECPoint defaultServerEcPublicKey;
@@ -823,7 +830,12 @@ public static Config createConfig(InputStream stream) {
823830
private BigInteger defaultClientEcPrivateKey = new BigInteger(
824831
"191991257030464195512760799659436374116556484140110877679395918219072292938297573720808302564562486757422301181089761");
825832

826-
private BigInteger defaultRSAModulus = new BigInteger(
833+
private BigInteger defaultServerRSAModulus = new BigInteger(
834+
1,
835+
ArrayConverter
836+
.hexStringToByteArray("00c8820d6c3ce84c8430f6835abfc7d7a912e1664f44578751f376501a8c68476c3072d919c5d39bd0dbe080e71db83bd4ab2f2f9bde3dffb0080f510a5f6929c196551f2b3c369be051054c877573195558fd282035934dc86edab8d4b1b7f555e5b2fee7275384a756ef86cb86793b5d1333f0973203cb96966766e655cd2cccae1940e4494b8e9fb5279593b75afd0b378243e51a88f6eb88def522a8cd5c6c082286a04269a2879760fcba45005d7f2672dd228809d47274f0fe0ea5531c2bd95366c05bf69edc0f3c3189866edca0c57adcca93250ae78d9eaca0393a95ff9952fc47fb7679dd3803e6a7a6fa771861e3d99e4b551a4084668b111b7eef7d"));// TODO
837+
838+
private BigInteger defaultClientRSAModulus = new BigInteger(
827839
1,
828840
ArrayConverter
829841
.hexStringToByteArray("00c8820d6c3ce84c8430f6835abfc7d7a912e1664f44578751f376501a8c68476c3072d919c5d39bd0dbe080e71db83bd4ab2f2f9bde3dffb0080f510a5f6929c196551f2b3c369be051054c877573195558fd282035934dc86edab8d4b1b7f555e5b2fee7275384a756ef86cb86793b5d1333f0973203cb96966766e655cd2cccae1940e4494b8e9fb5279593b75afd0b378243e51a88f6eb88def522a8cd5c6c082286a04269a2879760fcba45005d7f2672dd228809d47274f0fe0ea5531c2bd95366c05bf69edc0f3c3189866edca0c57adcca93250ae78d9eaca0393a95ff9952fc47fb7679dd3803e6a7a6fa771861e3d99e4b551a4084668b111b7eef7d"));// TODO
@@ -1430,15 +1442,16 @@ public void setDefaultServerRSAPrivateKey(BigInteger defaultServerRSAPrivateKey)
14301442
this.defaultServerRSAPrivateKey = defaultServerRSAPrivateKey;
14311443
}
14321444

1433-
public BigInteger getDefaultRSAModulus() {
1434-
return defaultRSAModulus;
1445+
public BigInteger getDefaultServerRSAModulus() {
1446+
return defaultServerRSAModulus;
14351447
}
14361448

1437-
public void setDefaultRSAModulus(BigInteger defaultRSAModulus) {
1438-
if (defaultRSAModulus.signum() == 1) {
1439-
this.defaultRSAModulus = defaultRSAModulus;
1449+
public void setDefaultServerRSAModulus(BigInteger defaultServerRSAModulus) {
1450+
if (defaultServerRSAModulus.signum() == 1) {
1451+
this.defaultServerRSAModulus = defaultServerRSAModulus;
14401452
} else {
1441-
throw new IllegalArgumentException("Modulus cannot be negative or zero" + defaultRSAModulus.toString());
1453+
throw new IllegalArgumentException("Modulus cannot be negative or zero"
1454+
+ defaultServerRSAModulus.toString());
14421455
}
14431456
}
14441457

@@ -1947,23 +1960,24 @@ public void setEnforceSettings(Boolean enforceSettings) {
19471960
this.enforceSettings = enforceSettings;
19481961
}
19491962

1950-
public BigInteger getDefaultDhGenerator() {
1951-
return defaultDhGenerator;
1963+
public BigInteger getDefaultServerDhGenerator() {
1964+
return defaultServerDhGenerator;
19521965
}
19531966

1954-
public void setDefaultDhGenerator(BigInteger defaultDhGenerator) {
1955-
this.defaultDhGenerator = defaultDhGenerator;
1967+
public void setDefaultServerDhGenerator(BigInteger defaultServerDhGenerator) {
1968+
this.defaultServerDhGenerator = defaultServerDhGenerator;
19561969
}
19571970

1958-
public BigInteger getDefaultDhModulus() {
1959-
return defaultDhModulus;
1971+
public BigInteger getDefaultServerDhModulus() {
1972+
return defaultServerDhModulus;
19601973
}
19611974

1962-
public void setDefaultDhModulus(BigInteger defaultDhModulus) {
1963-
if (defaultDhModulus.signum() == 1) {
1964-
this.defaultDhModulus = defaultDhModulus;
1975+
public void setDefaultServerDhModulus(BigInteger defaultServerDhModulus) {
1976+
if (defaultServerDhModulus.signum() == 1) {
1977+
this.defaultServerDhModulus = defaultServerDhModulus;
19651978
} else {
1966-
throw new IllegalArgumentException("Modulus cannot be negative or zero:" + defaultDhModulus.toString());
1979+
throw new IllegalArgumentException("Modulus cannot be negative or zero:"
1980+
+ defaultServerDhModulus.toString());
19671981
}
19681982
}
19691983

@@ -2904,4 +2918,36 @@ public String[] getAlpnAnnouncedProtocols() {
29042918
public void setAlpnAnnouncedProtocols(String[] alpnAnnouncedProtocols) {
29052919
this.alpnAnnouncedProtocols = alpnAnnouncedProtocols;
29062920
}
2921+
2922+
public NamedCurve getDefaultEcCertificateCurve() {
2923+
return defaultEcCertificateCurve;
2924+
}
2925+
2926+
public void setDefaultEcCertificateCurve(NamedCurve defaultEcCertificateCurve) {
2927+
this.defaultEcCertificateCurve = defaultEcCertificateCurve;
2928+
}
2929+
2930+
public BigInteger getDefaultClientRSAModulus() {
2931+
return defaultClientRSAModulus;
2932+
}
2933+
2934+
public void setDefaultClientRSAModulus(BigInteger defaultClientRSAModulus) {
2935+
this.defaultClientRSAModulus = defaultClientRSAModulus;
2936+
}
2937+
2938+
public BigInteger getDefaultClientDhGenerator() {
2939+
return defaultClientDhGenerator;
2940+
}
2941+
2942+
public void setDefaultClientDhGenerator(BigInteger defaultClientDhGenerator) {
2943+
this.defaultClientDhGenerator = defaultClientDhGenerator;
2944+
}
2945+
2946+
public BigInteger getDefaultClientDhModulus() {
2947+
return defaultClientDhModulus;
2948+
}
2949+
2950+
public void setDefaultClientDhModulus(BigInteger defaultClientDhModulus) {
2951+
this.defaultClientDhModulus = defaultClientDhModulus;
2952+
}
29072953
}

TLS-Core/src/main/java/de/rub/nds/tlsattacker/core/config/delegate/CertificateDelegate.java

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737

3838
public class CertificateDelegate extends Delegate {
3939

40-
@Parameter(names = "-keystore", description = "Java Key Store (JKS) file to use as a certificate. In case TLS Client is used, the client sends ClientCertificate in the TLS handshake. Use keyword empty to enforce an empty ClientCertificate message.")
40+
@Parameter(names = "-keystore", description = "Java Key Store (JKS) file to use as a certificate")
4141
private String keystore = null;
4242

4343
@Parameter(names = "-password", description = "Java Key Store (JKS) file password")
@@ -127,15 +127,19 @@ public void applyDelegate(Config config) {
127127
}
128128

129129
private void applyDHParameters(Config config, DHPublicKeyParameters dhParameters) {
130-
config.setDefaultDhModulus(dhParameters.getParameters().getP());
131-
config.setDefaultDhGenerator(dhParameters.getParameters().getG());
130+
config.setDefaultServerDhModulus(dhParameters.getParameters().getP());
131+
config.setDefaultServerDhGenerator(dhParameters.getParameters().getG());
132+
config.setDefaultClientDhModulus(dhParameters.getParameters().getP());
133+
config.setDefaultClientDhGenerator(dhParameters.getParameters().getG());
132134
config.setDefaultClientDhPublicKey(dhParameters.getY());
133135
config.setDefaultServerDhPublicKey(dhParameters.getY());
134136
}
135137

136138
private void applyECParameters(Config config, ECPublicKeyParameters ecParameters, BigInteger privateKey) {
137139
config.setDefaultSelectedCurve(CurveNameRetriever.getNamedCuveFromECCurve(ecParameters.getParameters()
138140
.getCurve()));
141+
config.setDefaultEcCertificateCurve(CurveNameRetriever.getNamedCuveFromECCurve(ecParameters.getParameters()
142+
.getCurve()));
139143
CustomECPoint publicKey = new CustomECPoint(ecParameters.getQ().getRawXCoord().toBigInteger(), ecParameters
140144
.getQ().getRawYCoord().toBigInteger());
141145
config.setDefaultClientEcPublicKey(publicKey);
@@ -145,7 +149,8 @@ private void applyECParameters(Config config, ECPublicKeyParameters ecParameters
145149
}
146150

147151
private void applyRSAParameters(Config config, BigInteger modulus, BigInteger publicKey, BigInteger privateKey) {
148-
config.setDefaultRSAModulus(modulus);
152+
config.setDefaultServerRSAModulus(modulus);
153+
config.setDefaultClientRSAModulus(modulus);
149154
config.setDefaultClientRSAPublicKey(publicKey);
150155
config.setDefaultServerRSAPublicKey(publicKey);
151156
config.setDefaultClientRSAPrivateKey(privateKey);

TLS-Core/src/main/java/de/rub/nds/tlsattacker/core/config/delegate/ServerCertificateDelegate.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ public void applyDelegate(Config config) {
9999
config.setDefaultServerRSAPrivateKey(CertificateUtils.rsaPrivateKeyFromPrivateKey(key)
100100
.getPrivateExponent());
101101
config.setDefaultRsaCertificate(stream.toByteArray());
102-
LOGGER.debug("Loaded RSA certificate data:\nmodulus: " + config.getDefaultRSAModulus()
102+
LOGGER.debug("Loaded RSA certificate data:\nmodulus: " + config.getDefaultServerRSAModulus()
103103
+ "\npubkey: " + config.getDefaultServerRSAPublicKey() + "\nprivkey: "
104104
+ config.getDefaultServerRSAPrivateKey());
105105
} else {
@@ -124,7 +124,7 @@ private void applyECParameters(Config config, ECPublicKeyParameters ecParameters
124124
}
125125

126126
private void applyRSAParameters(Config config, BigInteger modulus, BigInteger publicKey) {
127-
config.setDefaultRSAModulus(modulus);
127+
config.setDefaultServerRSAModulus(modulus);
128128
config.setDefaultServerRSAPublicKey(publicKey);
129129
}
130130
}

TLS-Core/src/main/java/de/rub/nds/tlsattacker/core/crypto/KeyGenerator.java

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -23,17 +23,21 @@ public class KeyGenerator {
2323

2424
public static RSAPrivateKey getRSAPrivateKey(Chooser chooser) {
2525
if (chooser.getConnectionEndType() == ConnectionEndType.CLIENT) {
26-
return new CustomRSAPrivateKey(chooser.getRsaModulus(), chooser.getConfig().getDefaultClientRSAPrivateKey());
26+
return new CustomRSAPrivateKey(chooser.getClientRsaModulus(), chooser.getConfig()
27+
.getDefaultClientRSAPrivateKey());
2728
} else {
28-
return new CustomRSAPrivateKey(chooser.getRsaModulus(), chooser.getConfig().getDefaultServerRSAPrivateKey());
29+
return new CustomRSAPrivateKey(chooser.getServerRsaModulus(), chooser.getConfig()
30+
.getDefaultServerRSAPrivateKey());
2931
}
3032
}
3133

3234
public static ECPrivateKey getECPrivateKey(Chooser chooser) {
3335
if (chooser.getConnectionEndType() == ConnectionEndType.CLIENT) {
34-
return new CustomECPrivateKey(chooser.getClientEcPrivateKey(), chooser.getSelectedCurve());
36+
return new CustomECPrivateKey(chooser.getClientEcPrivateKey(), chooser.getConfig()
37+
.getDefaultEcCertificateCurve());
3538
} else {
36-
return new CustomECPrivateKey(chooser.getServerEcPrivateKey(), chooser.getSelectedCurve());
39+
return new CustomECPrivateKey(chooser.getServerEcPrivateKey(), chooser.getConfig()
40+
.getDefaultEcCertificateCurve());
3741
}
3842
}
3943

@@ -43,11 +47,11 @@ public static ECPrivateKey getTokenBindingECPrivateKey(Chooser chooser) {
4347

4448
public static DHPrivateKey getDHPrivateKey(Chooser chooser) {
4549
if (chooser.getConnectionEndType() == ConnectionEndType.CLIENT) {
46-
return new CustomDHPrivateKey(chooser.getDhClientPrivateKey(), chooser.getDhModulus(),
47-
chooser.getDhGenerator());
50+
return new CustomDHPrivateKey(chooser.getDhClientPrivateKey(), chooser.getClientDhModulus(),
51+
chooser.getClientDhGenerator());
4852
} else {
49-
return new CustomDHPrivateKey(chooser.getDhServerPrivateKey(), chooser.getDhModulus(),
50-
chooser.getDhGenerator());
53+
return new CustomDHPrivateKey(chooser.getDhServerPrivateKey(), chooser.getServerDhModulus(),
54+
chooser.getServerDhGenerator());
5155
}
5256
}
5357

TLS-Core/src/main/java/de/rub/nds/tlsattacker/core/protocol/handler/CertificateHandler.java

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import de.rub.nds.modifiablevariable.util.ArrayConverter;
1212
import de.rub.nds.tlsattacker.core.constants.HandshakeByteLength;
1313
import de.rub.nds.tlsattacker.core.constants.HandshakeMessageType;
14+
import de.rub.nds.tlsattacker.core.constants.NamedCurve;
1415
import de.rub.nds.tlsattacker.core.crypto.ec.CustomECPoint;
1516
import de.rub.nds.tlsattacker.core.exceptions.AdjustmentException;
1617
import de.rub.nds.tlsattacker.core.protocol.handler.extension.ExtensionHandler;
@@ -82,9 +83,9 @@ public void adjustTLSContext(CertificateMessage message) {
8283
} else {
8384
LOGGER.debug("Setting ServerCertificate in Context");
8485
tlsContext.setServerCertificate(cert);
85-
if (cert != null) {
86-
adjustPublicKeyParameters(cert);
87-
}
86+
}
87+
if (cert != null) {
88+
adjustPublicKeyParameters(cert);
8889
}
8990
if (tlsContext.getChooser().getSelectedProtocolVersion().isTLS13()) {
9091
adjustExtensions(message);
@@ -103,13 +104,14 @@ private void adjustPublicKeyParameters(Certificate cert) {
103104
adjustECParameters(ecParameters);
104105
} else if (CertificateUtils.hasRSAParameters(cert)) {
105106
LOGGER.debug("Adjusting RSA PublicKey");
106-
tlsContext.setRsaModulus(CertificateUtils.extractRSAModulus(cert));
107107
if (tlsContext.getTalkingConnectionEndType() == ConnectionEndType.CLIENT) {
108108
tlsContext.setClientRSAPublicKey(CertificateUtils.extractRSAPublicKey(cert));
109109
tlsContext.setClientRSAPrivateKey(tlsContext.getConfig().getDefaultClientRSAPrivateKey());
110+
tlsContext.setClientRsaModulus(CertificateUtils.extractRSAModulus(cert));
110111
} else {
111112
tlsContext.setServerRSAPublicKey(CertificateUtils.extractRSAPublicKey(cert));
112113
tlsContext.setServerRSAPrivateKey(tlsContext.getConfig().getDefaultServerRSAPrivateKey());
114+
tlsContext.setServerRsaModulus(CertificateUtils.extractRSAModulus(cert));
113115
}
114116
} else {
115117
LOGGER.warn("Could not adjust Certificate publicKey");
@@ -120,24 +122,28 @@ private void adjustPublicKeyParameters(Certificate cert) {
120122
}
121123

122124
private void adjustDHParameters(DHPublicKeyParameters dhPublicKeyParameters) {
123-
tlsContext.setDhGenerator(dhPublicKeyParameters.getParameters().getG());
124-
tlsContext.setDhModulus(dhPublicKeyParameters.getParameters().getP());
125125
if (tlsContext.getTalkingConnectionEndType() == ConnectionEndType.CLIENT) {
126+
tlsContext.setClientDhGenerator(dhPublicKeyParameters.getParameters().getG());
127+
tlsContext.setClientDhModulus(dhPublicKeyParameters.getParameters().getP());
126128
tlsContext.setClientDhPublicKey(dhPublicKeyParameters.getY());
127129
} else {
130+
tlsContext.setServerDhGenerator(dhPublicKeyParameters.getParameters().getG());
131+
tlsContext.setServerDhModulus(dhPublicKeyParameters.getParameters().getP());
128132
tlsContext.setServerDhPublicKey(dhPublicKeyParameters.getY());
129133
}
130134
}
131135

132136
private void adjustECParameters(ECPublicKeyParameters ecPublicKeyParameters) {
133-
tlsContext.setSelectedCurve(CurveNameRetriever.getNamedCuveFromECCurve(ecPublicKeyParameters.getParameters()
134-
.getCurve()));
135137
CustomECPoint publicKey = new CustomECPoint(ecPublicKeyParameters.getQ().getRawXCoord().toBigInteger(),
136138
ecPublicKeyParameters.getQ().getRawYCoord().toBigInteger());
137139
if (tlsContext.getTalkingConnectionEndType() == ConnectionEndType.CLIENT) {
138140
tlsContext.setClientEcPublicKey(publicKey);
141+
tlsContext.setEcCertificateCurve(CurveNameRetriever.getNamedCuveFromECCurve(ecPublicKeyParameters
142+
.getParameters().getCurve()));
139143
} else {
140144
tlsContext.setServerEcPublicKey(publicKey);
145+
tlsContext.setSelectedCurve(CurveNameRetriever.getNamedCuveFromECCurve(ecPublicKeyParameters
146+
.getParameters().getCurve()));
141147
}
142148
}
143149

TLS-Core/src/main/java/de/rub/nds/tlsattacker/core/protocol/handler/DHEServerKeyExchangeHandler.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -50,13 +50,13 @@ public void adjustTLSContext(DHEServerKeyExchangeMessage message) {
5050
* @param context
5151
*/
5252
private void adjustDhGenerator(DHEServerKeyExchangeMessage message) {
53-
tlsContext.setDhGenerator(new BigInteger(1, message.getGenerator().getValue()));
54-
LOGGER.debug("Dh Generator: " + tlsContext.getDhGenerator());
53+
tlsContext.setServerDhGenerator(new BigInteger(1, message.getGenerator().getValue()));
54+
LOGGER.debug("Dh Generator: " + tlsContext.getServerDhGenerator());
5555
}
5656

5757
private void adjustDhModulus(DHEServerKeyExchangeMessage message) {
58-
tlsContext.setDhModulus(new BigInteger(1, message.getModulus().getValue()));
59-
LOGGER.debug("Dh Modulus: " + tlsContext.getDhModulus());
58+
tlsContext.setServerDhModulus(new BigInteger(1, message.getModulus().getValue()));
59+
LOGGER.debug("Dh Modulus: " + tlsContext.getServerDhModulus());
6060
}
6161

6262
private void adjustServerPublicKey(DHEServerKeyExchangeMessage message) {

TLS-Core/src/main/java/de/rub/nds/tlsattacker/core/protocol/message/CertificateMessage.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ public CertificateMessage(Config tlsConfig) {
7474
certificatesList.add(pair);
7575
}
7676
} catch (IOException ex) {
77+
LOGGER.debug(ex);
7778
LOGGER.warn("Could not parse configured Certificate into a real Certificate. Just sending bytes as they are (with added Length field)");
7879
CertificatePair pair = new CertificatePair();
7980
pair.setCertificateConfig(CertificateByteChooser.chooseCertificateType(tlsConfig));

TLS-Core/src/main/java/de/rub/nds/tlsattacker/core/protocol/preparator/DHClientKeyExchangePreparator.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -70,12 +70,12 @@ protected byte[] calculatePremasterSecret(BigInteger modulus, BigInteger private
7070
}
7171

7272
protected void setComputationGenerator(T msg) {
73-
msg.getComputations().setGenerator(chooser.getDhGenerator());
73+
msg.getComputations().setGenerator(chooser.getServerDhGenerator());
7474
LOGGER.debug("Generator: " + msg.getComputations().getGenerator().getValue());
7575
}
7676

7777
protected void setComputationModulus(T msg) {
78-
msg.getComputations().setModulus(chooser.getDhModulus());
78+
msg.getComputations().setModulus(chooser.getServerDhModulus());
7979
LOGGER.debug("Modulus: " + msg.getComputations().getModulus().getValue());
8080
}
8181

@@ -109,7 +109,7 @@ public void prepareAfterParse() {
109109
BigInteger privateKey = chooser.getDhServerPrivateKey();
110110
BigInteger clientPublic = new BigInteger(1, msg.getPublicKey().getValue());
111111
msg.prepareComputations();
112-
premasterSecret = calculatePremasterSecret(chooser.getDhModulus(), privateKey, clientPublic);
112+
premasterSecret = calculatePremasterSecret(chooser.getServerDhModulus(), privateKey, clientPublic);
113113
preparePremasterSecret(msg);
114114
prepareClientRandom(msg);
115115
}

TLS-Core/src/main/java/de/rub/nds/tlsattacker/core/protocol/preparator/DHEServerKeyExchangePreparator.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -112,12 +112,12 @@ protected void setComputedPrivateKey(T msg) {
112112
}
113113

114114
protected void setComputedModulus(T msg) {
115-
msg.getComputations().setModulus(chooser.getDhModulus());
115+
msg.getComputations().setModulus(chooser.getServerDhModulus());
116116
LOGGER.debug("Modulus used for Computations: " + msg.getComputations().getModulus().getValue().toString(16));
117117
}
118118

119119
protected void setComputedGenerator(T msg) {
120-
msg.getComputations().setGenerator(chooser.getDhGenerator());
120+
msg.getComputations().setGenerator(chooser.getServerDhGenerator());
121121
LOGGER.debug("Generator used for Computations: " + msg.getComputations().getGenerator().getValue().toString(16));
122122
}
123123

0 commit comments

Comments
 (0)