limal-ca-mgm
RequestGenerationData.hpp
Go to the documentation of this file.
00001 /*---------------------------------------------------------------------\
00002 |                                                                      |
00003 |                     _     _   _   _     __     _                     |
00004 |                    | |   | | | \_/ |   /  \   | |                    |
00005 |                    | |   | | | |_| |  / /\ \  | |                    |
00006 |                    | |__ | | | | | | / ____ \ | |__                  |
00007 |                    |____||_| |_| |_|/ /    \ \|____|                 |
00008 |                                                                      |
00009 |                             ca-mgm library                           |
00010 |                                                                      |
00011 |                                         (C) SUSE Linux Products GmbH |
00012 \----------------------------------------------------------------------/
00013 
00014   File:       RequestGenerationData.hpp
00015 
00016   Author:     <Michael Calmer>     <mc@suse.de>
00017   Maintainer: <Michael Calmer>     <mc@suse.de>
00018 
00019   Purpose:
00020 
00021 /-*/
00022 
00023 #ifndef    LIMAL_CA_MGM_REQUEST_GENERATION_DATA_HPP
00024 #define    LIMAL_CA_MGM_REQUEST_GENERATION_DATA_HPP
00025 
00026 #include  <limal/ca-mgm/config.h>
00027 #include  <limal/ca-mgm/CommonData.hpp>
00028 #include  <limal/ca-mgm/DNObject.hpp>
00029 #include  <limal/ca-mgm/X509v3RequestExtensions.hpp>
00030 #include  <blocxx/COWIntrusiveReference.hpp>
00031 
00032 namespace LIMAL_NAMESPACE
00033 {
00034 namespace CA_MGM_NAMESPACE
00035 {
00036 
00037         class CA;
00038         class CAConfig;
00039         class RequestGenerationDataImpl;
00040         
00046         class RequestGenerationData {
00047         public:
00048                 RequestGenerationData();
00049 
00053                 RequestGenerationData(CAConfig* caConfig, Type type);
00054                 RequestGenerationData(const RequestGenerationData& data);
00055                 virtual ~RequestGenerationData();
00056 
00057 #ifndef SWIG
00058 
00059                 RequestGenerationData&
00060                 operator=(const RequestGenerationData& data);
00061 
00062 #endif
00063                 
00064                 void
00065                 setSubjectDN(const DNObject dn);
00066         
00067                 DNObject
00068                 getSubjectDN() const;
00069 
00070                 DNObject&
00071                 subjectDN();
00072 
00073                 void
00074                 setKeysize(blocxx::UInt32 size);
00075         
00076                 blocxx::UInt32
00077                 getKeysize() const;
00078 
00079                 void
00080                 setMessageDigest(MD md);
00081         
00082                 MD
00083                 getMessageDigest() const;
00084                                
00085                 void
00086                 setChallengePassword(const String &passwd);
00087         
00088                 String
00089                 getChallengePassword() const;
00090 
00091                 void
00092                 setUnstructuredName(const String &name);
00093         
00094                 String
00095                 getUnstructuredName() const;
00096 
00097                 void
00098                 setExtensions(const X509v3RequestExts &ext);
00099                 
00100                 X509v3RequestExts
00101                 getExtensions() const;
00102 
00103                 X509v3RequestExts&
00104                 extensions();
00105 
00109                 void
00110                 commit2Config(CA& ca, Type type) const;
00111 
00112                 virtual bool
00113                 valid() const;
00114         
00115                 virtual blocxx::StringArray
00116                 verify() const;
00117 
00118                 virtual blocxx::StringArray
00119                 dump() const;
00120 
00121         private:
00122                 blocxx::COWIntrusiveReference<RequestGenerationDataImpl> m_impl;
00123         
00124         };
00125 
00126 }
00127 }
00128 #endif //LIMAL_CA_MGM_REQUEST_GENERATION_DATA_HPP