807b9500e673e619e03d1339fd72a99c30ffaae6
[platform/core/csapi/security.git] / Tizen.Security / Tizen.Security.SecureRepository / Crypto / CipherAlgorithmType.cs
1 /*
2  *  Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
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 namespace Tizen.Security.SecureRepository.Crypto
18 {
19     /// <summary>
20     /// Enumeration for crypto cipher algorithm types.
21     /// </summary>
22     public enum CipherAlgorithmType : int
23     {
24         /// <summary>
25         /// AES-CTR algorithm
26         /// Supported parameters:
27         /// - ParameterName.AlgorithmType = AesCtr(mandatory),
28         /// - ParameterName.IV = 16 - byte initialization vector(mandatory)
29         /// - ParameterName.CounterLength = length of counter block in bits
30         ///   (optional, only 128b is supported at the moment)
31         /// </summary>
32         AesCtr = 0x01,
33         /// <summary>
34         /// AES-CBC algorithm
35         /// Supported parameters:
36         /// - ParameterName.AlgorithmType = AesCbc(mandatory),
37         /// - ParameterName.IV = 16-byte initialization vector(mandatory)
38         /// </summary>
39         AesCbc,
40         /// <summary>
41         /// AES-GCM algorithm
42         /// Supported parameters:
43         /// - ParameterName.AlgorithmType = AesGcm(mandatory),
44         /// - ParameterName.IV = initialization vector(mandatory)
45         /// - ParameterName.TagLength = GCM tag length in bits. One of
46         ///   {32, 64, 96, 104, 112, 120, 128} (optional, if not present the length 128 is used)
47         /// - CKMC_PARAM_ED_AAD = additional authentication data(optional)
48         /// </summary>
49         AesGcm,
50         /// <summary>
51         /// AES-CFB algorithm
52         /// Supported parameters:
53         /// - ParameterName.AlgorithmType = AecCfb(mandatory),
54         /// - ParameterName.IV = 16-byte initialization vector(mandatory)
55         /// </summary>
56         AecCfb,
57         /// <summary>
58         /// RSA-OAEP algorithm
59         /// Supported parameters:
60         /// - ParameterName.AlgorithmType = RsaOaep(required),
61         /// - ParameterName.Label = label to be associated with the message
62         ///   (optional, not supported at the moment)
63         /// </summary>
64         RsaOaep
65     }
66 }