From df59285898b635c3c9f3011609eb7a73e779ecb9 Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Fri, 07 Feb 2014 10:10:50 +0000
Subject: [PATCH] OPENDJ-1307 Migrate server ASN1 classes to SDK 

---
 opendj3-server-dev/src/server/org/opends/server/schema/CertificateSyntax.java |   48 ++++++++++++++++++++++++++----------------------
 1 files changed, 26 insertions(+), 22 deletions(-)

diff --git a/opendj3-server-dev/src/server/org/opends/server/schema/CertificateSyntax.java b/opendj3-server-dev/src/server/org/opends/server/schema/CertificateSyntax.java
index 074feb9..9bfd198 100644
--- a/opendj3-server-dev/src/server/org/opends/server/schema/CertificateSyntax.java
+++ b/opendj3-server-dev/src/server/org/opends/server/schema/CertificateSyntax.java
@@ -29,6 +29,7 @@
 
 
 
+import java.io.IOException;
 import java.util.List;
 import org.forgerock.i18n.slf4j.LocalizedLogger;
 
@@ -45,16 +46,15 @@
 import org.opends.server.types.ConfigChangeResult;
 import org.opends.server.types.ResultCode;
 
-import org.opends.server.protocols.asn1.ASN1;
-import org.opends.server.protocols.asn1.ASN1Exception;
-import org.opends.server.protocols.asn1.ASN1Reader;
+import org.forgerock.opendj.io.ASN1;
+import org.forgerock.opendj.ldap.DecodeException;
+import org.forgerock.opendj.io.ASN1Reader;
 
 import static org.opends.messages.SchemaMessages.*;
 
 import org.forgerock.i18n.LocalizableMessage;
 import org.forgerock.i18n.LocalizableMessageBuilder;
 import static org.opends.server.schema.SchemaConstants.*;
-import static org.opends.server.protocols.asn1.ASN1Constants.*;
 
 
 /**
@@ -282,7 +282,7 @@
     {
       // Certificate SIGNED SEQUENCE
       if (!reader.hasNextElement() ||
-          reader.peekType() != UNIVERSAL_SEQUENCE_TYPE)
+          reader.peekType() != ASN1.UNIVERSAL_SEQUENCE_TYPE)
       {
         invalidReason.append(ERR_SYNTAX_CERTIFICATE_NOTVALID.get());
         return false;
@@ -291,7 +291,7 @@
 
       // CertificateContent SEQUENCE
       if (!reader.hasNextElement() ||
-          reader.peekType() != UNIVERSAL_SEQUENCE_TYPE)
+          reader.peekType() != ASN1.UNIVERSAL_SEQUENCE_TYPE)
       {
         invalidReason.append(ERR_SYNTAX_CERTIFICATE_NOTVALID.get());
         return false;
@@ -300,11 +300,11 @@
 
       // Optional Version
       if (reader.hasNextElement() &&
-          reader.peekType() == (TYPE_MASK_CONTEXT | TYPE_MASK_CONSTRUCTED))
+          reader.peekType() == (ASN1.TYPE_MASK_CONTEXT | ASN1.TYPE_MASK_CONSTRUCTED))
       {
         reader.readStartExplicitTag();
         if (!reader.hasNextElement() ||
-            reader.peekType() != UNIVERSAL_INTEGER_TYPE)
+            reader.peekType() != ASN1.UNIVERSAL_INTEGER_TYPE)
         {
           invalidReason.append(ERR_SYNTAX_CERTIFICATE_NOTVALID.get());
           return false;
@@ -329,7 +329,7 @@
 
       // serialNumber
       if (!reader.hasNextElement() ||
-          reader.peekType() != UNIVERSAL_INTEGER_TYPE)
+          reader.peekType() != ASN1.UNIVERSAL_INTEGER_TYPE)
       {
         invalidReason.append(ERR_SYNTAX_CERTIFICATE_NOTVALID.get());
         return false;
@@ -338,7 +338,7 @@
 
       // signature AlgorithmIdentifier
       if (!reader.hasNextElement() ||
-          reader.peekType() != UNIVERSAL_SEQUENCE_TYPE)
+          reader.peekType() != ASN1.UNIVERSAL_SEQUENCE_TYPE)
       {
         invalidReason.append(ERR_SYNTAX_CERTIFICATE_NOTVALID.get());
         return false;
@@ -347,7 +347,7 @@
 
       // issuer name (SEQUENCE as of X.501, 9.2)
       if (!reader.hasNextElement() ||
-          reader.peekType() != UNIVERSAL_SEQUENCE_TYPE)
+          reader.peekType() != ASN1.UNIVERSAL_SEQUENCE_TYPE)
       {
         invalidReason.append(ERR_SYNTAX_CERTIFICATE_NOTVALID.get());
         return false;
@@ -356,7 +356,7 @@
 
       // validity (SEQUENCE)
       if (!reader.hasNextElement() ||
-          reader.peekType() != UNIVERSAL_SEQUENCE_TYPE)
+          reader.peekType() != ASN1.UNIVERSAL_SEQUENCE_TYPE)
       {
         invalidReason.append(ERR_SYNTAX_CERTIFICATE_NOTVALID.get());
         return false;
@@ -365,7 +365,7 @@
 
       // subject name (SEQUENCE as of X.501, 9.2)
       if (!reader.hasNextElement() ||
-          reader.peekType() != UNIVERSAL_SEQUENCE_TYPE)
+          reader.peekType() != ASN1.UNIVERSAL_SEQUENCE_TYPE)
       {
         invalidReason.append(ERR_SYNTAX_CERTIFICATE_NOTVALID.get());
         return false;
@@ -374,7 +374,7 @@
 
       // SubjectPublicKeyInfo (SEQUENCE)
       if (!reader.hasNextElement() ||
-          reader.peekType() != UNIVERSAL_SEQUENCE_TYPE)
+          reader.peekType() != ASN1.UNIVERSAL_SEQUENCE_TYPE)
       {
         invalidReason.append(ERR_SYNTAX_CERTIFICATE_NOTVALID.get());
         return false;
@@ -383,7 +383,7 @@
 
       // OPTIONAL issuerUniqueIdentifier
       if (reader.hasNextElement() &&
-          reader.peekType() == (TYPE_MASK_CONTEXT + 1))
+          reader.peekType() == (ASN1.TYPE_MASK_CONTEXT + 1))
       {
         if (x509Version < 1)
         {
@@ -396,7 +396,7 @@
 
       // OPTIONAL subjectUniqueIdentifier
       if (reader.hasNextElement() &&
-          reader.peekType() == (TYPE_MASK_CONTEXT + 2))
+          reader.peekType() == (ASN1.TYPE_MASK_CONTEXT + 2))
       {
         if (x509Version < 1)
         {
@@ -409,7 +409,7 @@
 
       // OPTIONAL extensions
       if (reader.hasNextElement() &&
-          reader.peekType() == ((TYPE_MASK_CONTEXT|TYPE_MASK_CONSTRUCTED) + 3))
+          reader.peekType() == ((ASN1.TYPE_MASK_CONTEXT|ASN1.TYPE_MASK_CONSTRUCTED) + 3))
       {
         if (x509Version < 2)
         {
@@ -419,7 +419,7 @@
         }
         reader.readStartExplicitTag(); // read Tag
         if (!reader.hasNextElement() ||
-            reader.peekType() != UNIVERSAL_SEQUENCE_TYPE)
+            reader.peekType() != ASN1.UNIVERSAL_SEQUENCE_TYPE)
         {
           // only valid in v3
           invalidReason.append(ERR_SYNTAX_CERTIFICATE_NOTVALID.get());
@@ -438,7 +438,7 @@
 
       // AlgorithmIdentifier SEQUENCE
       if (!reader.hasNextElement() ||
-          reader.peekType() != UNIVERSAL_SEQUENCE_TYPE)
+          reader.peekType() != ASN1.UNIVERSAL_SEQUENCE_TYPE)
       {
         invalidReason.append(ERR_SYNTAX_CERTIFICATE_NOTVALID.get());
         return false;
@@ -447,7 +447,7 @@
 
       // ENCRYPTED HASH BIT STRING
       if (!reader.hasNextElement() ||
-          reader.peekType() != UNIVERSAL_BIT_STRING_TYPE)
+          reader.peekType() != ASN1.UNIVERSAL_BIT_STRING_TYPE)
       {
         invalidReason.append(ERR_SYNTAX_CERTIFICATE_NOTVALID.get());
         return false;
@@ -470,12 +470,16 @@
       }
       // End of the certificate
     }
-    catch (ASN1Exception e)
+    catch (DecodeException e)
     {
-      System.out.println(e.getMessageObject());
       invalidReason.append(e.getMessageObject());
       return false;
     }
+    catch (IOException e)
+    {
+      invalidReason.append(e.getMessage());
+      return false;
+    }
 
     // The basic structure of the value is an X.509 certificate
     return true;

--
Gitblit v1.10.0