Added class to store trusted certificate entries for lists
This commit is contained in:
@@ -0,0 +1,119 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2012 Tobias Brunner
|
||||||
|
* Hochschule fuer Technik Rapperswil
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify it
|
||||||
|
* under the terms of the GNU General Public License as published by the
|
||||||
|
* Free Software Foundation; either version 2 of the License, or (at your
|
||||||
|
* option) any later version. See <http://www.fsf.org/copyleft/gpl.txt>.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful, but
|
||||||
|
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||||
|
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
* for more details.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.strongswan.android.data;
|
||||||
|
|
||||||
|
import java.security.cert.X509Certificate;
|
||||||
|
|
||||||
|
import android.net.http.SslCertificate;
|
||||||
|
|
||||||
|
public class TrustedCertificateEntry implements Comparable<TrustedCertificateEntry>
|
||||||
|
{
|
||||||
|
private final X509Certificate mCert;
|
||||||
|
private final String mAlias;
|
||||||
|
private String mSubjectPrimary;
|
||||||
|
private String mSubjectSecondary = "";
|
||||||
|
private String mString;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create an entry for certificate lists.
|
||||||
|
*
|
||||||
|
* @param alias alias of the certificate (as used in the KeyStore)
|
||||||
|
* @param cert certificate associated with that alias
|
||||||
|
*/
|
||||||
|
public TrustedCertificateEntry(String alias, X509Certificate cert)
|
||||||
|
{
|
||||||
|
mCert = cert;
|
||||||
|
mAlias = alias;
|
||||||
|
|
||||||
|
SslCertificate ssl = new SslCertificate(mCert);
|
||||||
|
String o = ssl.getIssuedTo().getOName();
|
||||||
|
String ou = ssl.getIssuedTo().getUName();
|
||||||
|
String cn = ssl.getIssuedTo().getCName();
|
||||||
|
if (!o.isEmpty())
|
||||||
|
{
|
||||||
|
mSubjectPrimary = o;
|
||||||
|
if (!cn.isEmpty())
|
||||||
|
{
|
||||||
|
mSubjectSecondary = cn;
|
||||||
|
}
|
||||||
|
else if (!ou.isEmpty())
|
||||||
|
{
|
||||||
|
mSubjectSecondary = ou;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (!cn.isEmpty())
|
||||||
|
{
|
||||||
|
mSubjectPrimary = cn;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
mSubjectPrimary = ssl.getIssuedTo().getDName();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The main subject of this certificate (O, CN or the complete DN, whatever
|
||||||
|
* is found first).
|
||||||
|
*
|
||||||
|
* @return the main subject
|
||||||
|
*/
|
||||||
|
public String getSubjectPrimary()
|
||||||
|
{
|
||||||
|
return mSubjectPrimary;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the secondary subject of this certificate (either CN or OU if primary
|
||||||
|
* subject is O, empty otherwise)
|
||||||
|
*
|
||||||
|
* @return the secondary subject
|
||||||
|
*/
|
||||||
|
public String getSubjectSecondary()
|
||||||
|
{
|
||||||
|
return mSubjectSecondary;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The alias associated with this certificate.
|
||||||
|
*
|
||||||
|
* @return KeyStore alias of this certificate
|
||||||
|
*/
|
||||||
|
public String getAlias()
|
||||||
|
{
|
||||||
|
return mAlias;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The certificate.
|
||||||
|
*
|
||||||
|
* @return certificate
|
||||||
|
*/
|
||||||
|
public X509Certificate getCertificate()
|
||||||
|
{
|
||||||
|
return mCert;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int compareTo(TrustedCertificateEntry another)
|
||||||
|
{
|
||||||
|
int diff = mSubjectPrimary.compareToIgnoreCase(another.mSubjectPrimary);
|
||||||
|
if (diff == 0)
|
||||||
|
{
|
||||||
|
diff = mSubjectSecondary.compareToIgnoreCase(another.mSubjectSecondary);
|
||||||
|
}
|
||||||
|
return diff;
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user