• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright 2021, 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 android.security.metrics;
18 
19 /**
20  * Purpose enum as defined in Keystore2KeyOperationWithPurposeAndModesInfo of
21  * frameworks/proto_logging/stats/atoms.proto.
22  * @hide
23  */
24 @Backing(type="int")
25 enum Purpose {
26     /** Unspecified takes 0. Other values are incremented by 1 compared to keymint spec. */
27     KEY_PURPOSE_UNSPECIFIED = 0,
28 
29     /** Usable with RSA, 3DES and AES keys. */
30     ENCRYPT = 1,
31 
32     /** Usable with RSA, 3DES and AES keys. */
33     DECRYPT = 2,
34 
35     /** Usable with RSA, EC and HMAC keys. */
36     SIGN = 3,
37 
38     /** Usable with RSA, EC and HMAC keys. */
39     VERIFY = 4,
40 
41     /** 4 is reserved */
42 
43     /** Usable with RSA keys. */
44     WRAP_KEY = 6,
45 
46     /** Key Agreement, usable with EC keys. */
47     AGREE_KEY = 7,
48 
49     /**
50      * Usable as an attestation signing key.  Keys with this purpose must not have any other
51      * purpose.
52      */
53     ATTEST_KEY = 8,
54 }