use xmlsec::XmlSecTemplateBuilder;
use xmlsec::XmlSecDocumentTemplating;
use xmlsec::XmlSecCanonicalizationMethod;
use xmlsec::XmlSecSignatureMethod;
use libxml::parser::Parser as XmlParser;
#[test]
fn test_template_creation()
{
let parser = XmlParser::default();
let doc = parser.parse_file("tests/resources/sign2-doc.xml")
.expect("Could not load template document");
doc.template()
.canonicalization(XmlSecCanonicalizationMethod::ExclusiveC14N)
.signature(XmlSecSignatureMethod::RsaSha1)
.keyname(true)
.keyvalue(true)
.x509data(true)
.uri("ReferencedID")
.done()
.expect("Failed to build and attach signature");
let reference = String::from_utf8(
include_bytes!("./resources/sign2-tmpl.xml").to_vec()
).unwrap();
assert_eq!(doc.to_string(), reference);
}
#[test]
fn test_template_creation_with_ns_prefix()
{
let parser = XmlParser::default();
let doc = parser.parse_file("tests/resources/sign2-doc.xml")
.expect("Could not load template document");
doc.template()
.canonicalization(XmlSecCanonicalizationMethod::ExclusiveC14N)
.signature(XmlSecSignatureMethod::RsaSha1)
.ns_prefix("dsig")
.keyname(true)
.keyvalue(true)
.x509data(true)
.uri("ReferencedID")
.done()
.expect("Failed to build and attach signature");
let reference = String::from_utf8(
include_bytes!("./resources/sign2-tmpl-ns-prefix-dsig.xml").to_vec()
).unwrap();
assert_eq!(doc.to_string(), reference);
}