From 22094368c2865dcfb6daf8366425212b721a4657 Mon Sep 17 00:00:00 2001
From: matthew_swift <matthew_swift@localhost>
Date: Thu, 05 Feb 2009 17:42:14 +0000
Subject: [PATCH] Merge ASN1 branch to trunk
---
opends/src/server/org/opends/server/crypto/GetSymmetricKeyExtendedOperation.java | 55 ++++++++++++++++++++++++++++---------------------------
1 files changed, 28 insertions(+), 27 deletions(-)
diff --git a/opends/src/server/org/opends/server/crypto/GetSymmetricKeyExtendedOperation.java b/opends/src/server/org/opends/server/crypto/GetSymmetricKeyExtendedOperation.java
index ff7aebf..6f8377d 100644
--- a/opends/src/server/org/opends/server/crypto/GetSymmetricKeyExtendedOperation.java
+++ b/opends/src/server/org/opends/server/crypto/GetSymmetricKeyExtendedOperation.java
@@ -36,18 +36,17 @@
import org.opends.server.config.ConfigException;
import org.opends.server.core.DirectoryServer;
import org.opends.server.core.ExtendedOperation;
-import org.opends.server.protocols.asn1.ASN1Sequence;
-import org.opends.server.protocols.asn1.ASN1Element;
-import org.opends.server.protocols.asn1.ASN1Exception;
-import org.opends.server.protocols.asn1.ASN1OctetString;
import org.opends.server.util.StaticUtils;
import org.opends.server.util.ServerConstants;
+import org.opends.server.protocols.asn1.ASN1Reader;
+import org.opends.server.protocols.asn1.ASN1;
+import org.opends.server.protocols.asn1.ASN1Exception;
+import org.opends.server.protocols.asn1.ASN1Writer;
import org.opends.messages.Message;
import static org.opends.messages.ExtensionMessages.*;
import java.util.Set;
import java.util.HashSet;
-import java.util.ArrayList;
/**
* This class implements the get symmetric key extended operation, an OpenDS
@@ -167,29 +166,28 @@
try
{
- ASN1Sequence valueSequence =
- ASN1Sequence.decodeAsSequence(requestValue.value());
- for (ASN1Element e : valueSequence.elements())
+ ASN1Reader reader = ASN1.getReader(requestValue);
+ reader.readStartSequence();
+ while(reader.hasNextElement())
{
- switch (e.getType())
+ switch (reader.peekType())
{
case TYPE_SYMMETRIC_KEY_ELEMENT:
- requestSymmetricKey =
- ASN1OctetString.decodeAsOctetString(e).stringValue();
+ requestSymmetricKey = reader.readOctetStringAsString();
break;
case TYPE_INSTANCE_KEY_ID_ELEMENT:
- instanceKeyID =
- ASN1OctetString.decodeAsOctetString(e).stringValue();
+ instanceKeyID = reader.readOctetStringAsString();
break;
default:
Message message = ERR_GET_SYMMETRIC_KEY_INVALID_TYPE.get(
- StaticUtils.byteToHex(e.getType()));
+ StaticUtils.byteToHex(reader.peekType()));
operation.appendErrorMessage(message);
return;
}
}
+ reader.readEndSequence();
}
catch (ASN1Exception ae)
{
@@ -226,7 +224,7 @@
operation.setResponseOID(
ServerConstants.OID_GET_SYMMETRIC_KEY_EXTENDED_OP);
- operation.setResponseValue(new ASN1OctetString(responseSymmetricKey));
+ operation.setResponseValue(ByteString.valueOf(responseSymmetricKey));
operation.setResultCode(ResultCode.SUCCESS);
}
catch (CryptoManagerException e)
@@ -251,23 +249,26 @@
*
* @return An ASN.1 octet string containing the encoded request value.
*/
- public static ASN1OctetString encodeRequestValue(
+ public static ByteString encodeRequestValue(
String symmetricKey,
String instanceKeyID)
{
- ArrayList<ASN1Element> elements = new ArrayList<ASN1Element>(2);
+ ByteStringBuilder builder = new ByteStringBuilder();
+ ASN1Writer writer = ASN1.getWriter(builder);
- ASN1OctetString symmetricKeyElement =
- new ASN1OctetString(TYPE_SYMMETRIC_KEY_ELEMENT, symmetricKey);
- elements.add(symmetricKeyElement);
+ try
+ {
+ writer.writeStartSequence();
+ writer.writeOctetString(TYPE_SYMMETRIC_KEY_ELEMENT, symmetricKey);
+ writer.writeOctetString(TYPE_INSTANCE_KEY_ID_ELEMENT, instanceKeyID);
+ writer.writeEndSequence();
+ }
+ catch(Exception e)
+ {
+ // TODO: DO something
+ }
- ASN1OctetString instanceKeyIDElement =
- new ASN1OctetString(TYPE_INSTANCE_KEY_ID_ELEMENT,
- instanceKeyID);
- elements.add(instanceKeyIDElement);
-
- ASN1Sequence valueSequence = new ASN1Sequence(elements);
- return new ASN1OctetString(valueSequence.encode());
+ return builder.toByteString();
}
--
Gitblit v1.10.0