< prev index next >

src/java.base/share/classes/sun/security/ssl/HelloExtensions.java

Print this page




  76             ExtensionType extType = ExtensionType.get(type);
  77             HelloExtension extension;
  78             if (extType == ExtensionType.EXT_SERVER_NAME) {
  79                 extension = new ServerNameExtension(s, extlen);
  80             } else if (extType == ExtensionType.EXT_SIGNATURE_ALGORITHMS) {
  81                 extension = new SignatureAlgorithmsExtension(s, extlen);
  82             } else if (extType == ExtensionType.EXT_SUPPORTED_GROUPS) {
  83                 extension = new SupportedGroupsExtension(s, extlen);
  84             } else if (extType == ExtensionType.EXT_EC_POINT_FORMATS) {
  85                 extension = new EllipticPointFormatsExtension(s, extlen);
  86             } else if (extType == ExtensionType.EXT_RENEGOTIATION_INFO) {
  87                 extension = new RenegotiationInfoExtension(s, extlen);
  88             } else if (extType == ExtensionType.EXT_ALPN) {
  89                 extension = new ALPNExtension(s, extlen);
  90             } else if (extType == ExtensionType.EXT_MAX_FRAGMENT_LENGTH) {
  91                 extension = new MaxFragmentLengthExtension(s, extlen);
  92             } else if (extType == ExtensionType.EXT_STATUS_REQUEST) {
  93                 extension = new CertStatusReqExtension(s, extlen);
  94             } else if (extType == ExtensionType.EXT_STATUS_REQUEST_V2) {
  95                 extension = new CertStatusReqListV2Extension(s, extlen);


  96             } else {
  97                 extension = new UnknownExtension(s, extlen, extType);
  98             }
  99             extensions.add(extension);
 100             len -= extlen + 4;
 101         }
 102         if (len != 0) {
 103             throw new SSLProtocolException(
 104                         "Error parsing extensions: extra data");
 105         }
 106     }
 107 
 108     // Return the List of extensions. Must not be modified by the caller.
 109     List<HelloExtension> list() {
 110         return extensions;
 111     }
 112 
 113     void add(HelloExtension ext) {
 114         if (extensions.isEmpty()) {
 115             extensions = new ArrayList<HelloExtension>();




  76             ExtensionType extType = ExtensionType.get(type);
  77             HelloExtension extension;
  78             if (extType == ExtensionType.EXT_SERVER_NAME) {
  79                 extension = new ServerNameExtension(s, extlen);
  80             } else if (extType == ExtensionType.EXT_SIGNATURE_ALGORITHMS) {
  81                 extension = new SignatureAlgorithmsExtension(s, extlen);
  82             } else if (extType == ExtensionType.EXT_SUPPORTED_GROUPS) {
  83                 extension = new SupportedGroupsExtension(s, extlen);
  84             } else if (extType == ExtensionType.EXT_EC_POINT_FORMATS) {
  85                 extension = new EllipticPointFormatsExtension(s, extlen);
  86             } else if (extType == ExtensionType.EXT_RENEGOTIATION_INFO) {
  87                 extension = new RenegotiationInfoExtension(s, extlen);
  88             } else if (extType == ExtensionType.EXT_ALPN) {
  89                 extension = new ALPNExtension(s, extlen);
  90             } else if (extType == ExtensionType.EXT_MAX_FRAGMENT_LENGTH) {
  91                 extension = new MaxFragmentLengthExtension(s, extlen);
  92             } else if (extType == ExtensionType.EXT_STATUS_REQUEST) {
  93                 extension = new CertStatusReqExtension(s, extlen);
  94             } else if (extType == ExtensionType.EXT_STATUS_REQUEST_V2) {
  95                 extension = new CertStatusReqListV2Extension(s, extlen);
  96             } else if (extType == ExtensionType.EXT_EXTENDED_MASTER_SECRET) {
  97                 extension = new ExtendedMasterSecretExtension(s, extlen);
  98             } else {
  99                 extension = new UnknownExtension(s, extlen, extType);
 100             }
 101             extensions.add(extension);
 102             len -= extlen + 4;
 103         }
 104         if (len != 0) {
 105             throw new SSLProtocolException(
 106                         "Error parsing extensions: extra data");
 107         }
 108     }
 109 
 110     // Return the List of extensions. Must not be modified by the caller.
 111     List<HelloExtension> list() {
 112         return extensions;
 113     }
 114 
 115     void add(HelloExtension ext) {
 116         if (extensions.isEmpty()) {
 117             extensions = new ArrayList<HelloExtension>();


< prev index next >