Skip to content

Commit

Permalink
Merge pull request #346 from pramimpo/master
Browse files Browse the repository at this point in the history
Atualizando versão bouncycastle 1.69. Issue #345
  • Loading branch information
esaito committed Jun 24, 2022
2 parents ab8797f + 46c3bfd commit ac3ef0e
Show file tree
Hide file tree
Showing 14 changed files with 63 additions and 50 deletions.
2 changes: 1 addition & 1 deletion bom/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,7 @@
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcmail-jdk15on</artifactId>
<version>1.62</version>
<version>1.69</version>
</dependency>
</dependencies>
</dependencyManagement>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@
import org.bouncycastle.asn1.DERSequence;
import org.bouncycastle.asn1.DERTaggedObject;
import org.bouncycastle.asn1.DLSequence;
import org.bouncycastle.asn1.DLTaggedObject;
import org.demoiselle.signer.policy.engine.util.MessagesBundle;

/**
Expand Down Expand Up @@ -75,8 +76,12 @@ public static ASN1Sequence getDERSequence(ASN1Primitive derObject) {
} else if (derObject instanceof DERSequence) {
sequence = (DERSequence) derObject;
} else if (derObject instanceof DLSequence) {

sequence = (DLSequence) derObject.toASN1Primitive();
sequence = (DLSequence) derObject;
} else if (derObject instanceof DLTaggedObject) {
ASN1Primitive object = ((DLTaggedObject) derObject).getObject();
if (object instanceof DLSequence) {
sequence = (DLSequence) object;
}
}
return sequence;
}
Expand All @@ -96,6 +101,11 @@ public static ASN1Enumerated getDEREnumerated(ASN1Primitive derObject) {
}
} else if (derObject instanceof ASN1Enumerated) {
derEnumerated = (ASN1Enumerated) derObject;
} else if (derObject instanceof DLTaggedObject) {
ASN1Primitive object = ((DLTaggedObject) derObject).getObject();
if (object instanceof ASN1Enumerated) {
derEnumerated = (ASN1Enumerated) object;
}
}
return derEnumerated;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@

import org.bouncycastle.asn1.ASN1Primitive;
import org.bouncycastle.asn1.ASN1Sequence;
import org.bouncycastle.asn1.DERTaggedObject;
import org.bouncycastle.asn1.DLTaggedObject;
import org.demoiselle.signer.policy.engine.asn1.ASN1Object;

/**
Expand Down Expand Up @@ -140,9 +140,9 @@ public void parse(ASN1Primitive derObject) {
if (total > 0) {
for (int i = 0; i < total; i++) {
ASN1Primitive object = derSequence.getObjectAt(i).toASN1Primitive();
if (object instanceof DERTaggedObject) {
DERTaggedObject derTaggedObject = (DERTaggedObject) object;
TAG tag = TAG.getTag(derTaggedObject.getTagNo());
if (object instanceof DLTaggedObject) {
DLTaggedObject dlTaggedObject = (DLTaggedObject) object;
TAG tag = TAG.getTag(dlTaggedObject.getTagNo());
switch (tag) {
case signerAlgorithmConstraints:
this.signerAlgorithmConstraints = new AlgorithmConstraints();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@

import org.bouncycastle.asn1.ASN1Primitive;
import org.bouncycastle.asn1.ASN1Sequence;
import org.bouncycastle.asn1.DERTaggedObject;
import org.bouncycastle.asn1.DLTaggedObject;
import org.demoiselle.signer.policy.engine.asn1.ASN1Object;

/**
Expand Down Expand Up @@ -132,9 +132,9 @@ public void parse(ASN1Primitive derObject) {
if (total > 0) {
for (int i = 0; i < total; i++) {
ASN1Primitive object = derSequence.getObjectAt(i).toASN1Primitive();
if (object instanceof DERTaggedObject) {
DERTaggedObject derTaggedObject = (DERTaggedObject) object;
TAG tag = TAG.getTag(derTaggedObject.getTagNo());
if (object instanceof DLTaggedObject) {
DLTaggedObject dlTaggedObject = (DLTaggedObject) object;
TAG tag = TAG.getTag(dlTaggedObject.getTagNo());
switch (tag) {
case attrCertificateTrustTrees:
this.attrCertificateTrustTrees = new CertificateTrustTrees();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@

import org.bouncycastle.asn1.ASN1Primitive;
import org.bouncycastle.asn1.DERSequence;
import org.bouncycastle.asn1.DLSequence;
import org.demoiselle.signer.policy.engine.asn1.ASN1Object;

/**
Expand Down Expand Up @@ -70,7 +71,7 @@ public void setObjectIdentifiers(Collection<ObjectIdentifier> objectIdentifiers)

@Override
public void parse(ASN1Primitive derObject) {
DERSequence derSequence = (DERSequence) derObject;
DLSequence derSequence = (DLSequence) derObject;
int total = derSequence.size();
for (int i = 0; i < total; i++) {
ObjectIdentifier objectIdentifier = new ObjectIdentifier();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,8 +43,8 @@

import org.bouncycastle.asn1.ASN1Primitive;
import org.bouncycastle.asn1.ASN1Sequence;
import org.bouncycastle.asn1.DERSequence;
import org.bouncycastle.asn1.DERTaggedObject;
import org.bouncycastle.asn1.DLSequence;
import org.bouncycastle.asn1.DLTaggedObject;
import org.demoiselle.signer.policy.engine.asn1.ASN1Object;

/**
Expand Down Expand Up @@ -129,7 +129,7 @@ public void setPolicyConstraints(PolicyConstraints policyConstraints) {
@Override
public void parse(ASN1Primitive derObject) {
ASN1Sequence derSequence = ASN1Object.getDERSequence(derObject);
DERSequence x509Sequence = (DERSequence) derSequence.getObjectAt(0).toASN1Primitive();
DLSequence x509Sequence = (DLSequence) derSequence.getObjectAt(0).toASN1Primitive();
try {
ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(x509Sequence.getEncoded());
this.trustpoint = (X509Certificate) CertificateFactory.getInstance("X509").generateCertificate(byteArrayInputStream);
Expand All @@ -142,9 +142,9 @@ public void parse(ASN1Primitive derObject) {
if (total > 0) {
for (int i = 0; i < total; i++) {
ASN1Primitive object = derSequence.getObjectAt(i).toASN1Primitive();
if (object instanceof DERTaggedObject) {
DERTaggedObject derTaggedObject = (DERTaggedObject) object;
TAG tag = TAG.getTag(derTaggedObject.getTagNo());
if (object instanceof DLTaggedObject) {
DLTaggedObject dlTaggedObject = (DLTaggedObject) object;
TAG tag = TAG.getTag(dlTaggedObject.getTagNo());
switch (tag) {
case pathLenConstraint:
this.pathLenConstraint = new PathLenConstraint();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@

import org.bouncycastle.asn1.ASN1Primitive;
import org.bouncycastle.asn1.ASN1Sequence;
import org.bouncycastle.asn1.DERTaggedObject;
import org.bouncycastle.asn1.DLTaggedObject;
import org.demoiselle.signer.policy.engine.asn1.ASN1Object;

/**
Expand All @@ -56,7 +56,7 @@
* @see ASN1Object
* @see ASN1Primitive
* @see ASN1Sequence
* @see DERTaggedObject
* @see DLTaggedObject
*/
public class CommitmentType extends ASN1Object {

Expand Down Expand Up @@ -121,9 +121,9 @@ public void parse(ASN1Primitive derObject) {
if (total > 0) {
for (int i = 0; i < total; i++) {
ASN1Primitive object = derSequence.getObjectAt(i).toASN1Primitive();
if (object instanceof DERTaggedObject) {
DERTaggedObject derTaggedObject = (DERTaggedObject) object;
TAG tag = TAG.getTag(derTaggedObject.getTagNo());
if (object instanceof DLTaggedObject) {
DLTaggedObject dlTaggedObject = (DLTaggedObject) object;
TAG tag = TAG.getTag(dlTaggedObject.getTagNo());
switch (tag) {
case fieldOfApplication:
this.fieldOfApplication = new FieldOfApplication();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@

import org.bouncycastle.asn1.ASN1Primitive;
import org.bouncycastle.asn1.ASN1Sequence;
import org.bouncycastle.asn1.DERTaggedObject;
import org.bouncycastle.asn1.DLTaggedObject;
import org.demoiselle.signer.policy.engine.asn1.ASN1Object;

/**
Expand All @@ -65,7 +65,7 @@
* @see ASN1Object
* @see ASN1Primitive
* @see ASN1Sequence
* @see DERTaggedObject
* @see DLTaggedObject
*/
public class CommonRules extends ASN1Object {

Expand Down Expand Up @@ -137,9 +137,9 @@ public void parse(ASN1Primitive derObject) {
if (total > 0) {
for (int i = 0; i < total; i++) {
ASN1Primitive object = derSequence.getObjectAt(i).toASN1Primitive();
if (object instanceof DERTaggedObject) {
DERTaggedObject derTaggedObject = (DERTaggedObject) object;
TAG tag = TAG.getTag(derTaggedObject.getTagNo());
if (object instanceof DLTaggedObject) {
DLTaggedObject dlTaggedObject = (DLTaggedObject) object;
TAG tag = TAG.getTag(dlTaggedObject.getTagNo());
switch (tag) {
case signerAndVeriferRules:
this.signerAndVeriferRules = new SignerAndVerifierRules();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,8 @@

import org.bouncycastle.asn1.ASN1Primitive;
import org.bouncycastle.asn1.DERSequence;
import org.bouncycastle.asn1.DERTaggedObject;
import org.bouncycastle.asn1.DLSequence;
import org.bouncycastle.asn1.DLTaggedObject;
import org.demoiselle.signer.policy.engine.asn1.ASN1Object;

/**
Expand All @@ -58,7 +59,7 @@
*
* @see ASN1Primitive
* @see DERSequence
* @see DERTaggedObject
* @see DLTaggedObject
* @see org.bouncycastle.asn1.ASN1Object
* @see ASN1Object
*/
Expand All @@ -78,8 +79,8 @@ public void setPathLenConstraints(
// FIXME there are many parser methods with this strategy should we refactor it?
@Override
public void parse(ASN1Primitive derObject) {
DERTaggedObject derTaggedObject = (DERTaggedObject) derObject;
DERSequence derSequence = (DERSequence) derTaggedObject.getObject();
DLTaggedObject dlTaggedObject = (DLTaggedObject) derObject;
DLSequence derSequence = (DLSequence) dlTaggedObject.getObject();
int total = derSequence.size();
for (int i = 0; i < total; i++) {
ObjectIdentifier objectIdentifier = new ObjectIdentifier();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@

import org.bouncycastle.asn1.ASN1Primitive;
import org.bouncycastle.asn1.ASN1Sequence;
import org.bouncycastle.asn1.DERTaggedObject;
import org.bouncycastle.asn1.DLTaggedObject;
import org.demoiselle.signer.policy.engine.asn1.ASN1Object;

/**
Expand All @@ -58,7 +58,7 @@
*
* @see ASN1Primitive
* @see ASN1Sequence
* @see DERTaggedObject
* @see DLTaggedObject
* @see ASN1Object
*/
public class PolicyConstraints extends ASN1Object {
Expand Down Expand Up @@ -109,9 +109,9 @@ public void parse(ASN1Primitive derObject) {
if (total > 0) {
for (int i = 0; i < total; i++) {
ASN1Primitive object = derSequence.getObjectAt(i).toASN1Primitive();
if (object instanceof DERTaggedObject) {
DERTaggedObject derTaggedObject = (DERTaggedObject) object;
TAG tag = TAG.getTag(derTaggedObject.getTagNo());
if (object instanceof DLTaggedObject) {
DLTaggedObject dlTaggedObject = (DLTaggedObject) object;
TAG tag = TAG.getTag(dlTaggedObject.getTagNo());
switch (tag) {
case requireExplicitPolicy:
this.requireExplicitPolicy = new SkipCerts();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ public void setCommitmentRules(CommitmentRules commitmentRules) {

public void parse(ASN1Primitive derObject) {
ASN1Sequence derSequence = ASN1Object.getDERSequence(derObject);

this.signingPeriod = new SigningPeriod();
this.signingPeriod.parse(derSequence.getObjectAt(0).toASN1Primitive());

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,8 @@
import org.bouncycastle.asn1.ASN1Primitive;
import org.bouncycastle.asn1.ASN1Sequence;
import org.bouncycastle.asn1.DERSequence;
import org.bouncycastle.asn1.DERTaggedObject;
import org.bouncycastle.asn1.DLSequence;
import org.bouncycastle.asn1.DLTaggedObject;
import org.demoiselle.signer.policy.engine.asn1.ASN1Object;

/**
Expand Down Expand Up @@ -87,7 +88,7 @@
* @see ASN1Sequence
* @see ASN1Primitive
* @see DERSequence
* @see DERTaggedObject
* @see DLTaggedObject
*/
public class SignerRules extends ASN1Object {

Expand Down Expand Up @@ -163,9 +164,9 @@ public void parse(ASN1Primitive primitive) {
if (total > 0) {
for (int i = 0; i < total; i++) {
ASN1Primitive object = derSequence.getObjectAt(i).toASN1Primitive();
if (object instanceof DERTaggedObject) {
DERTaggedObject derTaggedObject = (DERTaggedObject) object;
TAG tag = TAG.getTag(derTaggedObject.getTagNo());
if (object instanceof DLTaggedObject) {
DLTaggedObject dlTaggedObject = (DLTaggedObject) object;
TAG tag = TAG.getTag(dlTaggedObject.getTagNo());
switch (tag) {
case mandatedCertificateRef:
this.mandatedCertificateRef = CertRefReq.parse(object);
Expand All @@ -186,7 +187,7 @@ public void parse(ASN1Primitive primitive) {

int i = 0;
ASN1Encodable object = derSequence.getObjectAt(i);
if (!(object instanceof DERSequence)) {
if (!(object instanceof DLSequence)) {
if (object instanceof ASN1Boolean) {
this.externalSignedData = ((ASN1Boolean) object).isTrue();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@

import org.bouncycastle.asn1.ASN1Primitive;
import org.bouncycastle.asn1.ASN1Sequence;
import org.bouncycastle.asn1.DERTaggedObject;
import org.bouncycastle.asn1.DLTaggedObject;
import org.demoiselle.signer.policy.engine.asn1.ASN1Object;

/**
Expand Down Expand Up @@ -138,9 +138,9 @@ public void parse(ASN1Primitive derObject) {
if (total > 0) {
for (int i = 0; i < total; i++) {
ASN1Primitive object = derSequence.getObjectAt(i).toASN1Primitive();
if (object instanceof DERTaggedObject) {
DERTaggedObject derTaggedObject = (DERTaggedObject) object;
TAG tag = TAG.getTag(derTaggedObject.getTagNo());
if (object instanceof DLTaggedObject) {
DLTaggedObject dlTaggedObject = (DLTaggedObject) object;
TAG tag = TAG.getTag(dlTaggedObject.getTagNo());
switch (tag) {
case ttsCertificateTrustTrees:
this.ttsCertificateTrustTrees = new CertificateTrustTrees();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,8 +45,8 @@
public class PolicyFactoryTest {

private static final Logger logger = LoggerFactory.getLogger(PolicyFactoryTest.class);

//@Test
@Test
public void testLoadPolicy() {
PolicyFactory factory = PolicyFactory.getInstance();
Policies[] policies = PolicyFactory.Policies.values();
Expand Down

0 comments on commit ac3ef0e

Please sign in to comment.