Java Code Examples for java.security.cert.X509CRL#getExtensionValue()

The following examples show how to use java.security.cert.X509CRL#getExtensionValue() . You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: RevocationRefs.java    From signer with GNU Lesser General Public License v3.0 5 votes vote down vote up
/**
 * 
 * 
 * @param extract
 *            CrlValidatedID from X509CRL
 * @return a CrlValidatedID
 * @throws NoSuchAlgorithmException
 * @throws CRLException
 */

private CrlValidatedID makeCrlValidatedID(X509CRL crl)
		throws NoSuchAlgorithmException, CRLException {

	Digest digest = DigestFactory.getInstance().factoryDefault();
	digest.setAlgorithm(DigestAlgorithmEnum.SHA_256);
	
	OtherHashAlgAndValue otherHashAlgAndValue = new OtherHashAlgAndValue(
				new AlgorithmIdentifier(NISTObjectIdentifiers.id_sha256), new DEROctetString(digest.digest(crl.getEncoded())));
	
	OtherHash hash = new OtherHash(otherHashAlgAndValue);

	BigInteger crlnumber;
	CrlIdentifier crlid;
	if (crl.getExtensionValue("2.5.29.20") != null) {
		ASN1Integer varASN1Integer = new ASN1Integer(crl.getExtensionValue("2.5.29.20"));
		crlnumber = varASN1Integer.getPositiveValue();

		crlid = new CrlIdentifier(new X500Name(crl.getIssuerX500Principal()
				.getName()), new DERUTCTime(crl.getThisUpdate()), crlnumber);
	} else {
		crlid = new CrlIdentifier(new X500Name(crl.getIssuerX500Principal()
				.getName()), new DERUTCTime(crl.getThisUpdate()));
	}

	CrlValidatedID crlvid = new CrlValidatedID(hash, crlid);

	return crlvid;
}
 
Example 2
Source File: CrlExtensionsUtils.java    From xades4j with GNU Lesser General Public License v3.0 5 votes vote down vote up
public static BigInteger getCrlNumber(X509CRL crl) throws IOException
{
    byte[] crlNumEnc = crl.getExtensionValue(X509Extension.cRLNumber.getId());
    BigInteger crlNum = null;
    // XAdES 7.4.2: "The 'number' element is an optional hint ..."
    if (crlNumEnc != null)
    {
        ASN1Object derCrlNum = X509ExtensionUtil.fromExtensionValue(crlNumEnc);
        crlNum = CRLNumber.getInstance(derCrlNum).getCRLNumber();
    }
    return crlNum;
}
 
Example 3
Source File: CertPathValidatorUtilities.java    From RipplePower with Apache License 2.0 5 votes vote down vote up
static boolean isIndirectCRL(X509CRL crl)
    throws CRLException
{
    try
    {
        byte[] idp = crl.getExtensionValue(Extension.issuingDistributionPoint.getId());
        return idp != null
            && IssuingDistributionPoint.getInstance(ASN1OctetString.getInstance(idp).getOctets()).isIndirectCRL();
    }
    catch (Exception e)
    {
        throw new CRLException(
                "Exception reading IssuingDistributionPoint: " + e);
    }
}
 
Example 4
Source File: X509CRLObject.java    From RipplePower with Apache License 2.0 5 votes vote down vote up
public static boolean isIndirectCRL(X509CRL crl)
    throws CRLException
{
    try
    {
        byte[] idp = crl.getExtensionValue(Extension.issuingDistributionPoint.getId());
        return idp != null
            && IssuingDistributionPoint.getInstance(ASN1OctetString.getInstance(idp).getOctets()).isIndirectCRL();
    }
    catch (Exception e)
    {
        throw new ExtCRLException(
                "Exception reading IssuingDistributionPoint", e);
    }
}
 
Example 5
Source File: X509CRLObject.java    From RipplePower with Apache License 2.0 5 votes vote down vote up
static boolean isIndirectCRL(X509CRL crl)
    throws CRLException
{
    try
    {
        byte[] idp = crl.getExtensionValue(Extension.issuingDistributionPoint.getId());
        return idp != null
            && IssuingDistributionPoint.getInstance(ASN1OctetString.getInstance(idp).getOctets()).isIndirectCRL();
    }
    catch (Exception e)
    {
        throw new ExtCRLException(
                "Exception reading IssuingDistributionPoint", e);
    }
}
 
Example 6
Source File: CRLCertificateVerifier.java    From oxAuth with MIT License 5 votes vote down vote up
@SuppressWarnings({ "deprecation", "resource" })
private BigInteger getCrlNumber(X509CRL crl) throws IOException {
	byte[] crlNumberExtensionValue = crl.getExtensionValue(X509Extensions.CRLNumber.getId());
	if (crlNumberExtensionValue == null) {
		return null;
	}

	DEROctetString octetString = (DEROctetString) (new ASN1InputStream(new ByteArrayInputStream(crlNumberExtensionValue)).readObject());
	byte[] octets = octetString.getOctets();
	DERInteger integer = (DERInteger) new ASN1InputStream(octets).readObject();
	BigInteger crlNumber = integer.getPositiveValue();

	return crlNumber;
}
 
Example 7
Source File: CertPathValidatorUtilities.java    From ripple-lib-java with ISC License 5 votes vote down vote up
static boolean isIndirectCRL(X509CRL crl)
    throws CRLException
{
    try
    {
        byte[] idp = crl.getExtensionValue(Extension.issuingDistributionPoint.getId());
        return idp != null
            && IssuingDistributionPoint.getInstance(ASN1OctetString.getInstance(idp).getOctets()).isIndirectCRL();
    }
    catch (Exception e)
    {
        throw new CRLException(
                "Exception reading IssuingDistributionPoint: " + e);
    }
}
 
Example 8
Source File: X509CRLObject.java    From ripple-lib-java with ISC License 5 votes vote down vote up
public static boolean isIndirectCRL(X509CRL crl)
    throws CRLException
{
    try
    {
        byte[] idp = crl.getExtensionValue(Extension.issuingDistributionPoint.getId());
        return idp != null
            && IssuingDistributionPoint.getInstance(ASN1OctetString.getInstance(idp).getOctets()).isIndirectCRL();
    }
    catch (Exception e)
    {
        throw new ExtCRLException(
                "Exception reading IssuingDistributionPoint", e);
    }
}
 
Example 9
Source File: X509CRLObject.java    From ripple-lib-java with ISC License 5 votes vote down vote up
static boolean isIndirectCRL(X509CRL crl)
    throws CRLException
{
    try
    {
        byte[] idp = crl.getExtensionValue(Extension.issuingDistributionPoint.getId());
        return idp != null
            && IssuingDistributionPoint.getInstance(ASN1OctetString.getInstance(idp).getOctets()).isIndirectCRL();
    }
    catch (Exception e)
    {
        throw new ExtCRLException(
                "Exception reading IssuingDistributionPoint", e);
    }
}
 
Example 10
Source File: X509CRLStoreSelector.java    From RipplePower with Apache License 2.0 4 votes vote down vote up
public boolean match(Object obj)
{
    if (!(obj instanceof X509CRL))
    {
        return false;
    }
    X509CRL crl = (X509CRL)obj;
    ASN1Integer dci = null;
    try
    {
        byte[] bytes = crl
            .getExtensionValue(X509Extensions.DeltaCRLIndicator.getId());
        if (bytes != null)
        {
            dci = ASN1Integer.getInstance(X509ExtensionUtil
                .fromExtensionValue(bytes));
        }
    }
    catch (Exception e)
    {
        return false;
    }
    if (isDeltaCRLIndicatorEnabled())
    {
        if (dci == null)
        {
            return false;
        }
    }
    if (isCompleteCRLEnabled())
    {
        if (dci != null)
        {
            return false;
        }
    }
    if (dci != null)
    {

        if (maxBaseCRLNumber != null)
        {
            if (dci.getPositiveValue().compareTo(maxBaseCRLNumber) == 1)
            {
                return false;
            }
        }
    }
    if (issuingDistributionPointEnabled)
    {
        byte[] idp = crl
            .getExtensionValue(X509Extensions.IssuingDistributionPoint
                .getId());
        if (issuingDistributionPoint == null)
        {
            if (idp != null)
            {
                return false;
            }
        }
        else
        {
            if (!Arrays.areEqual(idp, issuingDistributionPoint))
            {
                return false;
            }
        }

    }
    return super.match((X509CRL)obj);
}
 
Example 11
Source File: PKIXCRLStoreSelector.java    From RipplePower with Apache License 2.0 4 votes vote down vote up
public boolean match(CRL obj)
{
    if (!(obj instanceof X509CRL))
    {
        return baseSelector.match(obj);
    }

    X509CRL crl = (X509CRL)obj;
    ASN1Integer dci = null;
    try
    {
        byte[] bytes = crl
            .getExtensionValue(Extension.deltaCRLIndicator.getId());
        if (bytes != null)
        {
            dci = ASN1Integer.getInstance(ASN1OctetString.getInstance(bytes).getOctets());
        }
    }
    catch (Exception e)
    {
        return false;
    }
    if (isDeltaCRLIndicatorEnabled())
    {
        if (dci == null)
        {
            return false;
        }
    }
    if (isCompleteCRLEnabled())
    {
        if (dci != null)
        {
            return false;
        }
    }
    if (dci != null)
    {

        if (maxBaseCRLNumber != null)
        {
            if (dci.getPositiveValue().compareTo(maxBaseCRLNumber) == 1)
            {
                return false;
            }
        }
    }
    if (issuingDistributionPointEnabled)
    {
        byte[] idp = crl
            .getExtensionValue(Extension.issuingDistributionPoint
                .getId());
        if (issuingDistributionPoint == null)
        {
            if (idp != null)
            {
                return false;
            }
        }
        else
        {
            if (!Arrays.areEqual(idp, issuingDistributionPoint))
            {
                return false;
            }
        }

    }
    return baseSelector.match(obj);
}
 
Example 12
Source File: X509CRLStoreSelector.java    From ripple-lib-java with ISC License 4 votes vote down vote up
public boolean match(Object obj)
{
    if (!(obj instanceof X509CRL))
    {
        return false;
    }
    X509CRL crl = (X509CRL)obj;
    ASN1Integer dci = null;
    try
    {
        byte[] bytes = crl
            .getExtensionValue(X509Extensions.DeltaCRLIndicator.getId());
        if (bytes != null)
        {
            dci = ASN1Integer.getInstance(X509ExtensionUtil
                .fromExtensionValue(bytes));
        }
    }
    catch (Exception e)
    {
        return false;
    }
    if (isDeltaCRLIndicatorEnabled())
    {
        if (dci == null)
        {
            return false;
        }
    }
    if (isCompleteCRLEnabled())
    {
        if (dci != null)
        {
            return false;
        }
    }
    if (dci != null)
    {

        if (maxBaseCRLNumber != null)
        {
            if (dci.getPositiveValue().compareTo(maxBaseCRLNumber) == 1)
            {
                return false;
            }
        }
    }
    if (issuingDistributionPointEnabled)
    {
        byte[] idp = crl
            .getExtensionValue(X509Extensions.IssuingDistributionPoint
                .getId());
        if (issuingDistributionPoint == null)
        {
            if (idp != null)
            {
                return false;
            }
        }
        else
        {
            if (!Arrays.areEqual(idp, issuingDistributionPoint))
            {
                return false;
            }
        }

    }
    return super.match((X509CRL)obj);
}
 
Example 13
Source File: PKIXCRLStoreSelector.java    From ripple-lib-java with ISC License 4 votes vote down vote up
public boolean match(CRL obj)
{
    if (!(obj instanceof X509CRL))
    {
        return baseSelector.match(obj);
    }

    X509CRL crl = (X509CRL)obj;
    ASN1Integer dci = null;
    try
    {
        byte[] bytes = crl
            .getExtensionValue(Extension.deltaCRLIndicator.getId());
        if (bytes != null)
        {
            dci = ASN1Integer.getInstance(ASN1OctetString.getInstance(bytes).getOctets());
        }
    }
    catch (Exception e)
    {
        return false;
    }
    if (isDeltaCRLIndicatorEnabled())
    {
        if (dci == null)
        {
            return false;
        }
    }
    if (isCompleteCRLEnabled())
    {
        if (dci != null)
        {
            return false;
        }
    }
    if (dci != null)
    {

        if (maxBaseCRLNumber != null)
        {
            if (dci.getPositiveValue().compareTo(maxBaseCRLNumber) == 1)
            {
                return false;
            }
        }
    }
    if (issuingDistributionPointEnabled)
    {
        byte[] idp = crl
            .getExtensionValue(Extension.issuingDistributionPoint
                .getId());
        if (issuingDistributionPoint == null)
        {
            if (idp != null)
            {
                return false;
            }
        }
        else
        {
            if (!Arrays.areEqual(idp, issuingDistributionPoint))
            {
                return false;
            }
        }

    }
    return baseSelector.match(obj);
}