2 // Copyright (c) 2013 Samsung Electronics Co., Ltd.
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
8 // http://www.apache.org/licenses/LICENSE-2.0
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.
18 * @file FSecPkcsPkcs08AttributeValue.h
19 * @brief This is the header file for the %Pkcs08AttributeValue class.
21 * This header file contains the declarations of the %Pkcs08AttributeValue class.
24 #ifndef _FSEC_PKCS_PKCS_08_ATTRIBUTE_VALUE_H_
25 #define _FSEC_PKCS_PKCS_08_ATTRIBUTE_VALUE_H_
27 #include <FBaseByteBuffer.h>
28 #include <FBaseResult.h>
29 #include <FSecPkcsTypes.h>
31 namespace Tizen { namespace Security { namespace Pkcs
35 * @class Pkcs08AttributeValue
36 * @brief This class implements the functionalities specified by the %Pkcs08AttributeValue class.
40 * The %Pkcs08AttributeValue class implements the functionalities specified by the %Pkcs08AttributeValue class.
41 * The %Pkcs08AttributeValue object consists of an attribute value and a tag value.
44 class _OSP_EXPORT_ Pkcs08AttributeValue
45 : public Tizen::Base::Object
49 * The object is not fully constructed after this constructor is called. @n
50 * For full construction, the Construct() method must be called right after calling this constructor.
54 Pkcs08AttributeValue(void);
57 * This destructor overrides Tizen::Base::Object::~Object().
61 virtual ~Pkcs08AttributeValue(void);
64 * Initializes this instance of %Pkcs08AttributeValue with the Tizen::Base::ByteBuffer that contains the AttributeValue @n
65 * (contain tag, that is, Ans1_Type and the value).
69 * @return An error code
70 * @param[in] encodedData The DER encoded Tizen::Base::ByteBuffer of AttributeValue
71 * @exception E_SUCCESS The method is successful.
72 * @exception E_INVALID_ARG The specified input parameter is invalid.
74 result Construct(const Tizen::Base::ByteBuffer& encodedData);
77 * Initializes this instance of %Pkcs08AttributeValue with the specified parameters. @n
78 * The %Construct() method initializes the attribute value instance based on the byte buffer passed.
82 * @return An error code
83 * @param[in] value An instance of Tizen::Base::ByteBuffer holding raw value
84 * @param[in] tag A tag holding the tag type @n This tag number is assigned by ASN1 standards for @n
86 * @exception E_SUCCESS The method is successful.
87 * @exception E_INVALID_ARG A specified input parameter is invalid.
89 result Construct(const Tizen::Base::ByteBuffer& value, Pkcs08TagValue tag);
92 * Gets a reference to Tizen::Base::ByteBuffer that contains the attribute value.
96 * @return A reference to Tizen::Base::ByteBuffer containing raw value
97 * @remarks The specific error code can be accessed using the GetLastResult() method.
99 const Tizen::Base::ByteBuffer& GetValue(void) const;
102 * Gets the tag value of an attribute. @n
103 * This tag number is assigned by ASN1 standards for basic data types.
107 * @return The tag value that is assigned by ASN1 standards for basic data types
109 Pkcs08TagValue GetTag(void) const;
112 * Gets a pointer to Tizen::Base::ByteBuffer that contains the attribute value in encoded format. @n
113 * It is assumed that each Pkcs08Attribute will have only a single form of encoding, for example, ASN.1 DER.
117 * @return A pointer to the Tizen::Base::ByteBuffer class that contains the output, @n
118 * else @c null if an error occurs
119 * @exception E_SUCCESS The method is successful.
120 * @exception E_SYSTEM The method cannot proceed due to a severe system error.
121 * @remarks The specific error code can be accessed using the GetLastResult() method.
123 Tizen::Base::ByteBuffer* GetEncodedDataN(void) const;
126 // This copy constructor is intentionally declared as private to prohibit @n
127 // copying of objects by users.
130 Pkcs08AttributeValue(const Pkcs08AttributeValue& rhs);
132 // The implementation of this copy assignment operator is intentionally blank and @n
133 // declared as private to prohibit copying of objects.
136 Pkcs08AttributeValue& operator =(const Pkcs08AttributeValue& rhs);
139 class _Pkcs08AttributeValueImpl* __pPkcs08AttributeValueImpl;
140 friend class _Pkcs08AttributeValueImpl;
142 }; //Pkcs08AttributeValue
144 }}} //Tizen::Security::Pkcs
146 #endif // _FSEC_PKCS_PKCS_08_ATTRIBUTE_VALUE_H_