• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2019 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://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,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package com.android.internal.net.ipsec.ike.crypto;
18 
19 /**
20  * IkeCrypto is an abstract class that represents common information for all negotiated
21  * cryptographic algorithms that are used to build IKE SA and protect IKE message.
22  */
23 abstract class IkeCrypto {
24     private final int mAlgorithmId;
25     private final int mKeyLength;
26     private final String mAlgorithmName;
27 
28     // IKE crypto algorithm that is not supported by Java Cryptography Extension(JCE)
29     protected static final String ALGO_NAME_JCE_UNSUPPORTED = "ALGO_NAME_JCE_UNSUPPORTED";
30 
IkeCrypto(int algorithmId, int keyLength, String algorithmName)31     protected IkeCrypto(int algorithmId, int keyLength, String algorithmName) {
32         mAlgorithmId = algorithmId;
33         mKeyLength = keyLength;
34         mAlgorithmName = algorithmName;
35     }
36 
getAlgorithmId()37     protected int getAlgorithmId() {
38         return mAlgorithmId;
39     }
40 
getAlgorithmName()41     protected String getAlgorithmName() {
42         return mAlgorithmName;
43     }
44 
45     /**
46      * Gets key length of this algorithm (in bytes).
47      *
48      * @return the key length (in bytes).
49      */
getKeyLength()50     public int getKeyLength() {
51         return mKeyLength;
52     }
53 
54     /**
55      * Returns algorithm type as a String.
56      *
57      * @return the algorithm type as a String.
58      */
getTypeString()59     public abstract String getTypeString();
60 }
61