2 // Open Service Platform
3 // Copyright (c) 2013 Samsung Electronics Co., Ltd.
5 // Licensed under the Apache License, Version 2.0 (the License);
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
9 // http://www.apache.org/licenses/LICENSE-2.0
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an "AS IS" BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
19 * @file FSecPkcsPkcs08AttributeValue.h
20 * @brief This is the header file for the %Pkcs08AttributeValue class.
22 * This header file contains the declarations of the %Pkcs08AttributeValue class.
25 #ifndef _FSEC_PKCS_PKCS_08_ATTRIBUTE_VALUE_H_
26 #define _FSEC_PKCS_PKCS_08_ATTRIBUTE_VALUE_H_
28 #include <FBaseByteBuffer.h>
29 #include <FBaseResult.h>
30 #include <FSecPkcsTypes.h>
32 namespace Tizen { namespace Security { namespace Pkcs
36 * @class Pkcs08AttributeValue
37 * @brief This class implements the functionalities specified by the %Pkcs08AttributeValue class.
41 * The %Pkcs08AttributeValue class implements the functionalities specified by the %Pkcs08AttributeValue class.
42 * The %Pkcs08AttributeValue object consists of an attribute value and a tag value.
45 class _OSP_EXPORT_ Pkcs08AttributeValue
46 : public Tizen::Base::Object
50 * The object is not fully constructed after this constructor is called. @n
51 * For full construction, the Construct() method must be called right after calling this constructor.
55 Pkcs08AttributeValue(void);
58 * This destructor overrides Tizen::Base::Object::~Object().
62 virtual ~Pkcs08AttributeValue(void);
65 * Intializes this instance of %Pkcs08AttributeValue with the Tizen::Base::Bytebuffer that contains the AttributeValue @n
66 * (contain tag, that is, Ans1_Type and the value).
70 * @return An error code
71 * @param[in] encodedData The DER encoded Tizen::Base::Bytebuffer of AttributeValue
72 * @exception E_SUCCESS The method is successful.
73 * @exception E_INVALID_ARG The specified input parameter is invalid.
75 result Construct(const Tizen::Base::ByteBuffer& encodedData);
78 * Intializes this instance of %Pkcs08AttributeValue with the specified parameters. @n
79 * The %Construct() method initializes the attribute value instance based on the byte buffer passed.
83 * @return An error code
84 * @param[in] value An instance of Tizen::Base::ByteBuffer holding raw value
85 * @param[in] tag A tag holding the tag type @n This tag number is assigned by ASN1 standards for @n
87 * @exception E_SUCCESS The method is successful.
88 * @exception E_INVALID_ARG A specified input parameter is invalid.
90 result Construct(const Tizen::Base::ByteBuffer& value, const Pkcs08TagValue tag);
93 * Gets a reference to Tizen::Base::ByteBuffer that contains the attribute value.
97 * @return A reference to Tizen::Base::ByteBuffer containing raw value
98 * @remarks The specific error code can be accessed using the GetLastResult() method.
100 const Tizen::Base::ByteBuffer& GetValue(void) const;
103 * Gets the tag value of an attribute. @n
104 * This tag number is assigned by ASN1 standards for basic data types.
108 * @return The tag value that is assigned by ASN1 standards for basic data types
110 Pkcs08TagValue GetTag(void) const;
113 * Gets a pointer to Tizen::Base::ByteBuffer that contains the attribute value in encoded format. @n
114 * It is assumed that each Pkcs08Attribute will have only a single form of encoding, for example, ASN.1 DER.
118 * @return A pointer to the Tizen::Base::ByteBuffer class that contains the output, @n
119 * else @c null if an error occurs
120 * @exception E_SUCCESS The method is successful.
121 * @exception E_SYSTEM The method cannot proceed due to a severe system error.
122 * @remarks The specific error code can be accessed using the GetLastResult() method.
124 Tizen::Base::ByteBuffer* GetEncodedDataN(void) const;
127 // This copy constructor is intentionally declared as private to prohibit @n
128 // copying of objects by users.
131 Pkcs08AttributeValue(const Pkcs08AttributeValue& rhs);
133 // The implementation of this copy assignment operator is intentionally blank and @n
134 // declared as private to prohibit copying of objects.
137 Pkcs08AttributeValue& operator =(const Pkcs08AttributeValue& rhs);
140 class _Pkcs08AttributeValueImpl* __pPkcs08AttributeValueImpl;
141 friend class _Pkcs08AttributeValueImpl;
143 }; //Pkcs08AttributeValue
145 }}} //Tizen::Security::Pkcs
147 #endif // _FSEC_PKCS_PKCS_08_ATTRIBUTE_VALUE_H_