Skip to content

What This Adds In Cloud Code

  • XML digest + signature pipeline in Cloud Code.
  • Supports configurable canonicalization and digest algorithms.
  • Useful for SOAP/security flows requiring signed XML envelopes.

Quick Start

js
const signer = require('signer');
const signedXml = signer(request.params.xml, {
  ssl_cert: Nimbu.Site.env.get('XML_CERT'),
  ssl_cert_key: Nimbu.Site.env.get('XML_PRIVATE_KEY')
}).digest('//Body').sign();

API

FunctionParamsReturnsNotes
signer(xml, options?)XML stringSignerInstanceFactory default export.
SignerInstance.digest(xpath, options?)XPath + optionsSignerInstanceAdds digest reference.
SignerInstance.sign(options?)sign optionsstringReturns signed XML. Cert/key are configured on signer(xml, options).

Practical Example

js
const signer = require('signer');

const signed = signer(request.params.soap_xml, {
  ssl_cert: Nimbu.Site.env.get('SOAP_SIGNING_CERT'),
  ssl_cert_key: Nimbu.Site.env.get('SOAP_SIGNING_PRIVATE_KEY'),
  digest_algorithm: 'sha256'
})
  .digest('//soap:Body')
  .sign({ binary_security_token: true });

Failure Modes & Gotchas

  • Invalid certificate/key material breaks signing.
  • Keep XML namespace and XPath expressions aligned.