You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by dr...@apache.org on 2015/01/25 05:13:36 UTC
[4/4] directory-kerberos git commit: Fixed some issues
Fixed some issues
Project: http://git-wip-us.apache.org/repos/asf/directory-kerberos/repo
Commit: http://git-wip-us.apache.org/repos/asf/directory-kerberos/commit/94e3ac5b
Tree: http://git-wip-us.apache.org/repos/asf/directory-kerberos/tree/94e3ac5b
Diff: http://git-wip-us.apache.org/repos/asf/directory-kerberos/diff/94e3ac5b
Branch: refs/heads/cleanpki
Commit: 94e3ac5be945f524c810adaa4ee4a55121ac24a1
Parents: e95b711
Author: Drankye <dr...@gmail.com>
Authored: Sun Jan 25 12:12:56 2015 +0800
Committer: Drankye <dr...@gmail.com>
Committed: Sun Jan 25 12:12:56 2015 +0800
----------------------------------------------------------------------
.../org/apache/commons/ssl/Asn1PkcsUtil.java | 22 +++++++++++++++-----
.../org/apache/kerby/asn1/type/Asn1Simple.java | 3 ++-
2 files changed, 19 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/94e3ac5b/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/Asn1PkcsUtil.java
----------------------------------------------------------------------
diff --git a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/Asn1PkcsUtil.java b/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/Asn1PkcsUtil.java
index db47c5a..1e17099 100644
--- a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/Asn1PkcsUtil.java
+++ b/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/Asn1PkcsUtil.java
@@ -52,13 +52,17 @@ public class Asn1PkcsUtil {
public static Asn1PkcsStructure analyze(byte[] asn1)
throws IOException {
Asn1InputBuffer asn = new Asn1InputBuffer(asn1);
- Asn1Type asn1Obj = asn.read();
+ Asn1Type asn1Obj;
+
Asn1PkcsStructure pkcs8 = new Asn1PkcsStructure();
- if (asn1Obj instanceof Asn1Collection) {
- Asn1PkcsUtil.analyze((Asn1Collection) asn1Obj, pkcs8, 0);
- } else {
- Asn1PkcsUtil.analyze(asn1Obj, pkcs8, 0);
+ while ((asn1Obj = asn.read()) != null) {
+ if (asn1Obj instanceof Asn1Collection) {
+ Asn1PkcsUtil.analyze((Asn1Collection) asn1Obj, pkcs8, 0);
+ } else {
+ Asn1PkcsUtil.analyze(asn1Obj, pkcs8, 0);
+ }
}
+
return pkcs8;
}
@@ -102,6 +106,14 @@ public class Asn1PkcsUtil {
if (pkcs8.derIntegers != null) {
pkcs8.derIntegers.add(new Asn1BigInteger(dInt.getValue()));
}
+ int intValue = dInt.getValue();
+ if (intValue > 0) {
+ if (pkcs8.iterationCount == 0) {
+ pkcs8.iterationCount = intValue;
+ } else if (pkcs8.keySize == 0) {
+ pkcs8.keySize = intValue;
+ }
+ }
} else if (obj instanceof Asn1BigInteger) {
Asn1BigInteger dInt = (Asn1BigInteger) obj;
if (pkcs8.derIntegers != null) {
http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/94e3ac5b/kerby-asn1/src/main/java/org/apache/kerby/asn1/type/Asn1Simple.java
----------------------------------------------------------------------
diff --git a/kerby-asn1/src/main/java/org/apache/kerby/asn1/type/Asn1Simple.java b/kerby-asn1/src/main/java/org/apache/kerby/asn1/type/Asn1Simple.java
index 11296be..4464000 100644
--- a/kerby-asn1/src/main/java/org/apache/kerby/asn1/type/Asn1Simple.java
+++ b/kerby-asn1/src/main/java/org/apache/kerby/asn1/type/Asn1Simple.java
@@ -166,7 +166,8 @@ public abstract class Asn1Simple<T> extends AbstractAsn1Type<T> {
case IA5_STRING:
return new Asn1IA5String();
case INTEGER:
- return new Asn1Integer();
+ // instead of Asn1Integer, for safe in case large number
+ return new Asn1BigInteger();
case NULL:
return Asn1Null.INSTANCE;
case NUMERIC_STRING: