use of com.github.zhenwei.core.asn1.ASN1InputStream in project android_packages_apps_Settings by DirtyUnicorns.
the class CertInstallerHelper method isCa.
private boolean isCa(X509Certificate cert) {
try {
byte[] asn1EncodedBytes = cert.getExtensionValue("2.5.29.19");
if (asn1EncodedBytes == null) {
return false;
}
DEROctetString derOctetString = (DEROctetString) new ASN1InputStream(asn1EncodedBytes).readObject();
byte[] octets = derOctetString.getOctets();
ASN1Sequence sequence = (ASN1Sequence) new ASN1InputStream(octets).readObject();
return BasicConstraints.getInstance(sequence).isCA();
} catch (IOException e) {
return false;
}
}
use of com.github.zhenwei.core.asn1.ASN1InputStream in project android_packages_apps_Settings by crdroidandroid.
the class CertInstallerHelper method isCa.
private boolean isCa(X509Certificate cert) {
try {
byte[] asn1EncodedBytes = cert.getExtensionValue("2.5.29.19");
if (asn1EncodedBytes == null) {
return false;
}
DEROctetString derOctetString = (DEROctetString) new ASN1InputStream(asn1EncodedBytes).readObject();
byte[] octets = derOctetString.getOctets();
ASN1Sequence sequence = (ASN1Sequence) new ASN1InputStream(octets).readObject();
return BasicConstraints.getInstance(sequence).isCA();
} catch (IOException e) {
return false;
}
}
use of com.github.zhenwei.core.asn1.ASN1InputStream in project keystore-explorer by kaikramer.
the class DNetscapeCertificateType method prepopulateWithValue.
private void prepopulateWithValue(byte[] value) throws IOException {
// we have a ByteArrayInputStream here which does not need to be closed
@SuppressWarnings("resource") DERBitString netscapeCertType = DERBitString.getInstance(new ASN1InputStream(value).readObject());
int netscapeCertTypes = netscapeCertType.intValue();
jcbSslClient.setSelected(isCertType(netscapeCertTypes, NetscapeCertType.sslClient));
jcbSslServer.setSelected(isCertType(netscapeCertTypes, NetscapeCertType.sslServer));
jcbSmime.setSelected(isCertType(netscapeCertTypes, NetscapeCertType.smime));
jcbObjectSigning.setSelected(isCertType(netscapeCertTypes, NetscapeCertType.objectSigning));
jcbReserved.setSelected(isCertType(netscapeCertTypes, NetscapeCertType.reserved));
jcbSslCa.setSelected(isCertType(netscapeCertTypes, NetscapeCertType.sslCA));
jcbSmimeCa.setSelected(isCertType(netscapeCertTypes, NetscapeCertType.smimeCA));
jcbObjectSigningCa.setSelected(isCertType(netscapeCertTypes, NetscapeCertType.objectSigningCA));
}
use of com.github.zhenwei.core.asn1.ASN1InputStream in project candlepin by candlepin.
the class X509CRLStreamWriter method write.
/**
* Write a modified CRL to the given output stream. This method will add each entry provided
* via the add() method.
*
* @param out OutputStream to write to
* @throws IOException if something goes wrong
*/
public void write(OutputStream out) throws IOException {
if (!locked || !preScanned) {
throw new IllegalStateException("The instance must be preScanned and locked before writing.");
}
if (emptyCrl) {
/* An empty CRL is going to be missing the revokedCertificates sequence
* and would require a lot of special casing during the streaming process.
* Instead, it is easier to construct the CRL in the normal fashion using
* BouncyCastle. Performance should be acceptable as long as the number of
* CRL entries being added are reasonable in number. Something less than a
* thousand or so should yield adequate performance.
*/
writeToEmptyCrl(out);
return;
}
originalLength = handleHeader(out);
int tag;
int tagNo;
int length;
while (originalLength > count.get()) {
tag = readTag(crlIn, count);
tagNo = readTagNumber(crlIn, tag, count);
length = readLength(crlIn, count);
byte[] entryBytes = new byte[length];
readFullyAndTrack(crlIn, entryBytes, count);
// We only need the serial number and not the rest of the stuff in the entry
ASN1Integer serial = (ASN1Integer) new ASN1InputStream(entryBytes).readObject();
if (deletedEntriesLength == 0 || !deletedEntries.contains(serial.getValue())) {
writeTag(out, tag, tagNo, signer);
writeLength(out, length, signer);
writeValue(out, entryBytes, signer);
}
}
// Write the new entries into the new CRL
for (ASN1Sequence entry : newEntries) {
writeBytes(out, entry.getEncoded(), signer);
}
// Copy the old extensions over
if (newExtensions != null) {
out.write(newExtensions);
signer.getOutputStream().write(newExtensions, 0, newExtensions.length);
}
out.write(signingAlg.getEncoded());
try {
byte[] signature = signer.getSignature();
ASN1BitString signatureBits = new DERBitString(signature);
out.write(signatureBits.getEncoded());
} catch (DataLengthException e) {
throw new IOException("Could not sign", e);
}
}
use of com.github.zhenwei.core.asn1.ASN1InputStream in project candlepin by candlepin.
the class BouncyCastlePKIUtility method decodeDERValue.
@Override
public String decodeDERValue(byte[] value) {
ASN1InputStream vis = null;
ASN1InputStream decoded = null;
try {
vis = new ASN1InputStream(value);
decoded = new ASN1InputStream(((DEROctetString) vis.readObject()).getOctets());
return decoded.readObject().toString();
} catch (IOException e) {
throw new RuntimeException(e);
} finally {
if (vis != null) {
try {
vis.close();
} catch (IOException e) {
log.warn("failed to close ASN1 stream", e);
}
}
if (decoded != null) {
try {
decoded.close();
} catch (IOException e) {
log.warn("failed to close ASN1 stream", e);
}
}
}
}
Aggregations