From 5ef5b7ebec21ac99a61466cf5861b7d301bc7da0 Mon Sep 17 00:00:00 2001
From: boli <boli@localhost>
Date: Fri, 01 May 2009 01:14:55 +0000
Subject: [PATCH] Second fix for issue 3949: All ASN.1 parsing code now ignores trailing unrecognized SEQUENCE components.
---
opends/src/server/org/opends/server/crypto/GetSymmetricKeyExtendedOperation.java | 27 +++++++++------------------
1 files changed, 9 insertions(+), 18 deletions(-)
diff --git a/opends/src/server/org/opends/server/crypto/GetSymmetricKeyExtendedOperation.java b/opends/src/server/org/opends/server/crypto/GetSymmetricKeyExtendedOperation.java
index 6f8377d..e866da7 100644
--- a/opends/src/server/org/opends/server/crypto/GetSymmetricKeyExtendedOperation.java
+++ b/opends/src/server/org/opends/server/crypto/GetSymmetricKeyExtendedOperation.java
@@ -22,7 +22,7 @@
* CDDL HEADER END
*
*
- * Copyright 2008 Sun Microsystems, Inc.
+ * Copyright 2008-2009 Sun Microsystems, Inc.
*/
package org.opends.server.crypto;
@@ -168,24 +168,15 @@
{
ASN1Reader reader = ASN1.getReader(requestValue);
reader.readStartSequence();
- while(reader.hasNextElement())
+ if(reader.hasNextElement() &&
+ reader.peekType() == TYPE_SYMMETRIC_KEY_ELEMENT)
{
- switch (reader.peekType())
- {
- case TYPE_SYMMETRIC_KEY_ELEMENT:
- requestSymmetricKey = reader.readOctetStringAsString();
- break;
-
- case TYPE_INSTANCE_KEY_ID_ELEMENT:
- instanceKeyID = reader.readOctetStringAsString();
- break;
-
- default:
- Message message = ERR_GET_SYMMETRIC_KEY_INVALID_TYPE.get(
- StaticUtils.byteToHex(reader.peekType()));
- operation.appendErrorMessage(message);
- return;
- }
+ requestSymmetricKey = reader.readOctetStringAsString();
+ }
+ if(reader.hasNextElement() &&
+ reader.peekType() == TYPE_INSTANCE_KEY_ID_ELEMENT)
+ {
+ instanceKeyID = reader.readOctetStringAsString();
}
reader.readEndSequence();
}
--
Gitblit v1.10.0