HelloExtensions extensions = null;
ClientCertificateTypeExtension clientCertificateTypeExtension = clientHello.getClientCertificateTypeExtension();
if (clientCertificateTypeExtension != null) {
// choose certificate type from client's list
CertificateType certType = negotiateCertificateType(clientCertificateTypeExtension);
extensions = new HelloExtensions();
// the certificate type requested from the client
CertificateTypeExtension ext1 = new ClientCertificateTypeExtension(false);
ext1.addCertificateType(certType);
extensions.addExtension(ext1);
if (certType == CertificateType.RAW_PUBLIC_KEY) {
session.setReceiveRawPublicKey(true);
}
}
CertificateTypeExtension serverCertificateTypeExtension = clientHello.getServerCertificateTypeExtension();
if (serverCertificateTypeExtension != null) {
// choose certificate type from client's list
CertificateType certType = negotiateCertificateType(serverCertificateTypeExtension);
if (extensions == null) {
extensions = new HelloExtensions();
}
// the certificate type found in the attached certificate payload
CertificateTypeExtension ext2 = new ServerCertificateTypeExtension(false);