Imported Upstream version 1.1.0
[platform/upstream/iotivity.git] / android / android_api / base / src / main / java / org / iotivity / base / CredType.java
1 /*
2  * //******************************************************************
3  * //
4  * // Copyright 2015  Samsung Electronics All Rights Reserved.
5  * //
6  * //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
7  * //
8  * // Licensed under the Apache License, Version 2.0 (the "License");
9  * // you may not use this file except in compliance with the License.
10  * // You may obtain a copy of the License at
11  * //
12  * //      http://www.apache.org/licenses/LICENSE-2.0
13  * //
14  * // Unless required by applicable law or agreed to in writing, software
15  * // distributed under the License is distributed on an "AS IS" BASIS,
16  * // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  * // See the License for the specific language governing permissions and
18  * // limitations under the License.
19  * //
20  * //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
21  */
22
23 package org.iotivity.base;
24
25 import java.security.InvalidParameterException;
26 import java.util.EnumSet;
27
28 public enum CredType {
29
30     NO_SECURITY_MODE                (0),
31
32     SYMMETRIC_PAIR_WISE_KEY         (1 << 0),
33
34     SYMMETRIC_GROUP_KEY             (1 << 1),
35
36     ASYMMETRIC_KEY                  (1 << 2),
37
38     SIGNED_ASYMMETRIC_KEY           (1 << 3),
39
40     PIN_PASSWORD                    (1 << 4),
41
42     ASYMMETRIC_ENCRYPTION_KEY       (1 << 5),
43
44     ;
45     private int value;
46
47     private CredType(int value) {
48         this.value = value;
49     }
50
51     public int getValue() {
52         return this.value;
53     }
54
55     public static EnumSet<CredType> convertToEnumSet(int value) {
56         EnumSet<CredType> typeSet = null;
57
58         for (CredType v : values()) {
59             if (0 != (value & v.getValue())) {
60                 if (null == typeSet) {
61                     typeSet = EnumSet.of(v);
62                 } else {
63                     typeSet.add(v);
64                 }
65             }
66         }
67
68         if (null == typeSet || typeSet.isEmpty()) {
69             throw new InvalidParameterException("Unexpected CredType value:" + value);
70         }
71
72         return typeSet;
73     }
74 }