code: func (ctx *ValidationContext) Validate(el *etree.Element) (*etree.Element, error) {
  	// Make a copy of the element to avoid mutating the one we were passed.
  	el = el.Copy()
  
  	sig, err := ctx.findSignature(el)
  	if err != nil {
  		return nil, err
  	}
  
  	cert, err := ctx.verifyCertificate(sig)
  	if err != nil {
  		return nil, err
  	}
  
  	return ctx.validateSignature(el, sig, cert)
  }
docs: // Validate verifies that the passed element contains a valid enveloped signature
  // matching a currently-valid certificate in the context's CertificateStore.