There is no facility in Net Express 3.1 to do signing of XML files. You would have to use a 3rd party tool.
This can be done in Visual COBOL using the .NET Security classes.
Here is an example in case anyone is interested:
$set ilusing"System.Security.Cryptography" $set ilusing"System.Security.Cryptography.Xml" $set ilusing"System.Xml" class-id xmlsigning.SignXML. method-id main static. procedure division. try *> Create a new CspParameters object to specify *> a key container. declare cspParams as type CspParameters = new CspParameters set cspParams::KeyContainerName = "XML_DSIG_RSA_KEY" *> Create a new RSA signing key and save it in the container. declare rsaKey as type RSACryptoServiceProvider = new RSACryptoServiceProvider(cspParams) *> Create a new XML document. declare xmlDoc as type XmlDocument = new XmlDocument *> Load an XML file into the XmlDocument object. set xmlDoc::PreserveWhitespace = true invoke xmlDoc::Load("test.xml") *> Sign the XML document. invoke SignXml(xmlDoc, rsaKey) display "XML file signed." *> Save the document. invoke xmlDoc::Save("test.xml") catch e as type Exception display e::Message end-try goback. end method. *> Sign an XML file. *> This document cannot be verified unless the verifying *> code has the key with which it was signed. *> Need to add a reference to System.Security.dll method-id SignXml public static (xmlDoc as type XmlDocument, #Key as type RSA). . *> Check arguments. if xmlDoc = null raise new ArgumentException("xmlDoc") end-if if #Key = null raise new ArgumentException("Key") end-if *> Create a SignedXml object. declare signedXml as type SignedXml = new SignedXml(xmlDoc) *> Add the key to the SignedXml document. set signedXml::SigningKey = #Key *> Create a reference to be signed. declare #reference as type Reference = new Reference set #reference::Uri = "" *> Add an enveloped transformation to the reference. declare env as type XmlDsigEnvelopedSignatureTransform = new XmlDsigEnvelopedSignatureTransform invoke #reference::AddTransform(env) *> Add the reference to the SignedXml object. invoke signedXml::AddReference(#reference) *> Compute the signature. invoke signedXml::ComputeSignature *> Get the XML representation of the signature and save *> it to an XmlElement object. declare xmlDigitalSignature as type XmlElement = signedXml::GetXml *> Append the element to the XML document. invoke xmlDoc::DocumentElement::AppendChild(xmlDoc::ImportNode(xmlDigitalSignature, true)) goback. end method. end class.