public x509certificateobject(org.ripple.bouncycastle.asn1.x509.certificate c) throws certificateparsingexception { this.c = c; try { byte[] bytes = this.getextensionbytes("2.5.29.19"); if (bytes != null) { basicconstraints = basicconstraints.getinstance(asn1primitive.frombytearray(bytes)); } } catch (exception e) { throw new certificateparsingexception("cannot construct basicconstraints: " + e); } try { byte[] bytes = this.getextensionbytes("2.5.29.15"); if (bytes != null) { derbitstring bits = derbitstring.getinstance(asn1primitive.frombytearray(bytes)); bytes = bits.getbytes(); int length = (bytes.length * 8) - bits.getpadbits(); keyusage = new boolean[(length < 9) ? 9 : length]; for (int i = 0; i != length; i++) { keyusage[i] = (bytes[i / 8] & (0x80 >>> (i % 8))) != 0; } } else { keyusage = null; } } catch (exception e) { throw new certificateparsingexception("cannot construct keyusage: " + e); } }
public boolean[] getsubjectuniqueid() { derbitstring id = c.gettbscertificate().getsubjectuniqueid(); if (id != null) { byte[] bytes = id.getbytes(); boolean[] boolid = new boolean[bytes.length * 8 - id.getpadbits()]; for (int i = 0; i != boolid.length; i++) { boolid[i] = (bytes[i / 8] & (0x80 >>> (i % 8))) != 0; } return boolid; } return null; }