func MakeC14N10RecCanonicalizer() Canonicalizer {
	return &c14N10RecCanonicalizer{}
}
MakeC14N10RecCanonicalizer constructs an inclusive canonicalizer.
package dsig
import (
	"sort"
	"github.com/beevik/etree"
	"github.com/russellhaering/goxmldsig/etreeutils"
)
type Canonicalizer interface {
	Canonicalize(el *etree.Element) ([]byte, error)
	Algorithm() AlgorithmID
}
type NullCanonicalizer struct {
}
func MakeNullCanonicalizer() Canonicalizer {
	return &NullCanonicalizer{}
}
func (c *NullCanonicalizer) Algorithm() AlgorithmID {
	return AlgorithmID("NULL")
}
func (c *NullCanonicalizer) Canonicalize(el *etree.Element) ([]byte, error) {
	scope := make(map[string]struct{})
	return canonicalSerialize(canonicalPrep(el, scope, false))
}
type c14N10ExclusiveCanonicalizer struct {
	prefixList string
}
func MakeC14N10ExclusiveCanonicalizerWithPrefixList(prefixList string) Canonicalizer {
	return &c14N10ExclusiveCanonicalizer{
		prefixList: prefixList,
	}
}
func (c *c14N10ExclusiveCanonicalizer) Canonicalize(el *etree.Element) ([]byte, error) {
	err := etreeutils.TransformExcC14n(el, c.prefixList)
	if err != nil {
		return nil, err
	}
	return canonicalSerialize(el)
}
func (c *c14N10ExclusiveCanonicalizer) Algorithm() AlgorithmID {
	return CanonicalXML10ExclusiveAlgorithmId
}
type c14N11Canonicalizer struct{}
func MakeC14N11Canonicalizer() Canonicalizer {
	return &c14N11Canonicalizer{}
}
func (c *c14N11Canonicalizer) Canonicalize(el *etree.Element) ([]byte, error) {
	scope := make(map[string]struct{})
	return canonicalSerialize(canonicalPrep(el, scope, true))
}
func (c *c14N11Canonicalizer) Algorithm() AlgorithmID {
	return CanonicalXML11AlgorithmId
}
type c14N10RecCanonicalizer struct{}