Imported Upstream version 1.2.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 }