| | |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.protocols.asn1; |
| | | import org.opends.messages.Message; |
| | | |
| | | |
| | | |
| | |
| | | |
| | | import static org.opends.server.loggers.debug.DebugLogger.*; |
| | | import org.opends.server.loggers.debug.DebugTracer; |
| | | import static org.opends.server.messages.MessageHandler.*; |
| | | import static org.opends.server.messages.ProtocolMessages.*; |
| | | import static org.opends.messages.ProtocolMessages.*; |
| | | import static org.opends.server.protocols.asn1.ASN1Constants.*; |
| | | import static org.opends.server.util.ServerConstants.*; |
| | | import static org.opends.server.util.StaticUtils.*; |
| | |
| | | * Creates a new ASN.1 octet string element with the default type and the |
| | | * provided value. |
| | | * |
| | | * @param messageValue The value for this ASN.1 octet string element as a |
| | | * string. |
| | | */ |
| | | public ASN1OctetString(Message messageValue) |
| | | { |
| | | this(messageValue != null ? messageValue.toString() : null); |
| | | } |
| | | |
| | | |
| | | |
| | | /** |
| | | * Creates a new ASN.1 octet string element with the default type and the |
| | | * provided value. |
| | | * |
| | | * @param stringValue The value for this ASN.1 octet string element as a |
| | | * string. |
| | | */ |
| | |
| | | { |
| | | if (element == null) |
| | | { |
| | | int msgID = MSGID_ASN1_OCTET_STRING_DECODE_ELEMENT_NULL; |
| | | String message = getMessage(msgID); |
| | | throw new ASN1Exception(msgID, message); |
| | | Message message = ERR_ASN1_OCTET_STRING_DECODE_ELEMENT_NULL.get(); |
| | | throw new ASN1Exception(message); |
| | | } |
| | | |
| | | return new ASN1OctetString(element.getType(), element.value()); |
| | |
| | | // a valid ASN.1 element. |
| | | if (encodedElement == null) |
| | | { |
| | | int msgID = MSGID_ASN1_OCTET_STRING_DECODE_ARRAY_NULL; |
| | | String message = getMessage(msgID); |
| | | throw new ASN1Exception(msgID, message); |
| | | Message message = ERR_ASN1_OCTET_STRING_DECODE_ARRAY_NULL.get(); |
| | | throw new ASN1Exception(message); |
| | | } |
| | | |
| | | if (encodedElement.length < 2) |
| | | { |
| | | int msgID = MSGID_ASN1_SHORT_ELEMENT; |
| | | String message = getMessage(msgID, encodedElement.length); |
| | | throw new ASN1Exception(msgID, message); |
| | | Message message = ERR_ASN1_SHORT_ELEMENT.get(encodedElement.length); |
| | | throw new ASN1Exception(message); |
| | | } |
| | | |
| | | |
| | |
| | | int numLengthBytes = length; |
| | | if (numLengthBytes > 4) |
| | | { |
| | | int msgID = MSGID_ASN1_INVALID_NUM_LENGTH_BYTES; |
| | | String message = getMessage(msgID, numLengthBytes); |
| | | throw new ASN1Exception(msgID, message); |
| | | Message message = ERR_ASN1_INVALID_NUM_LENGTH_BYTES.get(numLengthBytes); |
| | | throw new ASN1Exception(message); |
| | | } |
| | | else if (encodedElement.length < (2 + numLengthBytes)) |
| | | { |
| | | int msgID = MSGID_ASN1_TRUNCATED_LENGTH; |
| | | String message = getMessage(msgID, numLengthBytes); |
| | | throw new ASN1Exception(msgID, message); |
| | | Message message = ERR_ASN1_TRUNCATED_LENGTH.get(numLengthBytes); |
| | | throw new ASN1Exception(message); |
| | | } |
| | | |
| | | length = 0x00; |
| | |
| | | // in the value. |
| | | if ((encodedElement.length - valueStartPos) != length) |
| | | { |
| | | int msgID = MSGID_ASN1_LENGTH_MISMATCH; |
| | | String message = getMessage(msgID, length, |
| | | (encodedElement.length - valueStartPos)); |
| | | throw new ASN1Exception(msgID, message); |
| | | Message message = ERR_ASN1_LENGTH_MISMATCH.get( |
| | | length, (encodedElement.length - valueStartPos)); |
| | | throw new ASN1Exception(message); |
| | | } |
| | | |
| | | |