DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG·
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://issues.apache.org/bugzilla/show_bug.cgi?id=40921>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND·
INSERTED IN THE BUG DATABASE.

http://issues.apache.org/bugzilla/show_bug.cgi?id=40921





------- Additional Comments From [EMAIL PROTECTED]  2006-11-13 08:47 -------
(In reply to comment #14)
> I need more than this to reproduce the problem. Please post a simple test case
> that I can compile and run without writing *any additional code* and also 
> include the signature you are validating.

You will have to add the xmldsig.jar and xmlsec.xml in your classpath from Java 
Web Services Developer Pack 2.0

============================================================
Use this main class to test:
============================================================

import java.io.FileInputStream;
import javax.xml.crypto.dsig.XMLSignature;

public class Principal {
  public void validate() {
    try {
      javax.xml.parsers.DocumentBuilderFactory dbf = 
javax.xml.parsers.DocumentBuilderFactory.newInstance();
      dbf.setNamespaceAware(true);
      javax.xml.parsers.DocumentBuilder db = dbf.newDocumentBuilder();
      org.w3c.dom.Document docXML = db.parse(new FileInputStream
("c:\\signedxml.xml"));
      XMLSignature assinatura = ValidacaoXmlEnveloped.validar(docXML);
      if (assinatura != null) {
        System.out.println("Signature ok!");
      }else {
        System.out.println("Invalid Signature!");
      }

    } catch (Exception ex){
        ex.printStackTrace();
    }
  }
  public static void main(String[] args) {
    Principal p = new Principal();
    p.validate();
  }
}

===================================================
ValidacaoXmlEnveloped class
==================================================

import java.io.FileInputStream;
import java.security.Key;
import java.security.KeyException;
import java.security.Provider;
import java.security.PublicKey;
import java.security.cert.X509Certificate;
import java.util.Iterator;
import java.util.List;

import javax.xml.crypto.AlgorithmMethod;
import javax.xml.crypto.KeySelector;
import javax.xml.crypto.KeySelectorException;
import javax.xml.crypto.KeySelectorResult;
import javax.xml.crypto.XMLCryptoContext;
import javax.xml.crypto.XMLStructure;
import javax.xml.crypto.dsig.Reference;
import javax.xml.crypto.dsig.SignatureMethod;
import javax.xml.crypto.dsig.XMLSignature;
import javax.xml.crypto.dsig.XMLSignatureFactory;
import javax.xml.crypto.dsig.dom.DOMValidateContext;
import javax.xml.crypto.dsig.keyinfo.KeyInfo;
import javax.xml.crypto.dsig.keyinfo.KeyValue;
import javax.xml.crypto.dsig.keyinfo.X509Data;
import javax.xml.parsers.DocumentBuilderFactory;

import org.w3c.dom.Document;
import org.w3c.dom.NodeList;
import org.w3c.dom.Element;


/**
 * Classe para a verificacao de qualquer tipo de assinaturas XMLDSIG.
 * @author bribeiro
 *
 */
public class ValidacaoXmlEnveloped {

  static public XMLSignature validar(Document documento) throws 
ValidacaoXmlEnvelopedException {
    boolean      ok        = false;
    XMLSignature signature = null;
    try {
      // Obtem a tag "Signature" do documento
      NodeList listaNos = documento.getElementsByTagNameNS
(XMLSignature.XMLNS, "Signature");
      if (listaNos.getLength() == 0) {
          throw new ValidacaoXmlEnvelopedException("Assinatura não está 
presente.");
      }
      String              nomeProvider = System.getProperty
("jsr105Provider", "org.jcp.xml.dsig.internal.dom.XMLDSigRI");
      XMLSignatureFactory xmlSigFac    = XMLSignatureFactory.getInstance
("DOM",  (Provider) Class.forName(nomeProvider).newInstance());
      // Cria o DOMValidateContext, especifica o Selector que
      // será usado e o contexto do documento.
      DOMValidateContext valCont      = new DOMValidateContext(new 
KeyValueKeySelector(), listaNos.item(0));
      // Instancia o XMLSignature para verificação.
      signature          = xmlSigFac.unmarshalXMLSignature(valCont);
      // Valida o XMLSignature
      ok = signature.validate(valCont);
    } catch( Exception ex ) {
        ex.printStackTrace();
        throw new ValidacaoXmlEnvelopedException(ex.getMessage());
    }
    if (ok) {
        return signature;
    } else
        return null;
  }

  /**
   * KeySelector que retorna a chave pública de dentro do
   * elemento KeyValue..
   * NOTE: Caso o algoritmo da chave não bata com o da assinatura,
   * a chave pública é ignorada.
   */

  private static class KeyValueKeySelector extends KeySelector {
    public KeySelectorResult select(KeyInfo keyInfo,  KeySelector.Purpose 
purpose, AlgorithmMethod method, XMLCryptoContext context) throws 
KeySelectorException {
      if (keyInfo == null) {
        throw new KeySelectorException("Objeto KeyInfo null!");
      }
      SignatureMethod sm   = (SignatureMethod) method;
      List            list = keyInfo.getContent();
      for (int i = 0; i < list.size(); i++) {
        PublicKey pk = null;
        XMLStructure xmlStructure = (XMLStructure) list.get(i);

        System.out.println("Class"+xmlStructure.getClass());
        if( xmlStructure instanceof X509Data) {
          System.out.print("dentro do x509data");
          List lst = ((X509Data)xmlStructure).getContent();
          X509Certificate cert = (X509Certificate)lst.get(0);
          pk = cert.getPublicKey();
        }
        // garante que o algoritmo é compatível com o método.
        if (algEquals(sm.getAlgorithm(), pk.getAlgorithm())) {
          return new SimpleKeySelectorResult(pk);
        }
      }
      throw new KeySelectorException("Nenhum elemento KeyValue encontrado!");
    }

    static boolean algEquals(String algURI, String algName) {
      if (algName.equalsIgnoreCase("DSA") && algURI.equalsIgnoreCase
(SignatureMethod.DSA_SHA1)) {
        return true;
      } else if (algName.equalsIgnoreCase("RSA") && algURI.equalsIgnoreCase
(SignatureMethod.RSA_SHA1)) {
          return true;
        } else {
            return false;
        }
    }
  }

  private static class SimpleKeySelectorResult implements KeySelectorResult {
    private PublicKey pk;
    SimpleKeySelectorResult(PublicKey pk) {
      this.pk = pk;
    }
    public Key getKey() {
      return pk;
    }
  }

}

=======================================
ValidacaoXmlEnvelopedException class
=======================================

public class ValidacaoXmlEnvelopedException extends Exception {
    public ValidacaoXmlEnvelopedException(String msg) {
        super(msg);
    }
}

=======================================
signedxml.xml:
=======================================

<?xml version="1.0" encoding="UTF-8"?><NotasFaltas>
  <ano>2006</ano>
  <semestre>2</semestre>
  <turma>52A</turma>
  <idtProf>15</idtProf>
  <idtDisc>2</idtDisc>
  <unidade>3</unidade>
  <alunos class="linked-list">
    <Aluno>
      <idtAlu>1</idtAlu>
      <nota>1.0</nota>
      <faltas>2</faltas>
    </Aluno>
    <Aluno>
      <idtAlu>2</idtAlu>
      <nota>3.0</nota>
      <faltas>4</faltas>
    </Aluno>
    <Aluno>
      <idtAlu>3</idtAlu>
      <nota>5.0</nota>
      <faltas>6</faltas>
    </Aluno>
    <Aluno>
      <idtAlu>4</idtAlu>
      <nota>7.0</nota>
      <faltas>8</faltas>
    </Aluno>
  </alunos>
<Signature 
xmlns="http://www.w3.org/2000/09/xmldsig#";><SignedInfo><CanonicalizationMethod 
Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-
20010315#WithComments"/><SignatureMethod 
Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/><Reference 
URI=""><Transforms><Transform 
Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-
signature"/></Transforms><DigestMethod 
Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><DigestValue>ltbvesKBO+VTvco
vJyJ0VVkSaJM=</DigestValue></Reference></SignedInfo><SignatureValue>r89mfZ7YkrQe
FOeniXbj5JZja09Kmva+6naBMSu8srlfduq3mbyO5IYOGoHnDXLR7Q5TPGbfZtJa
TpxBQQFJz6pcnO53IyVaymGw5/fx89rtthr2weHJRx8DSiFeA8mio5PsJnSISXy/1F+byDvA3B/a
NANqL76K+mPMlsc04z4=</SignatureValue><KeyInfo><KeyValue><RSAKeyValue><Modulus>sc
Ac0kZZ1Z+ldqz/OK9ZyNmHcNuy8U6fyk2OBvamkWyO3CU9NsWJ6pKZvpO3QAQwKakYbrB3joib
2THy0NEjNFRqdLWw4jaILqjpX0IgdGUY6TZzWq+oRCwTkm/JbG9M7Krl06c1ffMh30V0GnhcXWIC
bweBOvfh8jIFA2xvoN0=</Modulus><Exponent>AQAB</Exponent></RSAKeyValue></KeyValue>
<X509Data><X509Certificate>MIIFmjCCBIKgAwIBAgIIH1lD8vnjdaEwDQYJKoZIhvcNAQEFBQAwa
DELMAkGA1UEBhMCQlIxEzAR
BgNVBAoTCklDUC1CcmFzaWwxLDAqBgNVBAsTI1NlY3JldGFyaWEgZGEgUmVjZWl0YSBGZWRlcmFs
IC0gU1JGMRYwFAYDVQQDEw1BQyBTRVJBU0EgU1JGMB4XDTA2MTAyMzE4MDkwNVoXDTA5MTAyMjE4
MDkwNVowggE1MQswCQYDVQQGEwJCUjETMBEGA1UEChMKSUNQLUJyYXNpbDEsMCoGA1UECxMjU2Vj
cmV0YXJpYSBkYSBSZWNlaXRhIEZlZGVyYWwgLSBTUkYxEjAQBgNVBAsTCVNSRiBlLUNQRjEUMBIG
A1UECxMLKEVNIEJSQU5DTykxFDASBgNVBAsTCyhFTSBCUkFOQ08pMRQwEgYDVQQLEwsoRU0gQlJB
TkNPKTEUMBIGA1UECxMLKEVNIEJSQU5DTykxFDASBgNVBAsTCyhFTSBCUkFOQ08pMRQwEgYDVQQL
EwsoRU0gQlJBTkNPKTEUMBIGA1UECxMLKEVNIEJSQU5DTykxNTAzBgNVBAMTLERPTUlOR09TIFNB
VklPIEFMQ0FOVEFSQSBNQUNIQURPOjU4NDQyMTQ2NTA0MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCB
iQKBgQCxwBzSRlnVn6V2rP84r1nI2Ydw27LxTp/KTY4G9qaRbI7cJT02xYnqkpm+k7dABDApqRhu
sHeOiJvZMfLQ0SM0VGp0tbDiNoguqOlfQiB0ZRjpNnNar6hELBOSb8lsb0zsquXTpzV98yHfRXQa
eFxdYgJvB4E69+HyMgUDbG+g3QIDAQABo4IB+zCCAfcwCQYDVR0TBAIwADAOBgNVHQ8BAf8EBAMC
BeAwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMEMB8GA1UdIwQYMBaAFLcyqiA9/1rttKzS
pxhVioyAKJUEMIGaBgNVHREEgZIwgY+BDERTQU1AVU5JVC5CUqA9BgVgTAEDAaA0EzIwODAxMTk3
MTU4NDQyMTQ2NTA0MDAwMDAwMDAwMDAwMDAwMDAwMDA3OTM4MjJTU1BTRaAXBgVgTAEDBqAOEwww
MDAwMDAwMDAwMDCgJwYFYEwBAwWgHhMcMDEwNjIxODUyMTc4MDM2MDI1MkFSQUNBSlVTRTBXBgNV
HSAEUDBOMEwGBmBMAQIDCjBCMEAGCCsGAQUFBwIBFjRodHRwOi8vd3d3LmNlcnRpZmljYWRvZGln
aXRhbC5jb20uYnIvcmVwb3NpdG9yaW8vZHBjMFMGA1UdHwRMMEowSKBGoESGQmh0dHA6Ly93d3cu
Y2VydGlmaWNhZG9kaWdpdGFsLmNvbS5ici9yZXBvc2l0b3Jpby9sY3IvU2VyYXNhU1JGLmNybDBP
BggrBgEFBQcBAQRDMEEwPwYIKwYBBQUHMAGGM2h0dHA6Ly9vY3NwLmNlcnRpZmljYWRvZGlnaXRh
bC5jb20uYnIvQUNfU2VyYXNhX1NSRjANBgkqhkiG9w0BAQUFAAOCAQEA04lF7He8qnNJYwk8kmyg
0EhdM+BrYirtWwcZcOxd5cRzzhElxk6lcxHNZf0gWyJn7Db1V0p7lhP9nZzA3a4xXOuzjWyncaZC
yoQiWeL+y249Snj+j4Y+XhHXj/TuLxEMdCIg5x/uiS/Zm95YZKsDRj0kkn6UJ3eYLHGvCl80M+Wt
BAQOg55PJYif4arbBpDBJU+H1B5C6iXsb9Xl9TdN23heAAOIbTxxfdaclVP0vTVogwA2EHaL1U04
5k9R3eMpgsXtTpfIXLMDewUHzRGH2COh//1DhXx/kkr7y/1IH2Ohg0m/pVT2Pj25sWWMWh5Ul3MO
6KUk5XSU/eSTcArBJg==</X509Certificate><X509Certificate>MIIFETCCA/mgAwIBAgISMjAwN
TAyMTYxNjU4MjEwMDAxMA0GCSqGSIb3DQEBBQUAMGkxCzAJBgNV
BAYTAkJSMRMwEQYDVQQKEwpJQ1AtQnJhc2lsMUUwQwYDVQQDEzxBdXRvcmlkYWRlIENlcnRpZmlj
YWRvcmEgZGEgU2VjcmV0YXJpYSBkYSBSZWNlaXRhIEZlZGVyYWwgdjEwHhcNMDUwMjE2MTcwODAy
WhcNMTExMDE3MTcwODAyWjBoMQswCQYDVQQGEwJCUjETMBEGA1UEChMKSUNQLUJyYXNpbDEsMCoG
A1UECxMjU2VjcmV0YXJpYSBkYSBSZWNlaXRhIEZlZGVyYWwgLSBTUkYxFjAUBgNVBAMTDUFDIFNF
UkFTQSBTUkYwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDWuxxWvObgcxJ4IugU3acc
837duwUKHTULdh1BFtsm/oe33L9I3omHplteUO3WHPjSwO/oHhQ5irA/AyYcoLt7Fi3Ot96tn62Y
V40QXDHL3C8AkSFo8A5nPNaL1l7ITDUWldVK2AzxhvOdOzEn55vEgh6TUWjSPB2T8SjeAmlbhr73
OGZnvrsKma+wiM2i1+n/mh5F8eYwGs5hubdAbYJRWDZN6/R9cXplwYFYCq7h2+K57yigYsailgn4
9DlMcoDWogWmGav3uFnbglX41ERYuaYlLnuTQxbZOqaktYUVat+cVQfHs42lbMfpDehjyn45qCVW
3TzW9vMVdzrjrzndAgMBAAGjggGyMIIBrjASBgNVHRMBAf8ECDAGAQH/AgEAMCIGA1UdIwEBAAQY
MBaAFPLn1gjPMUcSnbBOKMKXHJxi0640MCAGA1UdDgEBAAQWBBS3MqogPf9a7bSs0qcYVYqMgCiV
BDAOBgNVHQ8BAf8EBAMCAQYwgfgGA1UdIAEBAASB7TCB6jBMBgZgTAECAQ0wQjBABggrBgEFBQcC
ARY0aHR0cDovL3d3dy5yZWNlaXRhLmZhemVuZGEuZ292LmJyL2Fjc3JmL2RwY2Fjc3JmLnBkZjBM
BgZgTAECAgIwQjBABggrBgEFBQcCARY0aHR0cDovL3d3dy5yZWNlaXRhLmZhemVuZGEuZ292LmJy
L2Fjc3JmL2RwY2Fjc3JmLnBkZjBMBgZgTAECAwowQjBABggrBgEFBQcCARY0aHR0cDovL3d3dy5y
ZWNlaXRhLmZhemVuZGEuZ292LmJyL2Fjc3JmL2RwY2Fjc3JmLnBkZjBHBgNVHR8BAQAEPTA7MDmg
N6A1hjNodHRwOi8vd3d3LnJlY2VpdGEuZmF6ZW5kYS5nb3YuYnIvYWNzcmYvYWNzcmZ2MS5jcmww
DQYJKoZIhvcNAQEFBQADggEBAB+T/jLfNoie1YlYRj7Fxiwxssc82zDgRphtENSj3mXhmuJelWUH
SbORo/ABMTEjnuPnDDp6EnkwQs4oHgH+a2/js+gYxWx5iI3mj7XyrLNM5rBWe4yWdMOt09toGiPx
nehgwiA2/FL5qeKU5AsJ3QtOFWZ6FiR6GotfzZrZsqgf/oqV2bzcxt0LDuq++nU1bz+M6wWFmMSU
hdhYeaufBINJn4S6ezOeLWr77OrRala/X8clo1OKiTmioMpwFCILBrTmx6WO7l7Vz0HuRfQ149mu
S17v1QFxmZbhwZKqewH75vbVfHdcX3+sUIAqQSJ0A7fHzld67M+9h+c+5BEcs30=</X509Certificat
e><X509Certificate>MIIEUTCCAzmgAwIBAgIBETANBgkqhkiG9w0BAQUFADCBtDELMAkGA1UEBhMCQ
lIxEzARBgNVBAoT
CklDUC1CcmFzaWwxPTA7BgNVBAsTNEluc3RpdHV0byBOYWNpb25hbCBkZSBUZWNub2xvZ2lhIGRh
IEluZm9ybWFjYW8gLSBJVEkxETAPBgNVBAcTCEJyYXNpbGlhMQswCQYDVQQIEwJERjExMC8GA1UE
AxMoQXV0b3JpZGFkZSBDZXJ0aWZpY2Fkb3JhIFJhaXogQnJhc2lsZWlyYTAeFw0wNTAyMDIxMjU1
MDBaFw0xMTExMDIyMzU5MDBaMGkxCzAJBgNVBAYTAkJSMRMwEQYDVQQKEwpJQ1AtQnJhc2lsMUUw
QwYDVQQDEzxBdXRvcmlkYWRlIENlcnRpZmljYWRvcmEgZGEgU2VjcmV0YXJpYSBkYSBSZWNlaXRh
IEZlZGVyYWwgdjEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC0YeMzA5AcEl60DET0
CmVy7lbly2X5TL+IQV98LAW0tfyTe9U43TNqh0vHeg8B3opWG24pOTozbRtPWo1vC5aJYSbGKXBg
cqmOpZWrZn25Eqm7qiCD9swIQDpFs6GlrvYBKUArEaNXki6Rte5UOl0wcenYQi3LVGwfXK28xn4u
TwP706mrSIm2LhRjTfAtU+78ZeTcdm8wOtfGy2v3oFkyrzl5iLSqsL2n53NvMDuOs3Cv9BnTroNE
s4QJNqOogMkCHt2OjvxZ0MCp2wn465tV2/L+ykCIQjfTYGdRiuyXMZu6iKmreHVcORyr0X1QMd4+
PfnT21nwAoN0HaX7jrhfAgMA0yGjgbcwgbQwPQYDVR0fBDYwNDAyoDCgLoYsaHR0cDovL2FjcmFp
ei5pY3BicmFzaWwuZ292LmJyL0xDUmFjcmFpei5jcmwwEgYDVR0gBAswCTAHBgVgTAEBCDAdBgNV
HQ4EFgQU8ufWCM8xRxKdsE4owpccnGLTrjQwHwYDVR0jBBgwFoAUivrxV4QREzWQQvpXSVRpDaTE
8DcwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAK9P
G36ERhZZiKakn9Wg99L1MimhCNsNUwcpjSH2RhciX4xeWhlyvRLQOb8wGg23TAc+o4YdrkU0QR+2
DwCOQSN4ctfWsBKz1EpBW2JOeKx8juHHMsKxiPewBNrICC3RU9XVNIWqNsih9jZ8QBrcFS72wKk1
FjGVz5K9cuswmkwuu1KMp/RJdbkcps87VPUd9Y4dbHyTKz87+HggQ+nMdj2SQcz4UB1yVu9j+D+5
6ceMkZPlAm1bczi9nI5Uoj433bfIzR1bjjJtetqz9sjIr13xM2IfJPDw8jQVYOM59KDDx8IfTtM7
QMcd45x8xl4w4nFAm7ePxXboDyjZkNGJTDo=</X509Certificate><X509Certificate>MIIEuDCCA
6CgAwIBAgIBBDANBgkqhkiG9w0BAQUFADCBtDELMAkGA1UEBhMCQlIxEzARBgNVBAoT
CklDUC1CcmFzaWwxPTA7BgNVBAsTNEluc3RpdHV0byBOYWNpb25hbCBkZSBUZWNub2xvZ2lhIGRh
IEluZm9ybWFjYW8gLSBJVEkxETAPBgNVBAcTCEJyYXNpbGlhMQswCQYDVQQIEwJERjExMC8GA1UE
AxMoQXV0b3JpZGFkZSBDZXJ0aWZpY2Fkb3JhIFJhaXogQnJhc2lsZWlyYTAeFw0wMTExMzAxMjU4
MDBaFw0xMTExMzAyMzU5MDBaMIG0MQswCQYDVQQGEwJCUjETMBEGA1UEChMKSUNQLUJyYXNpbDE9
MDsGA1UECxM0SW5zdGl0dXRvIE5hY2lvbmFsIGRlIFRlY25vbG9naWEgZGEgSW5mb3JtYWNhbyAt
IElUSTERMA8GA1UEBxMIQnJhc2lsaWExCzAJBgNVBAgTAkRGMTEwLwYDVQQDEyhBdXRvcmlkYWRl
IENlcnRpZmljYWRvcmEgUmFpeiBCcmFzaWxlaXJhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
CgKCAQEAwPMudwX/hvm+Uh2b/lQAcHVAisamaLkWdkwP9/S/tOKIgRrL6Oy+ZIGlOUdd6uYtk9Ma
/3pUpgcfNAj0vYm5gsyjQo9emsc+x6m4VWwk9iqMZSCK5EQkAq/Ut4n7KuLE1+gdftwdIgxfUsPt
4CyNrY50QV57KM2UT8x5rrmzEjr7TICGpSUAl2gVqe6xaii+bmYR1QrmWaBSAG59LrkrjrYtbRhF
boUDe1DK+6T8s5L6k8c8okpbHpa9veMztDVC9sPJ60MWXh6anVKo1UcLcbURyEeNvZneVRKAAU6o
uwdjDvwlsaKydFKwed0ToQ47bmUKgcm+wV3eTRk36UOnTwIDAQABo4HSMIHPME4GA1UdIARHMEUw
QwYFYEwBAQAwOjA4BggrBgEFBQcCARYsaHR0cDovL2FjcmFpei5pY3BicmFzaWwuZ292LmJyL0RQ
Q2FjcmFpei5wZGYwPQYDVR0fBDYwNDAyoDCgLoYsaHR0cDovL2FjcmFpei5pY3BicmFzaWwuZ292
LmJyL0xDUmFjcmFpei5jcmwwHQYDVR0OBBYEFIr68VeEERM1kEL6V0lUaQ2kxPA3MA8GA1UdEwEB
/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQAZA5c1U/hgIh6OcgLA
fiJgFWpvmDZWqlV30/bHFpj8iBobJSm5uDpt7TirYh1Uxe3fQaGlYjJe+9zd+izPRbBqXPVQA34E
Xcwk4qpWuf1hHriWfdrx8AcqSqr6CuQFwSr75FosSzlwDADa70mT7wZjAmQhnZx2xJ6wfWlT9VQf
S//JYeIc7Fue2JNLd00UOSMMaiK/t79enKNHEA2fupH3vEigf5Eh4bVAN5VohrTm6MY53x7XQZZr
1ME7a55lFEnSeT0umlOAjR2mAbvSM5X5oSZNrmetdzyTj2flCM8CC7MLab0kkdngRIlUBGHF1/S5
nmPbK+9A46sd33oqK8n8</X509Certificate></X509Data></KeyInfo></Signature></NotasFa
ltas>





-- 
Configure bugmail: http://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.

Reply via email to