Release 4.0.0-preview1-00051
[platform/core/csapi/tizenfx.git] / src / Tizen.Security.SecureRepository / 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     /// <since_tizen> 3 </since_tizen>
23     public enum CipherAlgorithmType : int
24     {
25         /// <summary>
26         /// AES-CTR algorithm
27         /// Supported parameters:
28         /// - ParameterName.AlgorithmType = AesCtr(mandatory),
29         /// - ParameterName.IV = 16 - byte initialization vector(mandatory)
30         /// - ParameterName.CounterLength = length of counter block in bits
31         ///   (optional, only 128b is supported at the moment)
32         /// </summary>
33         AesCtr = 0x01,
34         /// <summary>
35         /// AES-CBC algorithm
36         /// Supported parameters:
37         /// - ParameterName.AlgorithmType = AesCbc(mandatory),
38         /// - ParameterName.IV = 16-byte initialization vector(mandatory)
39         /// </summary>
40         AesCbc,
41         /// <summary>
42         /// AES-GCM algorithm
43         /// Supported parameters:
44         /// - ParameterName.AlgorithmType = AesGcm(mandatory),
45         /// - ParameterName.IV = initialization vector(mandatory)
46         /// - ParameterName.TagLength = GCM tag length in bits. One of
47         ///   {32, 64, 96, 104, 112, 120, 128} (optional, if not present the length 128 is used)
48         /// - CKMC_PARAM_ED_AAD = additional authentication data(optional)
49         /// </summary>
50         AesGcm,
51         /// <summary>
52         /// AES-CFB algorithm
53         /// Supported parameters:
54         /// - ParameterName.AlgorithmType = AesCfb(mandatory),
55         /// - ParameterName.IV = 16-byte initialization vector(mandatory)
56         /// </summary>
57         AesCfb,
58         /// <summary>
59         /// RSA-OAEP algorithm
60         /// Supported parameters:
61         /// - ParameterName.AlgorithmType = RsaOaep(required),
62         /// - ParameterName.Label = label to be associated with the message
63         ///   (optional, not supported at the moment)
64         /// </summary>
65         RsaOaep
66     }
67 }