org.spongycastle.jce.provider.PrincipalUtils Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of prov Show documentation
Show all versions of prov Show documentation
Spongy Castle is a package-rename (org.bouncycastle.* to org.spongycastle.*) of Bouncy Castle
intended for the Android platform. Android unfortunately ships with a stripped-down version of
Bouncy Castle, which prevents easy upgrades - Spongy Castle overcomes this and provides a full,
up-to-date version of the Bouncy Castle cryptographic libs.
The newest version!
package org.spongycastle.jce.provider;
import java.security.cert.TrustAnchor;
import java.security.cert.X509CRL;
import java.security.cert.X509CRLEntry;
import java.security.cert.X509Certificate;
import javax.security.auth.x500.X500Principal;
import org.spongycastle.asn1.x500.X500Name;
import org.spongycastle.x509.X509AttributeCertificate;
class PrincipalUtils
{
static X500Name getSubjectPrincipal(X509Certificate cert)
{
return X500Name.getInstance(cert.getSubjectX500Principal().getEncoded());
}
static X500Name getIssuerPrincipal(X509CRL crl)
{
return X500Name.getInstance(crl.getIssuerX500Principal().getEncoded());
}
static X500Name getIssuerPrincipal(X509Certificate cert)
{
return X500Name.getInstance(cert.getIssuerX500Principal().getEncoded());
}
static X500Name getCA(TrustAnchor trustAnchor)
{
return X500Name.getInstance(trustAnchor.getCA().getEncoded());
}
/**
* Returns the issuer of an attribute certificate or certificate.
*
* @param cert The attribute certificate or certificate.
* @return The issuer as X500Principal
.
*/
static X500Name getEncodedIssuerPrincipal(
Object cert)
{
if (cert instanceof X509Certificate)
{
return getIssuerPrincipal((X509Certificate)cert);
}
else
{
return X500Name.getInstance(((X500Principal)((X509AttributeCertificate)cert).getIssuer().getPrincipals()[0]).getEncoded());
}
}
}