コード例 #1
0
// ---------------------------------------------------------------------------
// Add <KeyName> element to <KeyInfo> node and set the value of it.
// ---------------------------------------------------------------------------
//           
void XmlSecTemplate::SetKeyInfoL(RXmlEngDocument& aTemplate, const TDesC8& aKeyName)
    {
    if(!aKeyName.Compare(KNullDesC8))
        {
        User::Leave(KErrWrongParameter);
        }
    if(aTemplate.IsNull())
        {
        User::Leave(KErrTemplate);
        }
    xmlNodePtr keyInfo = NULL;
    TXmlEngNode tmpNode = aTemplate.DocumentElement();
    xmlNodePtr root = INTERNAL_NODEPTR(tmpNode);
    keyInfo = xmlSecFindNode(root,xmlSecNodeKeyInfo, xmlSecDSigNs);
    if(!keyInfo)
        {
        User::Leave(KErrTemplate);
        }
    TXmlEngElement(keyInfo).RemoveChildren();
    char* name = XmlEngXmlCharFromDes8L(aKeyName); 
    root = xmlSecTmplKeyInfoAddKeyName(keyInfo,(unsigned char*)name);
    delete name;
    if(!root)
        {
        User::Leave(KErrNoMemory);
        }    
    }
コード例 #2
0
// ---------------------------------------------------------------------------
// Set Template 
// ---------------------------------------------------------------------------
//        
void XmlSecTemplate::SetTemplateL(RXmlEngDocument& aTemplate, const RXmlEngDocument& aInput)
    {
    if(aInput.IsNull())
        {
        User::Leave(KErrTemplate);
        };
    if(aTemplate.NotNull())
        {
        aTemplate.Close();
        }
    aTemplate = aInput.CloneDocumentL();
    }
コード例 #3
0
// ---------------------------------------------------------------------------
// Add element to <KeyInfo> node. 
// ---------------------------------------------------------------------------
//          
void XmlSecTemplate::SetKeyInfoL(RXmlEngDocument& aTemplate, TXmlEngElement aKeyProp)
    {
    if(aKeyProp.IsNull())
        {
        User::Leave(KErrWrongParameter);
        }
    if(aTemplate.IsNull())
        {
        User::Leave(KErrTemplate);
        }        
    xmlNodePtr keyInfo = NULL;
    TXmlEngNode tmpNode = aTemplate.DocumentElement();
    xmlNodePtr root = INTERNAL_NODEPTR(tmpNode);
    keyInfo = xmlSecFindNode(root,xmlSecNodeKeyInfo, xmlSecDSigNs);
    if(!keyInfo)
        {
        User::Leave(KErrTemplate);
        }
    TXmlEngElement keyIn(keyInfo);
    keyIn.RemoveChildren();
    keyIn.AppendChildL(aKeyProp);
    }