private static X509Certificate getRawCertificate(XMLSignatureInput resource)
     throws CanonicalizationException, IOException, CertificateException {
   byte inputBytes[] = resource.getBytes();
   // if the resource stores a raw certificate, we have to handle it
   CertificateFactory certFact = CertificateFactory.getInstance(XMLX509Certificate.JCA_CERT_ID);
   X509Certificate cert =
       (X509Certificate) certFact.generateCertificate(new ByteArrayInputStream(inputBytes));
   return cert;
 }
 private static Element obtainRefrenceElement(XMLSignatureInput resource)
     throws CanonicalizationException, ParserConfigurationException, IOException, SAXException,
         KeyResolverException {
   Element e;
   if (resource.isElement()) {
     e = (Element) resource.getSubNode();
   } else if (resource.isNodeSet()) {
     // Retrieved resource is a nodeSet
     e = getDocumentElement(resource.getNodeSet());
   } else {
     // Retrieved resource is an inputStream
     byte inputBytes[] = resource.getBytes();
     e = getDocFromBytes(inputBytes);
     // otherwise, we parse the resource, create an Element and delegate
     if (log.isLoggable(java.util.logging.Level.FINE))
       log.log(java.util.logging.Level.FINE, "we have to parse " + inputBytes.length + " bytes");
   }
   return e;
 }