00001 00010 #ifndef __VALIDATIONPOLICY_H__ 00011 #define __VALIDATIONPOLICY_H__ 00012 00013 #include "PKIFSCVPDLL.h" 00014 00015 // forward declarations 00016 struct CPKIFValidationPolicyImpl; 00017 00018 FD_SMART_PTR(CPKIFKeyUsage); 00019 FD_SMART_PTR(CPKIFPKCReference); 00020 FD_LIST_PTR(CPKIFPKCReference); 00021 FD_LIST_PTR(CPKIFKeyUsage); 00022 FD_LIST_PTR(CPKIFPolicyInformation); 00023 FD_LIST_PTR(CPKIFOID); 00024 00027 typedef CPKIFAlgorithmIdentifier CPKIFValidationPolRef; 00030 typedef CPKIFAlgorithmIdentifier CPKIFValidationAlg; 00031 00032 DECLARE_SMART_POINTERS(CPKIFValidationPolRef); 00033 DECLARE_SMART_POINTERS(CPKIFValidationAlg); 00034 00035 00057 class PKIFSCVP_API CPKIFValidationPolicy 00058 { 00059 public: 00060 CPKIFValidationPolicy(); 00061 CPKIFValidationPolicy(const CPKIFBufferPtr& valPol); 00062 virtual ~CPKIFValidationPolicy(void); 00063 00064 enum {EXPLICIT_POLICY, POLICY_MAPPING, ANY_POLICY}; 00065 00066 //req field 00067 void SetValidationPolRef(CPKIFValidationPolRefPtr& valPolRef); 00068 CPKIFValidationPolRefPtr GetValidationPolRef() const; 00069 00070 //optional field 00071 void SetInitialExplicitPolicyIndicator(); 00072 bool GetInitialExplicitPolicyIndicator(); 00073 00074 //optional field 00075 void SetInitialPolicyMappingInhibitIndicator(); 00076 bool GetInitialPolicyMappingInhibitIndicator(); 00077 00078 //optional field 00079 void SetInitialInhibitAnyPolicyIndicator(); 00080 bool GetInitialInhibitAnyPolicyIndicator(); 00081 00082 //optional field 00083 void SetInitialPolicySet(CPKIFPolicyInformationListPtr& initPolSet); 00084 void GetInitialPolicySet(CPKIFPolicyInformationListPtr& initPolSet) const; 00085 00086 //optional field 00087 void SetValidationAlg(CPKIFValidationAlgPtr& valAlg); 00088 CPKIFValidationAlgPtr GetValidationAlg() const; 00089 00090 //optional field 00091 void SetKeyUsages(CPKIFKeyUsageListPtr& keyUsages); 00092 void GetKeyUsages(CPKIFKeyUsageListPtr& keyUsages) const; 00093 00094 //optional field 00095 void SetEKUs(CPKIFOIDListPtr& ekus); 00096 void GetEKUs(CPKIFOIDListPtr& ekus) const; 00097 00098 void SetSKUs(CPKIFOIDListPtr& skus); 00099 void GetSKUs(CPKIFOIDListPtr& skus) const; 00100 00101 void SetTAs(CPKIFPKCReferenceListPtr& tas); 00102 void GetTAs(CPKIFPKCReferenceListPtr& tas) const; 00103 00104 private: 00106 CPKIFValidationPolicy(const CPKIFValidationPolicy& copy); 00108 CPKIFValidationPolicy& operator=(const CPKIFValidationPolicy& rhs); 00109 00110 struct CPKIFValidationPolicyImpl *m_impl; 00111 }; 00112 DECLARE_SMART_POINTERS(CPKIFValidationPolicy); 00113 00114 00115 00116 #endif //__VALIDATIONPOLICY_H__