/*
- * Copyright 2001-2006 Internet2
+ * Copyright 2001-2007 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
*/
#include "internal.h"
-#include "AbstractSimpleElement.h"
#include "AbstractComplexElement.h"
-#include "AbstractElementProxy.h"
#include "AbstractSimpleElement.h"
#include "exceptions.h"
#include "io/AbstractXMLObjectMarshaller.h"
using namespace xmlsignature;
using namespace xmltooling;
+using namespace xercesc;
using namespace std;
+using xmlconstants::XMLSIG_NS;
#if defined (_MSC_VER)
#pragma warning( push )
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();
}
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);
}
};
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();
}
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);
}
};
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();
}
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_UnknownXMLObject=NULL;
m_children.push_back(NULL);
m_children.push_back(NULL);
m_children.push_back(NULL);
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_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;
}
};
class XMLTOOL_DLLLOCAL TransformImpl : public virtual Transform,
+ public AbstractComplexElement,
public AbstractDOMCachingXMLObject,
- public AbstractElementProxy,
public AbstractXMLObjectMarshaller,
public AbstractXMLObjectUnmarshaller
{
XMLString::release(&m_Algorithm);
}
- TransformImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const QName* schemaType)
+ TransformImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const xmltooling::QName* schemaType)
: AbstractXMLObject(nsURI, localName, prefix, schemaType), m_Algorithm(NULL) {
}
TransformImpl(const TransformImpl& src)
- : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src), AbstractElementProxy(src),
+ : AbstractXMLObject(src), AbstractComplexElement(src), AbstractDOMCachingXMLObject(src),
m_Algorithm(XMLString::replicate(src.m_Algorithm)) {
for (list<XMLObject*>::const_iterator i=src.m_children.begin(); i!=src.m_children.end(); i++) {
if (*i) {
getXPaths().push_back(x->cloneXPath());
continue;
}
- getXMLObjects().push_back((*i)->clone());
+ getUnknownXMLObjects().push_back((*i)->clone());
}
}
}
IMPL_XMLOBJECT_CLONE(Transform);
IMPL_STRING_ATTRIB(Algorithm);
IMPL_TYPED_CHILDREN(XPath,m_children.end());
+ IMPL_XMLOBJECT_CHILDREN(UnknownXMLObject,m_children.end());
protected:
void marshallAttributes(DOMElement* domElement) const {
}
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;
}
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) {
}
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);
}
};
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();
}
}
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);
}
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();
}
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);
}
};
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) {
}
continue;
}
- getOtherX509Datas().push_back((*i)->clone());
+ getUnknownXMLObjects().push_back((*i)->clone());
}
}
}
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;
}
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) {
}
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<SPKISexp*>(childXMLObject);
if (typesafe) {
getSPKISexps().push_back(make_pair(typesafe,(XMLObject*)NULL));
// 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) {
m_SPKISexps.back().second=childXMLObject;
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();
}
setPGPKeyID(src.getPGPKeyID()->clonePGPKeyID());
if (src.getPGPKeyPacket())
setPGPKeyPacket(src.getPGPKeyPacket()->clonePGPKeyPacket());
- VectorOf(XMLObject) v=getPGPDataExtensions();
- for (vector<XMLObject*>::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<XMLObject*>::const_iterator i=src.m_UnknownXMLObjects.begin(); i!=src.m_UnknownXMLObjects.end(); ++i)
+ v.push_back((*i)->clone());
}
void init() {
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;
}
XMLString::release(&m_Id);
}
- KeyInfoImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const QName* schemaType)
+ KeyInfoImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const xmltooling::QName* schemaType)
: AbstractXMLObject(nsURI, localName, prefix, schemaType), m_Id(NULL) {
}
continue;
}
- getOthers().push_back((*i)->clone());
+ getUnknownXMLObjects().push_back((*i)->clone());
}
}
}
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_CHILDREN(UnknownXMLObject,m_children.end());
protected:
void marshallAttributes(DOMElement* domElement) const {
}
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;
}
};
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
+ };
+