| 
 | 
 | 
 | 
 | 
 | 
 | 
 */  | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 */  | 
 | 
package com.sun.org.apache.xml.internal.security.keys.keyresolver.implementations;  | 
 | 
 | 
 | 
import java.security.PublicKey;  | 
 | 
import java.security.cert.X509Certificate;  | 
 | 
 | 
 | 
import com.sun.org.apache.xml.internal.security.exceptions.XMLSecurityException;  | 
 | 
import com.sun.org.apache.xml.internal.security.keys.content.keyvalues.DSAKeyValue;  | 
 | 
import com.sun.org.apache.xml.internal.security.keys.keyresolver.KeyResolverSpi;  | 
 | 
import com.sun.org.apache.xml.internal.security.keys.storage.StorageResolver;  | 
 | 
import com.sun.org.apache.xml.internal.security.utils.Constants;  | 
 | 
import com.sun.org.apache.xml.internal.security.utils.XMLUtils;  | 
 | 
import org.w3c.dom.Element;  | 
 | 
 | 
 | 
public class DSAKeyValueResolver extends KeyResolverSpi { | 
 | 
 | 
 | 
    private static final com.sun.org.slf4j.internal.Logger LOG =  | 
 | 
        com.sun.org.slf4j.internal.LoggerFactory.getLogger(DSAKeyValueResolver.class);  | 
 | 
 | 
 | 
 | 
 | 
      | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
     */  | 
 | 
    public PublicKey engineLookupAndResolvePublicKey(  | 
 | 
        Element element, String baseURI, StorageResolver storage  | 
 | 
    ) { | 
 | 
        if (element == null) { | 
 | 
            return null;  | 
 | 
        }  | 
 | 
        Element dsaKeyElement = null;  | 
 | 
        boolean isKeyValue =  | 
 | 
            XMLUtils.elementIsInSignatureSpace(element, Constants._TAG_KEYVALUE);  | 
 | 
        if (isKeyValue) { | 
 | 
            dsaKeyElement =  | 
 | 
                XMLUtils.selectDsNode(element.getFirstChild(), Constants._TAG_DSAKEYVALUE, 0);  | 
 | 
        } else if (XMLUtils.elementIsInSignatureSpace(element, Constants._TAG_DSAKEYVALUE)) { | 
 | 
            // this trick is needed to allow the RetrievalMethodResolver to eat a  | 
 | 
              | 
 | 
            dsaKeyElement = element;  | 
 | 
        }  | 
 | 
 | 
 | 
        if (dsaKeyElement == null) { | 
 | 
            return null;  | 
 | 
        }  | 
 | 
 | 
 | 
        try { | 
 | 
            DSAKeyValue dsaKeyValue = new DSAKeyValue(dsaKeyElement, baseURI);  | 
 | 
            PublicKey pk = dsaKeyValue.getPublicKey();  | 
 | 
 | 
 | 
            return pk;  | 
 | 
        } catch (XMLSecurityException ex) { | 
 | 
            LOG.debug(ex.getMessage(), ex);  | 
 | 
            //do nothing  | 
 | 
        }  | 
 | 
 | 
 | 
        return null;  | 
 | 
    }  | 
 | 
 | 
 | 
 | 
 | 
      | 
 | 
    public X509Certificate engineLookupResolveX509Certificate(  | 
 | 
        Element element, String baseURI, StorageResolver storage  | 
 | 
    ) { | 
 | 
        return null;  | 
 | 
    }  | 
 | 
 | 
 | 
      | 
 | 
    public javax.crypto.SecretKey engineLookupAndResolveSecretKey(  | 
 | 
        Element element, String baseURI, StorageResolver storage  | 
 | 
    ) { | 
 | 
        return null;  | 
 | 
    }  | 
 | 
}  |