Release 4.0.0-preview1-00051
[platform/core/csapi/tizenfx.git] / src / Tizen.Security.SecureRepository / Tizen.Security.SecureRepository / Crypto / AesCtrCipherParameters.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 using System;
18
19 namespace Tizen.Security.SecureRepository.Crypto
20 {
21     /// <summary>
22     /// A class holding parameters for AES algorithm with counter mode.
23     /// </summary>
24     /// <since_tizen> 3 </since_tizen>
25     public class AesCtrCipherParameters : AesCipherParameters
26     {
27         /// <summary>
28         /// A default constructor
29         /// </summary>
30         /// <since_tizen> 3 </since_tizen>
31         /// <remarks>The CipherAlgorithmType in CipherParameters is set to CipherAlgorithmType.AesCtr.</remarks>
32         public AesCtrCipherParameters() : base(CipherAlgorithmType.AesCtr)
33         {
34         }
35
36         /// <summary>
37         /// Length of counter block in bits.
38         /// </summary>
39         /// <since_tizen> 3 </since_tizen>
40         /// <remarks>Optional, only 128b is supported at the moment.</remarks>
41         /// <exception cref="ArgumentOutOfRangeException">value should be positive.</exception>
42         public long CounterLength
43         {
44             get
45             {
46                 return GetInteger(CipherParameterName.CounterLength);
47             }
48             set
49             {
50                 if (value < 0)
51                     throw new ArgumentOutOfRangeException(
52                         string.Format("invalid value{0} on CounterLength", value));
53                 Add(CipherParameterName.CounterLength, value);
54             }
55         }
56     }
57 }