Skip to content

Commit 5630731

Browse files
committed
adapted 3.2 to newest modifiable variable version
1 parent a7bd3fe commit 5630731

21 files changed

+124
-513
lines changed

TLS-Core/src/main/java/de/rub/nds/tlsattacker/core/certificate/CertificateKeyPair.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
*/
99
package de.rub.nds.tlsattacker.core.certificate;
1010

11-
import de.rub.nds.modifiablevariable.util.ByteArrayAdapter;
11+
import de.rub.nds.modifiablevariable.util.UnformattedByteArrayAdapter;
1212
import de.rub.nds.tlsattacker.core.config.Config;
1313
import de.rub.nds.tlsattacker.core.constants.CertificateKeyType;
1414
import de.rub.nds.tlsattacker.core.constants.GOSTCurve;
@@ -66,7 +66,7 @@ public class CertificateKeyPair implements Serializable {
6666

6767
private final GOSTCurve gostCurve;
6868

69-
@XmlJavaTypeAdapter(ByteArrayAdapter.class)
69+
@XmlJavaTypeAdapter(UnformattedByteArrayAdapter.class)
7070
private final byte[] certificateBytes;
7171

7272
@XmlElements(value = { @XmlElement(type = CustomDhPublicKey.class, name = "DhPublicKey"),

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

Lines changed: 46 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
package de.rub.nds.tlsattacker.core.config;
1010

1111
import de.rub.nds.modifiablevariable.util.ArrayConverter;
12-
import de.rub.nds.modifiablevariable.util.ByteArrayAdapter;
12+
import de.rub.nds.modifiablevariable.util.UnformattedByteArrayAdapter;
1313
import de.rub.nds.tlsattacker.core.certificate.CertificateKeyPair;
1414
import de.rub.nds.tlsattacker.core.connection.InboundConnection;
1515
import de.rub.nds.tlsattacker.core.connection.OutboundConnection;
@@ -134,7 +134,7 @@ public static Config createEmptyConfig() {
134134
return c;
135135
}
136136

137-
@XmlJavaTypeAdapter(ByteArrayAdapter.class)
137+
@XmlJavaTypeAdapter(UnformattedByteArrayAdapter.class)
138138
private byte[] defaultHandshakeSecret = new byte[32];
139139

140140
private CertificateKeyType preferedCertificateSignatureType = CertificateKeyType.RSA;
@@ -255,28 +255,28 @@ public static Config createEmptyConfig() {
255255
* SessionTLSTicket for the SessionTLSTicketExtension. It's an empty session
256256
* ticket since we initiate a new connection.
257257
*/
258-
@XmlJavaTypeAdapter(ByteArrayAdapter.class)
258+
@XmlJavaTypeAdapter(UnformattedByteArrayAdapter.class)
259259
private byte[] tlsSessionTicket = new byte[0];
260260

261261
/**
262262
* Renegotiation info for the RenegotiationInfo extension for the Client.
263263
* It's an empty info since we initiate a new connection.
264264
*/
265-
@XmlJavaTypeAdapter(ByteArrayAdapter.class)
265+
@XmlJavaTypeAdapter(UnformattedByteArrayAdapter.class)
266266
private byte[] defaultClientRenegotiationInfo = new byte[0];
267267

268268
/**
269269
* Renegotiation info for the RenegotiationInfo extension for the Client.
270270
* It's an empty info since we initiate a new connection.
271271
*/
272-
@XmlJavaTypeAdapter(ByteArrayAdapter.class)
272+
@XmlJavaTypeAdapter(UnformattedByteArrayAdapter.class)
273273
private byte[] defaultServerRenegotiationInfo = new byte[0];
274274

275275
/**
276276
* SignedCertificateTimestamp for the SignedCertificateTimestampExtension.
277277
* It's an emty timestamp, since the server sends it.
278278
*/
279-
@XmlJavaTypeAdapter(ByteArrayAdapter.class)
279+
@XmlJavaTypeAdapter(UnformattedByteArrayAdapter.class)
280280
private byte[] defaultSignedCertificateTimestamp = new byte[0];
281281

282282
/**
@@ -297,13 +297,13 @@ public static Config createEmptyConfig() {
297297
/**
298298
* This is the responder ID list of the CertificateStatusRequest extension
299299
*/
300-
@XmlJavaTypeAdapter(ByteArrayAdapter.class)
300+
@XmlJavaTypeAdapter(UnformattedByteArrayAdapter.class)
301301
private byte[] certificateStatusRequestExtensionResponderIDList = new byte[0];
302302

303303
/**
304304
* This is the request extension of the CertificateStatusRequest extension
305305
*/
306-
@XmlJavaTypeAdapter(ByteArrayAdapter.class)
306+
@XmlJavaTypeAdapter(UnformattedByteArrayAdapter.class)
307307
private byte[] certificateStatusRequestExtensionRequestExtension = new byte[0];
308308

309309
/**
@@ -314,7 +314,7 @@ public static Config createEmptyConfig() {
314314
/**
315315
* Default SRP Identifier
316316
*/
317-
@XmlJavaTypeAdapter(ByteArrayAdapter.class)
317+
@XmlJavaTypeAdapter(UnformattedByteArrayAdapter.class)
318318
private byte[] secureRemotePasswordExtensionIdentifier = "UserName".getBytes(Charset.forName("UTF-8"));
319319

320320
/**
@@ -326,7 +326,7 @@ public static Config createEmptyConfig() {
326326
/**
327327
* Default SRTP extension master key identifier
328328
*/
329-
@XmlJavaTypeAdapter(ByteArrayAdapter.class)
329+
@XmlJavaTypeAdapter(UnformattedByteArrayAdapter.class)
330330
private byte[] secureRealTimeTransportProtocolMasterKeyIdentifier = new byte[0];
331331

332332
/**
@@ -618,19 +618,19 @@ public static Config createEmptyConfig() {
618618
/**
619619
* The PSK to use.
620620
*/
621-
@XmlJavaTypeAdapter(ByteArrayAdapter.class)
621+
@XmlJavaTypeAdapter(UnformattedByteArrayAdapter.class)
622622
private byte[] psk = new byte[0];
623623

624624
/**
625625
* The client's early traffic secret.
626626
*/
627-
@XmlJavaTypeAdapter(ByteArrayAdapter.class)
627+
@XmlJavaTypeAdapter(UnformattedByteArrayAdapter.class)
628628
private byte[] clientEarlyTrafficSecret = new byte[128];
629629

630630
/**
631631
* The early secret of the session.
632632
*/
633-
@XmlJavaTypeAdapter(ByteArrayAdapter.class)
633+
@XmlJavaTypeAdapter(UnformattedByteArrayAdapter.class)
634634
private byte[] earlySecret = new byte[256];
635635

636636
/**
@@ -641,7 +641,7 @@ public static Config createEmptyConfig() {
641641
/**
642642
* The psk used for early data (!= earlySecret or earlyTrafficSecret).
643643
*/
644-
@XmlJavaTypeAdapter(ByteArrayAdapter.class)
644+
@XmlJavaTypeAdapter(UnformattedByteArrayAdapter.class)
645645
private byte[] earlyDataPsk = new byte[256];
646646

647647
/**
@@ -657,10 +657,10 @@ public static Config createEmptyConfig() {
657657
/**
658658
* Early data to be sent.
659659
*/
660-
@XmlJavaTypeAdapter(ByteArrayAdapter.class)
660+
@XmlJavaTypeAdapter(UnformattedByteArrayAdapter.class)
661661
private byte[] earlyData = ArrayConverter.hexStringToByteArray("544c532d41747461636b65720a");
662662

663-
@XmlJavaTypeAdapter(ByteArrayAdapter.class)
663+
@XmlJavaTypeAdapter(UnformattedByteArrayAdapter.class)
664664
private byte[] distinguishedNames = new byte[0];
665665

666666
private Boolean enforceSettings = false;
@@ -757,7 +757,7 @@ public static Config createEmptyConfig() {
757757
/**
758758
* How much padding bytes should be send by default
759759
*/
760-
@XmlJavaTypeAdapter(ByteArrayAdapter.class)
760+
@XmlJavaTypeAdapter(UnformattedByteArrayAdapter.class)
761761
private byte[] defaultPaddingExtensionBytes = new byte[] { 0, 0, 0, 0, 0, 0 };
762762

763763
/**
@@ -870,32 +870,32 @@ public static Config createEmptyConfig() {
870870

871871
private List<CompressionMethod> defaultServerSupportedCompressionMethods;
872872

873-
@XmlJavaTypeAdapter(ByteArrayAdapter.class)
873+
@XmlJavaTypeAdapter(UnformattedByteArrayAdapter.class)
874874
private byte[] defaultMasterSecret = new byte[0];
875875

876-
@XmlJavaTypeAdapter(ByteArrayAdapter.class)
876+
@XmlJavaTypeAdapter(UnformattedByteArrayAdapter.class)
877877
private byte[] defaultPreMasterSecret = new byte[0];
878878

879-
@XmlJavaTypeAdapter(ByteArrayAdapter.class)
879+
@XmlJavaTypeAdapter(UnformattedByteArrayAdapter.class)
880880
private byte[] defaultClientRandom = ArrayConverter
881881
.hexStringToByteArray("00112233445566778899AABBCCDDEEFFFFEEDDCCBBAA99887766554433221100");
882882

883-
@XmlJavaTypeAdapter(ByteArrayAdapter.class)
883+
@XmlJavaTypeAdapter(UnformattedByteArrayAdapter.class)
884884
private byte[] defaultServerRandom = ArrayConverter
885885
.hexStringToByteArray("00112233445566778899AABBCCDDEEFFFFEEDDCCBBAA99887766554433221100");
886886

887-
@XmlJavaTypeAdapter(ByteArrayAdapter.class)
887+
@XmlJavaTypeAdapter(UnformattedByteArrayAdapter.class)
888888
private byte[] defaultClientSessionId = new byte[0];
889889

890-
@XmlJavaTypeAdapter(ByteArrayAdapter.class)
890+
@XmlJavaTypeAdapter(UnformattedByteArrayAdapter.class)
891891
private byte[] defaultServerSessionId = new byte[0];
892892

893893
private CompressionMethod defaultSelectedCompressionMethod = CompressionMethod.NULL;
894894

895-
@XmlJavaTypeAdapter(ByteArrayAdapter.class)
895+
@XmlJavaTypeAdapter(UnformattedByteArrayAdapter.class)
896896
private byte[] dtlsDefaultCookie = new byte[0];
897897

898-
@XmlJavaTypeAdapter(ByteArrayAdapter.class)
898+
@XmlJavaTypeAdapter(UnformattedByteArrayAdapter.class)
899899
private byte[] defaultCertificateRequestContext = new byte[0];
900900

901901
private PRFAlgorithm defaultPRFAlgorithm = PRFAlgorithm.TLS_PRF_LEGACY;
@@ -940,13 +940,13 @@ public static Config createEmptyConfig() {
940940
ArrayConverter
941941
.hexStringToByteArray("7dc0cb485a3edb56811aeab12cdcda8e48b023298dd453a37b4d75d9e0bbba27c98f0e4852c16fd52341ffb673f64b580b7111abf14bf323e53a2dfa92727364ddb34f541f74a478a077f15277c013606aea839307e6f5fec23fdd72506feea7cbe362697949b145fe8945823a39a898ac6583fc5fbaefa1e77cbc95b3b475e66106e92b906bdbb214b87bcc94020f317fc1c056c834e9cee0ad21951fbdca088274c4ef9d8c2004c6294f49b370fb249c1e2431fb80ce5d3dc9e342914501ef4c162e54e1ee4fed9369b82afc00821a29f4979a647e60935420d44184d98f9cb75122fb604642c6d1ff2b3a51dc32eefdc57d9a9407ad6a06d10e83e2965481"));// TODO
942942

943-
@XmlJavaTypeAdapter(ByteArrayAdapter.class)
943+
@XmlJavaTypeAdapter(UnformattedByteArrayAdapter.class)
944944
private byte[] defaultPSKKey = ArrayConverter.hexStringToByteArray("1a2b3c4d");
945945

946-
@XmlJavaTypeAdapter(ByteArrayAdapter.class)
946+
@XmlJavaTypeAdapter(UnformattedByteArrayAdapter.class)
947947
private byte[] defaultPSKIdentity = "Client_Identity".getBytes(Charset.forName("UTF-8"));
948948

949-
@XmlJavaTypeAdapter(ByteArrayAdapter.class)
949+
@XmlJavaTypeAdapter(UnformattedByteArrayAdapter.class)
950950
private byte[] defaultPSKIdentityHint = new byte[0];
951951

952952
private BigInteger defaultSRPModulus = new BigInteger(
@@ -982,25 +982,25 @@ public static Config createEmptyConfig() {
982982

983983
private BigInteger defaultSRPClientPublicKey = new BigInteger(1, ArrayConverter.hexStringToByteArray("25C843"));
984984

985-
@XmlJavaTypeAdapter(ByteArrayAdapter.class)
985+
@XmlJavaTypeAdapter(UnformattedByteArrayAdapter.class)
986986
private byte[] defaultSRPServerSalt = ArrayConverter.hexStringToByteArray("AABBCCDD");
987987

988-
@XmlJavaTypeAdapter(ByteArrayAdapter.class)
988+
@XmlJavaTypeAdapter(UnformattedByteArrayAdapter.class)
989989
private byte[] defaultSRPIdentity = "UserName".getBytes(Charset.forName("UTF-8"));
990990

991-
@XmlJavaTypeAdapter(ByteArrayAdapter.class)
991+
@XmlJavaTypeAdapter(UnformattedByteArrayAdapter.class)
992992
private byte[] defaultSRPPassword = "Password".getBytes(Charset.forName("UTF-8"));
993993

994-
@XmlJavaTypeAdapter(ByteArrayAdapter.class)
994+
@XmlJavaTypeAdapter(UnformattedByteArrayAdapter.class)
995995
private byte[] defaultClientHandshakeTrafficSecret = new byte[32];
996996

997-
@XmlJavaTypeAdapter(ByteArrayAdapter.class)
997+
@XmlJavaTypeAdapter(UnformattedByteArrayAdapter.class)
998998
private byte[] defaultServerHandshakeTrafficSecret = new byte[32];
999999

1000-
@XmlJavaTypeAdapter(ByteArrayAdapter.class)
1000+
@XmlJavaTypeAdapter(UnformattedByteArrayAdapter.class)
10011001
private byte[] defaultClientApplicationTrafficSecret = new byte[32];
10021002

1003-
@XmlJavaTypeAdapter(ByteArrayAdapter.class)
1003+
@XmlJavaTypeAdapter(UnformattedByteArrayAdapter.class)
10041004
private byte[] defaultServerApplicationTrafficSecret = new byte[32];
10051005

10061006
private TokenBindingType defaultTokenBindingType = TokenBindingType.PROVIDED_TOKEN_BINDING;
@@ -1034,23 +1034,23 @@ public static Config createEmptyConfig() {
10341034
*/
10351035
private Long sessionTicketLifetimeHint = 0l;
10361036

1037-
@XmlJavaTypeAdapter(ByteArrayAdapter.class)
1037+
@XmlJavaTypeAdapter(UnformattedByteArrayAdapter.class)
10381038
private byte[] sessionTicketKeyAES = ArrayConverter.hexStringToByteArray("536563757265535469636b65744b6579"); // SecureSTicketKey
10391039

1040-
@XmlJavaTypeAdapter(ByteArrayAdapter.class)
1040+
@XmlJavaTypeAdapter(UnformattedByteArrayAdapter.class)
10411041
private byte[] sessionTicketKeyHMAC = ArrayConverter
10421042
.hexStringToByteArray("536563757265535469636b65744b6579536563757265535469636b65744b6579"); // SecureSTicketKeySecureSTicketKey
10431043

1044-
@XmlJavaTypeAdapter(ByteArrayAdapter.class)
1044+
@XmlJavaTypeAdapter(UnformattedByteArrayAdapter.class)
10451045
private byte[] sessionTicketKeyName = ArrayConverter.hexStringToByteArray("544c532d41747461636b6572204b6579"); // TLS-Attacker
10461046

1047-
@XmlJavaTypeAdapter(ByteArrayAdapter.class)
1047+
@XmlJavaTypeAdapter(UnformattedByteArrayAdapter.class)
10481048
private byte[] defaultSessionTicketAgeAdd = ArrayConverter.hexStringToByteArray("cb8dbe8e");
10491049

1050-
@XmlJavaTypeAdapter(ByteArrayAdapter.class)
1050+
@XmlJavaTypeAdapter(UnformattedByteArrayAdapter.class)
10511051
private byte[] defaultSessionTicketNonce = ArrayConverter.hexStringToByteArray("00");
10521052

1053-
@XmlJavaTypeAdapter(ByteArrayAdapter.class)
1053+
@XmlJavaTypeAdapter(UnformattedByteArrayAdapter.class)
10541054
private byte[] defaultSessionTicketIdentity = ArrayConverter
10551055
.hexStringToByteArray("5266d21abe0f5156106eb1f0ec54a48a90fbc136de990a8881192211cc83aa7992ceb67d7a40b3f304fdea87e4ca61042c19641fd7493975ec69a3ec3f5fb6404aa4ac5acd5efbea15d454d89888a46fc4e6c6b9a3e0ee08ea21538372ced8d0aca453ceae44ce372a5388ab4cef67c5eae8cc1c72735d2646c19b2c50a4ee9bc97e70c6b57cab276a11a59fc5cbe0f5d2519e164fbf9f07a9dd053bcfc08939b475c7a2e76f04ef2a06cc9672bd4034");
10561056

@@ -1090,26 +1090,26 @@ public static Config createEmptyConfig() {
10901090

10911091
private int defaultPWDIterations = 40;
10921092

1093-
@XmlJavaTypeAdapter(ByteArrayAdapter.class)
1093+
@XmlJavaTypeAdapter(UnformattedByteArrayAdapter.class)
10941094
private byte[] defaultServerPWDPrivate = ArrayConverter
10951095
.hexStringToByteArray("21d99d341c9797b3ae72dfd289971f1b74ce9de68ad4b9abf54888d8f6c5043c");
10961096

1097-
@XmlJavaTypeAdapter(ByteArrayAdapter.class)
1097+
@XmlJavaTypeAdapter(UnformattedByteArrayAdapter.class)
10981098
private byte[] defaultServerPWDMask = ArrayConverter
10991099
.hexStringToByteArray("0d96ab624d082c71255be3648dcd303f6ab0ca61a95034a553e3308d1d3744e5");
11001100

1101-
@XmlJavaTypeAdapter(ByteArrayAdapter.class)
1101+
@XmlJavaTypeAdapter(UnformattedByteArrayAdapter.class)
11021102
private byte[] defaultClientPWDPrivate = ArrayConverter
11031103
.hexStringToByteArray("171de8caa5352d36ee96a39979b5b72fa189ae7a6a09c77f7b438af16df4a88b");
11041104

1105-
@XmlJavaTypeAdapter(ByteArrayAdapter.class)
1105+
@XmlJavaTypeAdapter(UnformattedByteArrayAdapter.class)
11061106
private byte[] defaultClientPWDMask = ArrayConverter
11071107
.hexStringToByteArray("4f745bdfc295d3b38429f7eb3025a48883728b07d88605c0ee202316a072d1bd");
11081108

11091109
/**
11101110
* Use salt from the example of RFC8492, should be 32 octets
11111111
*/
1112-
@XmlJavaTypeAdapter(ByteArrayAdapter.class)
1112+
@XmlJavaTypeAdapter(UnformattedByteArrayAdapter.class)
11131113
private byte[] defaultServerPWDSalt = ArrayConverter
11141114
.hexStringToByteArray("963c77cdc13a2a8d75cdddd1e0449929843711c21d47ce6e6383cdda37e47da3");
11151115

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

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,9 @@
88
*/
99
package de.rub.nds.tlsattacker.core.config;
1010

11-
import de.rub.nds.modifiablevariable.util.XMLPrettyPrinter;
1211
import de.rub.nds.tlsattacker.core.config.filter.ConfigDisplayFilter;
1312
import java.io.*;
1413
import javax.xml.bind.JAXB;
15-
import javax.xml.parsers.ParserConfigurationException;
16-
import javax.xml.transform.TransformerException;
17-
import javax.xml.xpath.XPathExpressionException;
18-
import javax.xml.xpath.XPathFactoryConfigurationException;
19-
import org.xml.sax.SAXException;
2014

2115
public class ConfigIO {
2216

@@ -33,9 +27,8 @@ public static void write(Config config, OutputStream os) {
3327

3428
JAXB.marshal(config, tempStream);
3529
try {
36-
os.write(XMLPrettyPrinter.prettyPrintXML(new String(tempStream.toByteArray())).getBytes());
37-
} catch (IOException | TransformerException | XPathExpressionException | XPathFactoryConfigurationException
38-
| ParserConfigurationException | SAXException ex) {
30+
os.write(tempStream.toByteArray());
31+
} catch (IOException ex) {
3932
throw new RuntimeException("Could not format XML");
4033
}
4134
}

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
import de.rub.nds.modifiablevariable.ModifiableVariableProperty;
1212
import de.rub.nds.modifiablevariable.bytearray.ModifiableByteArray;
1313
import de.rub.nds.modifiablevariable.util.ArrayConverter;
14-
import de.rub.nds.modifiablevariable.util.ByteArrayAdapter;
14+
import de.rub.nds.modifiablevariable.util.UnformattedByteArrayAdapter;
1515
import de.rub.nds.tlsattacker.core.config.Config;
1616
import de.rub.nds.tlsattacker.core.constants.ProtocolMessageType;
1717
import de.rub.nds.tlsattacker.core.protocol.handler.ApplicationMessageHandler;
@@ -24,7 +24,7 @@
2424
@XmlRootElement
2525
public class ApplicationMessage extends ProtocolMessage {
2626

27-
@XmlJavaTypeAdapter(ByteArrayAdapter.class)
27+
@XmlJavaTypeAdapter(UnformattedByteArrayAdapter.class)
2828
private byte[] dataConfig = null;
2929

3030
@ModifiableVariableProperty

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
*/
99
package de.rub.nds.tlsattacker.core.protocol.message.cert;
1010

11-
import de.rub.nds.modifiablevariable.util.ByteArrayAdapter;
11+
import de.rub.nds.modifiablevariable.util.UnformattedByteArrayAdapter;
1212
import de.rub.nds.tlsattacker.core.protocol.message.extension.ExtensionMessage;
1313
import java.util.List;
1414
import javax.xml.bind.annotation.XmlAccessType;
@@ -18,7 +18,7 @@
1818
@XmlAccessorType(XmlAccessType.FIELD)
1919
public class CertificateEntry {
2020

21-
@XmlJavaTypeAdapter(ByteArrayAdapter.class)
21+
@XmlJavaTypeAdapter(UnformattedByteArrayAdapter.class)
2222
private byte[] certificate;
2323

2424
private List<ExtensionMessage> extensions;

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
import de.rub.nds.modifiablevariable.ModifiableVariableProperty;
1313
import de.rub.nds.modifiablevariable.bytearray.ModifiableByteArray;
1414
import de.rub.nds.modifiablevariable.integer.ModifiableInteger;
15-
import de.rub.nds.modifiablevariable.util.ByteArrayAdapter;
15+
import de.rub.nds.modifiablevariable.util.UnformattedByteArrayAdapter;
1616
import de.rub.nds.tlsattacker.core.protocol.ModifiableVariableHolder;
1717
import de.rub.nds.tlsattacker.core.protocol.message.extension.ExtensionMessage;
1818
import java.util.LinkedList;
@@ -24,7 +24,7 @@
2424
@XmlAccessorType(XmlAccessType.FIELD)
2525
public class CertificatePair extends ModifiableVariableHolder {
2626

27-
@XmlJavaTypeAdapter(ByteArrayAdapter.class)
27+
@XmlJavaTypeAdapter(UnformattedByteArrayAdapter.class)
2828
private byte[] certificateConfig;
2929

3030
private List<ExtensionMessage> extensionsConfig;

0 commit comments

Comments
 (0)