本文整理汇总了C++中DOMDocument::createElementNS方法的典型用法代码示例。如果您正苦于以下问题:C++ DOMDocument::createElementNS方法的具体用法?C++ DOMDocument::createElementNS怎么用?C++ DOMDocument::createElementNS使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类DOMDocument
的用法示例。
在下文中一共展示了DOMDocument::createElementNS方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1:
DOMElement * DSIGTransformXPath::createBlankTransform(DOMDocument * parentDoc) {
safeBuffer str;
const XMLCh * prefix;
DOMElement *ret;
DOMDocument *doc = mp_env->getParentDocument();
prefix = mp_env->getDSIGNSPrefix();
// Create the transform node
makeQName(str, prefix, "Transform");
ret = doc->createElementNS(DSIGConstants::s_unicodeStrURIDSIG, str.rawXMLChBuffer());
ret->setAttributeNS(NULL,DSIGConstants::s_unicodeStrAlgorithm, DSIGConstants::s_unicodeStrURIXPATH);
// Create the XPath element
makeQName(str, prefix, "XPath");
mp_xpathNode = doc->createElementNS(DSIGConstants::s_unicodeStrURIDSIG, str.rawXMLChBuffer());
mp_exprTextNode = doc->createTextNode(MAKE_UNICODE_STRING(""));
ret->appendChild(mp_xpathNode);
mp_xpathNode->appendChild(mp_exprTextNode);
mp_txfmNode = ret;
return ret;
}
示例2:
DOMElement * DSIGKeyInfoValue::createBlankRSAKeyValue(const char * modulus,
const char * exponent) {
// Set the strings
m_modulus.sbStrcpyIn(modulus);
m_exponent.sbStrcpyIn(exponent);
// Set our type
m_keyInfoType = KEYINFO_VALUE_RSA;
// Create the DOM Structure
safeBuffer str;
DOMDocument *doc = mp_parentSignature->getParentDocument();
safeBuffer prefix = mp_parentSignature->getDSIGNSPrefix();
makeQName(str, prefix, "KeyValue");
DOMElement *ret = doc->createElementNS(DSIGConstants::s_unicodeStrURIDSIG, str.sbStrToXMLCh());
mp_valueNode = ret;
makeQName(str, prefix, "RSAKeyValue");
DOMElement * rsa = doc->createElementNS(DSIGConstants::s_unicodeStrURIDSIG, str.sbStrToXMLCh());
ret->appendChild(doc->createTextNode(DSIGConstants::s_unicodeStrNL));
ret->appendChild(rsa);
rsa->appendChild(doc->createTextNode(DSIGConstants::s_unicodeStrNL));
ret->appendChild(doc->createTextNode(DSIGConstants::s_unicodeStrNL));
// Now create the value children
makeQName(str, prefix, "Modulus");
DOMElement * v = doc->createElementNS(DSIGConstants::s_unicodeStrURIDSIG, str.sbStrToXMLCh());
mp_modulusTextNode = doc->createTextNode(MAKE_UNICODE_STRING(modulus));
rsa->appendChild(v);
rsa->appendChild(doc->createTextNode(DSIGConstants::s_unicodeStrNL));
v->appendChild(mp_modulusTextNode);
makeQName(str, prefix, "Exponent");
v = doc->createElementNS(DSIGConstants::s_unicodeStrURIDSIG, str.sbStrToXMLCh());
mp_exponentTextNode = doc->createTextNode(MAKE_UNICODE_STRING(exponent));
rsa->appendChild(v);
rsa->appendChild(doc->createTextNode(DSIGConstants::s_unicodeStrNL));
v->appendChild(mp_exponentTextNode);
return ret;
}
示例3: setKeySize
void XENCEncryptionMethodImpl::setKeySize(int size) {
// First map the int to an XMLCh string
XMLCh sizeXMLCh[10];
XMLString::binToText((unsigned int) size, sizeXMLCh, 9, 10);
if (mp_keySizeTextNode == NULL) {
// Get some setup values
safeBuffer str;
DOMDocument *doc = mp_env->getParentDocument();
const XMLCh * prefix = mp_env->getXENCNSPrefix();
makeQName(str, prefix, s_KeySize);
DOMElement *e = doc->createElementNS(DSIGConstants::s_unicodeStrURIXENC, str.rawXMLChBuffer());
mp_encryptionMethodElement->insertBefore(e, mp_encryptionMethodElement->getFirstChild());
mp_env->doPrettyPrint(mp_encryptionMethodElement);
e->appendChild(mp_keySizeTextNode = doc->createTextNode(sizeXMLCh));
}
else {
mp_keySizeTextNode->setNodeValue(sizeXMLCh);
}
}
示例4:
DOMElement * XKMSStatusImpl::createBlankStatus(StatusValue status) {
// Get some setup values
safeBuffer str;
DOMDocument *doc = mp_env->getParentDocument();
const XMLCh * prefix = mp_env->getXKMSNSPrefix();
makeQName(str, prefix, XKMSConstants::s_tagStatus);
mp_statusElement = doc->createElementNS(XKMSConstants::s_unicodeStrURIXKMS,
str.rawXMLChBuffer());
mp_env->doPrettyPrint(mp_statusElement);
/* Now add the StatusValue element */
str.sbXMLChIn(XKMSConstants::s_unicodeStrURIXKMS);
str.sbXMLChCat(XKMSConstants::s_tagStatusValueCodes[status]);
mp_statusElement->setAttributeNS(NULL,
XKMSConstants::s_tagStatusValue,
str.rawXMLChBuffer());
mp_statusValueAttr =
mp_statusElement->getAttributeNodeNS(NULL, XKMSConstants::s_tagStatusValue);
m_statusValue = status;
return mp_statusElement;
}
示例5:
DOMElement * XKMSUseKeyWithImpl::createBlankUseKeyWith(const XMLCh * application,
const XMLCh * identifier) {
safeBuffer str;
DOMDocument *doc = mp_env->getParentDocument();
const XMLCh * prefix = mp_env->getXKMSNSPrefix();
makeQName(str, prefix, XKMSConstants::s_tagUseKeyWith);
mp_useKeyWithElement = doc->createElementNS(XKMSConstants::s_unicodeStrURIXKMS,
str.rawXMLChBuffer());
// Setup the Application URI
mp_useKeyWithElement->setAttributeNS(NULL,
XKMSConstants::s_tagApplication,
application);
mp_applicationAttr =
mp_useKeyWithElement->getAttributeNodeNS(NULL, XKMSConstants::s_tagApplication);
// Identifier
mp_useKeyWithElement->setAttributeNS(NULL,
XKMSConstants::s_tagIdentifier,
identifier);
mp_identifierAttr =
mp_useKeyWithElement->getAttributeNodeNS(NULL, XKMSConstants::s_tagIdentifier);
return mp_useKeyWithElement;
}
示例6: encodeDName
DOMElement * DSIGKeyInfoName::createBlankKeyName(const XMLCh * name, bool isDName) {
// Create the DOM Structure
safeBuffer str;
DOMDocument *doc = mp_env->getParentDocument();
const XMLCh * prefix = mp_env->getDSIGNSPrefix();
makeQName(str, prefix, "KeyName");
DOMElement *ret = doc->createElementNS(DSIGConstants::s_unicodeStrURIDSIG, str.rawXMLChBuffer());
mp_keyInfoDOMNode = ret;
// Check whether to encode prior to adding
if (isDName == true) {
// Treat as a distinguished name
mp_decodedDName = XMLString::replicate(name);
XMLCh * encodedName = encodeDName(name);
mp_keyNameTextNode = doc->createTextNode(encodedName);
XSEC_RELEASE_XMLCH(encodedName);
}
else
mp_keyNameTextNode = doc->createTextNode(name);
ret->appendChild(mp_keyNameTextNode);
mp_name = mp_keyNameTextNode->getNodeValue();
return ret;
}
示例7:
DOMElement * XENCEncryptionMethodImpl::createBlankEncryptedMethod(const XMLCh * algorithm) {
// Get some setup values
safeBuffer str;
DOMDocument *doc = mp_env->getParentDocument();
const XMLCh * prefix = mp_env->getXENCNSPrefix();
makeQName(str, prefix, s_EncryptionMethod);
mp_encryptionMethodElement = doc->createElementNS(DSIGConstants::s_unicodeStrURIXENC, str.rawXMLChBuffer());
// Set the algorithm attribute
if (algorithm != NULL) {
mp_encryptionMethodElement->setAttributeNS(NULL,
DSIGConstants::s_unicodeStrAlgorithm,
algorithm);
mp_algorithmAttr =
mp_encryptionMethodElement->getAttributeNodeNS(NULL,
DSIGConstants::s_unicodeStrAlgorithm);
}
return mp_encryptionMethodElement;
}
示例8: setMGF
void XENCEncryptionMethodImpl::setMGF(const XMLCh * mgf) {
if (mp_mgfAlgorithmAttr == NULL) {
// Need to create
if (mp_oaepParamsTextNode == NULL && mp_digestAlgorithmAttr == NULL && mp_keySizeTextNode == NULL) {
mp_env->doPrettyPrint(mp_encryptionMethodElement);
}
// Get some setup values
safeBuffer str;
DOMDocument *doc = mp_env->getParentDocument();
const XMLCh * prefix = mp_env->getXENC11NSPrefix();
makeQName(str, prefix, s_MGF);
DOMElement *e = doc->createElementNS(DSIGConstants::s_unicodeStrURIXENC11, str.rawXMLChBuffer());
mp_encryptionMethodElement->appendChild(e);
mp_env->doPrettyPrint(mp_encryptionMethodElement);
e->setAttributeNS(NULL,
DSIGConstants::s_unicodeStrAlgorithm,
mgf);
// Set namespace
if (prefix[0] == XERCES_CPP_NAMESPACE_QUALIFIER chNull) {
str.sbTranscodeIn("xmlns");
}
else {
str.sbTranscodeIn("xmlns:");
str.sbXMLChCat(prefix);
}
e->setAttributeNS(DSIGConstants::s_unicodeStrURIXMLNS,
str.rawXMLChBuffer(),
DSIGConstants::s_unicodeStrURIXENC11);
// Now retrieve for later use
mp_mgfAlgorithmAttr =
e->getAttributeNodeNS(NULL,
DSIGConstants::s_unicodeStrAlgorithm);
if (mp_mgfAlgorithmAttr == NULL) {
throw XSECException(XSECException::EncryptionMethodError,
"XENCEncryptionMethod::setMGF - Error creating Algorithm Attribute");
}
}
else {
mp_mgfAlgorithmAttr->setNodeValue(mgf);
}
}
示例9:
DOMElement * DSIGObject::createBlankObject(void) {
safeBuffer str;
const XMLCh * prefix;
DOMDocument *doc = mp_env->getParentDocument();
prefix = mp_env->getDSIGNSPrefix();
// Create the transform node
makeQName(str, prefix, s_Object);
mp_objectNode = doc->createElementNS(DSIGConstants::s_unicodeStrURIDSIG, str.rawXMLChBuffer());
mp_idAttr = NULL;
mp_mimeTypeAttr = NULL;
mp_encodingAttr = NULL;
return (DOMElement *) mp_objectNode;
}
示例10:
DOMElement * DSIGTransformEnvelope::createBlankTransform(DOMDocument * parentDoc) {
safeBuffer str;
const XMLCh * prefix;
DOMElement *ret;
DOMDocument *doc = mp_env->getParentDocument();
prefix = mp_env->getDSIGNSPrefix();
// Create the transform node
makeQName(str, prefix, "Transform");
ret = doc->createElementNS(DSIGConstants::s_unicodeStrURIDSIG, str.rawXMLChBuffer());
ret->setAttributeNS(NULL,DSIGConstants::s_unicodeStrAlgorithm, DSIGConstants::s_unicodeStrURIENVELOPE);
mp_txfmNode = ret;
return ret;
}
示例11:
DOMElement * XKMSAuthenticationImpl::createBlankAuthentication(const XMLCh * id) {
// Get some setup values
safeBuffer str;
DOMDocument *doc = mp_env->getParentDocument();
const XMLCh * prefix = mp_env->getXKMSNSPrefix();
makeQName(str, prefix, XKMSConstants::s_tagAuthentication);
mp_authenticationElement = doc->createElementNS(XKMSConstants::s_unicodeStrURIXKMS,
str.rawXMLChBuffer());
mp_env->doPrettyPrint(mp_authenticationElement);
// This isn't used immediately - it is simply held for when we create a signature
mp_keyBindingId = id;
return mp_authenticationElement;
}
示例12: XSECException
DSIGSignature * XKMSAuthenticationImpl::addKeyBindingAuthenticationSignature(
canonicalizationMethod cm,
signatureMethod sm,
hashMethod hm) {
if (mp_keyBindingId == NULL) {
throw XSECException(XSECException::XKMSError,
"XKMSAuthenticationImpl::addKeyBindingAuthenticationSignature - called prior to key infos being added");
}
DSIGSignature * ret = m_prov.newSignature();
DOMElement * elt = ret->createBlankSignature(mp_env->getParentDocument(), cm, sm, hm);
/* Create the enveloping reference */
safeBuffer sb;
sb.sbXMLChIn(DSIGConstants::s_unicodeStrEmpty);
sb.sbXMLChAppendCh(chPound);
sb.sbXMLChCat(mp_keyBindingId);
DSIGReference *ref = ret->createReference(sb.rawXMLChBuffer());
ref->appendCanonicalizationTransform(CANON_C14NE_COM);
/* Embed the signature in the document inside a KeyBindingAuthentication element */
safeBuffer str;
DOMDocument *doc = mp_env->getParentDocument();
const XMLCh * prefix = mp_env->getXKMSNSPrefix();
makeQName(str, prefix, XKMSConstants::s_tagKeyBindingAuthentication);
DOMElement * t = doc->createElementNS(XKMSConstants::s_unicodeStrURIXKMS,
str.rawXMLChBuffer());
mp_env->doPrettyPrint(t);
t->appendChild(elt);
mp_env->doPrettyPrint(t);
mp_authenticationElement->appendChild(t);
mp_env->doPrettyPrint(mp_authenticationElement);
return ret;
}
示例13: setOAEPparams
void XENCEncryptionMethodImpl::setOAEPparams(const XMLCh * params) {
if (mp_oaepParamsTextNode == NULL) {
// Need to create
if (mp_mgfAlgorithmAttr == NULL && mp_digestAlgorithmAttr == NULL && mp_keySizeTextNode == NULL) {
mp_env->doPrettyPrint(mp_encryptionMethodElement);
}
// Get some setup values
safeBuffer str;
DOMDocument *doc = mp_env->getParentDocument();
const XMLCh * prefix = mp_env->getXENCNSPrefix();
makeQName(str, prefix, s_OAEPparams);
DOMNode* inspoint = NULL;
DOMElement *e = doc->createElementNS(DSIGConstants::s_unicodeStrURIXENC, str.rawXMLChBuffer());
if (mp_keySizeTextNode != NULL) {
inspoint = mp_keySizeTextNode->getParentNode()->getNextSibling();
}
else {
inspoint = mp_encryptionMethodElement->getFirstChild();
}
mp_encryptionMethodElement->insertBefore(e, inspoint);
mp_env->doPrettyPrint(mp_encryptionMethodElement);
e->appendChild(mp_oaepParamsTextNode = doc->createTextNode(params));
}
else {
mp_oaepParamsTextNode->setNodeValue(params);
}
}
示例14: createTransformList
void DSIGReference::createTransformList(void) {
// Creates the transforms list
safeBuffer str;
const XMLCh * prefix;
DOMDocument *doc = mp_env->getParentDocument();
prefix = mp_env->getDSIGNSPrefix();
if (mp_transformsNode == NULL) {
// Need to create a transforms node
makeQName(str, prefix, "Transforms");
mp_transformsNode = doc->createElementNS(DSIGConstants::s_unicodeStrURIDSIG, str.rawXMLChBuffer());
mp_referenceNode->insertBefore(mp_transformsNode, mp_referenceNode->getFirstChild());
if (mp_env->getPrettyPrintFlag() == true)
mp_referenceNode->insertBefore(doc->createTextNode(DSIGConstants::s_unicodeStrNL), mp_transformsNode);
mp_env->doPrettyPrint(mp_transformsNode);
// Create the list
XSECnew(mp_transformList, DSIGTransformList());
}
}
示例15: XSECException
XENCEncryptedData * XKMSRegisterResultImpl::setRSAKeyPair(const char * passPhrase,
XMLCh * Modulus,
XMLCh * Exponent,
XMLCh * P,
XMLCh * Q,
XMLCh * DP,
XMLCh * DQ,
XMLCh * InverseQ,
XMLCh * D,
encryptionMethod em,
const XMLCh * algorithmURI) {
// Try to set up the key first - if this fails, don't want to have added the
// XML
const XMLCh * uri;
safeBuffer algorithmSB;
if (em != ENCRYPT_NONE) {
if (encryptionMethod2URI(algorithmSB, em) != true) {
throw XSECException(XSECException::XKMSError,
"XKMSRegisterResult::setRSAKeyPair - Unknown encryption method");
}
uri = algorithmSB.sbStrToXMLCh();
}
else
uri = algorithmURI;
// Find if we can get an algorithm for this URI
XSECAlgorithmHandler *handler;
handler =
XSECPlatformUtils::g_algorithmMapper->mapURIToHandler(
uri);
if (handler == NULL) {
throw XSECException(XSECException::XKMSError,
"XKMSRegisterResult::setRSAKeyPair - unable to handle algorithm");
}
unsigned char kbuf[XSEC_MAX_HASH_SIZE];
unsigned int len = CalculateXKMSKEK((unsigned char *) passPhrase, (int) strlen(passPhrase), kbuf, XSEC_MAX_HASH_SIZE);
if (len == 0) {
throw XSECException(XSECException::XKMSError,
"XKMSRegisterResult::setRSAKeyPair - error deriving KEK");
}
XSECCryptoKey * sk = handler->createKeyForURI(
uri,
(XMLByte *) kbuf,
len);
memset(kbuf, 0, XSEC_MAX_HASH_SIZE);
// Get some setup values
safeBuffer str;
DOMDocument *doc = m_msg.mp_env->getParentDocument();
const XMLCh * prefix = m_msg.mp_env->getXKMSNSPrefix();
makeQName(str, prefix, XKMSConstants::s_tagPrivateKey);
// Create a PrivateKey to add this to
DOMElement * pk = doc->createElementNS(XKMSConstants::s_unicodeStrURIXKMS,
str.rawXMLChBuffer());
m_msg.mp_env->doPrettyPrint(pk);
// Add it to the request doc
m_msg.mp_messageAbstractTypeElement->appendChild(pk);
m_msg.mp_env->doPrettyPrint(m_msg.mp_messageAbstractTypeElement);
// Now create the RSA structure
XKMSRSAKeyPairImpl * rsa;
XSECnew(rsa, XKMSRSAKeyPairImpl(m_msg.mp_env));
DOMElement * e =
rsa->createBlankXKMSRSAKeyPairImpl(Modulus, Exponent, P, Q, DP, DQ, InverseQ, D);
// Add it to the PrivateKey
pk->appendChild(e);
m_msg.mp_env->doPrettyPrint(pk);
// Encrypt all of this for future use
XENCCipher * cipher = m_prov.newCipher(m_msg.mp_env->getParentDocument());
cipher->setKey(sk);
cipher->encryptElementContent(pk, ENCRYPT_NONE, uri);
// Now load the encrypted data back in
return cipher->loadEncryptedData(findFirstElementChild(pk));
}