use of org.bouncycastle.asn1.DLSequence in project signer by demoiselle.
the class LPA method parse.
public void parse(ASN1Primitive derObject) {
ASN1Sequence sequence = ASN1Object.getDERSequence(derObject);
ASN1Primitive firstObject = sequence.getObjectAt(0).toASN1Primitive();
this.version = new Version();
int indice = 0;
if (firstObject instanceof ASN1Integer) {
this.version.parse(firstObject);
indice++;
}
ASN1Primitive policyInfos = sequence.getObjectAt(indice).toASN1Primitive();
DLSequence policyInfosSequence = (DLSequence) policyInfos;
if (policyInfosSequence != null && policyInfosSequence.size() > 0) {
this.policyInfos = new ArrayList<>();
for (int i = 0; i < policyInfosSequence.size(); i++) {
PolicyInfo policyInfo = new PolicyInfo();
policyInfo.parse(policyInfosSequence.getObjectAt(i).toASN1Primitive());
this.policyInfos.add(policyInfo);
}
}
this.nextUpdate = new GeneralizedTime();
this.nextUpdate.parse(sequence.getObjectAt(indice + 1).toASN1Primitive());
}
use of org.bouncycastle.asn1.DLSequence in project signer by demoiselle.
the class AlgorithmIdentifier method parse.
@Override
public void parse(ASN1Primitive derObject) {
this.algorithm = new ObjectIdentifier();
DLSequence derSequence = (DLSequence) derObject;
this.algorithm.parse(derSequence.getObjectAt(0).toASN1Primitive());
}
use of org.bouncycastle.asn1.DLSequence in project pdfbox by apache.
the class CertInformationHelper method getCrlUrlFromExtensionValue.
/**
* Gets the first CRL Url from given extension value. Structure has to be build as in 4.2.1.14
* CRL Distribution Points of RFC 2459.
*
* @param extensionValue to get the extension value from
* @return first CRL- URL or null
* @throws IOException when there is a problem with the extensionValue
*/
protected static String getCrlUrlFromExtensionValue(byte[] extensionValue) throws IOException {
ASN1Sequence asn1Seq = (ASN1Sequence) X509ExtensionUtil.fromExtensionValue(extensionValue);
Enumeration<?> objects = asn1Seq.getObjects();
while (objects.hasMoreElements()) {
DLSequence obj = (DLSequence) objects.nextElement();
DERTaggedObject derTagged = (DERTaggedObject) obj.getObjectAt(0);
derTagged = (DERTaggedObject) derTagged.getObject();
derTagged = (DERTaggedObject) derTagged.getObject();
DEROctetString uri = (DEROctetString) derTagged.getObject();
String url = new String(uri.getOctets());
// return first http(s)-Url for crl
if (url.startsWith("http")) {
return url;
}
}
return null;
}
use of org.bouncycastle.asn1.DLSequence in project pdfbox by apache.
the class OcspHelper method generateOCSPRequest.
/**
* Generates an OCSP request and generates the <code>CertificateID</code>.
*
* @return OCSP request, ready to fetch data
* @throws OCSPException
* @throws IOException
*/
private OCSPReq generateOCSPRequest() throws OCSPException, IOException {
Security.addProvider(new BouncyCastleProvider());
// Generate the ID for the certificate we are looking for
CertificateID certId;
try {
certId = new CertificateID(new SHA1DigestCalculator(), new JcaX509CertificateHolder(issuerCertificate), certificateToCheck.getSerialNumber());
} catch (CertificateEncodingException e) {
throw new IOException("Error creating CertificateID with the Certificate encoding", e);
}
OCSPReqBuilder builder = new OCSPReqBuilder();
Extension responseExtension = new Extension(OCSPObjectIdentifiers.id_pkix_ocsp_response, true, new DLSequence(OCSPObjectIdentifiers.id_pkix_ocsp_basic).getEncoded());
Random rand = new Random();
byte[] nonce = new byte[16];
rand.nextBytes(nonce);
encodedNonce = new DEROctetString(new DEROctetString(nonce));
Extension nonceExtension = new Extension(OCSPObjectIdentifiers.id_pkix_ocsp_nonce, true, encodedNonce);
builder.setRequestExtensions(new Extensions(new Extension[] { responseExtension, nonceExtension }));
builder.addRequest(certId);
System.out.println("Nonce: " + Hex.getString(nonceExtension.getExtnValue().getEncoded()));
return builder.build();
}
use of org.bouncycastle.asn1.DLSequence in project aion by aionnetwork.
the class ECDSASignature method decodeFromDER.
public static ECDSASignature decodeFromDER(byte[] bytes) {
try (ASN1InputStream decoder = new ASN1InputStream(bytes)) {
DLSequence seq = (DLSequence) decoder.readObject();
if (seq == null) {
throw new RuntimeException("Reached past end of ASN.1 stream.");
}
ASN1Integer r, s;
try {
r = (ASN1Integer) seq.getObjectAt(0);
s = (ASN1Integer) seq.getObjectAt(1);
} catch (ClassCastException e) {
throw new IllegalArgumentException(e);
}
// http://r6.ca/blog/20111119T211504Z.html
return new ECDSASignature(r.getPositiveValue(), s.getPositiveValue());
} catch (IOException e) {
throw new RuntimeException(e);
}
}
Aggregations