X-Git-Url: http://www.project-moonshot.org/gitweb/?a=blobdiff_plain;f=xmltooling%2Fsignature%2Fimpl%2FKeyInfoImpl.cpp;h=36c0280a0eb5c4b3c04d688565a7df1f123ab2c6;hb=a0d768778a8f5f539b909baf5b115e70ea765f0f;hp=3745cd0428dee47b3a9c271f203a3f95f03e6b88;hpb=63628ac851db55a3ee9ac5b74d1b204242229662;p=shibboleth%2Fcpp-xmltooling.git diff --git a/xmltooling/signature/impl/KeyInfoImpl.cpp b/xmltooling/signature/impl/KeyInfoImpl.cpp index 3745cd0..36c0280 100644 --- a/xmltooling/signature/impl/KeyInfoImpl.cpp +++ b/xmltooling/signature/impl/KeyInfoImpl.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2001-2006 Internet2 + * Copyright 2001-2010 Internet2 * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,26 +17,25 @@ /** * KeyInfoImpl.cpp * - * Implementation classes for KeyInfo schema + * Implementation classes for KeyInfo schema. */ #include "internal.h" -#include "AbstractChildlessElement.h" #include "AbstractComplexElement.h" -#include "AbstractElementProxy.h" #include "AbstractSimpleElement.h" #include "exceptions.h" #include "io/AbstractXMLObjectMarshaller.h" #include "io/AbstractXMLObjectUnmarshaller.h" #include "signature/KeyInfo.h" #include "util/XMLHelper.h" -#include "validation/AbstractValidatingXMLObject.h" #include using namespace xmlsignature; using namespace xmltooling; +using namespace xercesc; using namespace std; +using xmlconstants::XMLSIG_NS; #if defined (_MSC_VER) #pragma warning( push ) @@ -48,20 +47,19 @@ namespace xmlsignature { class XMLTOOL_DLLLOCAL DSAKeyValueImpl : public virtual DSAKeyValue, public AbstractComplexElement, public AbstractDOMCachingXMLObject, - public AbstractValidatingXMLObject, public AbstractXMLObjectMarshaller, public AbstractXMLObjectUnmarshaller { public: virtual ~DSAKeyValueImpl() {} - DSAKeyValueImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const QName* schemaType) + DSAKeyValueImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const xmltooling::QName* schemaType) : AbstractXMLObject(nsURI, localName, prefix, schemaType) { init(); } DSAKeyValueImpl(const DSAKeyValueImpl& src) - : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src), AbstractValidatingXMLObject(src) { + : AbstractXMLObject(src), AbstractComplexElement(src), AbstractDOMCachingXMLObject(src) { init(); if (src.getP()) setP(src.getP()->cloneP()); @@ -80,20 +78,20 @@ namespace xmlsignature { } void init() { - m_P=NULL; - m_Q=NULL; - m_G=NULL; - m_Y=NULL; - m_J=NULL; - m_Seed=NULL; - m_PgenCounter=NULL; - m_children.push_back(NULL); - m_children.push_back(NULL); - m_children.push_back(NULL); - m_children.push_back(NULL); - m_children.push_back(NULL); - m_children.push_back(NULL); - m_children.push_back(NULL); + m_P=nullptr; + m_Q=nullptr; + m_G=nullptr; + m_Y=nullptr; + m_J=nullptr; + m_Seed=nullptr; + m_PgenCounter=nullptr; + m_children.push_back(nullptr); + m_children.push_back(nullptr); + m_children.push_back(nullptr); + m_children.push_back(nullptr); + m_children.push_back(nullptr); + m_children.push_back(nullptr); + m_children.push_back(nullptr); m_pos_P=m_children.begin(); m_pos_Q=m_pos_P; ++m_pos_Q; @@ -120,13 +118,13 @@ namespace xmlsignature { protected: void processChildElement(XMLObject* childXMLObject, const DOMElement* root) { - PROC_TYPED_CHILD(P,XMLConstants::XMLSIG_NS,false); - PROC_TYPED_CHILD(Q,XMLConstants::XMLSIG_NS,false); - PROC_TYPED_CHILD(G,XMLConstants::XMLSIG_NS,false); - PROC_TYPED_CHILD(Y,XMLConstants::XMLSIG_NS,false); - PROC_TYPED_CHILD(J,XMLConstants::XMLSIG_NS,false); - PROC_TYPED_CHILD(Seed,XMLConstants::XMLSIG_NS,false); - PROC_TYPED_CHILD(PgenCounter,XMLConstants::XMLSIG_NS,false); + PROC_TYPED_CHILD(P,XMLSIG_NS,false); + PROC_TYPED_CHILD(Q,XMLSIG_NS,false); + PROC_TYPED_CHILD(G,XMLSIG_NS,false); + PROC_TYPED_CHILD(Y,XMLSIG_NS,false); + PROC_TYPED_CHILD(J,XMLSIG_NS,false); + PROC_TYPED_CHILD(Seed,XMLSIG_NS,false); + PROC_TYPED_CHILD(PgenCounter,XMLSIG_NS,false); AbstractXMLObjectUnmarshaller::processChildElement(childXMLObject,root); } }; @@ -134,20 +132,19 @@ namespace xmlsignature { class XMLTOOL_DLLLOCAL RSAKeyValueImpl : public virtual RSAKeyValue, public AbstractComplexElement, public AbstractDOMCachingXMLObject, - public AbstractValidatingXMLObject, public AbstractXMLObjectMarshaller, public AbstractXMLObjectUnmarshaller { public: virtual ~RSAKeyValueImpl() {} - RSAKeyValueImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const QName* schemaType) + RSAKeyValueImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const xmltooling::QName* schemaType) : AbstractXMLObject(nsURI, localName, prefix, schemaType) { init(); } RSAKeyValueImpl(const RSAKeyValueImpl& src) - : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src), AbstractValidatingXMLObject(src) { + : AbstractXMLObject(src), AbstractComplexElement(src), AbstractDOMCachingXMLObject(src) { init(); if (src.getModulus()) setModulus(src.getModulus()->cloneModulus()); @@ -156,10 +153,10 @@ namespace xmlsignature { } void init() { - m_Modulus=NULL; - m_Exponent=NULL; - m_children.push_back(NULL); - m_children.push_back(NULL); + m_Modulus=nullptr; + m_Exponent=nullptr; + m_children.push_back(nullptr); + m_children.push_back(nullptr); m_pos_Modulus=m_children.begin(); m_pos_Exponent=m_pos_Modulus; ++m_pos_Exponent; @@ -171,69 +168,65 @@ namespace xmlsignature { protected: void processChildElement(XMLObject* childXMLObject, const DOMElement* root) { - PROC_TYPED_CHILD(Modulus,XMLConstants::XMLSIG_NS,false); - PROC_TYPED_CHILD(Exponent,XMLConstants::XMLSIG_NS,false); + PROC_TYPED_CHILD(Modulus,XMLSIG_NS,false); + PROC_TYPED_CHILD(Exponent,XMLSIG_NS,false); AbstractXMLObjectUnmarshaller::processChildElement(childXMLObject,root); } }; class XMLTOOL_DLLLOCAL KeyValueImpl : public virtual KeyValue, - public AbstractSimpleElement, public AbstractComplexElement, public AbstractDOMCachingXMLObject, - public AbstractValidatingXMLObject, public AbstractXMLObjectMarshaller, public AbstractXMLObjectUnmarshaller { public: virtual ~KeyValueImpl() {} - KeyValueImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const QName* schemaType) + KeyValueImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const xmltooling::QName* schemaType) : AbstractXMLObject(nsURI, localName, prefix, schemaType) { init(); } KeyValueImpl(const KeyValueImpl& src) - : AbstractXMLObject(src), AbstractSimpleElement(src), - AbstractDOMCachingXMLObject(src), AbstractValidatingXMLObject(src) { + : AbstractXMLObject(src), AbstractComplexElement(src), AbstractDOMCachingXMLObject(src) { init(); if (src.getDSAKeyValue()) setDSAKeyValue(src.getDSAKeyValue()->cloneDSAKeyValue()); if (src.getRSAKeyValue()) setRSAKeyValue(src.getRSAKeyValue()->cloneRSAKeyValue()); - if (src.getOtherKeyValue()) - setOtherKeyValue(src.getOtherKeyValue()->clone()); + if (src.getUnknownXMLObject()) + setUnknownXMLObject(src.getUnknownXMLObject()->clone()); } void init() { - m_DSAKeyValue=NULL; - m_RSAKeyValue=NULL; - m_OtherKeyValue=NULL; - m_children.push_back(NULL); - m_children.push_back(NULL); - m_children.push_back(NULL); + m_DSAKeyValue=nullptr; + m_RSAKeyValue=nullptr; + m_UnknownXMLObject=nullptr; + m_children.push_back(nullptr); + m_children.push_back(nullptr); + m_children.push_back(nullptr); m_pos_DSAKeyValue=m_children.begin(); m_pos_RSAKeyValue=m_pos_DSAKeyValue; ++m_pos_RSAKeyValue; - m_pos_OtherKeyValue=m_pos_RSAKeyValue; - ++m_pos_OtherKeyValue; + m_pos_UnknownXMLObject=m_pos_RSAKeyValue; + ++m_pos_UnknownXMLObject; } IMPL_XMLOBJECT_CLONE(KeyValue); IMPL_TYPED_CHILD(DSAKeyValue); IMPL_TYPED_CHILD(RSAKeyValue); - IMPL_XMLOBJECT_CHILD(OtherKeyValue); - IMPL_XMLOBJECT_CONTENT; + IMPL_XMLOBJECT_CHILD(UnknownXMLObject); protected: void processChildElement(XMLObject* childXMLObject, const DOMElement* root) { - PROC_TYPED_CHILD(DSAKeyValue,XMLConstants::XMLSIG_NS,false); - PROC_TYPED_CHILD(RSAKeyValue,XMLConstants::XMLSIG_NS,false); + PROC_TYPED_CHILD(DSAKeyValue,XMLSIG_NS,false); + PROC_TYPED_CHILD(RSAKeyValue,XMLSIG_NS,false); // Unknown child. const XMLCh* nsURI=root->getNamespaceURI(); - if (!XMLString::equals(nsURI,XMLConstants::XMLSIG_NS) && nsURI && *nsURI) { - setOtherKeyValue(childXMLObject); + if (!XMLString::equals(nsURI,XMLSIG_NS) && nsURI && *nsURI) { + setUnknownXMLObject(childXMLObject); return; } @@ -242,9 +235,8 @@ namespace xmlsignature { }; class XMLTOOL_DLLLOCAL TransformImpl : public virtual Transform, + public AbstractComplexElement, public AbstractDOMCachingXMLObject, - public AbstractElementProxy, - public AbstractValidatingXMLObject, public AbstractXMLObjectMarshaller, public AbstractXMLObjectUnmarshaller { @@ -253,13 +245,13 @@ namespace xmlsignature { XMLString::release(&m_Algorithm); } - TransformImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const QName* schemaType) - : AbstractXMLObject(nsURI, localName, prefix, schemaType), m_Algorithm(NULL) { + TransformImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const xmltooling::QName* schemaType) + : AbstractXMLObject(nsURI, localName, prefix, schemaType), m_Algorithm(nullptr) { } TransformImpl(const TransformImpl& src) - : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src), AbstractElementProxy(src), - AbstractValidatingXMLObject(src), m_Algorithm(XMLString::replicate(src.m_Algorithm)) { + : AbstractXMLObject(src), AbstractComplexElement(src), AbstractDOMCachingXMLObject(src), + m_Algorithm(XMLString::replicate(src.m_Algorithm)) { for (list::const_iterator i=src.m_children.begin(); i!=src.m_children.end(); i++) { if (*i) { XPath* x=dynamic_cast(*i); @@ -267,7 +259,7 @@ namespace xmlsignature { getXPaths().push_back(x->cloneXPath()); continue; } - getXMLObjects().push_back((*i)->clone()); + getUnknownXMLObjects().push_back((*i)->clone()); } } } @@ -275,20 +267,20 @@ namespace xmlsignature { IMPL_XMLOBJECT_CLONE(Transform); IMPL_STRING_ATTRIB(Algorithm); IMPL_TYPED_CHILDREN(XPath,m_children.end()); - IMPL_XMLOBJECT_CONTENT; + IMPL_XMLOBJECT_CHILDREN(UnknownXMLObject,m_children.end()); protected: void marshallAttributes(DOMElement* domElement) const { - MARSHALL_STRING_ATTRIB(Algorithm,ALGORITHM,NULL); + MARSHALL_STRING_ATTRIB(Algorithm,ALGORITHM,nullptr); } void processChildElement(XMLObject* childXMLObject, const DOMElement* root) { - PROC_TYPED_CHILDREN(XPath,XMLConstants::XMLSIG_NS,false); + PROC_TYPED_CHILDREN(XPath,XMLSIG_NS,false); // Unknown child. const XMLCh* nsURI=root->getNamespaceURI(); - if (!XMLString::equals(nsURI,XMLConstants::XMLSIG_NS) && nsURI && *nsURI) { - getXMLObjects().push_back(childXMLObject); + if (!XMLString::equals(nsURI,XMLSIG_NS) && nsURI && *nsURI) { + getUnknownXMLObjects().push_back(childXMLObject); return; } @@ -296,7 +288,7 @@ namespace xmlsignature { } void processAttribute(const DOMAttr* attribute) { - PROC_STRING_ATTRIB(Algorithm,ALGORITHM,NULL); + PROC_STRING_ATTRIB(Algorithm,ALGORITHM,nullptr); AbstractXMLObjectUnmarshaller::processAttribute(attribute); } }; @@ -304,19 +296,18 @@ namespace xmlsignature { class XMLTOOL_DLLLOCAL TransformsImpl : public virtual Transforms, public AbstractComplexElement, public AbstractDOMCachingXMLObject, - public AbstractValidatingXMLObject, public AbstractXMLObjectMarshaller, public AbstractXMLObjectUnmarshaller { public: virtual ~TransformsImpl() {} - TransformsImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const QName* schemaType) + TransformsImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const xmltooling::QName* schemaType) : AbstractXMLObject(nsURI, localName, prefix, schemaType) { } TransformsImpl(const TransformsImpl& src) - : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src), AbstractValidatingXMLObject(src) { + : AbstractXMLObject(src), AbstractComplexElement(src), AbstractDOMCachingXMLObject(src) { VectorOf(Transform) v=getTransforms(); for (vector::const_iterator i=src.m_Transforms.begin(); i!=src.m_Transforms.end(); i++) { if (*i) { @@ -330,7 +321,7 @@ namespace xmlsignature { protected: void processChildElement(XMLObject* childXMLObject, const DOMElement* root) { - PROC_TYPED_CHILDREN(Transform,XMLConstants::XMLSIG_NS,false); + PROC_TYPED_CHILDREN(Transform,XMLSIG_NS,false); AbstractXMLObjectUnmarshaller::processChildElement(childXMLObject,root); } }; @@ -338,7 +329,6 @@ namespace xmlsignature { class XMLTOOL_DLLLOCAL RetrievalMethodImpl : public virtual RetrievalMethod, public AbstractComplexElement, public AbstractDOMCachingXMLObject, - public AbstractValidatingXMLObject, public AbstractXMLObjectMarshaller, public AbstractXMLObjectUnmarshaller { @@ -348,13 +338,13 @@ namespace xmlsignature { XMLString::release(&m_Type); } - RetrievalMethodImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const QName* schemaType) + RetrievalMethodImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const xmltooling::QName* schemaType) : AbstractXMLObject(nsURI, localName, prefix, schemaType) { init(); } RetrievalMethodImpl(const RetrievalMethodImpl& src) - : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src), AbstractValidatingXMLObject(src) { + : AbstractXMLObject(src), AbstractComplexElement(src), AbstractDOMCachingXMLObject(src) { init(); setURI(getURI()); setType(getType()); @@ -363,9 +353,9 @@ namespace xmlsignature { } void init() { - m_URI=m_Type=NULL; - m_Transforms=NULL; - m_children.push_back(NULL); + m_URI=m_Type=nullptr; + m_Transforms=nullptr; + m_children.push_back(nullptr); m_pos_Transforms=m_children.begin(); } @@ -376,18 +366,18 @@ namespace xmlsignature { protected: void marshallAttributes(DOMElement* domElement) const { - MARSHALL_STRING_ATTRIB(URI,URI,NULL); - MARSHALL_STRING_ATTRIB(Type,TYPE,NULL); + MARSHALL_STRING_ATTRIB(URI,URI,nullptr); + MARSHALL_STRING_ATTRIB(Type,TYPE,nullptr); } void processChildElement(XMLObject* childXMLObject, const DOMElement* root) { - PROC_TYPED_CHILD(Transforms,XMLConstants::XMLSIG_NS,false); + PROC_TYPED_CHILD(Transforms,XMLSIG_NS,false); AbstractXMLObjectUnmarshaller::processChildElement(childXMLObject,root); } void processAttribute(const DOMAttr* attribute) { - PROC_STRING_ATTRIB(URI,URI,NULL); - PROC_STRING_ATTRIB(Type,TYPE,NULL); + PROC_STRING_ATTRIB(URI,URI,nullptr); + PROC_STRING_ATTRIB(Type,TYPE,nullptr); AbstractXMLObjectUnmarshaller::processAttribute(attribute); } }; @@ -395,20 +385,19 @@ namespace xmlsignature { class XMLTOOL_DLLLOCAL X509IssuerSerialImpl : public virtual X509IssuerSerial, public AbstractComplexElement, public AbstractDOMCachingXMLObject, - public AbstractValidatingXMLObject, public AbstractXMLObjectMarshaller, public AbstractXMLObjectUnmarshaller { public: virtual ~X509IssuerSerialImpl() {} - X509IssuerSerialImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const QName* schemaType) + X509IssuerSerialImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const xmltooling::QName* schemaType) : AbstractXMLObject(nsURI, localName, prefix, schemaType) { init(); } X509IssuerSerialImpl(const X509IssuerSerialImpl& src) - : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src), AbstractValidatingXMLObject(src) { + : AbstractXMLObject(src), AbstractComplexElement(src), AbstractDOMCachingXMLObject(src) { init(); if (src.getX509IssuerName()) setX509IssuerName(src.getX509IssuerName()->cloneX509IssuerName()); @@ -417,10 +406,10 @@ namespace xmlsignature { } void init() { - m_X509IssuerName=NULL; - m_X509SerialNumber=NULL; - m_children.push_back(NULL); - m_children.push_back(NULL); + m_X509IssuerName=nullptr; + m_X509SerialNumber=nullptr; + m_children.push_back(nullptr); + m_children.push_back(nullptr); m_pos_X509IssuerName=m_children.begin(); m_pos_X509SerialNumber=m_pos_X509IssuerName; ++m_pos_X509SerialNumber; @@ -432,8 +421,8 @@ namespace xmlsignature { protected: void processChildElement(XMLObject* childXMLObject, const DOMElement* root) { - PROC_TYPED_CHILD(X509IssuerName,XMLConstants::XMLSIG_NS,false); - PROC_TYPED_CHILD(X509SerialNumber,XMLConstants::XMLSIG_NS,false); + PROC_TYPED_CHILD(X509IssuerName,XMLSIG_NS,false); + PROC_TYPED_CHILD(X509SerialNumber,XMLSIG_NS,false); AbstractXMLObjectUnmarshaller::processChildElement(childXMLObject,root); } }; @@ -441,19 +430,18 @@ namespace xmlsignature { class XMLTOOL_DLLLOCAL X509DataImpl : public virtual X509Data, public AbstractComplexElement, public AbstractDOMCachingXMLObject, - public AbstractValidatingXMLObject, public AbstractXMLObjectMarshaller, public AbstractXMLObjectUnmarshaller { public: virtual ~X509DataImpl() {} - X509DataImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const QName* schemaType) + X509DataImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const xmltooling::QName* schemaType) : AbstractXMLObject(nsURI, localName, prefix, schemaType) { } X509DataImpl(const X509DataImpl& src) - : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src), AbstractValidatingXMLObject(src) { + : AbstractXMLObject(src), AbstractComplexElement(src), AbstractDOMCachingXMLObject(src) { for (list::const_iterator i=src.m_children.begin(); i!=src.m_children.end(); i++) { if (*i) { X509Certificate* xcert=dynamic_cast(*i); @@ -486,7 +474,7 @@ namespace xmlsignature { continue; } - getOtherX509Datas().push_back((*i)->clone()); + getUnknownXMLObjects().push_back((*i)->clone()); } } } @@ -497,20 +485,20 @@ namespace xmlsignature { IMPL_TYPED_CHILDREN(X509SubjectName,m_children.end()); IMPL_TYPED_CHILDREN(X509Certificate,m_children.end()); IMPL_TYPED_CHILDREN(X509CRL,m_children.end()); - IMPL_XMLOBJECT_CHILDREN(OtherX509Data,m_children.end()); + IMPL_XMLOBJECT_CHILDREN(UnknownXMLObject,m_children.end()); protected: void processChildElement(XMLObject* childXMLObject, const DOMElement* root) { - PROC_TYPED_CHILDREN(X509IssuerSerial,XMLConstants::XMLSIG_NS,false); - PROC_TYPED_CHILDREN(X509SKI,XMLConstants::XMLSIG_NS,false); - PROC_TYPED_CHILDREN(X509SubjectName,XMLConstants::XMLSIG_NS,false); - PROC_TYPED_CHILDREN(X509Certificate,XMLConstants::XMLSIG_NS,false); - PROC_TYPED_CHILDREN(X509CRL,XMLConstants::XMLSIG_NS,false); + PROC_TYPED_CHILDREN(X509IssuerSerial,XMLSIG_NS,false); + PROC_TYPED_CHILDREN(X509SKI,XMLSIG_NS,false); + PROC_TYPED_CHILDREN(X509SubjectName,XMLSIG_NS,false); + PROC_TYPED_CHILDREN(X509Certificate,XMLSIG_NS,false); + PROC_TYPED_CHILDREN(X509CRL,XMLSIG_NS,false); // Unknown child. const XMLCh* nsURI=root->getNamespaceURI(); - if (!XMLString::equals(nsURI,XMLConstants::XMLSIG_NS) && nsURI && *nsURI) { - getOtherX509Datas().push_back(childXMLObject); + if (!XMLString::equals(nsURI,XMLSIG_NS) && nsURI && *nsURI) { + getUnknownXMLObjects().push_back(childXMLObject); return; } @@ -521,23 +509,22 @@ namespace xmlsignature { class XMLTOOL_DLLLOCAL SPKIDataImpl : public virtual SPKIData, public AbstractComplexElement, public AbstractDOMCachingXMLObject, - public AbstractValidatingXMLObject, public AbstractXMLObjectMarshaller, public AbstractXMLObjectUnmarshaller { public: virtual ~SPKIDataImpl() {} - SPKIDataImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const QName* schemaType) + SPKIDataImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const xmltooling::QName* schemaType) : AbstractXMLObject(nsURI, localName, prefix, schemaType) { } SPKIDataImpl(const SPKIDataImpl& src) - : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src), AbstractValidatingXMLObject(src) { + : AbstractXMLObject(src), AbstractComplexElement(src), AbstractDOMCachingXMLObject(src) { VectorOfPairs(SPKISexp,XMLObject) v=getSPKISexps(); for (vector< pair >::const_iterator i=src.m_SPKISexps.begin(); i!=src.m_SPKISexps.end(); i++) { if (i->first) { - v.push_back(make_pair(i->first->cloneSPKISexp(),(i->second ? i->second->clone() : (XMLObject*)NULL))); + v.push_back(make_pair(i->first->cloneSPKISexp(),(i->second ? i->second->clone() : (XMLObject*)nullptr))); } } } @@ -558,19 +545,19 @@ namespace xmlsignature { protected: void processChildElement(XMLObject* childXMLObject, const DOMElement* root) { - if (XMLHelper::isNodeNamed(root,XMLConstants::XMLSIG_NS,SPKISexp::LOCAL_NAME)) { + if (XMLHelper::isNodeNamed(root,XMLSIG_NS,SPKISexp::LOCAL_NAME)) { SPKISexp* typesafe=dynamic_cast(childXMLObject); if (typesafe) { - getSPKISexps().push_back(make_pair(typesafe,(XMLObject*)NULL)); + getSPKISexps().push_back(make_pair(typesafe,(XMLObject*)nullptr)); return; } } // Unknown child (has to be paired with the last SPKISexp processed. const XMLCh* nsURI=root->getNamespaceURI(); - if (!XMLString::equals(nsURI,XMLConstants::XMLSIG_NS) && nsURI && *nsURI) { + if (!XMLString::equals(nsURI,XMLSIG_NS) && nsURI && *nsURI) { // Update second half of pair in vector, and in master list. - if (!m_SPKISexps.empty() && m_SPKISexps.back().second==NULL) { + if (!m_SPKISexps.empty() && m_SPKISexps.back().second==nullptr) { m_SPKISexps.back().second=childXMLObject; m_children.back()=childXMLObject; return; @@ -586,38 +573,34 @@ namespace xmlsignature { class XMLTOOL_DLLLOCAL PGPDataImpl : public virtual PGPData, public AbstractComplexElement, public AbstractDOMCachingXMLObject, - public AbstractValidatingXMLObject, public AbstractXMLObjectMarshaller, public AbstractXMLObjectUnmarshaller { public: virtual ~PGPDataImpl() {} - PGPDataImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const QName* schemaType) + PGPDataImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const xmltooling::QName* schemaType) : AbstractXMLObject(nsURI, localName, prefix, schemaType) { init(); } PGPDataImpl(const PGPDataImpl& src) - : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src), AbstractValidatingXMLObject(src) { + : AbstractXMLObject(src), AbstractComplexElement(src), AbstractDOMCachingXMLObject(src) { init(); if (src.getPGPKeyID()) setPGPKeyID(src.getPGPKeyID()->clonePGPKeyID()); if (src.getPGPKeyPacket()) setPGPKeyPacket(src.getPGPKeyPacket()->clonePGPKeyPacket()); - VectorOf(XMLObject) v=getPGPDataExtensions(); - for (vector::const_iterator i=src.m_PGPDataExtensions.begin(); i!=src.m_PGPDataExtensions.end(); i++) { - if (*i) { - v.push_back((*i)->clone()); - } - } + VectorOf(XMLObject) v=getUnknownXMLObjects(); + for (vector::const_iterator i=src.m_UnknownXMLObjects.begin(); i!=src.m_UnknownXMLObjects.end(); ++i) + v.push_back((*i)->clone()); } void init() { - m_PGPKeyID=NULL; - m_PGPKeyPacket=NULL; - m_children.push_back(NULL); - m_children.push_back(NULL); + m_PGPKeyID=nullptr; + m_PGPKeyPacket=nullptr; + m_children.push_back(nullptr); + m_children.push_back(nullptr); m_pos_PGPKeyID=m_children.begin(); m_pos_PGPKeyPacket=m_pos_PGPKeyID; ++m_pos_PGPKeyPacket; @@ -626,17 +609,17 @@ namespace xmlsignature { IMPL_XMLOBJECT_CLONE(PGPData); IMPL_TYPED_CHILD(PGPKeyID); IMPL_TYPED_CHILD(PGPKeyPacket); - IMPL_XMLOBJECT_CHILDREN(PGPDataExtension,m_children.end()); + IMPL_XMLOBJECT_CHILDREN(UnknownXMLObject,m_children.end()); protected: void processChildElement(XMLObject* childXMLObject, const DOMElement* root) { - PROC_TYPED_CHILD(PGPKeyID,XMLConstants::XMLSIG_NS,false); - PROC_TYPED_CHILD(PGPKeyPacket,XMLConstants::XMLSIG_NS,false); + PROC_TYPED_CHILD(PGPKeyID,XMLSIG_NS,false); + PROC_TYPED_CHILD(PGPKeyPacket,XMLSIG_NS,false); // Unknown child. const XMLCh* nsURI=root->getNamespaceURI(); - if (!XMLString::equals(nsURI,XMLConstants::XMLSIG_NS) && nsURI && *nsURI) { - getPGPDataExtensions().push_back(childXMLObject); + if (!XMLString::equals(nsURI,XMLSIG_NS) && nsURI && *nsURI) { + getUnknownXMLObjects().push_back(childXMLObject); return; } @@ -646,9 +629,7 @@ namespace xmlsignature { class XMLTOOL_DLLLOCAL KeyInfoImpl : public virtual KeyInfo, public AbstractComplexElement, - public AbstractSimpleElement, public AbstractDOMCachingXMLObject, - public AbstractValidatingXMLObject, public AbstractXMLObjectMarshaller, public AbstractXMLObjectUnmarshaller { @@ -657,15 +638,12 @@ namespace xmlsignature { XMLString::release(&m_Id); } - KeyInfoImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const QName* schemaType) - : AbstractXMLObject(nsURI, localName, prefix, schemaType), m_Id(NULL) { + KeyInfoImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const xmltooling::QName* schemaType) + : AbstractXMLObject(nsURI, localName, prefix, schemaType), m_Id(nullptr) { } KeyInfoImpl(const KeyInfoImpl& src) - : AbstractXMLObject(src), - AbstractSimpleElement(src), - AbstractDOMCachingXMLObject(src), - AbstractValidatingXMLObject(src), + : AbstractXMLObject(src), AbstractComplexElement(src), AbstractDOMCachingXMLObject(src), m_Id(XMLString::replicate(src.m_Id)) { for (list::const_iterator i=src.m_children.begin(); i!=src.m_children.end(); i++) { @@ -712,13 +690,13 @@ namespace xmlsignature { continue; } - getOthers().push_back((*i)->clone()); + getUnknownXMLObjects().push_back((*i)->clone()); } } } IMPL_XMLOBJECT_CLONE(KeyInfo); - IMPL_STRING_ATTRIB(Id); + IMPL_ID_ATTRIB_EX(Id,ID,nullptr); IMPL_TYPED_CHILDREN(KeyName,m_children.end()); IMPL_TYPED_CHILDREN(KeyValue,m_children.end()); IMPL_TYPED_CHILDREN(RetrievalMethod,m_children.end()); @@ -726,27 +704,26 @@ namespace xmlsignature { IMPL_TYPED_CHILDREN(MgmtData,m_children.end()); IMPL_TYPED_CHILDREN(SPKIData,m_children.end()); IMPL_TYPED_CHILDREN(PGPData,m_children.end()); - IMPL_XMLOBJECT_CHILDREN(Other,m_children.end()); - IMPL_XMLOBJECT_CONTENT; + IMPL_XMLOBJECT_CHILDREN(UnknownXMLObject,m_children.end()); protected: void marshallAttributes(DOMElement* domElement) const { - MARSHALL_ID_ATTRIB(Id,ID,NULL); + MARSHALL_ID_ATTRIB(Id,ID,nullptr); } void processChildElement(XMLObject* childXMLObject, const DOMElement* root) { - PROC_TYPED_CHILDREN(X509Data,XMLConstants::XMLSIG_NS,false); - PROC_TYPED_CHILDREN(KeyName,XMLConstants::XMLSIG_NS,false); - PROC_TYPED_CHILDREN(KeyValue,XMLConstants::XMLSIG_NS,false); - PROC_TYPED_CHILDREN(RetrievalMethod,XMLConstants::XMLSIG_NS,false); - PROC_TYPED_CHILDREN(MgmtData,XMLConstants::XMLSIG_NS,false); - PROC_TYPED_CHILDREN(SPKIData,XMLConstants::XMLSIG_NS,false); - PROC_TYPED_CHILDREN(PGPData,XMLConstants::XMLSIG_NS,false); + PROC_TYPED_CHILDREN(X509Data,XMLSIG_NS,false); + PROC_TYPED_CHILDREN(KeyName,XMLSIG_NS,false); + PROC_TYPED_CHILDREN(KeyValue,XMLSIG_NS,false); + PROC_TYPED_CHILDREN(RetrievalMethod,XMLSIG_NS,false); + PROC_TYPED_CHILDREN(MgmtData,XMLSIG_NS,false); + PROC_TYPED_CHILDREN(SPKIData,XMLSIG_NS,false); + PROC_TYPED_CHILDREN(PGPData,XMLSIG_NS,false); // Unknown child. const XMLCh* nsURI=root->getNamespaceURI(); - if (!XMLString::equals(nsURI,XMLConstants::XMLSIG_NS) && nsURI && *nsURI) { - getOthers().push_back(childXMLObject); + if (!XMLString::equals(nsURI,XMLSIG_NS) && nsURI && *nsURI) { + getUnknownXMLObjects().push_back(childXMLObject); return; } @@ -754,7 +731,7 @@ namespace xmlsignature { } void processAttribute(const DOMAttr* attribute) { - PROC_ID_ATTRIB(Id,ID,NULL); + PROC_ID_ATTRIB(Id,ID,nullptr); AbstractXMLObjectUnmarshaller::processAttribute(attribute); } }; @@ -897,3 +874,27 @@ const XMLCh X509Certificate::LOCAL_NAME[] = { }; const XMLCh X509CRL::LOCAL_NAME[] = { XCH(X), XNUM(5), XNUM(0), XNUM(9), XCH(C), XCH(R), XCH(L), chNull }; +const XMLCh RetrievalMethod::TYPE_DSAKEYVALUE[] = { + chLatin_h, chLatin_t, chLatin_t, chLatin_p, chColon, chForwardSlash, chForwardSlash, + chLatin_w, chLatin_w, chLatin_w, chPeriod, chLatin_w, chDigit_3, chPeriod, chLatin_o, chLatin_r, chLatin_g, chForwardSlash, + chDigit_2, chDigit_0, chDigit_0, chDigit_0, chForwardSlash, chDigit_0, chDigit_9, chForwardSlash, + chLatin_x, chLatin_m, chLatin_l, chLatin_d, chLatin_s, chLatin_i, chLatin_g, chPound, + chLatin_D, chLatin_S, chLatin_A, chLatin_K, chLatin_e, chLatin_y, chLatin_V, chLatin_a, chLatin_l, chLatin_u, chLatin_e, chNull + }; + +const XMLCh RetrievalMethod::TYPE_RSAKEYVALUE[] = { + chLatin_h, chLatin_t, chLatin_t, chLatin_p, chColon, chForwardSlash, chForwardSlash, + chLatin_w, chLatin_w, chLatin_w, chPeriod, chLatin_w, chDigit_3, chPeriod, chLatin_o, chLatin_r, chLatin_g, chForwardSlash, + chDigit_2, chDigit_0, chDigit_0, chDigit_0, chForwardSlash, chDigit_0, chDigit_9, chForwardSlash, + chLatin_x, chLatin_m, chLatin_l, chLatin_d, chLatin_s, chLatin_i, chLatin_g, chPound, + chLatin_R, chLatin_S, chLatin_A, chLatin_K, chLatin_e, chLatin_y, chLatin_V, chLatin_a, chLatin_l, chLatin_u, chLatin_e, chNull + }; + +const XMLCh RetrievalMethod::TYPE_X509DATA[] = { + chLatin_h, chLatin_t, chLatin_t, chLatin_p, chColon, chForwardSlash, chForwardSlash, + chLatin_w, chLatin_w, chLatin_w, chPeriod, chLatin_w, chDigit_3, chPeriod, chLatin_o, chLatin_r, chLatin_g, chForwardSlash, + chDigit_2, chDigit_0, chDigit_0, chDigit_0, chForwardSlash, chDigit_0, chDigit_9, chForwardSlash, + chLatin_x, chLatin_m, chLatin_l, chLatin_d, chLatin_s, chLatin_i, chLatin_g, chPound, + chLatin_X, chDigit_5, chDigit_0, chDigit_9, chLatin_D, chLatin_a, chLatin_t, chLatin_a, chNull + }; +