View Javadoc
1   /*
2    * Copyright 2021 The Netty Project
3    *
4    * The Netty Project licenses this file to you under the Apache License,
5    * version 2.0 (the "License"); you may not use this file except in compliance
6    * with the License. You may obtain a copy of the License at:
7    *
8    *   https://www.apache.org/licenses/LICENSE-2.0
9    *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
12   * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
13   * License for the specific language governing permissions and limitations
14   * under the License.
15   */
16  package io.netty.handler.ssl;
17  
18  /**
19   * Convert java naming to OpenSSL naming if possible and if not return the original name.
20   */
21  final class GroupsConverter {
22  
23      // See https://tools.ietf.org/search/rfc4492#appendix-A and https://www.java.com/en/configure_crypto.html
24      static String toOpenSsl(String key) {
25          switch (key) {
26              case "secp224r1":
27                  return "P-224";
28              case "prime256v1":
29              case "secp256r1":
30                  return "P-256";
31              case "secp384r1":
32                  return "P-384";
33              case "secp521r1":
34                  return "P-521";
35              case "x25519":
36                  return "X25519";
37              default:
38                  return key;
39          }
40      }
41  
42      private GroupsConverter() { }
43  }