From 1a32ba623a05567be6be1203a8025b82dd4f153c Mon Sep 17 00:00:00 2001
From: Manuel Gaupp <m.gaupp@scanplus.de>
Date: Sun, 02 Mar 2014 13:13:59 +0000
Subject: [PATCH] CR-2890: Port certificateSyntax and certificateExactMatch to SDK
---
opendj-core/src/main/java/org/forgerock/opendj/ldap/GSERParser.java | 406 +++++++
opendj-core/src/main/java/org/forgerock/opendj/ldap/schema/SchemaConstants.java | 27
opendj-core/src/test/java/org/forgerock/opendj/ldap/schema/SyntaxTestCase.java | 3
opendj-core/src/test/java/org/forgerock/opendj/ldap/schema/CertificateSyntaxTest.java | 166 ++
opendj-core/src/main/java/org/forgerock/opendj/ldap/schema/CertificateExactAssertionSyntaxImpl.java | 71 +
opendj-core/src/main/resources/com/forgerock/opendj/ldap/core.properties | 44
opendj-core/src/test/java/org/forgerock/opendj/ldif/LDIFChangeRecordReaderTestCase.java | 13
opendj-core/src/main/java/org/forgerock/opendj/ldap/schema/SchemaBuilder.java | 25
opendj-core/src/main/java/org/forgerock/opendj/ldap/schema/GenerateCoreSchema.java | 7
opendj-core/src/main/java/org/forgerock/opendj/ldap/schema/CoreSchemaImpl.java | 108 +
opendj-core/src/test/java/org/forgerock/opendj/ldap/schema/CertificateExactMatchingRuleImplTest.java | 212 +++
opendj-core/src/main/java/org/forgerock/opendj/io/ASN1Reader.java | 34
opendj-core/src/main/java/org/forgerock/opendj/io/AbstractASN1Reader.java | 25
opendj-core/src/test/java/org/forgerock/opendj/io/ASN1ReaderTestCase.java | 31
opendj-core/src/main/java/org/forgerock/opendj/ldap/schema/CertificateExactMatchingRuleImpl.java | 241 ++++
opendj-core/src/main/java/org/forgerock/opendj/ldap/schema/CertificateSyntaxImpl.java | 181 ++
opendj-core/src/main/java/org/forgerock/opendj/ldap/schema/CoreSchema.java | 1539 +++++++++++++------------
opendj-core/src/main/java/org/forgerock/opendj/ldap/schema/Schema.java | 43
opendj-core/src/test/java/org/forgerock/opendj/ldap/GSERParserTestCase.java | 299 +++++
19 files changed, 2,671 insertions(+), 804 deletions(-)
diff --git a/opendj-core/src/main/java/org/forgerock/opendj/io/ASN1Reader.java b/opendj-core/src/main/java/org/forgerock/opendj/io/ASN1Reader.java
index e1af324..e270b6b 100644
--- a/opendj-core/src/main/java/org/forgerock/opendj/io/ASN1Reader.java
+++ b/opendj-core/src/main/java/org/forgerock/opendj/io/ASN1Reader.java
@@ -23,6 +23,7 @@
*
* Copyright 2006-2008 Sun Microsystems, Inc.
* Portions copyright 2012-2013 ForgeRock AS.
+ * Portions Copyright 2014 Manuel Gaupp
*/
package org.forgerock.opendj.io;
@@ -338,9 +339,9 @@
void readStartSequence() throws DecodeException, IOException;
/**
- * Reads the next element as an explicit tag having the Universal Sequence
- * ASN.1 type tag. All further reads will read the elements in the explicit
- * tag until {@link #readEndExplicitTag()} is called.
+ * Reads the next element as an explicit ignoring the ASN.1 type tag. All
+ * further reads will read the elements in the explicit tag until
+ * {@link #readEndExplicitTag()} is called.
*
* @throws DecodeException
* If the element cannot be decoded as an explicit tag.
@@ -350,6 +351,20 @@
void readStartExplicitTag() throws DecodeException, IOException;
/**
+ * Reads the next element as an explicit tag having the provided tag type.
+ * All further reads will read the elements in the explicit tag until
+ * {@link #readEndExplicitTag()} is called.
+ *
+ * @param type
+ * The expected type tag of the element.
+ * @throws DecodeException
+ * If the element cannot be decoded as an explicit tag.
+ * @throws IOException
+ * If an unexpected IO error occurred.
+ */
+ void readStartExplicitTag(byte type) throws DecodeException, IOException;
+
+ /**
* Reads the next element as a sequence having the provided type tag. All
* further reads will read the elements in the sequence until
* {@link #readEndSequence()} is called.
@@ -399,4 +414,17 @@
* If an unexpected IO error occurred.
*/
ASN1Reader skipElement() throws DecodeException, IOException;
+
+ /**
+ * Skips the next element having the provided type tag without decoding it.
+ *
+ * @param type
+ * The expected type tag of the element.
+ * @return A reference to this ASN.1 reader.
+ * @throws DecodeException
+ * If the next element does not have the provided type tag.
+ * @throws IOException
+ * If an unexpected IO error occurred.
+ */
+ ASN1Reader skipElement(byte type) throws DecodeException, IOException;
}
diff --git a/opendj-core/src/main/java/org/forgerock/opendj/io/AbstractASN1Reader.java b/opendj-core/src/main/java/org/forgerock/opendj/io/AbstractASN1Reader.java
index 7648ee0..9327266 100644
--- a/opendj-core/src/main/java/org/forgerock/opendj/io/AbstractASN1Reader.java
+++ b/opendj-core/src/main/java/org/forgerock/opendj/io/AbstractASN1Reader.java
@@ -23,6 +23,7 @@
*
* Copyright 2006-2008 Sun Microsystems, Inc.
* Portions copyright 2012-2013 ForgeRock AS.
+ * Portions Copyright 2014 Manuel Gaupp
*/
package org.forgerock.opendj.io;
@@ -132,6 +133,17 @@
/**
* {@inheritDoc}
*/
+ public void readStartExplicitTag(byte type) throws IOException {
+ if (type == 0x00) {
+ type = (ASN1.TYPE_MASK_CONTEXT | ASN1.TYPE_MASK_CONSTRUCTED);
+ }
+ checkType(type);
+ readStartExplicitTag();
+ }
+
+ /**
+ * {@inheritDoc}
+ */
public void readStartSequence(byte type) throws IOException {
if (type == 0x00) {
type = ASN1.UNIVERSAL_SEQUENCE_TYPE;
@@ -153,6 +165,19 @@
readStartSet();
}
+ /**
+ * {@inheritDoc}
+ */
+ public ASN1Reader skipElement(final byte expectedType) throws IOException {
+ if (peekType() != expectedType) {
+ final LocalizableMessage message =
+ ERR_ASN1_UNEXPECTED_TAG.get(expectedType, peekType());
+ throw DecodeException.fatalError(message);
+ }
+ skipElement();
+ return this;
+ }
+
private void checkType(final byte expectedType) throws IOException {
if (peekType() != expectedType) {
final LocalizableMessage message =
diff --git a/opendj-core/src/main/java/org/forgerock/opendj/ldap/GSERParser.java b/opendj-core/src/main/java/org/forgerock/opendj/ldap/GSERParser.java
new file mode 100644
index 0000000..e4c9f9a
--- /dev/null
+++ b/opendj-core/src/main/java/org/forgerock/opendj/ldap/GSERParser.java
@@ -0,0 +1,406 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License"). You may not use this file except in compliance
+ * with the License.
+ *
+ * You can obtain a copy of the license at legal-notices/CDDLv1_0.txt
+ * or http://forgerock.org/license/CDDLv1.0.html.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at legal-notices/CDDLv1_0.txt.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information:
+ * Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ *
+ *
+ * Copyright 2013-2014 Manuel Gaupp
+ */
+package org.forgerock.opendj.ldap;
+
+import java.math.BigInteger;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import org.forgerock.util.Reject;
+import org.forgerock.i18n.LocalizableMessage;
+
+import static com.forgerock.opendj.ldap.CoreMessages.WARN_GSER_NO_VALID_IDENTIFIEDCHOICE;
+import static com.forgerock.opendj.ldap.CoreMessages.WARN_GSER_NO_VALID_IDENTIFIER;
+import static com.forgerock.opendj.ldap.CoreMessages.WARN_GSER_NO_VALID_INTEGER;
+import static com.forgerock.opendj.ldap.CoreMessages.WARN_GSER_NO_VALID_SEPARATOR;
+import static com.forgerock.opendj.ldap.CoreMessages.WARN_GSER_NO_VALID_STRING;
+import static com.forgerock.opendj.ldap.CoreMessages.WARN_GSER_PATTERN_NO_MATCH;
+import static com.forgerock.opendj.ldap.CoreMessages.WARN_GSER_SPACE_CHAR_EXPECTED;
+
+/**
+ * This class implements a parser for strings which are encoded using the
+ * Generic String Encoding Rules (GSER) defined in RFC 3641.
+ *
+ * @see <a href="http://tools.ietf.org/html/rfc3641">RFC 3641 - Generic String
+ * Encoding Rules (GSER) for ASN.1 Types</a>
+ */
+public final class GSERParser {
+
+ private final String gserValue;
+
+ private int pos;
+
+ private final int length;
+
+ /**
+ * Pattern to match an identifier defined in RFC 3641, section 3.4.
+ * <pre>
+ * An <identifier> conforms to the definition of an identifier in ASN.1
+ * notation (Clause 11.3 of X.680 [8]). It begins with a lowercase
+ * letter and is followed by zero or more letters, digits, and hyphens.
+ * A hyphen is not permitted to be the last character, nor is it to be
+ * followed by another hyphen. The case of letters in an identifier is
+ * always significant.
+ *
+ * identifier = lowercase *alphanumeric *(hyphen 1*alphanumeric)
+ * alphanumeric = uppercase / lowercase / decimal-digit
+ * uppercase = %x41-5A ; "A" to "Z"
+ * lowercase = %x61-7A ; "a" to "z"
+ * decimal-digit = %x30-39 ; "0" to "9"
+ * hyphen = "-"
+ * </pre>
+ */
+ private static final Pattern GSER_IDENTIFIER = Pattern.compile("^([a-z]([A-Za-z0-9]|(-[A-Za-z0-9]))*)");
+
+ /**
+ * Pattern to match the identifier part (including the colon) of an
+ * IdentifiedChoiceValue defined in RFC 3641, section 3.12.
+ * <pre>
+ * IdentifiedChoiceValue = identifier ":" Value
+ * </pre>
+ */
+ private static final Pattern GSER_CHOICE_IDENTIFIER = Pattern.compile("^([a-z]([A-Za-z0-9]|(-[A-Za-z0-9]))*:)");
+
+ /**
+ * Pattern to match "sp", containing zero, one or more space characters.
+ * <pre>
+ * sp = *%x20 ; zero, one or more space characters
+ * </pre>
+ */
+ private static final Pattern GSER_SP = Pattern.compile("^( *)");
+
+ /**
+ * Pattern to match "msp", containing at least one space character.
+ * <pre>
+ * msp = 1*%x20 ; one or more space characters
+ * </pre>
+ */
+ private static final Pattern GSER_MSP = Pattern.compile("^( +)");
+
+ /**
+ * Pattern to match an Integer value.
+ */
+ private static final Pattern GSER_INTEGER = Pattern.compile("^(\\d+)");
+
+ /**
+ * Pattern to match a GSER StringValue, defined in RFC 3641, section 3.2:
+ * <pre>
+ * Any embedded double quotes in the resulting UTF-8 character string
+ * are escaped by repeating the double quote characters.
+ *
+ * [...]
+ *
+ * StringValue = dquote *SafeUTF8Character dquote
+ * dquote = %x22 ; " (double quote)
+ * </pre>
+ */
+ private static final Pattern GSER_STRING = Pattern.compile("^(\"([^\"]|(\"\"))*\")");
+
+ /**
+ * Pattern to match the beginning of a GSER encoded Sequence.
+ * <pre>
+ * SequenceValue = ComponentList
+ * ComponentList = "{" [ sp NamedValue *( "," sp NamedValue) ] sp "}"
+ * </pre>
+ */
+ private static final Pattern GSER_SEQUENCE_START = Pattern.compile("^(\\{)");
+
+ /**
+ * Pattern to match the end of a GSER encoded Sequence.
+ * <pre>
+ * SequenceValue = ComponentList
+ * ComponentList = "{" [ sp NamedValue *( "," sp NamedValue) ] sp "}"
+ * </pre>
+ */
+ private static final Pattern GSER_SEQUENCE_END = Pattern.compile("^(\\})");
+
+ /**
+ * Pattern to match the separator used in GSER encoded sequences.
+ */
+ private static final Pattern GSER_SEP = Pattern.compile("^(,)");
+
+ /**
+ * Creates a new GSER Parser.
+ *
+ * @param value the GSER encoded String value
+ */
+ public GSERParser(CharSequence value) {
+ Reject.checkNotNull(value);
+ this.gserValue = value.toString();
+ this.pos = 0;
+ this.length = value.length();
+ }
+
+ /**
+ * Determines if the GSER String contains at least one character to be read.
+ *
+ * @return <code>true</code> if there is at least one remaining character or
+ * <code>false</code> otherwise.
+ */
+ public boolean hasNext() {
+ return (pos < length);
+ }
+
+ /**
+ * Determines if the remaining GSER String matches the provided pattern.
+ *
+ * @param pattern the pattern to search for
+ *
+ * @return <code>true</code> if the remaining string matches the pattern or
+ * <code>false</code> otherwise.
+ */
+ private boolean hasNext(Pattern pattern) {
+ if (!hasNext()) {
+ return false;
+ }
+
+ Matcher matcher = pattern.matcher(gserValue.substring(pos, length));
+
+ return matcher.find();
+ }
+
+ /**
+ * Returns the String matched by the first capturing group of the pattern.
+ * The parser advances past the input matched by the first capturing group.
+ *
+ * @param pattern the pattern to search for
+ *
+ * @return the String matched by the first capturing group of the pattern
+ *
+ * @throws DecodeException If no match could be found
+ */
+ private String next(Pattern pattern) throws DecodeException {
+ Matcher matcher = pattern.matcher(gserValue.substring(pos, length));
+ if (matcher.find() && matcher.groupCount() >= 1) {
+ pos += matcher.end(1);
+ return matcher.group(1);
+ } else {
+ final LocalizableMessage msg =
+ WARN_GSER_PATTERN_NO_MATCH.get(pattern.pattern(),
+ gserValue.substring(pos, length));
+ throw DecodeException.error(msg);
+ }
+ }
+
+ /**
+ * Skips the input matched by the first capturing group.
+ *
+ * @param pattern the pattern to search for
+ *
+ * @throws DecodeException If no match could be found
+ */
+ private void skip(Pattern pattern) throws DecodeException {
+ Matcher matcher = pattern.matcher(gserValue.substring(pos, length));
+
+ if (matcher.find() && matcher.groupCount() >= 1) {
+ pos += matcher.end(1);
+ } else {
+ final LocalizableMessage msg =
+ WARN_GSER_PATTERN_NO_MATCH.get(pattern.pattern(),
+ gserValue.substring(pos, length));
+ throw DecodeException.error(msg);
+ }
+ }
+
+ /**
+ * Skips the input matching zero, one or more space characters.
+ *
+ * @return reference to this GSERParser
+ *
+ * @throws DecodeException If no match could be found
+ */
+ public GSERParser skipSP() throws DecodeException {
+ skip(GSER_SP);
+ return this;
+ }
+
+ /**
+ * Skips the input matching one or more space characters.
+ *
+ * @return reference to this GSERParser
+ *
+ * @throws DecodeException If no match could be found
+ */
+ public GSERParser skipMSP() throws DecodeException {
+ skip(GSER_MSP);
+ return this;
+ }
+
+ /**
+ * Skips the input matching the start of a sequence and subsequent space
+ * characters.
+ *
+ * @return reference to this GSERParser
+ *
+ * @throws DecodeException If the input does not match the start of a
+ * sequence
+ */
+ public GSERParser readStartSequence() throws DecodeException {
+ next(GSER_SEQUENCE_START);
+ skip(GSER_SP);
+ return this;
+ }
+
+ /**
+ * Skips the input matching the end of a sequence and preceding space
+ * characters.
+ *
+ * @return reference to this GSERParser
+ *
+ * @throws DecodeException If the input does not match the end of a sequence
+ */
+ public GSERParser readEndSequence() throws DecodeException {
+ skip(GSER_SP);
+ next(GSER_SEQUENCE_END);
+ return this;
+ }
+
+ /**
+ * Skips the input matching the separator pattern (",") and subsequenct
+ * space characters.
+ *
+ * @return reference to this GSERParser
+ *
+ * @throws DecodeException If the input does not match the separator
+ * pattern.
+ */
+ public GSERParser skipSeparator() throws DecodeException {
+ if (!hasNext(GSER_SEP)) {
+ final LocalizableMessage msg =
+ WARN_GSER_NO_VALID_SEPARATOR.get(gserValue.substring(pos, length));
+ throw DecodeException.error(msg);
+ }
+ skip(GSER_SEP);
+ skip(GSER_SP);
+ return this;
+ }
+
+ /**
+ * Returns the next element as a String.
+ *
+ * @return the input matching the String pattern
+ *
+ * @throws DecodeException If the input does not match the string pattern.
+ */
+ public String nextString() throws DecodeException {
+ if (!hasNext(GSER_STRING)) {
+ final LocalizableMessage msg =
+ WARN_GSER_NO_VALID_STRING.get(gserValue.substring(pos, length));
+ throw DecodeException.error(msg);
+ }
+
+ String str = next(GSER_STRING);
+
+ // Strip leading and trailing dquotes; unescape double dquotes
+ return str.substring(1, str.length() - 1).replace("\"\"", "\"");
+ }
+
+ /**
+ * Returns the next element as an Integer.
+ *
+ * @return the input matching the integer pattern
+ *
+ * @throws DecodeException If the input does not match the integer pattern
+ */
+ public int nextInteger() throws DecodeException {
+ if (!hasNext(GSER_INTEGER)) {
+ final LocalizableMessage msg =
+ WARN_GSER_NO_VALID_INTEGER.get(gserValue.substring(pos, length));
+ throw DecodeException.error(msg);
+ }
+ return Integer.valueOf(next(GSER_INTEGER)).intValue();
+ }
+
+ /**
+ * Returns the next element as a BigInteger.
+ *
+ * @return the input matching the integer pattern
+ *
+ * @throws DecodeException If the input does not match the integer pattern
+ */
+ public BigInteger nextBigInteger() throws DecodeException {
+ if (!hasNext(GSER_INTEGER)) {
+ final LocalizableMessage msg =
+ WARN_GSER_NO_VALID_INTEGER.get(gserValue.substring(pos, length));
+ throw DecodeException.error(msg);
+ }
+ return new BigInteger(next(GSER_INTEGER));
+ }
+
+ /**
+ * Returns the identifier of the next NamedValue element.
+ *
+ * @return the identifier of the NamedValue element
+ *
+ * @throws DecodeException If the input does not match the identifier
+ * pattern of a NamedValue
+ */
+ public String nextNamedValueIdentifier() throws DecodeException {
+ if (!hasNext(GSER_IDENTIFIER)) {
+ final LocalizableMessage msg =
+ WARN_GSER_NO_VALID_IDENTIFIER.get(gserValue.substring(pos, length));
+ throw DecodeException.error(msg);
+ }
+ String identifier = next(GSER_IDENTIFIER);
+ if (!hasNext(GSER_MSP)) {
+ final LocalizableMessage msg =
+ WARN_GSER_SPACE_CHAR_EXPECTED.get(gserValue.substring(pos, length));
+ throw DecodeException.error(msg);
+ }
+ skipMSP();
+ return identifier;
+ }
+
+ /**
+ * Return the identifier of the next IdentifiedChoiceValue element.
+ *
+ * @return the identifier of the IdentifiedChoiceValue element
+ *
+ * @throws DecodeException If the input does not match the identifier
+ * pattern of an IdentifiedChoiceValue
+ */
+ public String nextChoiceValueIdentifier() throws DecodeException {
+ if (!hasNext(GSER_CHOICE_IDENTIFIER)) {
+ final LocalizableMessage msg =
+ WARN_GSER_NO_VALID_IDENTIFIEDCHOICE.get(gserValue.substring(pos, length));
+ throw DecodeException.error(msg);
+ }
+ String identifier = next(GSER_CHOICE_IDENTIFIER);
+
+ // Remove the colon at the end of the identifier
+ return identifier.substring(0, identifier.length() - 1);
+ }
+
+ /**
+ * Returns the GSER encoded String value.
+ *
+ * @return The GSER encoded String value.
+ */
+ @Override
+ public String toString() {
+ return gserValue;
+ }
+}
diff --git a/opendj-core/src/main/java/org/forgerock/opendj/ldap/schema/CertificateExactAssertionSyntaxImpl.java b/opendj-core/src/main/java/org/forgerock/opendj/ldap/schema/CertificateExactAssertionSyntaxImpl.java
new file mode 100644
index 0000000..c86fa56
--- /dev/null
+++ b/opendj-core/src/main/java/org/forgerock/opendj/ldap/schema/CertificateExactAssertionSyntaxImpl.java
@@ -0,0 +1,71 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License"). You may not use this file except in compliance
+ * with the License.
+ *
+ * You can obtain a copy of the license at legal-notices/CDDLv1_0.txt
+ * or http://forgerock.org/license/CDDLv1.0.html.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at legal-notices/CDDLv1_0.txt.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information:
+ * Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ *
+ *
+ * Copyright 2009 Sun Microsystems, Inc.
+ * Portions Copyright 2014 Manuel Gaupp
+ */
+package org.forgerock.opendj.ldap.schema;
+
+import static org.forgerock.opendj.ldap.schema.SchemaConstants.SYNTAX_CERTIFICATE_EXACT_ASSERTION_NAME;
+
+import org.forgerock.i18n.LocalizableMessageBuilder;
+import org.forgerock.opendj.ldap.ByteSequence;
+
+/**
+ * This class defines the Certificate Exact Assertion attribute syntax, which
+ * contains components for matching X.509 certificates.
+ */
+final class CertificateExactAssertionSyntaxImpl extends AbstractSyntaxImpl {
+
+ /**
+ * {@inheritDoc}
+ */
+ public String getName() {
+ return SYNTAX_CERTIFICATE_EXACT_ASSERTION_NAME;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public boolean isBEREncodingRequired() {
+ return false;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public boolean isHumanReadable() {
+ return true;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public boolean valueIsAcceptable(final Schema schema, final ByteSequence value,
+ final LocalizableMessageBuilder invalidReason) {
+ // This method will never be called because this syntax is only used
+ // within assertions.
+ return true;
+ }
+}
diff --git a/opendj-core/src/main/java/org/forgerock/opendj/ldap/schema/CertificateExactMatchingRuleImpl.java b/opendj-core/src/main/java/org/forgerock/opendj/ldap/schema/CertificateExactMatchingRuleImpl.java
new file mode 100644
index 0000000..4f420a1
--- /dev/null
+++ b/opendj-core/src/main/java/org/forgerock/opendj/ldap/schema/CertificateExactMatchingRuleImpl.java
@@ -0,0 +1,241 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License"). You may not use this file except in compliance
+ * with the License.
+ *
+ * You can obtain a copy of the license at legal-notices/CDDLv1_0.txt
+ * or http://forgerock.org/license/CDDLv1.0.html.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at legal-notices/CDDLv1_0.txt.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information:
+ * Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ *
+ *
+ * Copyright 2006-2009 Sun Microsystems, Inc.
+ * Portions Copyright 2013-2014 Manuel Gaupp
+ */
+package org.forgerock.opendj.ldap.schema;
+
+import java.io.ByteArrayInputStream;
+import java.io.InputStream;
+import java.math.BigInteger;
+import java.security.cert.CertificateException;
+import java.security.cert.CertificateFactory;
+import java.security.cert.X509Certificate;
+import javax.security.auth.x500.X500Principal;
+
+import com.forgerock.opendj.util.StaticUtils;
+import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
+import org.forgerock.opendj.ldap.Assertion;
+import org.forgerock.opendj.ldap.ByteSequence;
+import org.forgerock.opendj.ldap.ByteString;
+import org.forgerock.opendj.ldap.ByteStringBuilder;
+import org.forgerock.opendj.ldap.DecodeException;
+import org.forgerock.opendj.ldap.GSERParser;
+import org.forgerock.opendj.ldap.DN;
+
+import static com.forgerock.opendj.ldap.CoreMessages.ERR_MR_CERTIFICATE_MATCH_EXPECTED_END;
+import static com.forgerock.opendj.ldap.CoreMessages.ERR_MR_CERTIFICATE_MATCH_GSER_INVALID;
+import static com.forgerock.opendj.ldap.CoreMessages.ERR_MR_CERTIFICATE_MATCH_INVALID_DN;
+import static com.forgerock.opendj.ldap.CoreMessages.ERR_MR_CERTIFICATE_MATCH_IDENTIFIER_NOT_FOUND;
+import static com.forgerock.opendj.ldap.CoreMessages.ERR_MR_CERTIFICATE_MATCH_PARSE_ERROR;
+
+/**
+ * This class implements the certificateExactMatch matching rule defined in
+ * X.509 and referenced in RFC 4523.
+ */
+final class CertificateExactMatchingRuleImpl
+ extends AbstractMatchingRuleImpl {
+
+ private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
+
+ /**
+ * The GSER identifier for the serialNumber named value.
+ */
+ private static final String GSER_ID_SERIALNUMBER = "serialNumber";
+
+ /**
+ * The GSER identifier for the issuer named value.
+ */
+ private static final String GSER_ID_ISSUER = "issuer";
+
+ /**
+ * The GSER identifier for the rdnSequence IdentifiedChoiceValue.
+ */
+ private static final String GSER_ID_RDNSEQUENCE = "rdnSequence";
+
+ /**
+ * Retrieves the normalized form of the provided value, which is best suited
+ * for efficiently performing matching operations on that value.
+ *
+ * @param value The value to be normalized.
+ *
+ * @return The normalized version of the provided value.
+ *
+ * @throws DirectoryException If the provided value is invalid according to
+ * the associated attribute syntax.
+ */
+ public ByteString normalizeAttributeValue(final Schema schema, final ByteSequence value)
+ throws DecodeException {
+ final BigInteger serialNumber;
+ final String dnstring;
+ String certificateIssuer;
+
+ // Read the X.509 Certificate and extract serialNumber and issuerDN
+ try {
+ CertificateFactory certFactory = CertificateFactory.getInstance("X.509");
+ InputStream inputStream = new ByteArrayInputStream(value.toByteArray());
+ X509Certificate certValue = (X509Certificate) certFactory
+ .generateCertificate(inputStream);
+
+ serialNumber = certValue.getSerialNumber();
+ X500Principal issuer = certValue.getIssuerX500Principal();
+ dnstring = issuer.getName(X500Principal.RFC2253);
+ } catch (CertificateException ce) {
+ // There seems to be a problem while parsing the certificate.
+ final LocalizableMessage message =
+ ERR_MR_CERTIFICATE_MATCH_PARSE_ERROR.get(ce.getMessage());
+ logger.trace(message);
+
+ // return the raw bytes as a fall back
+ return value.toByteString();
+ }
+
+ // Normalize the DN
+ try {
+ DN dn = DN.valueOf(dnstring, schema.asNonStrictSchema());
+ certificateIssuer = dn.toNormalizedString();
+ } catch (Exception e) {
+ // We couldn't normalize the DN for some reason.
+ final LocalizableMessage message
+ = ERR_MR_CERTIFICATE_MATCH_INVALID_DN.get(dnstring,
+ StaticUtils.getExceptionMessage(e));
+ throw DecodeException.error(message);
+ }
+
+ // Create the encoded value
+ return createEncodedValue(serialNumber, certificateIssuer);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public Assertion getAssertion(final Schema schema, final ByteSequence value)
+ throws DecodeException {
+ // validate and normalize the GSER structure
+ // according to the definitions from RFC 4523, Appendix A.1
+ final BigInteger serialNumber;
+ final String dnstring;
+ String certificateIssuer;
+
+ final GSERParser parser;
+ String identifier;
+
+ parser = new GSERParser(value.toString());
+
+ try {
+ // the String starts with a sequence
+ parser.readStartSequence();
+ } catch (DecodeException e) {
+ logger.traceException(e);
+ // Assume the assertion value is a certificate and parse issuer and
+ // serial number. If the value is not even a certificate then the
+ // raw bytes will be returned.
+ return new DefaultEqualityAssertion(normalizeAttributeValue(schema, value));
+ }
+
+ try {
+ // the first namedValue is serialNumber
+ identifier = parser.nextNamedValueIdentifier();
+ if (!identifier.equals(GSER_ID_SERIALNUMBER)) {
+ LocalizableMessage message =
+ ERR_MR_CERTIFICATE_MATCH_IDENTIFIER_NOT_FOUND.get(GSER_ID_SERIALNUMBER);
+ throw DecodeException.error(message);
+ }
+
+ // The value for the serialNumber
+ serialNumber = parser.nextBigInteger();
+
+ // separator
+ parser.skipSeparator();
+
+ // the next namedValue is issuer
+ identifier = parser.nextNamedValueIdentifier();
+ if (!identifier.equals(GSER_ID_ISSUER)) {
+ LocalizableMessage message =
+ ERR_MR_CERTIFICATE_MATCH_IDENTIFIER_NOT_FOUND.get(GSER_ID_ISSUER);
+ throw DecodeException.error(message);
+ }
+
+ // expecting "rdnSequence:"
+ identifier = parser.nextChoiceValueIdentifier();
+ if (!identifier.equals(GSER_ID_RDNSEQUENCE)) {
+ LocalizableMessage message =
+ ERR_MR_CERTIFICATE_MATCH_IDENTIFIER_NOT_FOUND.get(GSER_ID_RDNSEQUENCE);
+ throw DecodeException.error(message);
+ }
+
+ // now the issuer dn
+ dnstring = parser.nextString();
+
+ // Closing the Sequence
+ parser.readEndSequence();
+
+ // There should not be additional characters
+ if (parser.hasNext()) {
+ LocalizableMessage message = ERR_MR_CERTIFICATE_MATCH_EXPECTED_END.get();
+ throw DecodeException.error(message);
+ }
+ } catch (DecodeException e) {
+ LocalizableMessage message =
+ ERR_MR_CERTIFICATE_MATCH_GSER_INVALID.get(StaticUtils.getExceptionMessage(e));
+ throw DecodeException.error(message);
+ }
+
+ // Normalize the DN
+ try {
+ DN dn = DN.valueOf(dnstring, schema.asNonStrictSchema());
+ certificateIssuer = dn.toNormalizedString();
+ } catch (Exception e) {
+ logger.traceException(e);
+
+ // We couldn't normalize the DN for some reason.
+ LocalizableMessage message =
+ ERR_MR_CERTIFICATE_MATCH_INVALID_DN.get(dnstring,
+ StaticUtils.getExceptionMessage(e));
+ throw DecodeException.error(message);
+ }
+
+ // Create the encoded value
+ return new DefaultEqualityAssertion(createEncodedValue(serialNumber, certificateIssuer));
+ }
+
+ /**
+ * Creates the value containing serialNumber and issuer DN.
+ *
+ * @param serial the serialNumber
+ * @param issuerDN the issuer DN String
+ *
+ * @return the encoded ByteString
+ */
+ private static ByteString createEncodedValue(BigInteger serial,
+ String issuerDN) {
+ ByteStringBuilder builder = new ByteStringBuilder();
+ builder.append(StaticUtils.getBytes(issuerDN));
+ builder.append((byte) 0); // Separator
+ builder.append(serial.toByteArray());
+ return builder.toByteString();
+ }
+
+}
diff --git a/opendj-core/src/main/java/org/forgerock/opendj/ldap/schema/CertificateSyntaxImpl.java b/opendj-core/src/main/java/org/forgerock/opendj/ldap/schema/CertificateSyntaxImpl.java
index 3352cbe..26e8af1 100644
--- a/opendj-core/src/main/java/org/forgerock/opendj/ldap/schema/CertificateSyntaxImpl.java
+++ b/opendj-core/src/main/java/org/forgerock/opendj/ldap/schema/CertificateSyntaxImpl.java
@@ -22,63 +22,208 @@
*
*
* Copyright 2009 Sun Microsystems, Inc.
+ * Portions Copyright 2014 Manuel Gaupp
*/
package org.forgerock.opendj.ldap.schema;
-import static org.forgerock.opendj.ldap.schema.SchemaConstants.EMR_OCTET_STRING_OID;
+import java.io.IOException;
+
+import static com.forgerock.opendj.ldap.CoreMessages.ERR_SYNTAX_CERTIFICATE_INVALID_DER;
+import static com.forgerock.opendj.ldap.CoreMessages.ERR_SYNTAX_CERTIFICATE_INVALID_VERSION;
+import static com.forgerock.opendj.ldap.CoreMessages.ERR_SYNTAX_CERTIFICATE_NO_ELEMENT_EXPECTED;
+import static com.forgerock.opendj.ldap.CoreMessages.ERR_SYNTAX_CERTIFICATE_NOTVALID;
+import static com.forgerock.opendj.ldap.CoreMessages.ERR_SYNTAX_CERTIFICATE_ONLY_VALID_V23;
+import static com.forgerock.opendj.ldap.CoreMessages.ERR_SYNTAX_CERTIFICATE_ONLY_VALID_V3;
+import static org.forgerock.opendj.ldap.schema.SchemaConstants.EMR_CERTIFICATE_EXACT_OID;
import static org.forgerock.opendj.ldap.schema.SchemaConstants.OMR_OCTET_STRING_OID;
import static org.forgerock.opendj.ldap.schema.SchemaConstants.SYNTAX_CERTIFICATE_NAME;
+import static org.forgerock.opendj.io.ASN1.*;
+import com.forgerock.opendj.util.StaticUtils;
import org.forgerock.i18n.LocalizableMessageBuilder;
+import org.forgerock.opendj.io.ASN1;
+import org.forgerock.opendj.io.ASN1Reader;
import org.forgerock.opendj.ldap.ByteSequence;
+import org.forgerock.opendj.ldap.DecodeException;
+
+
/**
- * This class implements the certificate attribute syntax. This should be
- * restricted to holding only X.509 certificates, but we will accept any set of
- * bytes. It will be treated much like the octet string attribute syntax.
+ * This class implements the certificate attribute syntax. It is restricted to
+ * accept only X.509 certificates.
*/
final class CertificateSyntaxImpl extends AbstractSyntaxImpl {
+ /**
+ * {@inheritDoc}
+ */
@Override
public String getEqualityMatchingRule() {
- return EMR_OCTET_STRING_OID;
+ return EMR_CERTIFICATE_EXACT_OID;
}
+ /**
+ * {@inheritDoc}
+ */
+ @Override
public String getName() {
return SYNTAX_CERTIFICATE_NAME;
}
+ /**
+ * {@inheritDoc}
+ */
@Override
public String getOrderingMatchingRule() {
return OMR_OCTET_STRING_OID;
}
+ /**
+ * {@inheritDoc}
+ */
@Override
public boolean isBEREncodingRequired() {
return true;
}
+ /**
+ * {@inheritDoc}
+ */
+ @Override
public boolean isHumanReadable() {
return false;
}
/**
- * Indicates whether the provided value is acceptable for use in an
- * attribute with this syntax. If it is not, then the reason may be appended
- * to the provided buffer.
- *
- * @param schema
- * The schema in which this syntax is defined.
- * @param value
- * The value for which to make the determination.
- * @param invalidReason
- * The buffer to which the invalid reason should be appended.
- * @return <CODE>true</CODE> if the provided value is acceptable for use
- * with this syntax, or <CODE>false</CODE> if not.
+ * {@inheritDoc}
*/
+ @Override
public boolean valueIsAcceptable(final Schema schema, final ByteSequence value,
final LocalizableMessageBuilder invalidReason) {
- // All values will be acceptable for the certificate syntax.
+ // Skip validation if strict validation is disabled.
+ if (schema.allowMalformedCertificates()) {
+ return true;
+ }
+
+ // Validate the ByteSequence against the definitions of X.509, clause 7
+ ASN1Reader reader = ASN1.getReader(value);
+ try {
+ // Certificate SIGNED SEQUENCE
+ reader.readStartSequence(UNIVERSAL_SEQUENCE_TYPE);
+
+ // CertificateContent SEQUENCE
+ reader.readStartSequence(UNIVERSAL_SEQUENCE_TYPE);
+
+ // Optional Version
+ long x509Version = 0;
+ if (reader.hasNextElement() && reader.peekType() == (TYPE_MASK_CONTEXT | TYPE_MASK_CONSTRUCTED)) {
+ reader.readStartExplicitTag((byte) (TYPE_MASK_CONTEXT | TYPE_MASK_CONSTRUCTED));
+
+ x509Version = reader.readInteger(UNIVERSAL_INTEGER_TYPE);
+ if (x509Version < 0 || x509Version > 2) {
+ // invalid Version specified
+ invalidReason.append(ERR_SYNTAX_CERTIFICATE_INVALID_VERSION.get(x509Version));
+ return false;
+ }
+
+ if (x509Version == 0) {
+ // DEFAULT values shall not be included in DER encoded
+ // SEQUENCE (X.690, 11.5)
+ invalidReason.append(ERR_SYNTAX_CERTIFICATE_INVALID_DER.get());
+ return false;
+ }
+
+ reader.readEndExplicitTag();
+ }
+
+ // serialNumber
+ reader.skipElement(UNIVERSAL_INTEGER_TYPE);
+
+ // signature AlgorithmIdentifier
+ reader.skipElement(UNIVERSAL_SEQUENCE_TYPE);
+
+ // issuer name (SEQUENCE as of X.501, 9.2)
+ reader.skipElement(UNIVERSAL_SEQUENCE_TYPE);
+
+ // validity (SEQUENCE)
+ reader.skipElement(UNIVERSAL_SEQUENCE_TYPE);
+
+ // subject name (SEQUENCE as of X.501, 9.2)
+ reader.skipElement(UNIVERSAL_SEQUENCE_TYPE);
+
+ // SubjectPublicKeyInfo (SEQUENCE)
+ reader.skipElement(UNIVERSAL_SEQUENCE_TYPE);
+
+ // OPTIONAL issuerUniqueIdentifier
+ if (reader.hasNextElement() && reader.peekType() == (TYPE_MASK_CONTEXT + 1)) {
+ if (x509Version < 1) {
+ // only valid in v2 and v3
+ invalidReason.append(ERR_SYNTAX_CERTIFICATE_ONLY_VALID_V23.get("issuerUniqueIdentifier"));
+ return false;
+ }
+ reader.skipElement();
+ }
+
+ // OPTIONAL subjectUniqueIdentifier
+ if (reader.hasNextElement() && reader.peekType() == (TYPE_MASK_CONTEXT + 2)) {
+ if (x509Version < 1) {
+ // only valid in v2 and v3
+ invalidReason.append(ERR_SYNTAX_CERTIFICATE_ONLY_VALID_V23.get("subjectUniqueIdentifier"));
+ return false;
+ }
+ reader.skipElement();
+ }
+
+ // OPTIONAL extensions
+ if (reader.hasNextElement() && reader.peekType() == ((TYPE_MASK_CONTEXT | TYPE_MASK_CONSTRUCTED) + 3)) {
+ if (x509Version < 2) {
+ // only valid in v3
+ invalidReason.append(ERR_SYNTAX_CERTIFICATE_ONLY_VALID_V3.get("extensions"));
+ return false;
+ }
+
+ reader.readStartExplicitTag((byte) ((TYPE_MASK_CONTEXT | TYPE_MASK_CONSTRUCTED) + 3));
+
+ reader.skipElement(UNIVERSAL_SEQUENCE_TYPE);
+
+ reader.readEndExplicitTag();
+ }
+
+ // There should not be any further ASN.1 elements within this SEQUENCE
+ if (reader.hasNextElement()) {
+ invalidReason.append(ERR_SYNTAX_CERTIFICATE_NO_ELEMENT_EXPECTED.get());
+ return false;
+ }
+ reader.readEndSequence(); // End CertificateContent SEQUENCE
+
+ // AlgorithmIdentifier SEQUENCE
+ reader.skipElement(UNIVERSAL_SEQUENCE_TYPE);
+
+ // ENCRYPTED HASH BIT STRING
+ reader.skipElement(UNIVERSAL_BIT_STRING_TYPE);
+
+ // There should not be any further ASN.1 elements within this SEQUENCE
+ if (reader.hasNextElement()) {
+ invalidReason.append(ERR_SYNTAX_CERTIFICATE_NO_ELEMENT_EXPECTED.get());
+ return false;
+ }
+ reader.readEndSequence(); // End Certificate SEQUENCE
+
+ // There should not be any further ASN.1 elements
+ if (reader.hasNextElement()) {
+ invalidReason.append(ERR_SYNTAX_CERTIFICATE_NO_ELEMENT_EXPECTED.get());
+ return false;
+ }
+ // End of the certificate
+ } catch (DecodeException de) {
+ invalidReason.append(ERR_SYNTAX_CERTIFICATE_NOTVALID.get(de));
+ return false;
+ } catch (IOException e) {
+ invalidReason.append(StaticUtils.getExceptionMessage(e));
+ return false;
+ }
+
+ // The basic structure of the value is an X.509 certificate
return true;
}
}
diff --git a/opendj-core/src/main/java/org/forgerock/opendj/ldap/schema/CoreSchema.java b/opendj-core/src/main/java/org/forgerock/opendj/ldap/schema/CoreSchema.java
index f1fac33..007bad9 100644
--- a/opendj-core/src/main/java/org/forgerock/opendj/ldap/schema/CoreSchema.java
+++ b/opendj-core/src/main/java/org/forgerock/opendj/ldap/schema/CoreSchema.java
@@ -23,384 +23,415 @@
*
* Copyright 2009 Sun Microsystems, Inc.
*/
-
package org.forgerock.opendj.ldap.schema;
/**
- * The OpenDJ SDK core schema contains standard LDAP RFC schema elements. These
- * include:
+ * The OpenDJ SDK core schema contains standard LDAP RFC schema elements. These include:
* <ul>
- * <li><a href="http://tools.ietf.org/html/rfc4512">RFC 4512 - Lightweight
- * Directory Access Protocol (LDAP): Directory Information Models </a>
- * <li><a href="http://tools.ietf.org/html/rfc4517">RFC 4517 - Lightweight
- * Directory Access Protocol (LDAP): Syntaxes and Matching Rules </a>
- * <li><a href="http://tools.ietf.org/html/rfc4519">RFC 4519 - Lightweight
- * Directory Access Protocol (LDAP): Schema for User Applications </a>
- * <li><a href="http://tools.ietf.org/html/rfc4530">RFC 4530 - Lightweight
- * Directory Access Protocol (LDAP): entryUUID Operational Attribute </a>
- * <li><a href="http://tools.ietf.org/html/rfc3045">RFC 3045 - Storing Vendor
- * Information in the LDAP Root DSE </a>
- * <li><a href="http://tools.ietf.org/html/rfc3112">RFC 3112 - LDAP
- * Authentication Password Schema </a>
+ * <li><a href="http://tools.ietf.org/html/rfc4512">RFC 4512 - Lightweight Directory Access Protocol (LDAP): Directory
+ * Information Models </a>
+ * <li><a href="http://tools.ietf.org/html/rfc4517">RFC 4517 - Lightweight Directory Access Protocol (LDAP): Syntaxes
+ * and Matching Rules </a>
+ * <li><a href="http://tools.ietf.org/html/rfc4519">RFC 4519 - Lightweight Directory Access Protocol (LDAP): Schema for
+ * User Applications </a>
+ * <li><a href="http://tools.ietf.org/html/rfc4530">RFC 4530 - Lightweight Directory Access Protocol (LDAP): entryUUID
+ * Operational Attribute </a>
+ * <li><a href="http://tools.ietf.org/html/rfc3045">RFC 3045 - Storing Vendor Information in the LDAP Root DSE </a>
+ * <li><a href="http://tools.ietf.org/html/rfc3112">RFC 3112 - LDAP Authentication Password Schema </a>
* </ul>
* <p>
- * The core schema is non-strict: attempts to retrieve non-existent Attribute
- * Types will return a temporary Attribute Type having the Octet String syntax.
+ * The core schema is non-strict: attempts to retrieve non-existent Attribute Types will return a temporary Attribute
+ * Type having the Octet String syntax.
*/
public final class CoreSchema {
+
// Core Syntaxes
- private static final Syntax ATTRIBUTE_TYPE_DESCRIPTION_SYNTAX = CoreSchemaImpl.getInstance()
- .getSyntax("1.3.6.1.4.1.1466.115.121.1.3");
- private static final Syntax AUTHENTICATION_PASSWORD_SYNTAX = CoreSchemaImpl.getInstance()
- .getSyntax("1.3.6.1.4.1.4203.1.1.2");
- private static final Syntax BINARY_SYNTAX = CoreSchemaImpl.getInstance().getSyntax(
- "1.3.6.1.4.1.1466.115.121.1.5");
- private static final Syntax BIT_STRING_SYNTAX = CoreSchemaImpl.getInstance().getSyntax(
- "1.3.6.1.4.1.1466.115.121.1.6");
- private static final Syntax BOOLEAN_SYNTAX = CoreSchemaImpl.getInstance().getSyntax(
- "1.3.6.1.4.1.1466.115.121.1.7");
- private static final Syntax CERTIFICATE_LIST_SYNTAX = CoreSchemaImpl.getInstance().getSyntax(
- "1.3.6.1.4.1.1466.115.121.1.9");
- private static final Syntax CERTIFICATE_PAIR_SYNTAX = CoreSchemaImpl.getInstance().getSyntax(
- "1.3.6.1.4.1.1466.115.121.1.10");
- private static final Syntax CERTIFICATE_SYNTAX = CoreSchemaImpl.getInstance().getSyntax(
- "1.3.6.1.4.1.1466.115.121.1.8");
- private static final Syntax COUNTRY_STRING_SYNTAX = CoreSchemaImpl.getInstance().getSyntax(
- "1.3.6.1.4.1.1466.115.121.1.11");
- private static final Syntax DELIVERY_METHOD_SYNTAX = CoreSchemaImpl.getInstance().getSyntax(
- "1.3.6.1.4.1.1466.115.121.1.14");
- private static final Syntax DIRECTORY_STRING_SYNTAX = CoreSchemaImpl.getInstance().getSyntax(
- "1.3.6.1.4.1.1466.115.121.1.15");
- private static final Syntax DIT_CONTENT_RULE_DESCRIPTION_SYNTAX = CoreSchemaImpl.getInstance()
- .getSyntax("1.3.6.1.4.1.1466.115.121.1.16");
- private static final Syntax DIT_STRUCTURE_RULE_DESCRIPTION_SYNTAX = CoreSchemaImpl
- .getInstance().getSyntax("1.3.6.1.4.1.1466.115.121.1.17");
- private static final Syntax DN_SYNTAX = CoreSchemaImpl.getInstance().getSyntax(
- "1.3.6.1.4.1.1466.115.121.1.12");
- private static final Syntax ENHANCED_GUIDE_SYNTAX = CoreSchemaImpl.getInstance().getSyntax(
- "1.3.6.1.4.1.1466.115.121.1.21");
- private static final Syntax FACSIMILE_TELEPHONE_NUMBER_SYNTAX = CoreSchemaImpl.getInstance()
- .getSyntax("1.3.6.1.4.1.1466.115.121.1.22");
- private static final Syntax FAX_SYNTAX = CoreSchemaImpl.getInstance().getSyntax(
- "1.3.6.1.4.1.1466.115.121.1.23");
- private static final Syntax GENERALIZED_TIME_SYNTAX = CoreSchemaImpl.getInstance().getSyntax(
- "1.3.6.1.4.1.1466.115.121.1.24");
- private static final Syntax GUIDE_SYNTAX = CoreSchemaImpl.getInstance().getSyntax(
- "1.3.6.1.4.1.1466.115.121.1.25");
- private static final Syntax IA5_STRING_SYNTAX = CoreSchemaImpl.getInstance().getSyntax(
- "1.3.6.1.4.1.1466.115.121.1.26");
- private static final Syntax INTEGER_SYNTAX = CoreSchemaImpl.getInstance().getSyntax(
- "1.3.6.1.4.1.1466.115.121.1.27");
- private static final Syntax JPEG_SYNTAX = CoreSchemaImpl.getInstance().getSyntax(
- "1.3.6.1.4.1.1466.115.121.1.28");
- private static final Syntax LDAP_SYNTAX_DESCRIPTION_SYNTAX = CoreSchemaImpl.getInstance()
- .getSyntax("1.3.6.1.4.1.1466.115.121.1.54");
- private static final Syntax MATCHING_RULE_DESCRIPTION_SYNTAX = CoreSchemaImpl.getInstance()
- .getSyntax("1.3.6.1.4.1.1466.115.121.1.30");
- private static final Syntax MATCHING_RULE_USE_DESCRIPTION_SYNTAX = CoreSchemaImpl.getInstance()
- .getSyntax("1.3.6.1.4.1.1466.115.121.1.31");
- private static final Syntax NAME_AND_OPTIONAL_UID_SYNTAX = CoreSchemaImpl.getInstance()
- .getSyntax("1.3.6.1.4.1.1466.115.121.1.34");
- private static final Syntax NAME_FORM_DESCRIPTION_SYNTAX = CoreSchemaImpl.getInstance()
- .getSyntax("1.3.6.1.4.1.1466.115.121.1.35");
- private static final Syntax NUMERIC_STRING_SYNTAX = CoreSchemaImpl.getInstance().getSyntax(
- "1.3.6.1.4.1.1466.115.121.1.36");
- private static final Syntax OBJECT_CLASS_DESCRIPTION_SYNTAX = CoreSchemaImpl.getInstance()
- .getSyntax("1.3.6.1.4.1.1466.115.121.1.37");
- private static final Syntax OCTET_STRING_SYNTAX = CoreSchemaImpl.getInstance().getSyntax(
- "1.3.6.1.4.1.1466.115.121.1.40");
- private static final Syntax OID_SYNTAX = CoreSchemaImpl.getInstance().getSyntax(
- "1.3.6.1.4.1.1466.115.121.1.38");
- private static final Syntax OTHER_MAILBOX_SYNTAX = CoreSchemaImpl.getInstance().getSyntax(
- "1.3.6.1.4.1.1466.115.121.1.39");
- private static final Syntax POSTAL_ADDRESS_SYNTAX = CoreSchemaImpl.getInstance().getSyntax(
- "1.3.6.1.4.1.1466.115.121.1.41");
- private static final Syntax PRESENTATION_ADDRESS_SYNTAX = CoreSchemaImpl.getInstance()
- .getSyntax("1.3.6.1.4.1.1466.115.121.1.43");
- private static final Syntax PRINTABLE_STRING_SYNTAX = CoreSchemaImpl.getInstance().getSyntax(
- "1.3.6.1.4.1.1466.115.121.1.44");
- private static final Syntax PROTOCOL_INFORMATION_SYNTAX = CoreSchemaImpl.getInstance()
- .getSyntax("1.3.6.1.4.1.1466.115.121.1.42");
- private static final Syntax SUBSTRING_ASSERTION_SYNTAX = CoreSchemaImpl.getInstance()
- .getSyntax("1.3.6.1.4.1.1466.115.121.1.58");
- private static final Syntax SUPPORTED_ALGORITHM_SYNTAX = CoreSchemaImpl.getInstance()
- .getSyntax("1.3.6.1.4.1.1466.115.121.1.49");
- private static final Syntax TELEPHONE_NUMBER_SYNTAX = CoreSchemaImpl.getInstance().getSyntax(
- "1.3.6.1.4.1.1466.115.121.1.50");
- private static final Syntax TELETEX_TERMINAL_IDENTIFIER_SYNTAX = CoreSchemaImpl.getInstance()
- .getSyntax("1.3.6.1.4.1.1466.115.121.1.51");
- private static final Syntax TELEX_NUMBER_SYNTAX = CoreSchemaImpl.getInstance().getSyntax(
- "1.3.6.1.4.1.1466.115.121.1.52");
- private static final Syntax UTC_TIME_SYNTAX = CoreSchemaImpl.getInstance().getSyntax(
- "1.3.6.1.4.1.1466.115.121.1.53");
- private static final Syntax UUID_SYNTAX = CoreSchemaImpl.getInstance().getSyntax(
- "1.3.6.1.1.16.1");
+ private static final Syntax ATTRIBUTE_TYPE_DESCRIPTION_SYNTAX
+ = CoreSchemaImpl.getInstance().getSyntax("1.3.6.1.4.1.1466.115.121.1.3");
+ private static final Syntax AUTHENTICATION_PASSWORD_SYNTAX
+ = CoreSchemaImpl.getInstance().getSyntax("1.3.6.1.4.1.4203.1.1.2");
+ private static final Syntax BINARY_SYNTAX
+ = CoreSchemaImpl.getInstance().getSyntax("1.3.6.1.4.1.1466.115.121.1.5");
+ private static final Syntax BIT_STRING_SYNTAX
+ = CoreSchemaImpl.getInstance().getSyntax("1.3.6.1.4.1.1466.115.121.1.6");
+ private static final Syntax BOOLEAN_SYNTAX
+ = CoreSchemaImpl.getInstance().getSyntax("1.3.6.1.4.1.1466.115.121.1.7");
+ private static final Syntax CERTIFICATE_LIST_SYNTAX
+ = CoreSchemaImpl.getInstance().getSyntax("1.3.6.1.4.1.1466.115.121.1.9");
+ private static final Syntax CERTIFICATE_PAIR_SYNTAX
+ = CoreSchemaImpl.getInstance().getSyntax("1.3.6.1.4.1.1466.115.121.1.10");
+ private static final Syntax CERTIFICATE_SYNTAX
+ = CoreSchemaImpl.getInstance().getSyntax("1.3.6.1.4.1.1466.115.121.1.8");
+ private static final Syntax COUNTRY_STRING_SYNTAX
+ = CoreSchemaImpl.getInstance().getSyntax("1.3.6.1.4.1.1466.115.121.1.11");
+ private static final Syntax DELIVERY_METHOD_SYNTAX
+ = CoreSchemaImpl.getInstance().getSyntax("1.3.6.1.4.1.1466.115.121.1.14");
+ private static final Syntax DIRECTORY_STRING_SYNTAX
+ = CoreSchemaImpl.getInstance().getSyntax("1.3.6.1.4.1.1466.115.121.1.15");
+ private static final Syntax DIT_CONTENT_RULE_DESCRIPTION_SYNTAX
+ = CoreSchemaImpl.getInstance().getSyntax("1.3.6.1.4.1.1466.115.121.1.16");
+ private static final Syntax DIT_STRUCTURE_RULE_DESCRIPTION_SYNTAX
+ = CoreSchemaImpl.getInstance().getSyntax("1.3.6.1.4.1.1466.115.121.1.17");
+ private static final Syntax DN_SYNTAX
+ = CoreSchemaImpl.getInstance().getSyntax("1.3.6.1.4.1.1466.115.121.1.12");
+ private static final Syntax ENHANCED_GUIDE_SYNTAX
+ = CoreSchemaImpl.getInstance().getSyntax("1.3.6.1.4.1.1466.115.121.1.21");
+ private static final Syntax FACSIMILE_TELEPHONE_NUMBER_SYNTAX
+ = CoreSchemaImpl.getInstance().getSyntax("1.3.6.1.4.1.1466.115.121.1.22");
+ private static final Syntax FAX_SYNTAX
+ = CoreSchemaImpl.getInstance().getSyntax("1.3.6.1.4.1.1466.115.121.1.23");
+ private static final Syntax GENERALIZED_TIME_SYNTAX
+ = CoreSchemaImpl.getInstance().getSyntax("1.3.6.1.4.1.1466.115.121.1.24");
+ private static final Syntax GUIDE_SYNTAX
+ = CoreSchemaImpl.getInstance().getSyntax("1.3.6.1.4.1.1466.115.121.1.25");
+ private static final Syntax IA5_STRING_SYNTAX
+ = CoreSchemaImpl.getInstance().getSyntax("1.3.6.1.4.1.1466.115.121.1.26");
+ private static final Syntax INTEGER_SYNTAX
+ = CoreSchemaImpl.getInstance().getSyntax("1.3.6.1.4.1.1466.115.121.1.27");
+ private static final Syntax JPEG_SYNTAX
+ = CoreSchemaImpl.getInstance().getSyntax("1.3.6.1.4.1.1466.115.121.1.28");
+ private static final Syntax LDAP_SYNTAX_DESCRIPTION_SYNTAX
+ = CoreSchemaImpl.getInstance().getSyntax("1.3.6.1.4.1.1466.115.121.1.54");
+ private static final Syntax MATCHING_RULE_DESCRIPTION_SYNTAX
+ = CoreSchemaImpl.getInstance().getSyntax("1.3.6.1.4.1.1466.115.121.1.30");
+ private static final Syntax MATCHING_RULE_USE_DESCRIPTION_SYNTAX
+ = CoreSchemaImpl.getInstance().getSyntax("1.3.6.1.4.1.1466.115.121.1.31");
+ private static final Syntax NAME_AND_OPTIONAL_UID_SYNTAX
+ = CoreSchemaImpl.getInstance().getSyntax("1.3.6.1.4.1.1466.115.121.1.34");
+ private static final Syntax NAME_FORM_DESCRIPTION_SYNTAX
+ = CoreSchemaImpl.getInstance().getSyntax("1.3.6.1.4.1.1466.115.121.1.35");
+ private static final Syntax NUMERIC_STRING_SYNTAX
+ = CoreSchemaImpl.getInstance().getSyntax("1.3.6.1.4.1.1466.115.121.1.36");
+ private static final Syntax OBJECT_CLASS_DESCRIPTION_SYNTAX
+ = CoreSchemaImpl.getInstance().getSyntax("1.3.6.1.4.1.1466.115.121.1.37");
+ private static final Syntax OCTET_STRING_SYNTAX
+ = CoreSchemaImpl.getInstance().getSyntax("1.3.6.1.4.1.1466.115.121.1.40");
+ private static final Syntax OID_SYNTAX
+ = CoreSchemaImpl.getInstance().getSyntax("1.3.6.1.4.1.1466.115.121.1.38");
+ private static final Syntax OTHER_MAILBOX_SYNTAX
+ = CoreSchemaImpl.getInstance().getSyntax("1.3.6.1.4.1.1466.115.121.1.39");
+ private static final Syntax POSTAL_ADDRESS_SYNTAX
+ = CoreSchemaImpl.getInstance().getSyntax("1.3.6.1.4.1.1466.115.121.1.41");
+ private static final Syntax PRESENTATION_ADDRESS_SYNTAX
+ = CoreSchemaImpl.getInstance().getSyntax("1.3.6.1.4.1.1466.115.121.1.43");
+ private static final Syntax PRINTABLE_STRING_SYNTAX
+ = CoreSchemaImpl.getInstance().getSyntax("1.3.6.1.4.1.1466.115.121.1.44");
+ private static final Syntax PROTOCOL_INFORMATION_SYNTAX
+ = CoreSchemaImpl.getInstance().getSyntax("1.3.6.1.4.1.1466.115.121.1.42");
+ private static final Syntax SUBSTRING_ASSERTION_SYNTAX
+ = CoreSchemaImpl.getInstance().getSyntax("1.3.6.1.4.1.1466.115.121.1.58");
+ private static final Syntax SUPPORTED_ALGORITHM_SYNTAX
+ = CoreSchemaImpl.getInstance().getSyntax("1.3.6.1.4.1.1466.115.121.1.49");
+ private static final Syntax TELEPHONE_NUMBER_SYNTAX
+ = CoreSchemaImpl.getInstance().getSyntax("1.3.6.1.4.1.1466.115.121.1.50");
+ private static final Syntax TELETEX_TERMINAL_IDENTIFIER_SYNTAX
+ = CoreSchemaImpl.getInstance().getSyntax("1.3.6.1.4.1.1466.115.121.1.51");
+ private static final Syntax TELEX_NUMBER_SYNTAX
+ = CoreSchemaImpl.getInstance().getSyntax("1.3.6.1.4.1.1466.115.121.1.52");
+ private static final Syntax UTC_TIME_SYNTAX
+ = CoreSchemaImpl.getInstance().getSyntax("1.3.6.1.4.1.1466.115.121.1.53");
+ private static final Syntax UUID_SYNTAX
+ = CoreSchemaImpl.getInstance().getSyntax("1.3.6.1.1.16.1");
+ private static final Syntax X509_CERTIFICATE_EXACT_ASSERTION_SYNTAX
+ = CoreSchemaImpl.getInstance().getSyntax("1.3.6.1.1.15.1");
// Core Matching Rules
- private static final MatchingRule AUTH_PASSWORD_EXACT_MATCHING_RULE = CoreSchemaImpl
- .getInstance().getMatchingRule("1.3.6.1.4.1.4203.1.2.2");
- private static final MatchingRule BIT_STRING_MATCHING_RULE = CoreSchemaImpl.getInstance()
- .getMatchingRule("2.5.13.16");
- private static final MatchingRule BOOLEAN_MATCHING_RULE = CoreSchemaImpl.getInstance()
- .getMatchingRule("2.5.13.13");
- private static final MatchingRule CASE_EXACT_IA5_MATCHING_RULE = CoreSchemaImpl.getInstance()
- .getMatchingRule("1.3.6.1.4.1.1466.109.114.1");
- private static final MatchingRule CASE_EXACT_MATCHING_RULE = CoreSchemaImpl.getInstance()
- .getMatchingRule("2.5.13.5");
- private static final MatchingRule CASE_EXACT_ORDERING_MATCHING_RULE = CoreSchemaImpl
- .getInstance().getMatchingRule("2.5.13.6");
- private static final MatchingRule CASE_EXACT_SUBSTRINGS_MATCHING_RULE = CoreSchemaImpl
- .getInstance().getMatchingRule("2.5.13.7");
- private static final MatchingRule CASE_IGNORE_IA5_MATCHING_RULE = CoreSchemaImpl.getInstance()
- .getMatchingRule("1.3.6.1.4.1.1466.109.114.2");
- private static final MatchingRule CASE_IGNORE_IA5_SUBSTRINGS_MATCHING_RULE = CoreSchemaImpl
- .getInstance().getMatchingRule("1.3.6.1.4.1.1466.109.114.3");
- private static final MatchingRule CASE_IGNORE_LIST_MATCHING_RULE = CoreSchemaImpl.getInstance()
- .getMatchingRule("2.5.13.11");
- private static final MatchingRule CASE_IGNORE_LIST_SUBSTRINGS_MATCHING_RULE = CoreSchemaImpl
- .getInstance().getMatchingRule("2.5.13.12");
- private static final MatchingRule CASE_IGNORE_MATCHING_RULE = CoreSchemaImpl.getInstance()
- .getMatchingRule("2.5.13.2");
- private static final MatchingRule CASE_IGNORE_ORDERING_MATCHING_RULE = CoreSchemaImpl
- .getInstance().getMatchingRule("2.5.13.3");
- private static final MatchingRule CASE_IGNORE_SUBSTRINGS_MATCHING_RULE = CoreSchemaImpl
- .getInstance().getMatchingRule("2.5.13.4");
- private static final MatchingRule DIRECTORY_STRING_FIRST_COMPONENT_MATCHING_RULE =
- CoreSchemaImpl.getInstance().getMatchingRule("2.5.13.31");
- private static final MatchingRule DISTINGUISHED_NAME_MATCHING_RULE = CoreSchemaImpl
- .getInstance().getMatchingRule("2.5.13.1");
- private static final MatchingRule GENERALIZED_TIME_MATCHING_RULE = CoreSchemaImpl.getInstance()
- .getMatchingRule("2.5.13.27");
- private static final MatchingRule GENERALIZED_TIME_ORDERING_MATCHING_RULE = CoreSchemaImpl
- .getInstance().getMatchingRule("2.5.13.28");
- private static final MatchingRule INTEGER_FIRST_COMPONENT_MATCHING_RULE = CoreSchemaImpl
- .getInstance().getMatchingRule("2.5.13.29");
- private static final MatchingRule INTEGER_MATCHING_RULE = CoreSchemaImpl.getInstance()
- .getMatchingRule("2.5.13.14");
- private static final MatchingRule INTEGER_ORDERING_MATCHING_RULE = CoreSchemaImpl.getInstance()
- .getMatchingRule("2.5.13.15");
- private static final MatchingRule KEYWORD_MATCHING_RULE = CoreSchemaImpl.getInstance()
- .getMatchingRule("2.5.13.33");
- private static final MatchingRule NUMERIC_STRING_MATCHING_RULE = CoreSchemaImpl.getInstance()
- .getMatchingRule("2.5.13.8");
- private static final MatchingRule NUMERIC_STRING_ORDERING_MATCHING_RULE = CoreSchemaImpl
- .getInstance().getMatchingRule("2.5.13.9");
- private static final MatchingRule NUMERIC_STRING_SUBSTRINGS_MATCHING_RULE = CoreSchemaImpl
- .getInstance().getMatchingRule("2.5.13.10");
- private static final MatchingRule OBJECT_IDENTIFIER_FIRST_COMPONENT_MATCHING_RULE =
- CoreSchemaImpl.getInstance().getMatchingRule("2.5.13.30");
- private static final MatchingRule OBJECT_IDENTIFIER_MATCHING_RULE = CoreSchemaImpl
- .getInstance().getMatchingRule("2.5.13.0");
- private static final MatchingRule OCTET_STRING_MATCHING_RULE = CoreSchemaImpl.getInstance()
- .getMatchingRule("2.5.13.17");
- private static final MatchingRule OCTET_STRING_ORDERING_MATCHING_RULE = CoreSchemaImpl
- .getInstance().getMatchingRule("2.5.13.18");
- private static final MatchingRule OCTET_STRING_SUBSTRINGS_MATCHING_RULE = CoreSchemaImpl
- .getInstance().getMatchingRule("2.5.13.19");
- private static final MatchingRule PRESENTATION_ADDRESS_MATCHING_RULE = CoreSchemaImpl
- .getInstance().getMatchingRule("2.5.13.22");
- private static final MatchingRule PROTOCOL_INFORMATION_MATCHING_RULE = CoreSchemaImpl
- .getInstance().getMatchingRule("2.5.13.24");
- private static final MatchingRule TELEPHONE_NUMBER_MATCHING_RULE = CoreSchemaImpl.getInstance()
- .getMatchingRule("2.5.13.20");
- private static final MatchingRule TELEPHONE_NUMBER_SUBSTRINGS_MATCHING_RULE = CoreSchemaImpl
- .getInstance().getMatchingRule("2.5.13.21");
- private static final MatchingRule UNIQUE_MEMBER_MATCHING_RULE = CoreSchemaImpl.getInstance()
- .getMatchingRule("2.5.13.23");
- private static final MatchingRule UUID_MATCHING_RULE = CoreSchemaImpl.getInstance()
- .getMatchingRule("1.3.6.1.1.16.2");
- private static final MatchingRule UUID_ORDERING_MATCHING_RULE = CoreSchemaImpl.getInstance()
- .getMatchingRule("1.3.6.1.1.16.3");
- private static final MatchingRule WORD_MATCHING_RULE = CoreSchemaImpl.getInstance()
- .getMatchingRule("2.5.13.32");
+ private static final MatchingRule AUTH_PASSWORD_EXACT_MATCHING_RULE
+ = CoreSchemaImpl.getInstance().getMatchingRule("1.3.6.1.4.1.4203.1.2.2");
+ private static final MatchingRule BIT_STRING_MATCHING_RULE
+ = CoreSchemaImpl.getInstance().getMatchingRule("2.5.13.16");
+ private static final MatchingRule BOOLEAN_MATCHING_RULE
+ = CoreSchemaImpl.getInstance().getMatchingRule("2.5.13.13");
+ private static final MatchingRule CASE_EXACT_IA5_MATCHING_RULE
+ = CoreSchemaImpl.getInstance().getMatchingRule("1.3.6.1.4.1.1466.109.114.1");
+ private static final MatchingRule CASE_EXACT_MATCHING_RULE
+ = CoreSchemaImpl.getInstance().getMatchingRule("2.5.13.5");
+ private static final MatchingRule CASE_EXACT_ORDERING_MATCHING_RULE
+ = CoreSchemaImpl.getInstance().getMatchingRule("2.5.13.6");
+ private static final MatchingRule CASE_EXACT_SUBSTRINGS_MATCHING_RULE
+ = CoreSchemaImpl.getInstance().getMatchingRule("2.5.13.7");
+ private static final MatchingRule CASE_IGNORE_IA5_MATCHING_RULE
+ = CoreSchemaImpl.getInstance().getMatchingRule("1.3.6.1.4.1.1466.109.114.2");
+ private static final MatchingRule CASE_IGNORE_IA5_SUBSTRINGS_MATCHING_RULE
+ = CoreSchemaImpl.getInstance().getMatchingRule("1.3.6.1.4.1.1466.109.114.3");
+ private static final MatchingRule CASE_IGNORE_LIST_MATCHING_RULE
+ = CoreSchemaImpl.getInstance().getMatchingRule("2.5.13.11");
+ private static final MatchingRule CASE_IGNORE_LIST_SUBSTRINGS_MATCHING_RULE
+ = CoreSchemaImpl.getInstance().getMatchingRule("2.5.13.12");
+ private static final MatchingRule CASE_IGNORE_MATCHING_RULE
+ = CoreSchemaImpl.getInstance().getMatchingRule("2.5.13.2");
+ private static final MatchingRule CASE_IGNORE_ORDERING_MATCHING_RULE
+ = CoreSchemaImpl.getInstance().getMatchingRule("2.5.13.3");
+ private static final MatchingRule CASE_IGNORE_SUBSTRINGS_MATCHING_RULE
+ = CoreSchemaImpl.getInstance().getMatchingRule("2.5.13.4");
+ private static final MatchingRule CERTIFICATE_EXACT_MATCHING_RULE
+ = CoreSchemaImpl.getInstance().getMatchingRule("2.5.13.34");
+ private static final MatchingRule DIRECTORY_STRING_FIRST_COMPONENT_MATCHING_RULE
+ = CoreSchemaImpl.getInstance().getMatchingRule("2.5.13.31");
+ private static final MatchingRule DISTINGUISHED_NAME_MATCHING_RULE
+ = CoreSchemaImpl.getInstance().getMatchingRule("2.5.13.1");
+ private static final MatchingRule GENERALIZED_TIME_MATCHING_RULE
+ = CoreSchemaImpl.getInstance().getMatchingRule("2.5.13.27");
+ private static final MatchingRule GENERALIZED_TIME_ORDERING_MATCHING_RULE
+ = CoreSchemaImpl.getInstance().getMatchingRule("2.5.13.28");
+ private static final MatchingRule INTEGER_FIRST_COMPONENT_MATCHING_RULE
+ = CoreSchemaImpl.getInstance().getMatchingRule("2.5.13.29");
+ private static final MatchingRule INTEGER_MATCHING_RULE
+ = CoreSchemaImpl.getInstance().getMatchingRule("2.5.13.14");
+ private static final MatchingRule INTEGER_ORDERING_MATCHING_RULE
+ = CoreSchemaImpl.getInstance().getMatchingRule("2.5.13.15");
+ private static final MatchingRule KEYWORD_MATCHING_RULE
+ = CoreSchemaImpl.getInstance().getMatchingRule("2.5.13.33");
+ private static final MatchingRule NUMERIC_STRING_MATCHING_RULE
+ = CoreSchemaImpl.getInstance().getMatchingRule("2.5.13.8");
+ private static final MatchingRule NUMERIC_STRING_ORDERING_MATCHING_RULE
+ = CoreSchemaImpl.getInstance().getMatchingRule("2.5.13.9");
+ private static final MatchingRule NUMERIC_STRING_SUBSTRINGS_MATCHING_RULE
+ = CoreSchemaImpl.getInstance().getMatchingRule("2.5.13.10");
+ private static final MatchingRule OBJECT_IDENTIFIER_FIRST_COMPONENT_MATCHING_RULE
+ = CoreSchemaImpl.getInstance().getMatchingRule("2.5.13.30");
+ private static final MatchingRule OBJECT_IDENTIFIER_MATCHING_RULE
+ = CoreSchemaImpl.getInstance().getMatchingRule("2.5.13.0");
+ private static final MatchingRule OCTET_STRING_MATCHING_RULE
+ = CoreSchemaImpl.getInstance().getMatchingRule("2.5.13.17");
+ private static final MatchingRule OCTET_STRING_ORDERING_MATCHING_RULE
+ = CoreSchemaImpl.getInstance().getMatchingRule("2.5.13.18");
+ private static final MatchingRule OCTET_STRING_SUBSTRINGS_MATCHING_RULE
+ = CoreSchemaImpl.getInstance().getMatchingRule("2.5.13.19");
+ private static final MatchingRule PRESENTATION_ADDRESS_MATCHING_RULE
+ = CoreSchemaImpl.getInstance().getMatchingRule("2.5.13.22");
+ private static final MatchingRule PROTOCOL_INFORMATION_MATCHING_RULE
+ = CoreSchemaImpl.getInstance().getMatchingRule("2.5.13.24");
+ private static final MatchingRule TELEPHONE_NUMBER_MATCHING_RULE
+ = CoreSchemaImpl.getInstance().getMatchingRule("2.5.13.20");
+ private static final MatchingRule TELEPHONE_NUMBER_SUBSTRINGS_MATCHING_RULE
+ = CoreSchemaImpl.getInstance().getMatchingRule("2.5.13.21");
+ private static final MatchingRule UNIQUE_MEMBER_MATCHING_RULE
+ = CoreSchemaImpl.getInstance().getMatchingRule("2.5.13.23");
+ private static final MatchingRule UUID_MATCHING_RULE
+ = CoreSchemaImpl.getInstance().getMatchingRule("1.3.6.1.1.16.2");
+ private static final MatchingRule UUID_ORDERING_MATCHING_RULE
+ = CoreSchemaImpl.getInstance().getMatchingRule("1.3.6.1.1.16.3");
+ private static final MatchingRule WORD_MATCHING_RULE
+ = CoreSchemaImpl.getInstance().getMatchingRule("2.5.13.32");
// Core Attribute Types
- private static final AttributeType ALIASED_OBJECT_NAME_ATTRIBUTE_TYPE = CoreSchemaImpl
- .getInstance().getAttributeType("2.5.4.1");
- private static final AttributeType ALT_SERVER_ATTRIBUTE_TYPE = CoreSchemaImpl.getInstance()
- .getAttributeType("1.3.6.1.4.1.1466.101.120.6");
- private static final AttributeType ATTRIBUTE_TYPES_ATTRIBUTE_TYPE = CoreSchemaImpl
- .getInstance().getAttributeType("2.5.21.5");
- private static final AttributeType AUTH_PASSWORD_ATTRIBUTE_TYPE = CoreSchemaImpl.getInstance()
- .getAttributeType("1.3.6.1.4.1.4203.1.3.4");
- private static final AttributeType BUSINESS_CATEGORY_ATTRIBUTE_TYPE = CoreSchemaImpl
- .getInstance().getAttributeType("2.5.4.15");
- private static final AttributeType CN_ATTRIBUTE_TYPE = CoreSchemaImpl.getInstance()
- .getAttributeType("2.5.4.3");
- private static final AttributeType CREATE_TIMESTAMP_ATTRIBUTE_TYPE = CoreSchemaImpl
- .getInstance().getAttributeType("2.5.18.1");
- private static final AttributeType CREATORS_NAME_ATTRIBUTE_TYPE = CoreSchemaImpl.getInstance()
- .getAttributeType("2.5.18.3");
- private static final AttributeType C_ATTRIBUTE_TYPE = CoreSchemaImpl.getInstance()
- .getAttributeType("2.5.4.6");
- private static final AttributeType DC_ATTRIBUTE_TYPE = CoreSchemaImpl.getInstance()
- .getAttributeType("0.9.2342.19200300.100.1.25");
- private static final AttributeType DESCRIPTION_ATTRIBUTE_TYPE = CoreSchemaImpl.getInstance()
- .getAttributeType("2.5.4.13");
- private static final AttributeType DESTINATION_INDICATOR_ATTRIBUTE_TYPE = CoreSchemaImpl
- .getInstance().getAttributeType("2.5.4.27");
- private static final AttributeType DISTINGUISHED_NAME_ATTRIBUTE_TYPE = CoreSchemaImpl
- .getInstance().getAttributeType("2.5.4.49");
- private static final AttributeType DIT_CONTENT_RULES_ATTRIBUTE_TYPE = CoreSchemaImpl
- .getInstance().getAttributeType("2.5.21.2");
- private static final AttributeType DIT_STRUCTURE_RULES_ATTRIBUTE_TYPE = CoreSchemaImpl
- .getInstance().getAttributeType("2.5.21.1");
- private static final AttributeType DN_QUALIFIER_ATTRIBUTE_TYPE = CoreSchemaImpl.getInstance()
- .getAttributeType("2.5.4.46");
- private static final AttributeType ENHANCED_SEARCH_GUIDE_ATTRIBUTE_TYPE = CoreSchemaImpl
- .getInstance().getAttributeType("2.5.4.47");
- private static final AttributeType ENTRY_DN_ATTRIBUTE_TYPE = CoreSchemaImpl.getInstance()
- .getAttributeType("1.3.6.1.1.20");
- private static final AttributeType ENTRY_UUID_ATTRIBUTE_TYPE = CoreSchemaImpl.getInstance()
- .getAttributeType("1.3.6.1.1.16.4");
- private static final AttributeType FACSIMILE_TELEPHONE_NUMBER_ATTRIBUTE_TYPE = CoreSchemaImpl
- .getInstance().getAttributeType("2.5.4.23");
- private static final AttributeType GENERATION_QUALIFIER_ATTRIBUTE_TYPE = CoreSchemaImpl
- .getInstance().getAttributeType("2.5.4.44");
- private static final AttributeType GIVEN_NAME_ATTRIBUTE_TYPE = CoreSchemaImpl.getInstance()
- .getAttributeType("2.5.4.42");
- private static final AttributeType GOVERNING_STRUCTURE_RULE_ATTRIBUTE_TYPE = CoreSchemaImpl
- .getInstance().getAttributeType("2.5.21.10");
- private static final AttributeType HOUSE_IDENTIFIER_ATTRIBUTE_TYPE = CoreSchemaImpl
- .getInstance().getAttributeType("2.5.4.51");
- private static final AttributeType INITIALS_ATTRIBUTE_TYPE = CoreSchemaImpl.getInstance()
- .getAttributeType("2.5.4.43");
- private static final AttributeType INTERNATIONAL_ISDN_NUMBER_ATTRIBUTE_TYPE = CoreSchemaImpl
- .getInstance().getAttributeType("2.5.4.25");
- private static final AttributeType LDAP_SYNTAXES_ATTRIBUTE_TYPE = CoreSchemaImpl.getInstance()
- .getAttributeType("1.3.6.1.4.1.1466.101.120.16");
- private static final AttributeType L_ATTRIBUTE_TYPE = CoreSchemaImpl.getInstance()
- .getAttributeType("2.5.4.7");
- private static final AttributeType MATCHING_RULES_ATTRIBUTE_TYPE = CoreSchemaImpl.getInstance()
- .getAttributeType("2.5.21.4");
- private static final AttributeType MATCHING_RULE_USE_ATTRIBUTE_TYPE = CoreSchemaImpl
- .getInstance().getAttributeType("2.5.21.8");
- private static final AttributeType MEMBER_ATTRIBUTE_TYPE = CoreSchemaImpl.getInstance()
- .getAttributeType("2.5.4.31");
- private static final AttributeType MODIFIERS_NAME_ATTRIBUTE_TYPE = CoreSchemaImpl.getInstance()
- .getAttributeType("2.5.18.4");
- private static final AttributeType MODIFY_TIMESTAMP_ATTRIBUTE_TYPE = CoreSchemaImpl
- .getInstance().getAttributeType("2.5.18.2");
- private static final AttributeType NAME_ATTRIBUTE_TYPE = CoreSchemaImpl.getInstance()
- .getAttributeType("2.5.4.41");
- private static final AttributeType NAME_FORMS_ATTRIBUTE_TYPE = CoreSchemaImpl.getInstance()
- .getAttributeType("2.5.21.7");
- private static final AttributeType NAMING_CONTEXTS_ATTRIBUTE_TYPE = CoreSchemaImpl
- .getInstance().getAttributeType("1.3.6.1.4.1.1466.101.120.5");
- private static final AttributeType OBJECT_CLASSES_ATTRIBUTE_TYPE = CoreSchemaImpl.getInstance()
- .getAttributeType("2.5.21.6");
- private static final AttributeType OBJECT_CLASS_ATTRIBUTE_TYPE = CoreSchemaImpl.getInstance()
- .getAttributeType("2.5.4.0");
- private static final AttributeType OU_ATTRIBUTE_TYPE = CoreSchemaImpl.getInstance()
- .getAttributeType("2.5.4.11");
- private static final AttributeType OWNER_ATTRIBUTE_TYPE = CoreSchemaImpl.getInstance()
- .getAttributeType("2.5.4.32");
- private static final AttributeType O_ATTRIBUTE_TYPE = CoreSchemaImpl.getInstance()
- .getAttributeType("2.5.4.10");
- private static final AttributeType PHYSICAL_DELIVERY_OFFICE_NAME_ATTRIBUTE_TYPE =
- CoreSchemaImpl.getInstance().getAttributeType("2.5.4.19");
- private static final AttributeType POSTAL_ADDRESS_ATTRIBUTE_TYPE = CoreSchemaImpl.getInstance()
- .getAttributeType("2.5.4.16");
- private static final AttributeType POSTAL_CODE_ATTRIBUTE_TYPE = CoreSchemaImpl.getInstance()
- .getAttributeType("2.5.4.17");
- private static final AttributeType POST_OFFICE_BOX_ATTRIBUTE_TYPE = CoreSchemaImpl
- .getInstance().getAttributeType("2.5.4.18");
- private static final AttributeType PREFERRED_DELIVERY_METHOD_ATTRIBUTE_TYPE = CoreSchemaImpl
- .getInstance().getAttributeType("2.5.4.28");
- private static final AttributeType REGISTERED_ADDRESS_ATTRIBUTE_TYPE = CoreSchemaImpl
- .getInstance().getAttributeType("2.5.4.26");
- private static final AttributeType ROLE_OCCUPANT_ATTRIBUTE_TYPE = CoreSchemaImpl.getInstance()
- .getAttributeType("2.5.4.33");
- private static final AttributeType SEARCH_GUIDE_ATTRIBUTE_TYPE = CoreSchemaImpl.getInstance()
- .getAttributeType("2.5.4.14");
- private static final AttributeType SEE_ALSO_ATTRIBUTE_TYPE = CoreSchemaImpl.getInstance()
- .getAttributeType("2.5.4.34");
- private static final AttributeType SERIAL_NUMBER_ATTRIBUTE_TYPE = CoreSchemaImpl.getInstance()
- .getAttributeType("2.5.4.5");
- private static final AttributeType SN_ATTRIBUTE_TYPE = CoreSchemaImpl.getInstance()
- .getAttributeType("2.5.4.4");
- private static final AttributeType STREET_ATTRIBUTE_TYPE = CoreSchemaImpl.getInstance()
- .getAttributeType("2.5.4.9");
- private static final AttributeType STRUCTURAL_OBJECT_CLASS_ATTRIBUTE_TYPE = CoreSchemaImpl
- .getInstance().getAttributeType("2.5.21.9");
- private static final AttributeType ST_ATTRIBUTE_TYPE = CoreSchemaImpl.getInstance()
- .getAttributeType("2.5.4.8");
- private static final AttributeType SUBSCHEMA_SUBENTRY_ATTRIBUTE_TYPE = CoreSchemaImpl
- .getInstance().getAttributeType("2.5.18.10");
- private static final AttributeType SUPPORTED_AUTH_PASSWORD_SCHEMES_ATTRIBUTE_TYPE =
- CoreSchemaImpl.getInstance().getAttributeType("1.3.6.1.4.1.4203.1.3.3");
- private static final AttributeType SUPPORTED_CONTROL_ATTRIBUTE_TYPE = CoreSchemaImpl
- .getInstance().getAttributeType("1.3.6.1.4.1.1466.101.120.13");
- private static final AttributeType SUPPORTED_EXTENSION_ATTRIBUTE_TYPE = CoreSchemaImpl
- .getInstance().getAttributeType("1.3.6.1.4.1.1466.101.120.7");
- private static final AttributeType SUPPORTED_FEATURES_ATTRIBUTE_TYPE = CoreSchemaImpl
- .getInstance().getAttributeType("1.3.6.1.4.1.4203.1.3.5");
- private static final AttributeType SUPPORTED_LDAP_VERSION_ATTRIBUTE_TYPE = CoreSchemaImpl
- .getInstance().getAttributeType("1.3.6.1.4.1.1466.101.120.15");
- private static final AttributeType SUPPORTED_SASL_MECHANISMS_ATTRIBUTE_TYPE = CoreSchemaImpl
- .getInstance().getAttributeType("1.3.6.1.4.1.1466.101.120.14");
- private static final AttributeType TELEPHONE_NUMBER_ATTRIBUTE_TYPE = CoreSchemaImpl
- .getInstance().getAttributeType("2.5.4.20");
- private static final AttributeType TELETEX_TERMINAL_IDENTIFIER_ATTRIBUTE_TYPE = CoreSchemaImpl
- .getInstance().getAttributeType("2.5.4.22");
- private static final AttributeType TELEX_NUMBER_ATTRIBUTE_TYPE = CoreSchemaImpl.getInstance()
- .getAttributeType("2.5.4.21");
- private static final AttributeType TITLE_ATTRIBUTE_TYPE = CoreSchemaImpl.getInstance()
- .getAttributeType("2.5.4.12");
- private static final AttributeType UID_ATTRIBUTE_TYPE = CoreSchemaImpl.getInstance()
- .getAttributeType("0.9.2342.19200300.100.1.1");
- private static final AttributeType UNIQUE_MEMBER_ATTRIBUTE_TYPE = CoreSchemaImpl.getInstance()
- .getAttributeType("2.5.4.50");
- private static final AttributeType USER_PASSWORD_ATTRIBUTE_TYPE = CoreSchemaImpl.getInstance()
- .getAttributeType("2.5.4.35");
- private static final AttributeType VENDOR_NAME_ATTRIBUTE_TYPE = CoreSchemaImpl.getInstance()
- .getAttributeType("1.3.6.1.1.4");
- private static final AttributeType VENDOR_VERSION_ATTRIBUTE_TYPE = CoreSchemaImpl.getInstance()
- .getAttributeType("1.3.6.1.1.5");
- private static final AttributeType X121_ADDRESS_ATTRIBUTE_TYPE = CoreSchemaImpl.getInstance()
- .getAttributeType("2.5.4.24");
- private static final AttributeType X500_UNIQUE_IDENTIFIER_ATTRIBUTE_TYPE = CoreSchemaImpl
- .getInstance().getAttributeType("2.5.4.45");
+ private static final AttributeType ALIASED_OBJECT_NAME_ATTRIBUTE_TYPE
+ = CoreSchemaImpl.getInstance().getAttributeType("2.5.4.1");
+ private static final AttributeType ALT_SERVER_ATTRIBUTE_TYPE
+ = CoreSchemaImpl.getInstance().getAttributeType("1.3.6.1.4.1.1466.101.120.6");
+ private static final AttributeType ATTRIBUTE_TYPES_ATTRIBUTE_TYPE
+ = CoreSchemaImpl.getInstance().getAttributeType("2.5.21.5");
+ private static final AttributeType AUTHORITY_REVOCATION_LIST_ATTRIBUTE_TYPE
+ = CoreSchemaImpl.getInstance().getAttributeType("2.5.4.38");
+ private static final AttributeType AUTH_PASSWORD_ATTRIBUTE_TYPE
+ = CoreSchemaImpl.getInstance().getAttributeType("1.3.6.1.4.1.4203.1.3.4");
+ private static final AttributeType BUSINESS_CATEGORY_ATTRIBUTE_TYPE
+ = CoreSchemaImpl.getInstance().getAttributeType("2.5.4.15");
+ private static final AttributeType CERTIFICATE_REVOCATION_LIST_ATTRIBUTE_TYPE
+ = CoreSchemaImpl.getInstance().getAttributeType("2.5.4.39");
+ private static final AttributeType CN_ATTRIBUTE_TYPE
+ = CoreSchemaImpl.getInstance().getAttributeType("2.5.4.3");
+ private static final AttributeType CREATE_TIMESTAMP_ATTRIBUTE_TYPE
+ = CoreSchemaImpl.getInstance().getAttributeType("2.5.18.1");
+ private static final AttributeType CREATORS_NAME_ATTRIBUTE_TYPE
+ = CoreSchemaImpl.getInstance().getAttributeType("2.5.18.3");
+ private static final AttributeType CROSS_CERTIFICATE_PAIR_ATTRIBUTE_TYPE
+ = CoreSchemaImpl.getInstance().getAttributeType("2.5.4.40");
+ private static final AttributeType C_ATTRIBUTE_TYPE
+ = CoreSchemaImpl.getInstance().getAttributeType("2.5.4.6");
+ private static final AttributeType C_A_CERTIFICATE_ATTRIBUTE_TYPE
+ = CoreSchemaImpl.getInstance().getAttributeType("2.5.4.37");
+ private static final AttributeType DC_ATTRIBUTE_TYPE
+ = CoreSchemaImpl.getInstance().getAttributeType("0.9.2342.19200300.100.1.25");
+ private static final AttributeType DELTA_REVOCATION_LIST_ATTRIBUTE_TYPE
+ = CoreSchemaImpl.getInstance().getAttributeType("2.5.4.53");
+ private static final AttributeType DESCRIPTION_ATTRIBUTE_TYPE
+ = CoreSchemaImpl.getInstance().getAttributeType("2.5.4.13");
+ private static final AttributeType DESTINATION_INDICATOR_ATTRIBUTE_TYPE
+ = CoreSchemaImpl.getInstance().getAttributeType("2.5.4.27");
+ private static final AttributeType DISTINGUISHED_NAME_ATTRIBUTE_TYPE
+ = CoreSchemaImpl.getInstance().getAttributeType("2.5.4.49");
+ private static final AttributeType DIT_CONTENT_RULES_ATTRIBUTE_TYPE
+ = CoreSchemaImpl.getInstance().getAttributeType("2.5.21.2");
+ private static final AttributeType DIT_STRUCTURE_RULES_ATTRIBUTE_TYPE
+ = CoreSchemaImpl.getInstance().getAttributeType("2.5.21.1");
+ private static final AttributeType DN_QUALIFIER_ATTRIBUTE_TYPE
+ = CoreSchemaImpl.getInstance().getAttributeType("2.5.4.46");
+ private static final AttributeType ENHANCED_SEARCH_GUIDE_ATTRIBUTE_TYPE
+ = CoreSchemaImpl.getInstance().getAttributeType("2.5.4.47");
+ private static final AttributeType ENTRY_DN_ATTRIBUTE_TYPE
+ = CoreSchemaImpl.getInstance().getAttributeType("1.3.6.1.1.20");
+ private static final AttributeType ENTRY_UUID_ATTRIBUTE_TYPE
+ = CoreSchemaImpl.getInstance().getAttributeType("1.3.6.1.1.16.4");
+ private static final AttributeType FACSIMILE_TELEPHONE_NUMBER_ATTRIBUTE_TYPE
+ = CoreSchemaImpl.getInstance().getAttributeType("2.5.4.23");
+ private static final AttributeType GENERATION_QUALIFIER_ATTRIBUTE_TYPE
+ = CoreSchemaImpl.getInstance().getAttributeType("2.5.4.44");
+ private static final AttributeType GIVEN_NAME_ATTRIBUTE_TYPE
+ = CoreSchemaImpl.getInstance().getAttributeType("2.5.4.42");
+ private static final AttributeType GOVERNING_STRUCTURE_RULE_ATTRIBUTE_TYPE
+ = CoreSchemaImpl.getInstance().getAttributeType("2.5.21.10");
+ private static final AttributeType HOUSE_IDENTIFIER_ATTRIBUTE_TYPE
+ = CoreSchemaImpl.getInstance().getAttributeType("2.5.4.51");
+ private static final AttributeType INITIALS_ATTRIBUTE_TYPE
+ = CoreSchemaImpl.getInstance().getAttributeType("2.5.4.43");
+ private static final AttributeType INTERNATIONAL_ISDN_NUMBER_ATTRIBUTE_TYPE
+ = CoreSchemaImpl.getInstance().getAttributeType("2.5.4.25");
+ private static final AttributeType LDAP_SYNTAXES_ATTRIBUTE_TYPE
+ = CoreSchemaImpl.getInstance().getAttributeType("1.3.6.1.4.1.1466.101.120.16");
+ private static final AttributeType L_ATTRIBUTE_TYPE
+ = CoreSchemaImpl.getInstance().getAttributeType("2.5.4.7");
+ private static final AttributeType MATCHING_RULES_ATTRIBUTE_TYPE
+ = CoreSchemaImpl.getInstance().getAttributeType("2.5.21.4");
+ private static final AttributeType MATCHING_RULE_USE_ATTRIBUTE_TYPE
+ = CoreSchemaImpl.getInstance().getAttributeType("2.5.21.8");
+ private static final AttributeType MEMBER_ATTRIBUTE_TYPE
+ = CoreSchemaImpl.getInstance().getAttributeType("2.5.4.31");
+ private static final AttributeType MODIFIERS_NAME_ATTRIBUTE_TYPE
+ = CoreSchemaImpl.getInstance().getAttributeType("2.5.18.4");
+ private static final AttributeType MODIFY_TIMESTAMP_ATTRIBUTE_TYPE
+ = CoreSchemaImpl.getInstance().getAttributeType("2.5.18.2");
+ private static final AttributeType NAME_ATTRIBUTE_TYPE
+ = CoreSchemaImpl.getInstance().getAttributeType("2.5.4.41");
+ private static final AttributeType NAME_FORMS_ATTRIBUTE_TYPE
+ = CoreSchemaImpl.getInstance().getAttributeType("2.5.21.7");
+ private static final AttributeType NAMING_CONTEXTS_ATTRIBUTE_TYPE
+ = CoreSchemaImpl.getInstance().getAttributeType("1.3.6.1.4.1.1466.101.120.5");
+ private static final AttributeType OBJECT_CLASSES_ATTRIBUTE_TYPE
+ = CoreSchemaImpl.getInstance().getAttributeType("2.5.21.6");
+ private static final AttributeType OBJECT_CLASS_ATTRIBUTE_TYPE
+ = CoreSchemaImpl.getInstance().getAttributeType("2.5.4.0");
+ private static final AttributeType OU_ATTRIBUTE_TYPE
+ = CoreSchemaImpl.getInstance().getAttributeType("2.5.4.11");
+ private static final AttributeType OWNER_ATTRIBUTE_TYPE
+ = CoreSchemaImpl.getInstance().getAttributeType("2.5.4.32");
+ private static final AttributeType O_ATTRIBUTE_TYPE
+ = CoreSchemaImpl.getInstance().getAttributeType("2.5.4.10");
+ private static final AttributeType PHYSICAL_DELIVERY_OFFICE_NAME_ATTRIBUTE_TYPE
+ = CoreSchemaImpl.getInstance().getAttributeType("2.5.4.19");
+ private static final AttributeType POSTAL_ADDRESS_ATTRIBUTE_TYPE
+ = CoreSchemaImpl.getInstance().getAttributeType("2.5.4.16");
+ private static final AttributeType POSTAL_CODE_ATTRIBUTE_TYPE
+ = CoreSchemaImpl.getInstance().getAttributeType("2.5.4.17");
+ private static final AttributeType POST_OFFICE_BOX_ATTRIBUTE_TYPE
+ = CoreSchemaImpl.getInstance().getAttributeType("2.5.4.18");
+ private static final AttributeType PREFERRED_DELIVERY_METHOD_ATTRIBUTE_TYPE
+ = CoreSchemaImpl.getInstance().getAttributeType("2.5.4.28");
+ private static final AttributeType REGISTERED_ADDRESS_ATTRIBUTE_TYPE
+ = CoreSchemaImpl.getInstance().getAttributeType("2.5.4.26");
+ private static final AttributeType ROLE_OCCUPANT_ATTRIBUTE_TYPE
+ = CoreSchemaImpl.getInstance().getAttributeType("2.5.4.33");
+ private static final AttributeType SEARCH_GUIDE_ATTRIBUTE_TYPE
+ = CoreSchemaImpl.getInstance().getAttributeType("2.5.4.14");
+ private static final AttributeType SEE_ALSO_ATTRIBUTE_TYPE
+ = CoreSchemaImpl.getInstance().getAttributeType("2.5.4.34");
+ private static final AttributeType SERIAL_NUMBER_ATTRIBUTE_TYPE
+ = CoreSchemaImpl.getInstance().getAttributeType("2.5.4.5");
+ private static final AttributeType SN_ATTRIBUTE_TYPE
+ = CoreSchemaImpl.getInstance().getAttributeType("2.5.4.4");
+ private static final AttributeType STREET_ATTRIBUTE_TYPE
+ = CoreSchemaImpl.getInstance().getAttributeType("2.5.4.9");
+ private static final AttributeType STRUCTURAL_OBJECT_CLASS_ATTRIBUTE_TYPE
+ = CoreSchemaImpl.getInstance().getAttributeType("2.5.21.9");
+ private static final AttributeType ST_ATTRIBUTE_TYPE
+ = CoreSchemaImpl.getInstance().getAttributeType("2.5.4.8");
+ private static final AttributeType SUBSCHEMA_SUBENTRY_ATTRIBUTE_TYPE
+ = CoreSchemaImpl.getInstance().getAttributeType("2.5.18.10");
+ private static final AttributeType SUPPORTED_ALGORITHMS_ATTRIBUTE_TYPE
+ = CoreSchemaImpl.getInstance().getAttributeType("2.5.4.52");
+ private static final AttributeType SUPPORTED_AUTH_PASSWORD_SCHEMES_ATTRIBUTE_TYPE
+ = CoreSchemaImpl.getInstance().getAttributeType("1.3.6.1.4.1.4203.1.3.3");
+ private static final AttributeType SUPPORTED_CONTROL_ATTRIBUTE_TYPE
+ = CoreSchemaImpl.getInstance().getAttributeType("1.3.6.1.4.1.1466.101.120.13");
+ private static final AttributeType SUPPORTED_EXTENSION_ATTRIBUTE_TYPE
+ = CoreSchemaImpl.getInstance().getAttributeType("1.3.6.1.4.1.1466.101.120.7");
+ private static final AttributeType SUPPORTED_FEATURES_ATTRIBUTE_TYPE
+ = CoreSchemaImpl.getInstance().getAttributeType("1.3.6.1.4.1.4203.1.3.5");
+ private static final AttributeType SUPPORTED_LDAP_VERSION_ATTRIBUTE_TYPE
+ = CoreSchemaImpl.getInstance().getAttributeType("1.3.6.1.4.1.1466.101.120.15");
+ private static final AttributeType SUPPORTED_SASL_MECHANISMS_ATTRIBUTE_TYPE
+ = CoreSchemaImpl.getInstance().getAttributeType("1.3.6.1.4.1.1466.101.120.14");
+ private static final AttributeType TELEPHONE_NUMBER_ATTRIBUTE_TYPE
+ = CoreSchemaImpl.getInstance().getAttributeType("2.5.4.20");
+ private static final AttributeType TELETEX_TERMINAL_IDENTIFIER_ATTRIBUTE_TYPE
+ = CoreSchemaImpl.getInstance().getAttributeType("2.5.4.22");
+ private static final AttributeType TELEX_NUMBER_ATTRIBUTE_TYPE
+ = CoreSchemaImpl.getInstance().getAttributeType("2.5.4.21");
+ private static final AttributeType TITLE_ATTRIBUTE_TYPE
+ = CoreSchemaImpl.getInstance().getAttributeType("2.5.4.12");
+ private static final AttributeType UID_ATTRIBUTE_TYPE
+ = CoreSchemaImpl.getInstance().getAttributeType("0.9.2342.19200300.100.1.1");
+ private static final AttributeType UNIQUE_MEMBER_ATTRIBUTE_TYPE
+ = CoreSchemaImpl.getInstance().getAttributeType("2.5.4.50");
+ private static final AttributeType USER_CERTIFICATE_ATTRIBUTE_TYPE
+ = CoreSchemaImpl.getInstance().getAttributeType("2.5.4.36");
+ private static final AttributeType USER_PASSWORD_ATTRIBUTE_TYPE
+ = CoreSchemaImpl.getInstance().getAttributeType("2.5.4.35");
+ private static final AttributeType VENDOR_NAME_ATTRIBUTE_TYPE
+ = CoreSchemaImpl.getInstance().getAttributeType("1.3.6.1.1.4");
+ private static final AttributeType VENDOR_VERSION_ATTRIBUTE_TYPE
+ = CoreSchemaImpl.getInstance().getAttributeType("1.3.6.1.1.5");
+ private static final AttributeType X121_ADDRESS_ATTRIBUTE_TYPE
+ = CoreSchemaImpl.getInstance().getAttributeType("2.5.4.24");
+ private static final AttributeType X500_UNIQUE_IDENTIFIER_ATTRIBUTE_TYPE
+ = CoreSchemaImpl.getInstance().getAttributeType("2.5.4.45");
// Core Object Classes
- private static final ObjectClass ALIAS_OBJECT_CLASS = CoreSchemaImpl.getInstance()
- .getObjectClass("2.5.6.1");
- private static final ObjectClass APPLICATION_PROCESS_OBJECT_CLASS = CoreSchemaImpl
- .getInstance().getObjectClass("2.5.6.11");
- private static final ObjectClass AUTH_PASSWORD_OBJECT_OBJECT_CLASS = CoreSchemaImpl
- .getInstance().getObjectClass("1.3.6.1.4.1.4203.1.4.7");
- private static final ObjectClass COUNTRY_OBJECT_CLASS = CoreSchemaImpl.getInstance()
- .getObjectClass("2.5.6.2");
- private static final ObjectClass DC_OBJECT_OBJECT_CLASS = CoreSchemaImpl.getInstance()
- .getObjectClass("1.3.6.1.4.1.1466.344");
- private static final ObjectClass DEVICE_OBJECT_CLASS = CoreSchemaImpl.getInstance()
- .getObjectClass("2.5.6.14");
- private static final ObjectClass EXTENSIBLE_OBJECT_OBJECT_CLASS = CoreSchemaImpl.getInstance()
- .getObjectClass("1.3.6.1.4.1.1466.101.120.111");
- private static final ObjectClass GROUP_OF_NAMES_OBJECT_CLASS = CoreSchemaImpl.getInstance()
- .getObjectClass("2.5.6.9");
- private static final ObjectClass GROUP_OF_UNIQUE_NAMES_OBJECT_CLASS = CoreSchemaImpl
- .getInstance().getObjectClass("2.5.6.17");
- private static final ObjectClass LOCALITY_OBJECT_CLASS = CoreSchemaImpl.getInstance()
- .getObjectClass("2.5.6.3");
- private static final ObjectClass ORGANIZATIONAL_PERSON_OBJECT_CLASS = CoreSchemaImpl
- .getInstance().getObjectClass("2.5.6.7");
- private static final ObjectClass ORGANIZATIONAL_ROLE_OBJECT_CLASS = CoreSchemaImpl
- .getInstance().getObjectClass("2.5.6.8");
- private static final ObjectClass ORGANIZATIONAL_UNIT_OBJECT_CLASS = CoreSchemaImpl
- .getInstance().getObjectClass("2.5.6.5");
- private static final ObjectClass ORGANIZATION_OBJECT_CLASS = CoreSchemaImpl.getInstance()
- .getObjectClass("2.5.6.4");
- private static final ObjectClass PERSON_OBJECT_CLASS = CoreSchemaImpl.getInstance()
- .getObjectClass("2.5.6.6");
- private static final ObjectClass RESIDENTIAL_PERSON_OBJECT_CLASS = CoreSchemaImpl.getInstance()
- .getObjectClass("2.5.6.10");
- private static final ObjectClass SUBSCHEMA_OBJECT_CLASS = CoreSchemaImpl.getInstance()
- .getObjectClass("2.5.20.1");
- private static final ObjectClass TOP_OBJECT_CLASS = CoreSchemaImpl.getInstance()
- .getObjectClass("2.5.6.0");
- private static final ObjectClass UID_OBJECT_OBJECT_CLASS = CoreSchemaImpl.getInstance()
- .getObjectClass("1.3.6.1.1.3.1");
+ private static final ObjectClass ALIAS_OBJECT_CLASS
+ = CoreSchemaImpl.getInstance().getObjectClass("2.5.6.1");
+ private static final ObjectClass APPLICATION_PROCESS_OBJECT_CLASS
+ = CoreSchemaImpl.getInstance().getObjectClass("2.5.6.11");
+ private static final ObjectClass AUTH_PASSWORD_OBJECT_OBJECT_CLASS
+ = CoreSchemaImpl.getInstance().getObjectClass("1.3.6.1.4.1.4203.1.4.7");
+ private static final ObjectClass CERTIFICATION_AUTHORITY_OBJECT_CLASS
+ = CoreSchemaImpl.getInstance().getObjectClass("2.5.6.16");
+ private static final ObjectClass CERTIFICATION_AUTHORITY_V2_OBJECT_CLASS
+ = CoreSchemaImpl.getInstance().getObjectClass("2.5.6.16.2");
+ private static final ObjectClass COUNTRY_OBJECT_CLASS
+ = CoreSchemaImpl.getInstance().getObjectClass("2.5.6.2");
+ private static final ObjectClass C_RL_DISTRIBUTION_POINT_OBJECT_CLASS
+ = CoreSchemaImpl.getInstance().getObjectClass("2.5.6.19");
+ private static final ObjectClass DC_OBJECT_OBJECT_CLASS
+ = CoreSchemaImpl.getInstance().getObjectClass("1.3.6.1.4.1.1466.344");
+ private static final ObjectClass DELTA_CRL_OBJECT_CLASS
+ = CoreSchemaImpl.getInstance().getObjectClass("2.5.6.23");
+ private static final ObjectClass DEVICE_OBJECT_CLASS
+ = CoreSchemaImpl.getInstance().getObjectClass("2.5.6.14");
+ private static final ObjectClass EXTENSIBLE_OBJECT_OBJECT_CLASS
+ = CoreSchemaImpl.getInstance().getObjectClass("1.3.6.1.4.1.1466.101.120.111");
+ private static final ObjectClass GROUP_OF_NAMES_OBJECT_CLASS
+ = CoreSchemaImpl.getInstance().getObjectClass("2.5.6.9");
+ private static final ObjectClass GROUP_OF_UNIQUE_NAMES_OBJECT_CLASS
+ = CoreSchemaImpl.getInstance().getObjectClass("2.5.6.17");
+ private static final ObjectClass LOCALITY_OBJECT_CLASS
+ = CoreSchemaImpl.getInstance().getObjectClass("2.5.6.3");
+ private static final ObjectClass ORGANIZATIONAL_PERSON_OBJECT_CLASS
+ = CoreSchemaImpl.getInstance().getObjectClass("2.5.6.7");
+ private static final ObjectClass ORGANIZATIONAL_ROLE_OBJECT_CLASS
+ = CoreSchemaImpl.getInstance().getObjectClass("2.5.6.8");
+ private static final ObjectClass ORGANIZATIONAL_UNIT_OBJECT_CLASS
+ = CoreSchemaImpl.getInstance().getObjectClass("2.5.6.5");
+ private static final ObjectClass ORGANIZATION_OBJECT_CLASS
+ = CoreSchemaImpl.getInstance().getObjectClass("2.5.6.4");
+ private static final ObjectClass PERSON_OBJECT_CLASS
+ = CoreSchemaImpl.getInstance().getObjectClass("2.5.6.6");
+ private static final ObjectClass PKI_CA_OBJECT_CLASS
+ = CoreSchemaImpl.getInstance().getObjectClass("2.5.6.22");
+ private static final ObjectClass PKI_USER_OBJECT_CLASS
+ = CoreSchemaImpl.getInstance().getObjectClass("2.5.6.21");
+ private static final ObjectClass RESIDENTIAL_PERSON_OBJECT_CLASS
+ = CoreSchemaImpl.getInstance().getObjectClass("2.5.6.10");
+ private static final ObjectClass STRONG_AUTHENTICATION_USER_OBJECT_CLASS
+ = CoreSchemaImpl.getInstance().getObjectClass("2.5.6.15");
+ private static final ObjectClass SUBSCHEMA_OBJECT_CLASS
+ = CoreSchemaImpl.getInstance().getObjectClass("2.5.20.1");
+ private static final ObjectClass TOP_OBJECT_CLASS
+ = CoreSchemaImpl.getInstance().getObjectClass("2.5.6.0");
+ private static final ObjectClass UID_OBJECT_OBJECT_CLASS
+ = CoreSchemaImpl.getInstance().getObjectClass("1.3.6.1.1.3.1");
+ private static final ObjectClass USER_SECURITY_INFORMATION_OBJECT_CLASS
+ = CoreSchemaImpl.getInstance().getObjectClass("2.5.6.18");
// Prevent instantiation
private CoreSchema() {
@@ -417,8 +448,8 @@
}
/**
- * Returns a reference to the {@code Attribute Type Description Syntax}
- * which has the OID {@code 1.3.6.1.4.1.1466.115.121.1.3}.
+ * Returns a reference to the {@code Attribute Type Description Syntax} which has the OID
+ * {@code 1.3.6.1.4.1.1466.115.121.1.3}.
*
* @return A reference to the {@code Attribute Type Description Syntax}.
*/
@@ -427,8 +458,8 @@
}
/**
- * Returns a reference to the {@code Authentication Password Syntax} which
- * has the OID {@code 1.3.6.1.4.1.4203.1.1.2}.
+ * Returns a reference to the {@code Authentication Password Syntax} which has the OID
+ * {@code 1.3.6.1.4.1.4203.1.1.2}.
*
* @return A reference to the {@code Authentication Password Syntax}.
*/
@@ -437,8 +468,7 @@
}
/**
- * Returns a reference to the {@code Binary Syntax} which has the OID
- * {@code 1.3.6.1.4.1.1466.115.121.1.5}.
+ * Returns a reference to the {@code Binary Syntax} which has the OID {@code 1.3.6.1.4.1.1466.115.121.1.5}.
*
* @return A reference to the {@code Binary Syntax}.
*/
@@ -447,8 +477,7 @@
}
/**
- * Returns a reference to the {@code Bit String Syntax} which has the OID
- * {@code 1.3.6.1.4.1.1466.115.121.1.6}.
+ * Returns a reference to the {@code Bit String Syntax} which has the OID {@code 1.3.6.1.4.1.1466.115.121.1.6}.
*
* @return A reference to the {@code Bit String Syntax}.
*/
@@ -457,8 +486,7 @@
}
/**
- * Returns a reference to the {@code Boolean Syntax} which has the OID
- * {@code 1.3.6.1.4.1.1466.115.121.1.7}.
+ * Returns a reference to the {@code Boolean Syntax} which has the OID {@code 1.3.6.1.4.1.1466.115.121.1.7}.
*
* @return A reference to the {@code Boolean Syntax}.
*/
@@ -467,8 +495,8 @@
}
/**
- * Returns a reference to the {@code Certificate List Syntax} which has the
- * OID {@code 1.3.6.1.4.1.1466.115.121.1.9}.
+ * Returns a reference to the {@code Certificate List Syntax} which has the OID
+ * {@code 1.3.6.1.4.1.1466.115.121.1.9}.
*
* @return A reference to the {@code Certificate List Syntax}.
*/
@@ -477,8 +505,8 @@
}
/**
- * Returns a reference to the {@code Certificate Pair Syntax} which has the
- * OID {@code 1.3.6.1.4.1.1466.115.121.1.10}.
+ * Returns a reference to the {@code Certificate Pair Syntax} which has the OID
+ * {@code 1.3.6.1.4.1.1466.115.121.1.10}.
*
* @return A reference to the {@code Certificate Pair Syntax}.
*/
@@ -487,8 +515,7 @@
}
/**
- * Returns a reference to the {@code Certificate Syntax} which has the OID
- * {@code 1.3.6.1.4.1.1466.115.121.1.8}.
+ * Returns a reference to the {@code Certificate Syntax} which has the OID {@code 1.3.6.1.4.1.1466.115.121.1.8}.
*
* @return A reference to the {@code Certificate Syntax}.
*/
@@ -497,8 +524,7 @@
}
/**
- * Returns a reference to the {@code Country String Syntax} which has the
- * OID {@code 1.3.6.1.4.1.1466.115.121.1.11}.
+ * Returns a reference to the {@code Country String Syntax} which has the OID {@code 1.3.6.1.4.1.1466.115.121.1.11}.
*
* @return A reference to the {@code Country String Syntax}.
*/
@@ -507,8 +533,8 @@
}
/**
- * Returns a reference to the {@code Delivery Method Syntax} which has the
- * OID {@code 1.3.6.1.4.1.1466.115.121.1.14}.
+ * Returns a reference to the {@code Delivery Method Syntax} which has the OID
+ * {@code 1.3.6.1.4.1.1466.115.121.1.14}.
*
* @return A reference to the {@code Delivery Method Syntax}.
*/
@@ -517,8 +543,8 @@
}
/**
- * Returns a reference to the {@code Directory String Syntax} which has the
- * OID {@code 1.3.6.1.4.1.1466.115.121.1.15}.
+ * Returns a reference to the {@code Directory String Syntax} which has the OID
+ * {@code 1.3.6.1.4.1.1466.115.121.1.15}.
*
* @return A reference to the {@code Directory String Syntax}.
*/
@@ -527,8 +553,8 @@
}
/**
- * Returns a reference to the {@code DIT Content Rule Description Syntax}
- * which has the OID {@code 1.3.6.1.4.1.1466.115.121.1.16}.
+ * Returns a reference to the {@code DIT Content Rule Description Syntax} which has the OID
+ * {@code 1.3.6.1.4.1.1466.115.121.1.16}.
*
* @return A reference to the {@code DIT Content Rule Description Syntax}.
*/
@@ -537,8 +563,8 @@
}
/**
- * Returns a reference to the {@code DIT Structure Rule Description Syntax}
- * which has the OID {@code 1.3.6.1.4.1.1466.115.121.1.17}.
+ * Returns a reference to the {@code DIT Structure Rule Description Syntax} which has the OID
+ * {@code 1.3.6.1.4.1.1466.115.121.1.17}.
*
* @return A reference to the {@code DIT Structure Rule Description Syntax}.
*/
@@ -547,8 +573,7 @@
}
/**
- * Returns a reference to the {@code DN Syntax} which has the OID
- * {@code 1.3.6.1.4.1.1466.115.121.1.12}.
+ * Returns a reference to the {@code DN Syntax} which has the OID {@code 1.3.6.1.4.1.1466.115.121.1.12}.
*
* @return A reference to the {@code DN Syntax}.
*/
@@ -557,8 +582,7 @@
}
/**
- * Returns a reference to the {@code Enhanced Guide Syntax} which has the
- * OID {@code 1.3.6.1.4.1.1466.115.121.1.21}.
+ * Returns a reference to the {@code Enhanced Guide Syntax} which has the OID {@code 1.3.6.1.4.1.1466.115.121.1.21}.
*
* @return A reference to the {@code Enhanced Guide Syntax}.
*/
@@ -567,8 +591,8 @@
}
/**
- * Returns a reference to the {@code Facsimile Telephone Number Syntax}
- * which has the OID {@code 1.3.6.1.4.1.1466.115.121.1.22}.
+ * Returns a reference to the {@code Facsimile Telephone Number Syntax} which has the OID
+ * {@code 1.3.6.1.4.1.1466.115.121.1.22}.
*
* @return A reference to the {@code Facsimile Telephone Number Syntax}.
*/
@@ -577,8 +601,7 @@
}
/**
- * Returns a reference to the {@code Fax Syntax} which has the OID
- * {@code 1.3.6.1.4.1.1466.115.121.1.23}.
+ * Returns a reference to the {@code Fax Syntax} which has the OID {@code 1.3.6.1.4.1.1466.115.121.1.23}.
*
* @return A reference to the {@code Fax Syntax}.
*/
@@ -587,8 +610,8 @@
}
/**
- * Returns a reference to the {@code Generalized Time Syntax} which has the
- * OID {@code 1.3.6.1.4.1.1466.115.121.1.24}.
+ * Returns a reference to the {@code Generalized Time Syntax} which has the OID
+ * {@code 1.3.6.1.4.1.1466.115.121.1.24}.
*
* @return A reference to the {@code Generalized Time Syntax}.
*/
@@ -597,8 +620,7 @@
}
/**
- * Returns a reference to the {@code Guide Syntax} which has the OID
- * {@code 1.3.6.1.4.1.1466.115.121.1.25}.
+ * Returns a reference to the {@code Guide Syntax} which has the OID {@code 1.3.6.1.4.1.1466.115.121.1.25}.
*
* @return A reference to the {@code Guide Syntax}.
*/
@@ -607,8 +629,7 @@
}
/**
- * Returns a reference to the {@code IA5 String Syntax} which has the OID
- * {@code 1.3.6.1.4.1.1466.115.121.1.26}.
+ * Returns a reference to the {@code IA5 String Syntax} which has the OID {@code 1.3.6.1.4.1.1466.115.121.1.26}.
*
* @return A reference to the {@code IA5 String Syntax}.
*/
@@ -617,8 +638,7 @@
}
/**
- * Returns a reference to the {@code Integer Syntax} which has the OID
- * {@code 1.3.6.1.4.1.1466.115.121.1.27}.
+ * Returns a reference to the {@code Integer Syntax} which has the OID {@code 1.3.6.1.4.1.1466.115.121.1.27}.
*
* @return A reference to the {@code Integer Syntax}.
*/
@@ -627,8 +647,7 @@
}
/**
- * Returns a reference to the {@code JPEG Syntax} which has the OID
- * {@code 1.3.6.1.4.1.1466.115.121.1.28}.
+ * Returns a reference to the {@code JPEG Syntax} which has the OID {@code 1.3.6.1.4.1.1466.115.121.1.28}.
*
* @return A reference to the {@code JPEG Syntax}.
*/
@@ -637,8 +656,8 @@
}
/**
- * Returns a reference to the {@code LDAP Syntax Description Syntax} which
- * has the OID {@code 1.3.6.1.4.1.1466.115.121.1.54}.
+ * Returns a reference to the {@code LDAP Syntax Description Syntax} which has the OID
+ * {@code 1.3.6.1.4.1.1466.115.121.1.54}.
*
* @return A reference to the {@code LDAP Syntax Description Syntax}.
*/
@@ -647,8 +666,8 @@
}
/**
- * Returns a reference to the {@code Matching Rule Description Syntax} which
- * has the OID {@code 1.3.6.1.4.1.1466.115.121.1.30}.
+ * Returns a reference to the {@code Matching Rule Description Syntax} which has the OID
+ * {@code 1.3.6.1.4.1.1466.115.121.1.30}.
*
* @return A reference to the {@code Matching Rule Description Syntax}.
*/
@@ -657,8 +676,8 @@
}
/**
- * Returns a reference to the {@code Matching Rule Use Description Syntax}
- * which has the OID {@code 1.3.6.1.4.1.1466.115.121.1.31}.
+ * Returns a reference to the {@code Matching Rule Use Description Syntax} which has the OID
+ * {@code 1.3.6.1.4.1.1466.115.121.1.31}.
*
* @return A reference to the {@code Matching Rule Use Description Syntax}.
*/
@@ -667,8 +686,8 @@
}
/**
- * Returns a reference to the {@code Name and Optional UID Syntax} which has
- * the OID {@code 1.3.6.1.4.1.1466.115.121.1.34}.
+ * Returns a reference to the {@code Name and Optional UID Syntax} which has the OID
+ * {@code 1.3.6.1.4.1.1466.115.121.1.34}.
*
* @return A reference to the {@code Name and Optional UID Syntax}.
*/
@@ -677,8 +696,8 @@
}
/**
- * Returns a reference to the {@code Name Form Description Syntax} which has
- * the OID {@code 1.3.6.1.4.1.1466.115.121.1.35}.
+ * Returns a reference to the {@code Name Form Description Syntax} which has the OID
+ * {@code 1.3.6.1.4.1.1466.115.121.1.35}.
*
* @return A reference to the {@code Name Form Description Syntax}.
*/
@@ -687,8 +706,7 @@
}
/**
- * Returns a reference to the {@code Numeric String Syntax} which has the
- * OID {@code 1.3.6.1.4.1.1466.115.121.1.36}.
+ * Returns a reference to the {@code Numeric String Syntax} which has the OID {@code 1.3.6.1.4.1.1466.115.121.1.36}.
*
* @return A reference to the {@code Numeric String Syntax}.
*/
@@ -697,8 +715,8 @@
}
/**
- * Returns a reference to the {@code Object Class Description Syntax} which
- * has the OID {@code 1.3.6.1.4.1.1466.115.121.1.37}.
+ * Returns a reference to the {@code Object Class Description Syntax} which has the OID
+ * {@code 1.3.6.1.4.1.1466.115.121.1.37}.
*
* @return A reference to the {@code Object Class Description Syntax}.
*/
@@ -707,8 +725,7 @@
}
/**
- * Returns a reference to the {@code Octet String Syntax} which has the OID
- * {@code 1.3.6.1.4.1.1466.115.121.1.40}.
+ * Returns a reference to the {@code Octet String Syntax} which has the OID {@code 1.3.6.1.4.1.1466.115.121.1.40}.
*
* @return A reference to the {@code Octet String Syntax}.
*/
@@ -717,8 +734,7 @@
}
/**
- * Returns a reference to the {@code OID Syntax} which has the OID
- * {@code 1.3.6.1.4.1.1466.115.121.1.38}.
+ * Returns a reference to the {@code OID Syntax} which has the OID {@code 1.3.6.1.4.1.1466.115.121.1.38}.
*
* @return A reference to the {@code OID Syntax}.
*/
@@ -727,8 +743,7 @@
}
/**
- * Returns a reference to the {@code Other Mailbox Syntax} which has the OID
- * {@code 1.3.6.1.4.1.1466.115.121.1.39}.
+ * Returns a reference to the {@code Other Mailbox Syntax} which has the OID {@code 1.3.6.1.4.1.1466.115.121.1.39}.
*
* @return A reference to the {@code Other Mailbox Syntax}.
*/
@@ -737,8 +752,7 @@
}
/**
- * Returns a reference to the {@code Postal Address Syntax} which has the
- * OID {@code 1.3.6.1.4.1.1466.115.121.1.41}.
+ * Returns a reference to the {@code Postal Address Syntax} which has the OID {@code 1.3.6.1.4.1.1466.115.121.1.41}.
*
* @return A reference to the {@code Postal Address Syntax}.
*/
@@ -747,8 +761,8 @@
}
/**
- * Returns a reference to the {@code Presentation Address Syntax} which has
- * the OID {@code 1.3.6.1.4.1.1466.115.121.1.43}.
+ * Returns a reference to the {@code Presentation Address Syntax} which has the OID
+ * {@code 1.3.6.1.4.1.1466.115.121.1.43}.
*
* @return A reference to the {@code Presentation Address Syntax}.
*/
@@ -757,8 +771,8 @@
}
/**
- * Returns a reference to the {@code Printable String Syntax} which has the
- * OID {@code 1.3.6.1.4.1.1466.115.121.1.44}.
+ * Returns a reference to the {@code Printable String Syntax} which has the OID
+ * {@code 1.3.6.1.4.1.1466.115.121.1.44}.
*
* @return A reference to the {@code Printable String Syntax}.
*/
@@ -767,8 +781,8 @@
}
/**
- * Returns a reference to the {@code Protocol Information Syntax} which has
- * the OID {@code 1.3.6.1.4.1.1466.115.121.1.42}.
+ * Returns a reference to the {@code Protocol Information Syntax} which has the OID
+ * {@code 1.3.6.1.4.1.1466.115.121.1.42}.
*
* @return A reference to the {@code Protocol Information Syntax}.
*/
@@ -777,8 +791,8 @@
}
/**
- * Returns a reference to the {@code Substring Assertion Syntax} which has
- * the OID {@code 1.3.6.1.4.1.1466.115.121.1.58}.
+ * Returns a reference to the {@code Substring Assertion Syntax} which has the OID
+ * {@code 1.3.6.1.4.1.1466.115.121.1.58}.
*
* @return A reference to the {@code Substring Assertion Syntax}.
*/
@@ -787,8 +801,8 @@
}
/**
- * Returns a reference to the {@code Supported Algorithm Syntax} which has
- * the OID {@code 1.3.6.1.4.1.1466.115.121.1.49}.
+ * Returns a reference to the {@code Supported Algorithm Syntax} which has the OID
+ * {@code 1.3.6.1.4.1.1466.115.121.1.49}.
*
* @return A reference to the {@code Supported Algorithm Syntax}.
*/
@@ -797,8 +811,8 @@
}
/**
- * Returns a reference to the {@code Telephone Number Syntax} which has the
- * OID {@code 1.3.6.1.4.1.1466.115.121.1.50}.
+ * Returns a reference to the {@code Telephone Number Syntax} which has the OID
+ * {@code 1.3.6.1.4.1.1466.115.121.1.50}.
*
* @return A reference to the {@code Telephone Number Syntax}.
*/
@@ -807,8 +821,8 @@
}
/**
- * Returns a reference to the {@code Teletex Terminal Identifier Syntax}
- * which has the OID {@code 1.3.6.1.4.1.1466.115.121.1.51}.
+ * Returns a reference to the {@code Teletex Terminal Identifier Syntax} which has the OID
+ * {@code 1.3.6.1.4.1.1466.115.121.1.51}.
*
* @return A reference to the {@code Teletex Terminal Identifier Syntax}.
*/
@@ -817,8 +831,7 @@
}
/**
- * Returns a reference to the {@code Telex Number Syntax} which has the OID
- * {@code 1.3.6.1.4.1.1466.115.121.1.52}.
+ * Returns a reference to the {@code Telex Number Syntax} which has the OID {@code 1.3.6.1.4.1.1466.115.121.1.52}.
*
* @return A reference to the {@code Telex Number Syntax}.
*/
@@ -827,8 +840,7 @@
}
/**
- * Returns a reference to the {@code UTC Time Syntax} which has the OID
- * {@code 1.3.6.1.4.1.1466.115.121.1.53}.
+ * Returns a reference to the {@code UTC Time Syntax} which has the OID {@code 1.3.6.1.4.1.1466.115.121.1.53}.
*
* @return A reference to the {@code UTC Time Syntax}.
*/
@@ -837,8 +849,7 @@
}
/**
- * Returns a reference to the {@code UUID Syntax} which has the OID
- * {@code 1.3.6.1.1.16.1}.
+ * Returns a reference to the {@code UUID Syntax} which has the OID {@code 1.3.6.1.1.16.1}.
*
* @return A reference to the {@code UUID Syntax}.
*/
@@ -847,8 +858,18 @@
}
/**
- * Returns a reference to the {@code authPasswordExactMatch} Matching Rule
- * which has the OID {@code 1.3.6.1.4.1.4203.1.2.2}.
+ * Returns a reference to the {@code X.509 Certificate Exact Assertion Syntax} which has the OID
+ * {@code 1.3.6.1.1.15.1}.
+ *
+ * @return A reference to the {@code X.509 Certificate Exact Assertion Syntax}.
+ */
+ public static Syntax getX509CertificateExactAssertionSyntax() {
+ return X509_CERTIFICATE_EXACT_ASSERTION_SYNTAX;
+ }
+
+ /**
+ * Returns a reference to the {@code authPasswordExactMatch} Matching Rule which has the OID
+ * {@code 1.3.6.1.4.1.4203.1.2.2}.
*
* @return A reference to the {@code authPasswordExactMatch} Matching Rule.
*/
@@ -857,8 +878,7 @@
}
/**
- * Returns a reference to the {@code bitStringMatch} Matching Rule which has
- * the OID {@code 2.5.13.16}.
+ * Returns a reference to the {@code bitStringMatch} Matching Rule which has the OID {@code 2.5.13.16}.
*
* @return A reference to the {@code bitStringMatch} Matching Rule.
*/
@@ -867,8 +887,7 @@
}
/**
- * Returns a reference to the {@code booleanMatch} Matching Rule which has
- * the OID {@code 2.5.13.13}.
+ * Returns a reference to the {@code booleanMatch} Matching Rule which has the OID {@code 2.5.13.13}.
*
* @return A reference to the {@code booleanMatch} Matching Rule.
*/
@@ -877,8 +896,8 @@
}
/**
- * Returns a reference to the {@code caseExactIA5Match} Matching Rule which
- * has the OID {@code 1.3.6.1.4.1.1466.109.114.1}.
+ * Returns a reference to the {@code caseExactIA5Match} Matching Rule which has the OID
+ * {@code 1.3.6.1.4.1.1466.109.114.1}.
*
* @return A reference to the {@code caseExactIA5Match} Matching Rule.
*/
@@ -887,8 +906,7 @@
}
/**
- * Returns a reference to the {@code caseExactMatch} Matching Rule which has
- * the OID {@code 2.5.13.5}.
+ * Returns a reference to the {@code caseExactMatch} Matching Rule which has the OID {@code 2.5.13.5}.
*
* @return A reference to the {@code caseExactMatch} Matching Rule.
*/
@@ -897,8 +915,7 @@
}
/**
- * Returns a reference to the {@code caseExactOrderingMatch} Matching Rule
- * which has the OID {@code 2.5.13.6}.
+ * Returns a reference to the {@code caseExactOrderingMatch} Matching Rule which has the OID {@code 2.5.13.6}.
*
* @return A reference to the {@code caseExactOrderingMatch} Matching Rule.
*/
@@ -907,19 +924,17 @@
}
/**
- * Returns a reference to the {@code caseExactSubstringsMatch} Matching Rule
- * which has the OID {@code 2.5.13.7}.
+ * Returns a reference to the {@code caseExactSubstringsMatch} Matching Rule which has the OID {@code 2.5.13.7}.
*
- * @return A reference to the {@code caseExactSubstringsMatch} Matching
- * Rule.
+ * @return A reference to the {@code caseExactSubstringsMatch} Matching Rule.
*/
public static MatchingRule getCaseExactSubstringsMatchingRule() {
return CASE_EXACT_SUBSTRINGS_MATCHING_RULE;
}
/**
- * Returns a reference to the {@code caseIgnoreIA5Match} Matching Rule which
- * has the OID {@code 1.3.6.1.4.1.1466.109.114.2}.
+ * Returns a reference to the {@code caseIgnoreIA5Match} Matching Rule which has the OID
+ * {@code 1.3.6.1.4.1.1466.109.114.2}.
*
* @return A reference to the {@code caseIgnoreIA5Match} Matching Rule.
*/
@@ -928,19 +943,17 @@
}
/**
- * Returns a reference to the {@code caseIgnoreIA5SubstringsMatch} Matching
- * Rule which has the OID {@code 1.3.6.1.4.1.1466.109.114.3}.
+ * Returns a reference to the {@code caseIgnoreIA5SubstringsMatch} Matching Rule which has the OID
+ * {@code 1.3.6.1.4.1.1466.109.114.3}.
*
- * @return A reference to the {@code caseIgnoreIA5SubstringsMatch} Matching
- * Rule.
+ * @return A reference to the {@code caseIgnoreIA5SubstringsMatch} Matching Rule.
*/
public static MatchingRule getCaseIgnoreIA5SubstringsMatchingRule() {
return CASE_IGNORE_IA5_SUBSTRINGS_MATCHING_RULE;
}
/**
- * Returns a reference to the {@code caseIgnoreListMatch} Matching Rule
- * which has the OID {@code 2.5.13.11}.
+ * Returns a reference to the {@code caseIgnoreListMatch} Matching Rule which has the OID {@code 2.5.13.11}.
*
* @return A reference to the {@code caseIgnoreListMatch} Matching Rule.
*/
@@ -949,19 +962,17 @@
}
/**
- * Returns a reference to the {@code caseIgnoreListSubstringsMatch} Matching
- * Rule which has the OID {@code 2.5.13.12}.
+ * Returns a reference to the {@code caseIgnoreListSubstringsMatch} Matching Rule which has the OID
+ * {@code 2.5.13.12}.
*
- * @return A reference to the {@code caseIgnoreListSubstringsMatch} Matching
- * Rule.
+ * @return A reference to the {@code caseIgnoreListSubstringsMatch} Matching Rule.
*/
public static MatchingRule getCaseIgnoreListSubstringsMatchingRule() {
return CASE_IGNORE_LIST_SUBSTRINGS_MATCHING_RULE;
}
/**
- * Returns a reference to the {@code caseIgnoreMatch} Matching Rule which
- * has the OID {@code 2.5.13.2}.
+ * Returns a reference to the {@code caseIgnoreMatch} Matching Rule which has the OID {@code 2.5.13.2}.
*
* @return A reference to the {@code caseIgnoreMatch} Matching Rule.
*/
@@ -970,8 +981,7 @@
}
/**
- * Returns a reference to the {@code caseIgnoreOrderingMatch} Matching Rule
- * which has the OID {@code 2.5.13.3}.
+ * Returns a reference to the {@code caseIgnoreOrderingMatch} Matching Rule which has the OID {@code 2.5.13.3}.
*
* @return A reference to the {@code caseIgnoreOrderingMatch} Matching Rule.
*/
@@ -980,30 +990,35 @@
}
/**
- * Returns a reference to the {@code caseIgnoreSubstringsMatch} Matching
- * Rule which has the OID {@code 2.5.13.4}.
+ * Returns a reference to the {@code caseIgnoreSubstringsMatch} Matching Rule which has the OID {@code 2.5.13.4}.
*
- * @return A reference to the {@code caseIgnoreSubstringsMatch} Matching
- * Rule.
+ * @return A reference to the {@code caseIgnoreSubstringsMatch} Matching Rule.
*/
public static MatchingRule getCaseIgnoreSubstringsMatchingRule() {
return CASE_IGNORE_SUBSTRINGS_MATCHING_RULE;
}
/**
- * Returns a reference to the {@code directoryStringFirstComponentMatch}
- * Matching Rule which has the OID {@code 2.5.13.31}.
+ * Returns a reference to the {@code certificateExactMatch} Matching Rule which has the OID {@code 2.5.13.34}.
*
- * @return A reference to the {@code directoryStringFirstComponentMatch}
- * Matching Rule.
+ * @return A reference to the {@code certificateExactMatch} Matching Rule.
+ */
+ public static MatchingRule getCertificateExactMatchingRule() {
+ return CERTIFICATE_EXACT_MATCHING_RULE;
+ }
+
+ /**
+ * Returns a reference to the {@code directoryStringFirstComponentMatch} Matching Rule which has the OID
+ * {@code 2.5.13.31}.
+ *
+ * @return A reference to the {@code directoryStringFirstComponentMatch} Matching Rule.
*/
public static MatchingRule getDirectoryStringFirstComponentMatchingRule() {
return DIRECTORY_STRING_FIRST_COMPONENT_MATCHING_RULE;
}
/**
- * Returns a reference to the {@code distinguishedNameMatch} Matching Rule
- * which has the OID {@code 2.5.13.1}.
+ * Returns a reference to the {@code distinguishedNameMatch} Matching Rule which has the OID {@code 2.5.13.1}.
*
* @return A reference to the {@code distinguishedNameMatch} Matching Rule.
*/
@@ -1012,8 +1027,7 @@
}
/**
- * Returns a reference to the {@code generalizedTimeMatch} Matching Rule
- * which has the OID {@code 2.5.13.27}.
+ * Returns a reference to the {@code generalizedTimeMatch} Matching Rule which has the OID {@code 2.5.13.27}.
*
* @return A reference to the {@code generalizedTimeMatch} Matching Rule.
*/
@@ -1022,30 +1036,26 @@
}
/**
- * Returns a reference to the {@code generalizedTimeOrderingMatch} Matching
- * Rule which has the OID {@code 2.5.13.28}.
+ * Returns a reference to the {@code generalizedTimeOrderingMatch} Matching Rule which has the OID
+ * {@code 2.5.13.28}.
*
- * @return A reference to the {@code generalizedTimeOrderingMatch} Matching
- * Rule.
+ * @return A reference to the {@code generalizedTimeOrderingMatch} Matching Rule.
*/
public static MatchingRule getGeneralizedTimeOrderingMatchingRule() {
return GENERALIZED_TIME_ORDERING_MATCHING_RULE;
}
/**
- * Returns a reference to the {@code integerFirstComponentMatch} Matching
- * Rule which has the OID {@code 2.5.13.29}.
+ * Returns a reference to the {@code integerFirstComponentMatch} Matching Rule which has the OID {@code 2.5.13.29}.
*
- * @return A reference to the {@code integerFirstComponentMatch} Matching
- * Rule.
+ * @return A reference to the {@code integerFirstComponentMatch} Matching Rule.
*/
public static MatchingRule getIntegerFirstComponentMatchingRule() {
return INTEGER_FIRST_COMPONENT_MATCHING_RULE;
}
/**
- * Returns a reference to the {@code integerMatch} Matching Rule which has
- * the OID {@code 2.5.13.14}.
+ * Returns a reference to the {@code integerMatch} Matching Rule which has the OID {@code 2.5.13.14}.
*
* @return A reference to the {@code integerMatch} Matching Rule.
*/
@@ -1054,8 +1064,7 @@
}
/**
- * Returns a reference to the {@code integerOrderingMatch} Matching Rule
- * which has the OID {@code 2.5.13.15}.
+ * Returns a reference to the {@code integerOrderingMatch} Matching Rule which has the OID {@code 2.5.13.15}.
*
* @return A reference to the {@code integerOrderingMatch} Matching Rule.
*/
@@ -1064,8 +1073,7 @@
}
/**
- * Returns a reference to the {@code keywordMatch} Matching Rule which has
- * the OID {@code 2.5.13.33}.
+ * Returns a reference to the {@code keywordMatch} Matching Rule which has the OID {@code 2.5.13.33}.
*
* @return A reference to the {@code keywordMatch} Matching Rule.
*/
@@ -1074,8 +1082,7 @@
}
/**
- * Returns a reference to the {@code numericStringMatch} Matching Rule which
- * has the OID {@code 2.5.13.8}.
+ * Returns a reference to the {@code numericStringMatch} Matching Rule which has the OID {@code 2.5.13.8}.
*
* @return A reference to the {@code numericStringMatch} Matching Rule.
*/
@@ -1084,41 +1091,36 @@
}
/**
- * Returns a reference to the {@code numericStringOrderingMatch} Matching
- * Rule which has the OID {@code 2.5.13.9}.
+ * Returns a reference to the {@code numericStringOrderingMatch} Matching Rule which has the OID {@code 2.5.13.9}.
*
- * @return A reference to the {@code numericStringOrderingMatch} Matching
- * Rule.
+ * @return A reference to the {@code numericStringOrderingMatch} Matching Rule.
*/
public static MatchingRule getNumericStringOrderingMatchingRule() {
return NUMERIC_STRING_ORDERING_MATCHING_RULE;
}
/**
- * Returns a reference to the {@code numericStringSubstringsMatch} Matching
- * Rule which has the OID {@code 2.5.13.10}.
+ * Returns a reference to the {@code numericStringSubstringsMatch} Matching Rule which has the OID
+ * {@code 2.5.13.10}.
*
- * @return A reference to the {@code numericStringSubstringsMatch} Matching
- * Rule.
+ * @return A reference to the {@code numericStringSubstringsMatch} Matching Rule.
*/
public static MatchingRule getNumericStringSubstringsMatchingRule() {
return NUMERIC_STRING_SUBSTRINGS_MATCHING_RULE;
}
/**
- * Returns a reference to the {@code objectIdentifierFirstComponentMatch}
- * Matching Rule which has the OID {@code 2.5.13.30}.
+ * Returns a reference to the {@code objectIdentifierFirstComponentMatch} Matching Rule which has the OID
+ * {@code 2.5.13.30}.
*
- * @return A reference to the {@code objectIdentifierFirstComponentMatch}
- * Matching Rule.
+ * @return A reference to the {@code objectIdentifierFirstComponentMatch} Matching Rule.
*/
public static MatchingRule getObjectIdentifierFirstComponentMatchingRule() {
return OBJECT_IDENTIFIER_FIRST_COMPONENT_MATCHING_RULE;
}
/**
- * Returns a reference to the {@code objectIdentifierMatch} Matching Rule
- * which has the OID {@code 2.5.13.0}.
+ * Returns a reference to the {@code objectIdentifierMatch} Matching Rule which has the OID {@code 2.5.13.0}.
*
* @return A reference to the {@code objectIdentifierMatch} Matching Rule.
*/
@@ -1127,8 +1129,7 @@
}
/**
- * Returns a reference to the {@code octetStringMatch} Matching Rule which
- * has the OID {@code 2.5.13.17}.
+ * Returns a reference to the {@code octetStringMatch} Matching Rule which has the OID {@code 2.5.13.17}.
*
* @return A reference to the {@code octetStringMatch} Matching Rule.
*/
@@ -1137,52 +1138,43 @@
}
/**
- * Returns a reference to the {@code octetStringOrderingMatch} Matching Rule
- * which has the OID {@code 2.5.13.18}.
+ * Returns a reference to the {@code octetStringOrderingMatch} Matching Rule which has the OID {@code 2.5.13.18}.
*
- * @return A reference to the {@code octetStringOrderingMatch} Matching
- * Rule.
+ * @return A reference to the {@code octetStringOrderingMatch} Matching Rule.
*/
public static MatchingRule getOctetStringOrderingMatchingRule() {
return OCTET_STRING_ORDERING_MATCHING_RULE;
}
/**
- * Returns a reference to the {@code octetStringSubstringsMatch} Matching
- * Rule which has the OID {@code 2.5.13.19}.
+ * Returns a reference to the {@code octetStringSubstringsMatch} Matching Rule which has the OID {@code 2.5.13.19}.
*
- * @return A reference to the {@code octetStringSubstringsMatch} Matching
- * Rule.
+ * @return A reference to the {@code octetStringSubstringsMatch} Matching Rule.
*/
public static MatchingRule getOctetStringSubstringsMatchingRule() {
return OCTET_STRING_SUBSTRINGS_MATCHING_RULE;
}
/**
- * Returns a reference to the {@code presentationAddressMatch} Matching Rule
- * which has the OID {@code 2.5.13.22}.
+ * Returns a reference to the {@code presentationAddressMatch} Matching Rule which has the OID {@code 2.5.13.22}.
*
- * @return A reference to the {@code presentationAddressMatch} Matching
- * Rule.
+ * @return A reference to the {@code presentationAddressMatch} Matching Rule.
*/
public static MatchingRule getPresentationAddressMatchingRule() {
return PRESENTATION_ADDRESS_MATCHING_RULE;
}
/**
- * Returns a reference to the {@code protocolInformationMatch} Matching Rule
- * which has the OID {@code 2.5.13.24}.
+ * Returns a reference to the {@code protocolInformationMatch} Matching Rule which has the OID {@code 2.5.13.24}.
*
- * @return A reference to the {@code protocolInformationMatch} Matching
- * Rule.
+ * @return A reference to the {@code protocolInformationMatch} Matching Rule.
*/
public static MatchingRule getProtocolInformationMatchingRule() {
return PROTOCOL_INFORMATION_MATCHING_RULE;
}
/**
- * Returns a reference to the {@code telephoneNumberMatch} Matching Rule
- * which has the OID {@code 2.5.13.20}.
+ * Returns a reference to the {@code telephoneNumberMatch} Matching Rule which has the OID {@code 2.5.13.20}.
*
* @return A reference to the {@code telephoneNumberMatch} Matching Rule.
*/
@@ -1191,19 +1183,17 @@
}
/**
- * Returns a reference to the {@code telephoneNumberSubstringsMatch}
- * Matching Rule which has the OID {@code 2.5.13.21}.
+ * Returns a reference to the {@code telephoneNumberSubstringsMatch} Matching Rule which has the OID
+ * {@code 2.5.13.21}.
*
- * @return A reference to the {@code telephoneNumberSubstringsMatch}
- * Matching Rule.
+ * @return A reference to the {@code telephoneNumberSubstringsMatch} Matching Rule.
*/
public static MatchingRule getTelephoneNumberSubstringsMatchingRule() {
return TELEPHONE_NUMBER_SUBSTRINGS_MATCHING_RULE;
}
/**
- * Returns a reference to the {@code uniqueMemberMatch} Matching Rule which
- * has the OID {@code 2.5.13.23}.
+ * Returns a reference to the {@code uniqueMemberMatch} Matching Rule which has the OID {@code 2.5.13.23}.
*
* @return A reference to the {@code uniqueMemberMatch} Matching Rule.
*/
@@ -1212,8 +1202,7 @@
}
/**
- * Returns a reference to the {@code uuidMatch} Matching Rule which has the
- * OID {@code 1.3.6.1.1.16.2}.
+ * Returns a reference to the {@code uuidMatch} Matching Rule which has the OID {@code 1.3.6.1.1.16.2}.
*
* @return A reference to the {@code uuidMatch} Matching Rule.
*/
@@ -1222,8 +1211,7 @@
}
/**
- * Returns a reference to the {@code uuidOrderingMatch} Matching Rule which
- * has the OID {@code 1.3.6.1.1.16.3}.
+ * Returns a reference to the {@code uuidOrderingMatch} Matching Rule which has the OID {@code 1.3.6.1.1.16.3}.
*
* @return A reference to the {@code uuidOrderingMatch} Matching Rule.
*/
@@ -1232,8 +1220,7 @@
}
/**
- * Returns a reference to the {@code wordMatch} Matching Rule which has the
- * OID {@code 2.5.13.32}.
+ * Returns a reference to the {@code wordMatch} Matching Rule which has the OID {@code 2.5.13.32}.
*
* @return A reference to the {@code wordMatch} Matching Rule.
*/
@@ -1242,8 +1229,7 @@
}
/**
- * Returns a reference to the {@code aliasedObjectName} Attribute Type which
- * has the OID {@code 2.5.4.1}.
+ * Returns a reference to the {@code aliasedObjectName} Attribute Type which has the OID {@code 2.5.4.1}.
*
* @return A reference to the {@code aliasedObjectName} Attribute Type.
*/
@@ -1252,8 +1238,7 @@
}
/**
- * Returns a reference to the {@code altServer} Attribute Type which has the
- * OID {@code 1.3.6.1.4.1.1466.101.120.6}.
+ * Returns a reference to the {@code altServer} Attribute Type which has the OID {@code 1.3.6.1.4.1.1466.101.120.6}.
*
* @return A reference to the {@code altServer} Attribute Type.
*/
@@ -1262,8 +1247,7 @@
}
/**
- * Returns a reference to the {@code attributeTypes} Attribute Type which
- * has the OID {@code 2.5.21.5}.
+ * Returns a reference to the {@code attributeTypes} Attribute Type which has the OID {@code 2.5.21.5}.
*
* @return A reference to the {@code attributeTypes} Attribute Type.
*/
@@ -1272,8 +1256,16 @@
}
/**
- * Returns a reference to the {@code authPassword} Attribute Type which has
- * the OID {@code 1.3.6.1.4.1.4203.1.3.4}.
+ * Returns a reference to the {@code authorityRevocationList} Attribute Type which has the OID {@code 2.5.4.38}.
+ *
+ * @return A reference to the {@code authorityRevocationList} Attribute Type.
+ */
+ public static AttributeType getAuthorityRevocationListAttributeType() {
+ return AUTHORITY_REVOCATION_LIST_ATTRIBUTE_TYPE;
+ }
+
+ /**
+ * Returns a reference to the {@code authPassword} Attribute Type which has the OID {@code 1.3.6.1.4.1.4203.1.3.4}.
*
* @return A reference to the {@code authPassword} Attribute Type.
*/
@@ -1282,8 +1274,7 @@
}
/**
- * Returns a reference to the {@code businessCategory} Attribute Type which
- * has the OID {@code 2.5.4.15}.
+ * Returns a reference to the {@code businessCategory} Attribute Type which has the OID {@code 2.5.4.15}.
*
* @return A reference to the {@code businessCategory} Attribute Type.
*/
@@ -1292,8 +1283,16 @@
}
/**
- * Returns a reference to the {@code cn} Attribute Type which has the OID
- * {@code 2.5.4.3}.
+ * Returns a reference to the {@code certificateRevocationList} Attribute Type which has the OID {@code 2.5.4.39}.
+ *
+ * @return A reference to the {@code certificateRevocationList} Attribute Type.
+ */
+ public static AttributeType getCertificateRevocationListAttributeType() {
+ return CERTIFICATE_REVOCATION_LIST_ATTRIBUTE_TYPE;
+ }
+
+ /**
+ * Returns a reference to the {@code cn} Attribute Type which has the OID {@code 2.5.4.3}.
*
* @return A reference to the {@code cn} Attribute Type.
*/
@@ -1302,8 +1301,7 @@
}
/**
- * Returns a reference to the {@code createTimestamp} Attribute Type which
- * has the OID {@code 2.5.18.1}.
+ * Returns a reference to the {@code createTimestamp} Attribute Type which has the OID {@code 2.5.18.1}.
*
* @return A reference to the {@code createTimestamp} Attribute Type.
*/
@@ -1312,8 +1310,7 @@
}
/**
- * Returns a reference to the {@code creatorsName} Attribute Type which has
- * the OID {@code 2.5.18.3}.
+ * Returns a reference to the {@code creatorsName} Attribute Type which has the OID {@code 2.5.18.3}.
*
* @return A reference to the {@code creatorsName} Attribute Type.
*/
@@ -1322,8 +1319,16 @@
}
/**
- * Returns a reference to the {@code c} Attribute Type which has the OID
- * {@code 2.5.4.6}.
+ * Returns a reference to the {@code crossCertificatePair} Attribute Type which has the OID {@code 2.5.4.40}.
+ *
+ * @return A reference to the {@code crossCertificatePair} Attribute Type.
+ */
+ public static AttributeType getCrossCertificatePairAttributeType() {
+ return CROSS_CERTIFICATE_PAIR_ATTRIBUTE_TYPE;
+ }
+
+ /**
+ * Returns a reference to the {@code c} Attribute Type which has the OID {@code 2.5.4.6}.
*
* @return A reference to the {@code c} Attribute Type.
*/
@@ -1332,8 +1337,16 @@
}
/**
- * Returns a reference to the {@code dc} Attribute Type which has the OID
- * {@code 0.9.2342.19200300.100.1.25}.
+ * Returns a reference to the {@code cACertificate} Attribute Type which has the OID {@code 2.5.4.37}.
+ *
+ * @return A reference to the {@code cACertificate} Attribute Type.
+ */
+ public static AttributeType getCACertificateAttributeType() {
+ return C_A_CERTIFICATE_ATTRIBUTE_TYPE;
+ }
+
+ /**
+ * Returns a reference to the {@code dc} Attribute Type which has the OID {@code 0.9.2342.19200300.100.1.25}.
*
* @return A reference to the {@code dc} Attribute Type.
*/
@@ -1342,8 +1355,16 @@
}
/**
- * Returns a reference to the {@code description} Attribute Type which has
- * the OID {@code 2.5.4.13}.
+ * Returns a reference to the {@code deltaRevocationList} Attribute Type which has the OID {@code 2.5.4.53}.
+ *
+ * @return A reference to the {@code deltaRevocationList} Attribute Type.
+ */
+ public static AttributeType getDeltaRevocationListAttributeType() {
+ return DELTA_REVOCATION_LIST_ATTRIBUTE_TYPE;
+ }
+
+ /**
+ * Returns a reference to the {@code description} Attribute Type which has the OID {@code 2.5.4.13}.
*
* @return A reference to the {@code description} Attribute Type.
*/
@@ -1352,8 +1373,7 @@
}
/**
- * Returns a reference to the {@code destinationIndicator} Attribute Type
- * which has the OID {@code 2.5.4.27}.
+ * Returns a reference to the {@code destinationIndicator} Attribute Type which has the OID {@code 2.5.4.27}.
*
* @return A reference to the {@code destinationIndicator} Attribute Type.
*/
@@ -1362,8 +1382,7 @@
}
/**
- * Returns a reference to the {@code distinguishedName} Attribute Type which
- * has the OID {@code 2.5.4.49}.
+ * Returns a reference to the {@code distinguishedName} Attribute Type which has the OID {@code 2.5.4.49}.
*
* @return A reference to the {@code distinguishedName} Attribute Type.
*/
@@ -1372,8 +1391,7 @@
}
/**
- * Returns a reference to the {@code ditContentRules} Attribute Type which
- * has the OID {@code 2.5.21.2}.
+ * Returns a reference to the {@code ditContentRules} Attribute Type which has the OID {@code 2.5.21.2}.
*
* @return A reference to the {@code ditContentRules} Attribute Type.
*/
@@ -1382,8 +1400,7 @@
}
/**
- * Returns a reference to the {@code ditStructureRules} Attribute Type which
- * has the OID {@code 2.5.21.1}.
+ * Returns a reference to the {@code ditStructureRules} Attribute Type which has the OID {@code 2.5.21.1}.
*
* @return A reference to the {@code ditStructureRules} Attribute Type.
*/
@@ -1392,8 +1409,7 @@
}
/**
- * Returns a reference to the {@code dnQualifier} Attribute Type which has
- * the OID {@code 2.5.4.46}.
+ * Returns a reference to the {@code dnQualifier} Attribute Type which has the OID {@code 2.5.4.46}.
*
* @return A reference to the {@code dnQualifier} Attribute Type.
*/
@@ -1402,8 +1418,7 @@
}
/**
- * Returns a reference to the {@code enhancedSearchGuide} Attribute Type
- * which has the OID {@code 2.5.4.47}.
+ * Returns a reference to the {@code enhancedSearchGuide} Attribute Type which has the OID {@code 2.5.4.47}.
*
* @return A reference to the {@code enhancedSearchGuide} Attribute Type.
*/
@@ -1412,8 +1427,7 @@
}
/**
- * Returns a reference to the {@code entryDN} Attribute Type which has the
- * OID {@code 1.3.6.1.1.20}.
+ * Returns a reference to the {@code entryDN} Attribute Type which has the OID {@code 1.3.6.1.1.20}.
*
* @return A reference to the {@code entryDN} Attribute Type.
*/
@@ -1422,8 +1436,7 @@
}
/**
- * Returns a reference to the {@code entryUUID} Attribute Type which has the
- * OID {@code 1.3.6.1.1.16.4}.
+ * Returns a reference to the {@code entryUUID} Attribute Type which has the OID {@code 1.3.6.1.1.16.4}.
*
* @return A reference to the {@code entryUUID} Attribute Type.
*/
@@ -1432,19 +1445,16 @@
}
/**
- * Returns a reference to the {@code facsimileTelephoneNumber} Attribute
- * Type which has the OID {@code 2.5.4.23}.
+ * Returns a reference to the {@code facsimileTelephoneNumber} Attribute Type which has the OID {@code 2.5.4.23}.
*
- * @return A reference to the {@code facsimileTelephoneNumber} Attribute
- * Type.
+ * @return A reference to the {@code facsimileTelephoneNumber} Attribute Type.
*/
public static AttributeType getFacsimileTelephoneNumberAttributeType() {
return FACSIMILE_TELEPHONE_NUMBER_ATTRIBUTE_TYPE;
}
/**
- * Returns a reference to the {@code generationQualifier} Attribute Type
- * which has the OID {@code 2.5.4.44}.
+ * Returns a reference to the {@code generationQualifier} Attribute Type which has the OID {@code 2.5.4.44}.
*
* @return A reference to the {@code generationQualifier} Attribute Type.
*/
@@ -1453,8 +1463,7 @@
}
/**
- * Returns a reference to the {@code givenName} Attribute Type which has the
- * OID {@code 2.5.4.42}.
+ * Returns a reference to the {@code givenName} Attribute Type which has the OID {@code 2.5.4.42}.
*
* @return A reference to the {@code givenName} Attribute Type.
*/
@@ -1463,8 +1472,7 @@
}
/**
- * Returns a reference to the {@code governingStructureRule} Attribute Type
- * which has the OID {@code 2.5.21.10}.
+ * Returns a reference to the {@code governingStructureRule} Attribute Type which has the OID {@code 2.5.21.10}.
*
* @return A reference to the {@code governingStructureRule} Attribute Type.
*/
@@ -1473,8 +1481,7 @@
}
/**
- * Returns a reference to the {@code houseIdentifier} Attribute Type which
- * has the OID {@code 2.5.4.51}.
+ * Returns a reference to the {@code houseIdentifier} Attribute Type which has the OID {@code 2.5.4.51}.
*
* @return A reference to the {@code houseIdentifier} Attribute Type.
*/
@@ -1483,8 +1490,7 @@
}
/**
- * Returns a reference to the {@code initials} Attribute Type which has the
- * OID {@code 2.5.4.43}.
+ * Returns a reference to the {@code initials} Attribute Type which has the OID {@code 2.5.4.43}.
*
* @return A reference to the {@code initials} Attribute Type.
*/
@@ -1493,19 +1499,17 @@
}
/**
- * Returns a reference to the {@code internationalISDNNumber} Attribute Type
- * which has the OID {@code 2.5.4.25}.
+ * Returns a reference to the {@code internationalISDNNumber} Attribute Type which has the OID {@code 2.5.4.25}.
*
- * @return A reference to the {@code internationalISDNNumber} Attribute
- * Type.
+ * @return A reference to the {@code internationalISDNNumber} Attribute Type.
*/
public static AttributeType getInternationalISDNNumberAttributeType() {
return INTERNATIONAL_ISDN_NUMBER_ATTRIBUTE_TYPE;
}
/**
- * Returns a reference to the {@code ldapSyntaxes} Attribute Type which has
- * the OID {@code 1.3.6.1.4.1.1466.101.120.16}.
+ * Returns a reference to the {@code ldapSyntaxes} Attribute Type which has the OID
+ * {@code 1.3.6.1.4.1.1466.101.120.16}.
*
* @return A reference to the {@code ldapSyntaxes} Attribute Type.
*/
@@ -1514,8 +1518,7 @@
}
/**
- * Returns a reference to the {@code l} Attribute Type which has the OID
- * {@code 2.5.4.7}.
+ * Returns a reference to the {@code l} Attribute Type which has the OID {@code 2.5.4.7}.
*
* @return A reference to the {@code l} Attribute Type.
*/
@@ -1524,8 +1527,7 @@
}
/**
- * Returns a reference to the {@code matchingRules} Attribute Type which has
- * the OID {@code 2.5.21.4}.
+ * Returns a reference to the {@code matchingRules} Attribute Type which has the OID {@code 2.5.21.4}.
*
* @return A reference to the {@code matchingRules} Attribute Type.
*/
@@ -1534,8 +1536,7 @@
}
/**
- * Returns a reference to the {@code matchingRuleUse} Attribute Type which
- * has the OID {@code 2.5.21.8}.
+ * Returns a reference to the {@code matchingRuleUse} Attribute Type which has the OID {@code 2.5.21.8}.
*
* @return A reference to the {@code matchingRuleUse} Attribute Type.
*/
@@ -1544,8 +1545,7 @@
}
/**
- * Returns a reference to the {@code member} Attribute Type which has the
- * OID {@code 2.5.4.31}.
+ * Returns a reference to the {@code member} Attribute Type which has the OID {@code 2.5.4.31}.
*
* @return A reference to the {@code member} Attribute Type.
*/
@@ -1554,8 +1554,7 @@
}
/**
- * Returns a reference to the {@code modifiersName} Attribute Type which has
- * the OID {@code 2.5.18.4}.
+ * Returns a reference to the {@code modifiersName} Attribute Type which has the OID {@code 2.5.18.4}.
*
* @return A reference to the {@code modifiersName} Attribute Type.
*/
@@ -1564,8 +1563,7 @@
}
/**
- * Returns a reference to the {@code modifyTimestamp} Attribute Type which
- * has the OID {@code 2.5.18.2}.
+ * Returns a reference to the {@code modifyTimestamp} Attribute Type which has the OID {@code 2.5.18.2}.
*
* @return A reference to the {@code modifyTimestamp} Attribute Type.
*/
@@ -1574,8 +1572,7 @@
}
/**
- * Returns a reference to the {@code name} Attribute Type which has the OID
- * {@code 2.5.4.41}.
+ * Returns a reference to the {@code name} Attribute Type which has the OID {@code 2.5.4.41}.
*
* @return A reference to the {@code name} Attribute Type.
*/
@@ -1584,8 +1581,7 @@
}
/**
- * Returns a reference to the {@code nameForms} Attribute Type which has the
- * OID {@code 2.5.21.7}.
+ * Returns a reference to the {@code nameForms} Attribute Type which has the OID {@code 2.5.21.7}.
*
* @return A reference to the {@code nameForms} Attribute Type.
*/
@@ -1594,8 +1590,8 @@
}
/**
- * Returns a reference to the {@code namingContexts} Attribute Type which
- * has the OID {@code 1.3.6.1.4.1.1466.101.120.5}.
+ * Returns a reference to the {@code namingContexts} Attribute Type which has the OID
+ * {@code 1.3.6.1.4.1.1466.101.120.5}.
*
* @return A reference to the {@code namingContexts} Attribute Type.
*/
@@ -1604,8 +1600,7 @@
}
/**
- * Returns a reference to the {@code objectClasses} Attribute Type which has
- * the OID {@code 2.5.21.6}.
+ * Returns a reference to the {@code objectClasses} Attribute Type which has the OID {@code 2.5.21.6}.
*
* @return A reference to the {@code objectClasses} Attribute Type.
*/
@@ -1614,8 +1609,7 @@
}
/**
- * Returns a reference to the {@code objectClass} Attribute Type which has
- * the OID {@code 2.5.4.0}.
+ * Returns a reference to the {@code objectClass} Attribute Type which has the OID {@code 2.5.4.0}.
*
* @return A reference to the {@code objectClass} Attribute Type.
*/
@@ -1624,8 +1618,7 @@
}
/**
- * Returns a reference to the {@code ou} Attribute Type which has the OID
- * {@code 2.5.4.11}.
+ * Returns a reference to the {@code ou} Attribute Type which has the OID {@code 2.5.4.11}.
*
* @return A reference to the {@code ou} Attribute Type.
*/
@@ -1634,8 +1627,7 @@
}
/**
- * Returns a reference to the {@code owner} Attribute Type which has the OID
- * {@code 2.5.4.32}.
+ * Returns a reference to the {@code owner} Attribute Type which has the OID {@code 2.5.4.32}.
*
* @return A reference to the {@code owner} Attribute Type.
*/
@@ -1644,8 +1636,7 @@
}
/**
- * Returns a reference to the {@code o} Attribute Type which has the OID
- * {@code 2.5.4.10}.
+ * Returns a reference to the {@code o} Attribute Type which has the OID {@code 2.5.4.10}.
*
* @return A reference to the {@code o} Attribute Type.
*/
@@ -1654,19 +1645,16 @@
}
/**
- * Returns a reference to the {@code physicalDeliveryOfficeName} Attribute
- * Type which has the OID {@code 2.5.4.19}.
+ * Returns a reference to the {@code physicalDeliveryOfficeName} Attribute Type which has the OID {@code 2.5.4.19}.
*
- * @return A reference to the {@code physicalDeliveryOfficeName} Attribute
- * Type.
+ * @return A reference to the {@code physicalDeliveryOfficeName} Attribute Type.
*/
public static AttributeType getPhysicalDeliveryOfficeNameAttributeType() {
return PHYSICAL_DELIVERY_OFFICE_NAME_ATTRIBUTE_TYPE;
}
/**
- * Returns a reference to the {@code postalAddress} Attribute Type which has
- * the OID {@code 2.5.4.16}.
+ * Returns a reference to the {@code postalAddress} Attribute Type which has the OID {@code 2.5.4.16}.
*
* @return A reference to the {@code postalAddress} Attribute Type.
*/
@@ -1675,8 +1663,7 @@
}
/**
- * Returns a reference to the {@code postalCode} Attribute Type which has
- * the OID {@code 2.5.4.17}.
+ * Returns a reference to the {@code postalCode} Attribute Type which has the OID {@code 2.5.4.17}.
*
* @return A reference to the {@code postalCode} Attribute Type.
*/
@@ -1685,8 +1672,7 @@
}
/**
- * Returns a reference to the {@code postOfficeBox} Attribute Type which has
- * the OID {@code 2.5.4.18}.
+ * Returns a reference to the {@code postOfficeBox} Attribute Type which has the OID {@code 2.5.4.18}.
*
* @return A reference to the {@code postOfficeBox} Attribute Type.
*/
@@ -1695,19 +1681,16 @@
}
/**
- * Returns a reference to the {@code preferredDeliveryMethod} Attribute Type
- * which has the OID {@code 2.5.4.28}.
+ * Returns a reference to the {@code preferredDeliveryMethod} Attribute Type which has the OID {@code 2.5.4.28}.
*
- * @return A reference to the {@code preferredDeliveryMethod} Attribute
- * Type.
+ * @return A reference to the {@code preferredDeliveryMethod} Attribute Type.
*/
public static AttributeType getPreferredDeliveryMethodAttributeType() {
return PREFERRED_DELIVERY_METHOD_ATTRIBUTE_TYPE;
}
/**
- * Returns a reference to the {@code registeredAddress} Attribute Type which
- * has the OID {@code 2.5.4.26}.
+ * Returns a reference to the {@code registeredAddress} Attribute Type which has the OID {@code 2.5.4.26}.
*
* @return A reference to the {@code registeredAddress} Attribute Type.
*/
@@ -1716,8 +1699,7 @@
}
/**
- * Returns a reference to the {@code roleOccupant} Attribute Type which has
- * the OID {@code 2.5.4.33}.
+ * Returns a reference to the {@code roleOccupant} Attribute Type which has the OID {@code 2.5.4.33}.
*
* @return A reference to the {@code roleOccupant} Attribute Type.
*/
@@ -1726,8 +1708,7 @@
}
/**
- * Returns a reference to the {@code searchGuide} Attribute Type which has
- * the OID {@code 2.5.4.14}.
+ * Returns a reference to the {@code searchGuide} Attribute Type which has the OID {@code 2.5.4.14}.
*
* @return A reference to the {@code searchGuide} Attribute Type.
*/
@@ -1736,8 +1717,7 @@
}
/**
- * Returns a reference to the {@code seeAlso} Attribute Type which has the
- * OID {@code 2.5.4.34}.
+ * Returns a reference to the {@code seeAlso} Attribute Type which has the OID {@code 2.5.4.34}.
*
* @return A reference to the {@code seeAlso} Attribute Type.
*/
@@ -1746,8 +1726,7 @@
}
/**
- * Returns a reference to the {@code serialNumber} Attribute Type which has
- * the OID {@code 2.5.4.5}.
+ * Returns a reference to the {@code serialNumber} Attribute Type which has the OID {@code 2.5.4.5}.
*
* @return A reference to the {@code serialNumber} Attribute Type.
*/
@@ -1756,8 +1735,7 @@
}
/**
- * Returns a reference to the {@code sn} Attribute Type which has the OID
- * {@code 2.5.4.4}.
+ * Returns a reference to the {@code sn} Attribute Type which has the OID {@code 2.5.4.4}.
*
* @return A reference to the {@code sn} Attribute Type.
*/
@@ -1766,8 +1744,7 @@
}
/**
- * Returns a reference to the {@code street} Attribute Type which has the
- * OID {@code 2.5.4.9}.
+ * Returns a reference to the {@code street} Attribute Type which has the OID {@code 2.5.4.9}.
*
* @return A reference to the {@code street} Attribute Type.
*/
@@ -1776,8 +1753,7 @@
}
/**
- * Returns a reference to the {@code structuralObjectClass} Attribute Type
- * which has the OID {@code 2.5.21.9}.
+ * Returns a reference to the {@code structuralObjectClass} Attribute Type which has the OID {@code 2.5.21.9}.
*
* @return A reference to the {@code structuralObjectClass} Attribute Type.
*/
@@ -1786,8 +1762,7 @@
}
/**
- * Returns a reference to the {@code st} Attribute Type which has the OID
- * {@code 2.5.4.8}.
+ * Returns a reference to the {@code st} Attribute Type which has the OID {@code 2.5.4.8}.
*
* @return A reference to the {@code st} Attribute Type.
*/
@@ -1796,8 +1771,7 @@
}
/**
- * Returns a reference to the {@code subschemaSubentry} Attribute Type which
- * has the OID {@code 2.5.18.10}.
+ * Returns a reference to the {@code subschemaSubentry} Attribute Type which has the OID {@code 2.5.18.10}.
*
* @return A reference to the {@code subschemaSubentry} Attribute Type.
*/
@@ -1806,19 +1780,27 @@
}
/**
- * Returns a reference to the {@code supportedAuthPasswordSchemes} Attribute
- * Type which has the OID {@code 1.3.6.1.4.1.4203.1.3.3}.
+ * Returns a reference to the {@code supportedAlgorithms} Attribute Type which has the OID {@code 2.5.4.52}.
*
- * @return A reference to the {@code supportedAuthPasswordSchemes} Attribute
- * Type.
+ * @return A reference to the {@code supportedAlgorithms} Attribute Type.
+ */
+ public static AttributeType getSupportedAlgorithmsAttributeType() {
+ return SUPPORTED_ALGORITHMS_ATTRIBUTE_TYPE;
+ }
+
+ /**
+ * Returns a reference to the {@code supportedAuthPasswordSchemes} Attribute Type which has the OID
+ * {@code 1.3.6.1.4.1.4203.1.3.3}.
+ *
+ * @return A reference to the {@code supportedAuthPasswordSchemes} Attribute Type.
*/
public static AttributeType getSupportedAuthPasswordSchemesAttributeType() {
return SUPPORTED_AUTH_PASSWORD_SCHEMES_ATTRIBUTE_TYPE;
}
/**
- * Returns a reference to the {@code supportedControl} Attribute Type which
- * has the OID {@code 1.3.6.1.4.1.1466.101.120.13}.
+ * Returns a reference to the {@code supportedControl} Attribute Type which has the OID
+ * {@code 1.3.6.1.4.1.1466.101.120.13}.
*
* @return A reference to the {@code supportedControl} Attribute Type.
*/
@@ -1827,8 +1809,8 @@
}
/**
- * Returns a reference to the {@code supportedExtension} Attribute Type
- * which has the OID {@code 1.3.6.1.4.1.1466.101.120.7}.
+ * Returns a reference to the {@code supportedExtension} Attribute Type which has the OID
+ * {@code 1.3.6.1.4.1.1466.101.120.7}.
*
* @return A reference to the {@code supportedExtension} Attribute Type.
*/
@@ -1837,8 +1819,8 @@
}
/**
- * Returns a reference to the {@code supportedFeatures} Attribute Type which
- * has the OID {@code 1.3.6.1.4.1.4203.1.3.5}.
+ * Returns a reference to the {@code supportedFeatures} Attribute Type which has the OID
+ * {@code 1.3.6.1.4.1.4203.1.3.5}.
*
* @return A reference to the {@code supportedFeatures} Attribute Type.
*/
@@ -1847,8 +1829,8 @@
}
/**
- * Returns a reference to the {@code supportedLDAPVersion} Attribute Type
- * which has the OID {@code 1.3.6.1.4.1.1466.101.120.15}.
+ * Returns a reference to the {@code supportedLDAPVersion} Attribute Type which has the OID
+ * {@code 1.3.6.1.4.1.1466.101.120.15}.
*
* @return A reference to the {@code supportedLDAPVersion} Attribute Type.
*/
@@ -1857,19 +1839,17 @@
}
/**
- * Returns a reference to the {@code supportedSASLMechanisms} Attribute Type
- * which has the OID {@code 1.3.6.1.4.1.1466.101.120.14}.
+ * Returns a reference to the {@code supportedSASLMechanisms} Attribute Type which has the OID
+ * {@code 1.3.6.1.4.1.1466.101.120.14}.
*
- * @return A reference to the {@code supportedSASLMechanisms} Attribute
- * Type.
+ * @return A reference to the {@code supportedSASLMechanisms} Attribute Type.
*/
public static AttributeType getSupportedSASLMechanismsAttributeType() {
return SUPPORTED_SASL_MECHANISMS_ATTRIBUTE_TYPE;
}
/**
- * Returns a reference to the {@code telephoneNumber} Attribute Type which
- * has the OID {@code 2.5.4.20}.
+ * Returns a reference to the {@code telephoneNumber} Attribute Type which has the OID {@code 2.5.4.20}.
*
* @return A reference to the {@code telephoneNumber} Attribute Type.
*/
@@ -1878,19 +1858,16 @@
}
/**
- * Returns a reference to the {@code teletexTerminalIdentifier} Attribute
- * Type which has the OID {@code 2.5.4.22}.
+ * Returns a reference to the {@code teletexTerminalIdentifier} Attribute Type which has the OID {@code 2.5.4.22}.
*
- * @return A reference to the {@code teletexTerminalIdentifier} Attribute
- * Type.
+ * @return A reference to the {@code teletexTerminalIdentifier} Attribute Type.
*/
public static AttributeType getTeletexTerminalIdentifierAttributeType() {
return TELETEX_TERMINAL_IDENTIFIER_ATTRIBUTE_TYPE;
}
/**
- * Returns a reference to the {@code telexNumber} Attribute Type which has
- * the OID {@code 2.5.4.21}.
+ * Returns a reference to the {@code telexNumber} Attribute Type which has the OID {@code 2.5.4.21}.
*
* @return A reference to the {@code telexNumber} Attribute Type.
*/
@@ -1899,8 +1876,7 @@
}
/**
- * Returns a reference to the {@code title} Attribute Type which has the OID
- * {@code 2.5.4.12}.
+ * Returns a reference to the {@code title} Attribute Type which has the OID {@code 2.5.4.12}.
*
* @return A reference to the {@code title} Attribute Type.
*/
@@ -1909,8 +1885,7 @@
}
/**
- * Returns a reference to the {@code uid} Attribute Type which has the OID
- * {@code 0.9.2342.19200300.100.1.1}.
+ * Returns a reference to the {@code uid} Attribute Type which has the OID {@code 0.9.2342.19200300.100.1.1}.
*
* @return A reference to the {@code uid} Attribute Type.
*/
@@ -1919,8 +1894,7 @@
}
/**
- * Returns a reference to the {@code uniqueMember} Attribute Type which has
- * the OID {@code 2.5.4.50}.
+ * Returns a reference to the {@code uniqueMember} Attribute Type which has the OID {@code 2.5.4.50}.
*
* @return A reference to the {@code uniqueMember} Attribute Type.
*/
@@ -1929,8 +1903,16 @@
}
/**
- * Returns a reference to the {@code userPassword} Attribute Type which has
- * the OID {@code 2.5.4.35}.
+ * Returns a reference to the {@code userCertificate} Attribute Type which has the OID {@code 2.5.4.36}.
+ *
+ * @return A reference to the {@code userCertificate} Attribute Type.
+ */
+ public static AttributeType getUserCertificateAttributeType() {
+ return USER_CERTIFICATE_ATTRIBUTE_TYPE;
+ }
+
+ /**
+ * Returns a reference to the {@code userPassword} Attribute Type which has the OID {@code 2.5.4.35}.
*
* @return A reference to the {@code userPassword} Attribute Type.
*/
@@ -1939,8 +1921,7 @@
}
/**
- * Returns a reference to the {@code vendorName} Attribute Type which has
- * the OID {@code 1.3.6.1.1.4}.
+ * Returns a reference to the {@code vendorName} Attribute Type which has the OID {@code 1.3.6.1.1.4}.
*
* @return A reference to the {@code vendorName} Attribute Type.
*/
@@ -1949,8 +1930,7 @@
}
/**
- * Returns a reference to the {@code vendorVersion} Attribute Type which has
- * the OID {@code 1.3.6.1.1.5}.
+ * Returns a reference to the {@code vendorVersion} Attribute Type which has the OID {@code 1.3.6.1.1.5}.
*
* @return A reference to the {@code vendorVersion} Attribute Type.
*/
@@ -1959,8 +1939,7 @@
}
/**
- * Returns a reference to the {@code x121Address} Attribute Type which has
- * the OID {@code 2.5.4.24}.
+ * Returns a reference to the {@code x121Address} Attribute Type which has the OID {@code 2.5.4.24}.
*
* @return A reference to the {@code x121Address} Attribute Type.
*/
@@ -1969,8 +1948,7 @@
}
/**
- * Returns a reference to the {@code x500UniqueIdentifier} Attribute Type
- * which has the OID {@code 2.5.4.45}.
+ * Returns a reference to the {@code x500UniqueIdentifier} Attribute Type which has the OID {@code 2.5.4.45}.
*
* @return A reference to the {@code x500UniqueIdentifier} Attribute Type.
*/
@@ -1979,8 +1957,7 @@
}
/**
- * Returns a reference to the {@code alias} Object Class which has the OID
- * {@code 2.5.6.1}.
+ * Returns a reference to the {@code alias} Object Class which has the OID {@code 2.5.6.1}.
*
* @return A reference to the {@code alias} Object Class.
*/
@@ -1989,8 +1966,7 @@
}
/**
- * Returns a reference to the {@code applicationProcess} Object Class which
- * has the OID {@code 2.5.6.11}.
+ * Returns a reference to the {@code applicationProcess} Object Class which has the OID {@code 2.5.6.11}.
*
* @return A reference to the {@code applicationProcess} Object Class.
*/
@@ -1999,8 +1975,8 @@
}
/**
- * Returns a reference to the {@code authPasswordObject} Object Class which
- * has the OID {@code 1.3.6.1.4.1.4203.1.4.7}.
+ * Returns a reference to the {@code authPasswordObject} Object Class which has the OID
+ * {@code 1.3.6.1.4.1.4203.1.4.7}.
*
* @return A reference to the {@code authPasswordObject} Object Class.
*/
@@ -2009,8 +1985,25 @@
}
/**
- * Returns a reference to the {@code country} Object Class which has the OID
- * {@code 2.5.6.2}.
+ * Returns a reference to the {@code certificationAuthority} Object Class which has the OID {@code 2.5.6.16}.
+ *
+ * @return A reference to the {@code certificationAuthority} Object Class.
+ */
+ public static ObjectClass getCertificationAuthorityObjectClass() {
+ return CERTIFICATION_AUTHORITY_OBJECT_CLASS;
+ }
+
+ /**
+ * Returns a reference to the {@code certificationAuthority-V2} Object Class which has the OID {@code 2.5.6.16.2}.
+ *
+ * @return A reference to the {@code certificationAuthority-V2} Object Class.
+ */
+ public static ObjectClass getCertificationAuthorityV2ObjectClass() {
+ return CERTIFICATION_AUTHORITY_V2_OBJECT_CLASS;
+ }
+
+ /**
+ * Returns a reference to the {@code country} Object Class which has the OID {@code 2.5.6.2}.
*
* @return A reference to the {@code country} Object Class.
*/
@@ -2019,8 +2012,16 @@
}
/**
- * Returns a reference to the {@code dcObject} Object Class which has the
- * OID {@code 1.3.6.1.4.1.1466.344}.
+ * Returns a reference to the {@code cRLDistributionPoint} Object Class which has the OID {@code 2.5.6.19}.
+ *
+ * @return A reference to the {@code cRLDistributionPoint} Object Class.
+ */
+ public static ObjectClass getCRlDistributionPointObjectClass() {
+ return C_RL_DISTRIBUTION_POINT_OBJECT_CLASS;
+ }
+
+ /**
+ * Returns a reference to the {@code dcObject} Object Class which has the OID {@code 1.3.6.1.4.1.1466.344}.
*
* @return A reference to the {@code dcObject} Object Class.
*/
@@ -2029,8 +2030,16 @@
}
/**
- * Returns a reference to the {@code device} Object Class which has the OID
- * {@code 2.5.6.14}.
+ * Returns a reference to the {@code deltaCRL} Object Class which has the OID {@code 2.5.6.23}.
+ *
+ * @return A reference to the {@code deltaCRL} Object Class.
+ */
+ public static ObjectClass getDeltaCrlObjectClass() {
+ return DELTA_CRL_OBJECT_CLASS;
+ }
+
+ /**
+ * Returns a reference to the {@code device} Object Class which has the OID {@code 2.5.6.14}.
*
* @return A reference to the {@code device} Object Class.
*/
@@ -2039,8 +2048,8 @@
}
/**
- * Returns a reference to the {@code extensibleObject} Object Class which
- * has the OID {@code 1.3.6.1.4.1.1466.101.120.111}.
+ * Returns a reference to the {@code extensibleObject} Object Class which has the OID
+ * {@code 1.3.6.1.4.1.1466.101.120.111}.
*
* @return A reference to the {@code extensibleObject} Object Class.
*/
@@ -2049,8 +2058,7 @@
}
/**
- * Returns a reference to the {@code groupOfNames} Object Class which has
- * the OID {@code 2.5.6.9}.
+ * Returns a reference to the {@code groupOfNames} Object Class which has the OID {@code 2.5.6.9}.
*
* @return A reference to the {@code groupOfNames} Object Class.
*/
@@ -2059,8 +2067,7 @@
}
/**
- * Returns a reference to the {@code groupOfUniqueNames} Object Class which
- * has the OID {@code 2.5.6.17}.
+ * Returns a reference to the {@code groupOfUniqueNames} Object Class which has the OID {@code 2.5.6.17}.
*
* @return A reference to the {@code groupOfUniqueNames} Object Class.
*/
@@ -2069,8 +2076,7 @@
}
/**
- * Returns a reference to the {@code locality} Object Class which has the
- * OID {@code 2.5.6.3}.
+ * Returns a reference to the {@code locality} Object Class which has the OID {@code 2.5.6.3}.
*
* @return A reference to the {@code locality} Object Class.
*/
@@ -2079,8 +2085,7 @@
}
/**
- * Returns a reference to the {@code organizationalPerson} Object Class
- * which has the OID {@code 2.5.6.7}.
+ * Returns a reference to the {@code organizationalPerson} Object Class which has the OID {@code 2.5.6.7}.
*
* @return A reference to the {@code organizationalPerson} Object Class.
*/
@@ -2089,8 +2094,7 @@
}
/**
- * Returns a reference to the {@code organizationalRole} Object Class which
- * has the OID {@code 2.5.6.8}.
+ * Returns a reference to the {@code organizationalRole} Object Class which has the OID {@code 2.5.6.8}.
*
* @return A reference to the {@code organizationalRole} Object Class.
*/
@@ -2099,8 +2103,7 @@
}
/**
- * Returns a reference to the {@code organizationalUnit} Object Class which
- * has the OID {@code 2.5.6.5}.
+ * Returns a reference to the {@code organizationalUnit} Object Class which has the OID {@code 2.5.6.5}.
*
* @return A reference to the {@code organizationalUnit} Object Class.
*/
@@ -2109,8 +2112,7 @@
}
/**
- * Returns a reference to the {@code organization} Object Class which has
- * the OID {@code 2.5.6.4}.
+ * Returns a reference to the {@code organization} Object Class which has the OID {@code 2.5.6.4}.
*
* @return A reference to the {@code organization} Object Class.
*/
@@ -2119,8 +2121,7 @@
}
/**
- * Returns a reference to the {@code person} Object Class which has the OID
- * {@code 2.5.6.6}.
+ * Returns a reference to the {@code person} Object Class which has the OID {@code 2.5.6.6}.
*
* @return A reference to the {@code person} Object Class.
*/
@@ -2129,8 +2130,25 @@
}
/**
- * Returns a reference to the {@code residentialPerson} Object Class which
- * has the OID {@code 2.5.6.10}.
+ * Returns a reference to the {@code pkiCA} Object Class which has the OID {@code 2.5.6.22}.
+ *
+ * @return A reference to the {@code pkiCA} Object Class.
+ */
+ public static ObjectClass getPkiCaObjectClass() {
+ return PKI_CA_OBJECT_CLASS;
+ }
+
+ /**
+ * Returns a reference to the {@code pkiUser} Object Class which has the OID {@code 2.5.6.21}.
+ *
+ * @return A reference to the {@code pkiUser} Object Class.
+ */
+ public static ObjectClass getPkiUserObjectClass() {
+ return PKI_USER_OBJECT_CLASS;
+ }
+
+ /**
+ * Returns a reference to the {@code residentialPerson} Object Class which has the OID {@code 2.5.6.10}.
*
* @return A reference to the {@code residentialPerson} Object Class.
*/
@@ -2139,8 +2157,16 @@
}
/**
- * Returns a reference to the {@code subschema} Object Class which has the
- * OID {@code 2.5.20.1}.
+ * Returns a reference to the {@code strongAuthenticationUser} Object Class which has the OID {@code 2.5.6.15}.
+ *
+ * @return A reference to the {@code strongAuthenticationUser} Object Class.
+ */
+ public static ObjectClass getStrongAuthenticationUserObjectClass() {
+ return STRONG_AUTHENTICATION_USER_OBJECT_CLASS;
+ }
+
+ /**
+ * Returns a reference to the {@code subschema} Object Class which has the OID {@code 2.5.20.1}.
*
* @return A reference to the {@code subschema} Object Class.
*/
@@ -2149,8 +2175,7 @@
}
/**
- * Returns a reference to the {@code top} Object Class which has the OID
- * {@code 2.5.6.0}.
+ * Returns a reference to the {@code top} Object Class which has the OID {@code 2.5.6.0}.
*
* @return A reference to the {@code top} Object Class.
*/
@@ -2159,12 +2184,20 @@
}
/**
- * Returns a reference to the {@code uidObject} Object Class which has the
- * OID {@code 1.3.6.1.1.3.1}.
+ * Returns a reference to the {@code uidObject} Object Class which has the OID {@code 1.3.6.1.1.3.1}.
*
* @return A reference to the {@code uidObject} Object Class.
*/
public static ObjectClass getUIDObjectObjectClass() {
return UID_OBJECT_OBJECT_CLASS;
}
+
+ /**
+ * Returns a reference to the {@code userSecurityInformation} Object Class which has the OID {@code 2.5.6.18}.
+ *
+ * @return A reference to the {@code userSecurityInformation} Object Class.
+ */
+ public static ObjectClass getUserSecurityInformationObjectClass() {
+ return USER_SECURITY_INFORMATION_OBJECT_CLASS;
+ }
}
diff --git a/opendj-core/src/main/java/org/forgerock/opendj/ldap/schema/CoreSchemaImpl.java b/opendj-core/src/main/java/org/forgerock/opendj/ldap/schema/CoreSchemaImpl.java
index 3c6ffe9..71768fa 100644
--- a/opendj-core/src/main/java/org/forgerock/opendj/ldap/schema/CoreSchemaImpl.java
+++ b/opendj-core/src/main/java/org/forgerock/opendj/ldap/schema/CoreSchemaImpl.java
@@ -23,6 +23,7 @@
*
* Copyright 2009-2010 Sun Microsystems, Inc.
* Portions copyright 2013-2014 ForgeRock AS.
+ * Portions copyright 2014 Manuel Gaupp
*/
package org.forgerock.opendj.ldap.schema;
@@ -57,6 +58,9 @@
private static final Map<String, List<String>> RFC4519_ORIGIN = Collections.singletonMap(
SCHEMA_PROPERTY_ORIGIN, Collections.singletonList("RFC 4519"));
+ private static final Map<String, List<String>> RFC4523_ORIGIN = Collections.singletonMap(
+ SCHEMA_PROPERTY_ORIGIN, Collections.singletonList("RFC 4523"));
+
private static final Map<String, List<String>> RFC4530_ORIGIN = Collections.singletonMap(
SCHEMA_PROPERTY_ORIGIN, Collections.singletonList("RFC 4530"));
@@ -80,6 +84,7 @@
defaultObjectClasses(builder);
addRFC4519(builder);
+ addRFC4523(builder);
addRFC4530(builder);
addRFC3045(builder);
addRFC3112(builder);
@@ -550,6 +555,101 @@
.singleton("uid"), attrs, ObjectClassType.AUXILIARY, RFC4519_ORIGIN, false);
}
+ private static void addRFC4523(final SchemaBuilder builder) {
+ builder.buildSyntax(SYNTAX_CERTLIST_OID).description(SYNTAX_CERTLIST_DESCRIPTION)
+ .extraProperties(RFC4523_ORIGIN).implementation(new CertificateListSyntaxImpl()).addToSchema();
+ builder.buildSyntax(SYNTAX_CERTPAIR_OID).description(SYNTAX_CERTPAIR_DESCRIPTION)
+ .extraProperties(RFC4523_ORIGIN).implementation(new CertificatePairSyntaxImpl()).addToSchema();
+ builder.buildSyntax(SYNTAX_CERTIFICATE_OID).description(SYNTAX_CERTIFICATE_DESCRIPTION)
+ .extraProperties(RFC4523_ORIGIN).implementation(new CertificateSyntaxImpl()).addToSchema();
+ builder.buildSyntax(SYNTAX_CERTIFICATE_EXACT_ASSERTION_OID)
+ .description(SYNTAX_CERTIFICATE_EXACT_ASSERTION_DESCRIPTION).extraProperties(RFC4523_ORIGIN)
+ .implementation(new CertificateExactAssertionSyntaxImpl()).addToSchema();
+ builder.buildSyntax(SYNTAX_SUPPORTED_ALGORITHM_OID).description(SYNTAX_SUPPORTED_ALGORITHM_DESCRIPTION)
+ .extraProperties(RFC4523_ORIGIN).implementation(new SupportedAlgorithmSyntaxImpl()).addToSchema();
+
+ builder.buildMatchingRule(EMR_CERTIFICATE_EXACT_OID).names(EMR_CERTIFICATE_EXACT_NAME)
+ .syntaxOID(SYNTAX_CERTIFICATE_EXACT_ASSERTION_OID).extraProperties(RFC4523_ORIGIN)
+ .implementation(new CertificateExactMatchingRuleImpl()).addToSchema();
+
+ builder.addAttributeType("2.5.4.36", Collections.singletonList("userCertificate"),
+ "X.509 user certificate", false, null, EMR_CERTIFICATE_EXACT_OID, null,
+ null, null, SYNTAX_CERTIFICATE_OID, false, false, false,
+ AttributeUsage.USER_APPLICATIONS, RFC4523_ORIGIN, false);
+ builder.addAttributeType("2.5.4.37", Collections.singletonList("cACertificate"),
+ "X.509 CA certificate", false, null, EMR_CERTIFICATE_EXACT_OID, null,
+ null, null, SYNTAX_CERTIFICATE_OID, false, false, false,
+ AttributeUsage.USER_APPLICATIONS, RFC4523_ORIGIN, false);
+ builder.addAttributeType("2.5.4.38", Collections.singletonList("authorityRevocationList"),
+ "X.509 authority revocation list", false, null, EMR_OCTET_STRING_OID, null,
+ null, null, SYNTAX_CERTLIST_OID, false, false, false,
+ AttributeUsage.USER_APPLICATIONS, RFC4523_ORIGIN, false);
+ builder.addAttributeType("2.5.4.39", Collections.singletonList("certificateRevocationList"),
+ "X.509 certificate revocation list", false, null, EMR_OCTET_STRING_OID, null,
+ null, null, SYNTAX_CERTLIST_OID, false, false, false,
+ AttributeUsage.USER_APPLICATIONS, RFC4523_ORIGIN, false);
+ builder.addAttributeType("2.5.4.40", Collections.singletonList("crossCertificatePair"),
+ "X.509 cross certificate pair", false, null, EMR_OCTET_STRING_OID, null,
+ null, null, SYNTAX_CERTPAIR_OID, false, false, false,
+ AttributeUsage.USER_APPLICATIONS, RFC4523_ORIGIN, false);
+ builder.addAttributeType("2.5.4.52", Collections.singletonList("supportedAlgorithms"),
+ "X.509 supported algorithms", false, null, EMR_OCTET_STRING_OID, null,
+ null, null, SYNTAX_SUPPORTED_ALGORITHM_OID, false, false, false,
+ AttributeUsage.USER_APPLICATIONS, RFC4523_ORIGIN, false);
+ builder.addAttributeType("2.5.4.53", Collections.singletonList("deltaRevocationList"),
+ "X.509 delta revocation list", false, null, EMR_OCTET_STRING_OID, null,
+ null, null, SYNTAX_CERTLIST_OID, false, false, false,
+ AttributeUsage.USER_APPLICATIONS, RFC4523_ORIGIN, false);
+
+ builder.addObjectClass("2.5.6.21", Collections.singletonList("pkiUser"),
+ "X.509 PKI User", false, Collections.singleton(TOP_OBJECTCLASS_NAME), EMPTY_STRING_SET,
+ Collections.singleton("userCertificate"), ObjectClassType.AUXILIARY, RFC4523_ORIGIN, false);
+
+ Set<String> attrs = new HashSet<String>();
+ attrs.add("cACertificate");
+ attrs.add("certificateRevocationList");
+ attrs.add("authorityRevocationList");
+ attrs.add("crossCertificatePair");
+
+ builder.addObjectClass("2.5.6.22", Collections.singletonList("pkiCA"),
+ "X.509 PKI Certificate Authority", false, Collections.singleton(TOP_OBJECTCLASS_NAME),
+ EMPTY_STRING_SET, attrs, ObjectClassType.AUXILIARY, RFC4523_ORIGIN, false);
+
+ attrs = new HashSet<String>();
+ attrs.add("certificateRevocationList");
+ attrs.add("authorityRevocationList");
+ attrs.add("deltaRevocationList");
+
+ builder.addObjectClass("2.5.6.19", Collections.singletonList("cRLDistributionPoint"),
+ "X.509 CRL distribution point", false, Collections.singleton(TOP_OBJECTCLASS_NAME),
+ Collections.singleton("cn"), attrs, ObjectClassType.STRUCTURAL, RFC4523_ORIGIN, false);
+
+ builder.addObjectClass("2.5.6.23", Collections.singletonList("deltaCRL"),
+ "X.509 delta CRL", false, Collections.singleton(TOP_OBJECTCLASS_NAME), EMPTY_STRING_SET,
+ Collections.singleton("deltaRevocationList"), ObjectClassType.AUXILIARY, RFC4523_ORIGIN, false);
+ builder.addObjectClass("2.5.6.15", Collections.singletonList("strongAuthenticationUser"),
+ "X.521 strong authentication user", false, Collections.singleton(TOP_OBJECTCLASS_NAME),
+ Collections.singleton("userCertificate"), EMPTY_STRING_SET, ObjectClassType.AUXILIARY,
+ RFC4523_ORIGIN, false);
+ builder.addObjectClass("2.5.6.18", Collections.singletonList("userSecurityInformation"),
+ "X.521 user security information", false, Collections.singleton(TOP_OBJECTCLASS_NAME), EMPTY_STRING_SET,
+ Collections.singleton("supportedAlgorithms"), ObjectClassType.AUXILIARY, RFC4523_ORIGIN, false);
+
+ attrs = new HashSet<String>();
+ attrs.add("authorityRevocationList");
+ attrs.add("certificateRevocationList");
+ attrs.add("cACertificate");
+
+ builder.addObjectClass("2.5.6.16", Collections.singletonList("certificationAuthority"),
+ "X.509 certificate authority", false, Collections.singleton(TOP_OBJECTCLASS_NAME), attrs,
+ Collections.singleton("crossCertificatePair"), ObjectClassType.AUXILIARY, RFC4523_ORIGIN, false);
+
+ builder.addObjectClass("2.5.6.16.2", Collections.singletonList("certificationAuthority-V2"),
+ "X.509 certificate authority, version 2", false, Collections.singleton("certificationAuthority"),
+ EMPTY_STRING_SET, Collections.singleton("deltaRevocationList"), ObjectClassType.AUXILIARY,
+ RFC4523_ORIGIN, false);
+ }
+
private static void addRFC4530(final SchemaBuilder builder) {
builder.buildSyntax(SYNTAX_UUID_OID).description(SYNTAX_UUID_DESCRIPTION).extraProperties(RFC4530_ORIGIN)
.implementation(new UUIDSyntaxImpl()).addToSchema();
@@ -854,12 +954,6 @@
.extraProperties(RFC4512_ORIGIN).implementation(new BitStringSyntaxImpl()).addToSchema();
builder.buildSyntax(SYNTAX_BOOLEAN_OID).description(SYNTAX_BOOLEAN_DESCRIPTION).extraProperties(RFC4512_ORIGIN)
.implementation(new BooleanSyntaxImpl()).addToSchema();
- builder.buildSyntax(SYNTAX_CERTLIST_OID).description(SYNTAX_CERTLIST_DESCRIPTION)
- .extraProperties(RFC4512_ORIGIN).implementation(new CertificateListSyntaxImpl()).addToSchema();
- builder.buildSyntax(SYNTAX_CERTPAIR_OID).description(SYNTAX_CERTPAIR_DESCRIPTION)
- .extraProperties(RFC4512_ORIGIN).implementation(new CertificatePairSyntaxImpl()).addToSchema();
- builder.buildSyntax(SYNTAX_CERTIFICATE_OID).description(SYNTAX_CERTIFICATE_DESCRIPTION)
- .extraProperties(RFC4512_ORIGIN).implementation(new CertificateSyntaxImpl()).addToSchema();
builder.buildSyntax(SYNTAX_COUNTRY_STRING_OID).description(SYNTAX_COUNTRY_STRING_DESCRIPTION)
.extraProperties(RFC4512_ORIGIN).implementation(new CountryStringSyntaxImpl()).addToSchema();
builder.buildSyntax(SYNTAX_DELIVERY_METHOD_OID).description(SYNTAX_DELIVERY_METHOD_DESCRIPTION)
@@ -920,8 +1014,6 @@
.extraProperties(RFC2252_ORIGIN).implementation(new ProtocolInformationSyntaxImpl()).addToSchema();
builder.buildSyntax(SYNTAX_SUBSTRING_ASSERTION_OID).description(SYNTAX_SUBSTRING_ASSERTION_DESCRIPTION)
.extraProperties(RFC4512_ORIGIN).implementation(new SubstringAssertionSyntaxImpl()).addToSchema();
- builder.buildSyntax(SYNTAX_SUPPORTED_ALGORITHM_OID).description(SYNTAX_SUPPORTED_ALGORITHM_DESCRIPTION)
- .extraProperties(RFC4512_ORIGIN).implementation(new SupportedAlgorithmSyntaxImpl()).addToSchema();
builder.buildSyntax(SYNTAX_TELEPHONE_OID).description(SYNTAX_TELEPHONE_DESCRIPTION)
.extraProperties(RFC4512_ORIGIN).implementation(new TelephoneNumberSyntaxImpl()).addToSchema();
builder.buildSyntax(SYNTAX_TELETEX_TERM_ID_OID).description(SYNTAX_TELETEX_TERM_ID_DESCRIPTION)
diff --git a/opendj-core/src/main/java/org/forgerock/opendj/ldap/schema/GenerateCoreSchema.java b/opendj-core/src/main/java/org/forgerock/opendj/ldap/schema/GenerateCoreSchema.java
index 5571b7e..c76c950 100644
--- a/opendj-core/src/main/java/org/forgerock/opendj/ldap/schema/GenerateCoreSchema.java
+++ b/opendj-core/src/main/java/org/forgerock/opendj/ldap/schema/GenerateCoreSchema.java
@@ -22,6 +22,7 @@
*
*
* Copyright 2009 Sun Microsystems, Inc.
+ * Portions Copyright 2014 Manuel Gaupp
*/
package org.forgerock.opendj.ldap.schema;
@@ -60,8 +61,8 @@
}
final String name = syntax.getDescription().replaceAll(" Syntax$", "");
- final String fieldName =
- name.replace(" ", "_").toUpperCase(Locale.ENGLISH).concat("_SYNTAX");
+ final String fieldName = name.replace(" ", "_").replaceAll("[.-]", "")
+ .toUpperCase(Locale.ENGLISH).concat("_SYNTAX");
syntaxes.put(fieldName, syntax);
}
@@ -93,7 +94,7 @@
continue;
}
final String name = objectClass.getNameOrOID();
- final String fieldName = splitNameIntoWords(name).concat("_OBJECT_CLASS");
+ final String fieldName = splitNameIntoWords(name.replace("-", "")).concat("_OBJECT_CLASS");
objectClasses.put(fieldName, objectClass);
}
diff --git a/opendj-core/src/main/java/org/forgerock/opendj/ldap/schema/Schema.java b/opendj-core/src/main/java/org/forgerock/opendj/ldap/schema/Schema.java
index 845f874..8c62757 100644
--- a/opendj-core/src/main/java/org/forgerock/opendj/ldap/schema/Schema.java
+++ b/opendj-core/src/main/java/org/forgerock/opendj/ldap/schema/Schema.java
@@ -23,6 +23,7 @@
*
* Copyright 2009-2010 Sun Microsystems, Inc.
* Portions copyright 2011-2012 ForgeRock AS
+ * Portions Copyright 2014 Manuel Gaupp
*/
package org.forgerock.opendj.ldap.schema;
@@ -95,6 +96,11 @@
}
@Override
+ public boolean allowMalformedCertificates() {
+ return true;
+ }
+
+ @Override
public boolean allowZeroLengthDirectoryStrings() {
return false;
}
@@ -316,6 +322,8 @@
boolean allowMalformedJPEGPhotos();
+ boolean allowMalformedCertificates();
+
boolean allowNonStandardTelephoneNumbers();
boolean allowZeroLengthDirectoryStrings();
@@ -419,6 +427,11 @@
}
@Override
+ public boolean allowMalformedCertificates() {
+ return strictImpl.allowMalformedCertificates();
+ }
+
+ @Override
public boolean allowNonStandardTelephoneNumbers() {
return strictImpl.allowNonStandardTelephoneNumbers();
}
@@ -658,6 +671,7 @@
private final List<LocalizableMessage> warnings;
private final String schemaName;
private final boolean allowMalformedJPEGPhotos;
+ private final boolean allowMalformedCertificates;
private final boolean allowNonStandardTelephoneNumbers;
private final boolean allowZeroLengthDirectoryStrings;
private final boolean allowMalformedNamesAndOptions;
@@ -666,6 +680,7 @@
StrictImpl(final String schemaName, final boolean allowMalformedNamesAndOptions,
final boolean allowMalformedJPEGPhotos,
+ final boolean allowMalformedCertificates,
final boolean allowNonStandardTelephoneNumbers,
final boolean allowZeroLengthDirectoryStrings,
final Syntax defaultSyntax,
@@ -691,6 +706,7 @@
this.schemaName = schemaName;
this.allowMalformedNamesAndOptions = allowMalformedNamesAndOptions;
this.allowMalformedJPEGPhotos = allowMalformedJPEGPhotos;
+ this.allowMalformedCertificates = allowMalformedCertificates;
this.allowNonStandardTelephoneNumbers = allowNonStandardTelephoneNumbers;
this.allowZeroLengthDirectoryStrings = allowZeroLengthDirectoryStrings;
this.defaultSyntax = defaultSyntax;
@@ -727,6 +743,11 @@
}
@Override
+ public boolean allowMalformedCertificates() {
+ return allowMalformedCertificates;
+ }
+
+ @Override
public boolean allowNonStandardTelephoneNumbers() {
return allowNonStandardTelephoneNumbers;
}
@@ -1349,6 +1370,7 @@
Schema(final String schemaName, final boolean allowMalformedNamesAndOptions,
final boolean allowMalformedJPEGPhotos,
+ final boolean allowMalformedCertificates,
final boolean allowNonStandardTelephoneNumbers,
final boolean allowZeroLengthDirectoryStrings,
final Syntax defaultSyntax,
@@ -1373,9 +1395,9 @@
final List<LocalizableMessage> warnings) {
impl =
new StrictImpl(schemaName, allowMalformedNamesAndOptions, allowMalformedJPEGPhotos,
- allowNonStandardTelephoneNumbers, allowZeroLengthDirectoryStrings,
- defaultSyntax, defaultMatchingRule, numericOID2Syntaxes,
- numericOID2MatchingRules, numericOID2MatchingRuleUses,
+ allowMalformedCertificates, allowNonStandardTelephoneNumbers,
+ allowZeroLengthDirectoryStrings, defaultSyntax, defaultMatchingRule,
+ numericOID2Syntaxes, numericOID2MatchingRules, numericOID2MatchingRuleUses,
numericOID2AttributeTypes, numericOID2ObjectClasses, numericOID2NameForms,
numericOID2ContentRules, id2StructureRules, name2MatchingRules,
name2MatchingRuleUses, name2AttributeTypes, name2ObjectClasses,
@@ -1426,6 +1448,21 @@
}
/**
+ * Returns {@code true} if the Certificate syntax defined for this
+ * schema allows values which do not conform to the X.509
+ * specifications.
+ * <p>
+ * By default this compatibility option is set to {@code true}.
+ *
+ * @return {@code true} if the Certificate syntax defined for this
+ * schema allows values which do not conform to the X.509
+ * specifications.
+ */
+ public boolean allowMalformedCertificates() {
+ return impl.allowMalformedCertificates();
+ }
+
+ /**
* Returns {@code true} if the Telephone Number syntax defined for this
* schema allows values which do not conform to the E.123 international
* telephone number format.
diff --git a/opendj-core/src/main/java/org/forgerock/opendj/ldap/schema/SchemaBuilder.java b/opendj-core/src/main/java/org/forgerock/opendj/ldap/schema/SchemaBuilder.java
index b65f9d0..fc5956a 100644
--- a/opendj-core/src/main/java/org/forgerock/opendj/ldap/schema/SchemaBuilder.java
+++ b/opendj-core/src/main/java/org/forgerock/opendj/ldap/schema/SchemaBuilder.java
@@ -23,6 +23,7 @@
*
* Copyright 2009-2010 Sun Microsystems, Inc.
* Portions copyright 2011-2014 ForgeRock AS
+ * Portions Copyright 2014 Manuel Gaupp
*/
package org.forgerock.opendj.ldap.schema;
@@ -152,6 +153,7 @@
private boolean allowZeroLengthDirectoryStrings;
private boolean allowMalformedNamesAndOptions;
private boolean allowMalformedJPEGPhotos;
+ private boolean allowMalformedCertificates;
private String defaultSyntaxOID;
private String defaultMatchingRuleOID;
@@ -2257,6 +2259,24 @@
}
/**
+ * Specifies whether or not the Certificate syntax should allow values which
+ * do not conform to the X.509 specifications.
+ * <p>
+ * By default this compatibility option is set to {@code true}.
+ *
+ * @param allowMalformedCertificates
+ * {@code true} if the Certificate syntax should allow values
+ * which do not conform to the X.509 specifications.
+ * @return A reference to this {@code SchemaBuilder}.
+ */
+ public SchemaBuilder allowMalformedCertificates(final boolean allowMalformedCertificates) {
+ lazyInitBuilder();
+
+ this.allowMalformedCertificates = allowMalformedCertificates;
+ return this;
+ }
+
+ /**
* Specifies whether or not the Telephone Number syntax should allow values
* which do not conform to the E.123 international telephone number format.
* <p>
@@ -2526,7 +2546,7 @@
final Schema schema =
new Schema(localSchemaName, allowMalformedNamesAndOptions,
- allowMalformedJPEGPhotos, allowNonStandardTelephoneNumbers,
+ allowMalformedJPEGPhotos, allowMalformedCertificates, allowNonStandardTelephoneNumbers,
allowZeroLengthDirectoryStrings, defaultSyntax, defaultMatchingRule,
numericOID2Syntaxes, numericOID2MatchingRules, numericOID2MatchingRuleUses,
numericOID2AttributeTypes, numericOID2ObjectClasses, numericOID2NameForms,
@@ -2805,6 +2825,7 @@
if (numericOID2Syntaxes == null) {
allowMalformedNamesAndOptions = true;
allowMalformedJPEGPhotos = true;
+ allowMalformedCertificates = true;
allowNonStandardTelephoneNumbers = true;
allowZeroLengthDirectoryStrings = false;
defaultSyntaxOID = SchemaConstants.SYNTAX_OCTET_STRING_OID;
@@ -2838,6 +2859,7 @@
allowMalformedNamesAndOptions = copyOnWriteSchema.allowMalformedNamesAndOptions();
allowMalformedJPEGPhotos = copyOnWriteSchema.allowMalformedJPEGPhotos();
+ allowMalformedCertificates = copyOnWriteSchema.allowMalformedCertificates();
allowNonStandardTelephoneNumbers = copyOnWriteSchema.allowNonStandardTelephoneNumbers();
allowZeroLengthDirectoryStrings = copyOnWriteSchema.allowZeroLengthDirectoryStrings();
defaultSyntaxOID = copyOnWriteSchema.getDefaultSyntax().getOID();
@@ -2853,6 +2875,7 @@
this.allowMalformedNamesAndOptions = true;
this.allowMalformedJPEGPhotos = true;
+ this.allowMalformedCertificates = true;
this.allowNonStandardTelephoneNumbers = true;
this.allowZeroLengthDirectoryStrings = false;
this.defaultSyntaxOID = null;
diff --git a/opendj-core/src/main/java/org/forgerock/opendj/ldap/schema/SchemaConstants.java b/opendj-core/src/main/java/org/forgerock/opendj/ldap/schema/SchemaConstants.java
index cd23d79..db275cb 100644
--- a/opendj-core/src/main/java/org/forgerock/opendj/ldap/schema/SchemaConstants.java
+++ b/opendj-core/src/main/java/org/forgerock/opendj/ldap/schema/SchemaConstants.java
@@ -22,6 +22,7 @@
*
*
* Copyright 2006-2009 Sun Microsystems, Inc.
+ * Portions Copyright 2014 Manuel Gaupp
*/
package org.forgerock.opendj.ldap.schema;
@@ -217,6 +218,16 @@
public static final String EMR_CASE_IGNORE_LIST_OID = "2.5.13.11";
/**
+ * The name for the certificateExactMatch equality matching rule.
+ */
+ public static final String EMR_CERTIFICATE_EXACT_NAME = "certificateExactMatch";
+
+ /**
+ * The OID for the certificateExactMatch equality matching rule.
+ */
+ public static final String EMR_CERTIFICATE_EXACT_OID = "2.5.13.34";
+
+ /**
* The name for the directoryStringFirstComponentMatch equality matching
* rule.
*/
@@ -699,6 +710,22 @@
public static final String SYNTAX_CERTIFICATE_OID = "1.3.6.1.4.1.1466.115.121.1.8";
/**
+ * The description for the certificate exact assertion attribute syntax.
+ */
+ public static final String SYNTAX_CERTIFICATE_EXACT_ASSERTION_DESCRIPTION = "X.509 Certificate Exact Assertion";
+
+ /**
+ * The name for the certificate exact assertion attribute syntax.
+ */
+ public static final String SYNTAX_CERTIFICATE_EXACT_ASSERTION_NAME = "CertificateExactAssertion";
+
+ /**
+ * The OID for the Certificate Exact Assertion syntax used for assertion
+ * values in extensible match filters.
+ */
+ public static final String SYNTAX_CERTIFICATE_EXACT_ASSERTION_OID = "1.3.6.1.1.15.1";
+
+ /**
* The description for the certificate list attribute syntax.
*/
public static final String SYNTAX_CERTLIST_DESCRIPTION = "Certificate List";
diff --git a/opendj-core/src/main/resources/com/forgerock/opendj/ldap/core.properties b/opendj-core/src/main/resources/com/forgerock/opendj/ldap/core.properties
index c546db1..4cba3a8 100755
--- a/opendj-core/src/main/resources/com/forgerock/opendj/ldap/core.properties
+++ b/opendj-core/src/main/resources/com/forgerock/opendj/ldap/core.properties
@@ -23,6 +23,7 @@
#
# Copyright 2010 Sun Microsystems, Inc.
# Portions copyright 2011-2014 ForgeRock AS
+# Portions Copyright 2014 Manuel Gaupp
#
ERR_ATTR_SYNTAX_UNKNOWN_APPROXIMATE_MATCHING_RULE=Unable to retrieve \
approximate matching rule %s used as the default for the %s attribute syntax. \
@@ -474,7 +475,7 @@
ERR_NAMEFORM_VALIDATION_FAIL=Validation of name form definition %s \
failed and will be removed from the schema: %s
ERR_NO_SUBSCHEMA_SUBENTRY_ATTR=The entry %s does not include \
- a subschemaSubentry attribute
+ a subschemaSubentry attribute
ERR_RDN_TYPE_NOT_FOUND=The RDN "%s" could not be parsed due to the \
following reason: %s
ERR_DN_TYPE_NOT_FOUND=The DN "%s" could not be parsed due to the \
@@ -493,6 +494,43 @@
ERR_INVALID_SUBSCHEMA_SUBENTRY_ATTR=The entry %s includes \
a subschemaSubentry attribute but it contains an invalid distinguished \
name "%s": %s
+WARN_GSER_PATTERN_NO_MATCH=The GSER value does not contain a String matching \
+ the pattern %s at the current position: %s
+WARN_GSER_NO_VALID_SEPARATOR=The GSER value does not contain a separator at \
+ the current position: %s
+WARN_GSER_NO_VALID_STRING=The GSER value does not contain a valid String value \
+ at the current position: %s
+WARN_GSER_NO_VALID_INTEGER=The GSER value does not contain a valid integer \
+ value at the current position: %s
+WARN_GSER_NO_VALID_IDENTIFIER=The GSER value does not contain a valid \
+ identifier at the current position: %s
+WARN_GSER_SPACE_CHAR_EXPECTED=The GSER value does not contain a whitespace \
+ character at the current position: %s
+WARN_GSER_NO_VALID_IDENTIFIEDCHOICE=The GSER value does not contain a valid \
+ IdentifiedChoiceValue at the current position: %s
+ERR_MR_CERTIFICATE_MATCH_PARSE_ERROR=The value could not be parsed as an X.509 \
+ certificate: "%s"
+ERR_MR_CERTIFICATE_MATCH_INVALID_DN=The provided value "%s" could not be \
+ parsed as a valid distinguished name because an error occurred while trying \
+ to parse the DN portion: %s
+ERR_MR_CERTIFICATE_MATCH_IDENTIFIER_NOT_FOUND=The identifier "%s" could not be \
+ found at the correct position
+ERR_MR_CERTIFICATE_MATCH_EXPECTED_END=The GSER value contains additional \
+ characters at the end of the assertion
+ERR_MR_CERTIFICATE_MATCH_GSER_INVALID=An error occured while parsing the GSER \
+ String: "%s"
+ERR_SYNTAX_CERTIFICATE_NOTVALID=The provided value is not a valid X.509 \
+ Certificate: %s
+ERR_SYNTAX_CERTIFICATE_ONLY_VALID_V23=The provided value is not a valid X.509 \
+ Certificate because "%s" is only valid in X.509 v2/v3
+ERR_SYNTAX_CERTIFICATE_ONLY_VALID_V3=The provided value is not a valid X.509 \
+ Certificate because "%s" is only valid in X.509 v3
+ERR_SYNTAX_CERTIFICATE_INVALID_VERSION=The provided value is not a valid X.509 \
+ Certificate because it contains an invalid version number (%d)
+ERR_SYNTAX_CERTIFICATE_INVALID_DER=The provided value is not a valid X.509 \
+ Certificate because it contains invalid DER encodings
+ERR_SYNTAX_CERTIFICATE_NO_ELEMENT_EXPECTED=The provided value is not a valid X.509 \
+ Certificate because it contains additional ASN.1 elements
#
# Core messages
#
@@ -819,7 +857,7 @@
ERR_SUBTREE_DELETE_INVALID_CONTROL_VALUE=Cannot decode the provided \
subtree delete control because it contains a value
ERR_ASN1_UNEXPECTED_TAG=Encountered unexpected tag while reading \
- ASN.1 element (expected=%d, got=%d)
+ ASN.1 element (expected=0x%02x, got=0x%02x)
ERR_AUTHZIDREQ_CONTROL_HAS_VALUE=Cannot decode the provided \
control as an authorization identity request control because the provided \
control had a value but the authorization identity request control should not \
@@ -1396,7 +1434,7 @@
REJECTED_CHANGE_FAIL_MODIFY=The entry "%s" could not be modified because the \
entry does not exist
REJECTED_CHANGE_FAIL_MODIFYDN=The entry "%s" could not be renamed because the \
- entry does not exist
+ entry does not exist
REJECTED_CHANGE_FAIL_MODIFYDN_DUPE=The entry "%s" could not be renamed because \
there is already an entry with the same name
FUNCTIONS_TO_INTEGER_FAIL=The provided value "%s" could not be parsed as an \
diff --git a/opendj-core/src/test/java/org/forgerock/opendj/io/ASN1ReaderTestCase.java b/opendj-core/src/test/java/org/forgerock/opendj/io/ASN1ReaderTestCase.java
index bd59b1a..bbf6957 100644
--- a/opendj-core/src/test/java/org/forgerock/opendj/io/ASN1ReaderTestCase.java
+++ b/opendj-core/src/test/java/org/forgerock/opendj/io/ASN1ReaderTestCase.java
@@ -23,6 +23,7 @@
*
* Copyright 2010 Sun Microsystems, Inc.
* Portions copyright 2012-2013 ForgeRock AS.
+ * Portions Copyright 2014 Manuel Gaupp
*/
package org.forgerock.opendj.io;
@@ -753,6 +754,36 @@
}
/**
+ * Tests the <CODE>skipElement</CODE> method providing a specific type.
+ */
+ @Test()
+ public void testSkipElementWithType() throws Exception {
+ final byte[] b =
+ new byte[] { 0x30, 0x09, 0x02, 0x01, 0x00, 0x02, 0x01, 0x01, 0x02, 0x01, 0x02 };
+ final ASN1Reader reader = getReader(b, 0);
+ reader.readStartSequence();
+ reader.skipElement(ASN1.UNIVERSAL_INTEGER_TYPE);
+ reader.skipElement(ASN1.UNIVERSAL_INTEGER_TYPE);
+ assertEquals(reader.readInteger(), 2);
+ reader.readEndSequence();
+ }
+
+ /**
+ * Tests the <CODE>skipElement</CODE> method providing a wrong type.
+ */
+ @Test(expectedExceptions = { DecodeException.class, IOException.class })
+ public void testSkipElementWithWrongType() throws Exception {
+ final byte[] b =
+ new byte[] { 0x30, 0x09, 0x02, 0x01, 0x00, 0x02, 0x01, 0x01, 0x02, 0x01, 0x02 };
+ final ASN1Reader reader = getReader(b, 0);
+ reader.readStartSequence();
+ reader.readInteger();
+ reader.skipElement(ASN1.UNIVERSAL_OCTET_STRING_TYPE);
+ assertEquals(reader.readInteger(), 2);
+ reader.readEndSequence();
+ }
+
+ /**
* Gets the reader to be use for the unit tests.
*
* @param b
diff --git a/opendj-core/src/test/java/org/forgerock/opendj/ldap/GSERParserTestCase.java b/opendj-core/src/test/java/org/forgerock/opendj/ldap/GSERParserTestCase.java
new file mode 100644
index 0000000..a4d25c4
--- /dev/null
+++ b/opendj-core/src/test/java/org/forgerock/opendj/ldap/GSERParserTestCase.java
@@ -0,0 +1,299 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License"). You may not use this file except in compliance
+ * with the License.
+ *
+ * You can obtain a copy of the license at legal-notices/CDDLv1_0.txt
+ * or http://forgerock.org/license/CDDLv1.0.html.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at legal-notices/CDDLv1_0.txt.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information:
+ * Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ *
+ *
+ * Copyright 2013-2014 Manuel Gaupp
+ */
+package org.forgerock.opendj.ldap;
+
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
+import static org.testng.Assert.*;
+
+/**
+ * This class tests the GSERParser.
+ */
+public class GSERParserTestCase extends SdkTestCase {
+
+ /**
+ * Try to create a GSER Parser with <CODE>null</CODE> as parameter.
+ */
+ @Test(expectedExceptions = { NullPointerException.class })
+ public void testGSERParserInitWithNull() throws Exception {
+ GSERParser parser = new GSERParser(null);
+ }
+
+ /**
+ * Test the <CODE>hasNext</CODE> method.
+ */
+ @Test()
+ public void testHasNext() throws Exception {
+ GSERParser parser = new GSERParser("0");
+ assertTrue(parser.hasNext());
+ assertEquals(parser.nextInteger(), 0);
+ assertFalse(parser.hasNext());
+ }
+
+ /**
+ * Test the <CODE>skipSP</CODE> method.
+ */
+ @Test()
+ public void testSkipSP() throws Exception {
+ String[] values = {" 42", " 42", "42"};
+ for (String value : values) {
+ GSERParser parser = new GSERParser(value);
+ assertEquals(parser.skipSP().nextInteger(), 42);
+ assertFalse(parser.hasNext());
+ }
+ }
+
+ /**
+ * Test the <CODE>skipMSP</CODE> method.
+ */
+ @Test()
+ public void testSkipMSP() throws Exception {
+ String[] values = {" 42", " 42", " 42"};
+ for (String value : values) {
+ GSERParser parser = new GSERParser(value);
+ assertEquals(parser.skipMSP().nextInteger(), 42);
+ assertFalse(parser.hasNext());
+ }
+ }
+
+ /**
+ * Verify that <CODE>skipMSP</CODE> requires at least one space.
+ */
+ @Test(expectedExceptions = { DecodeException.class })
+ public void testSkipMSPwithZeroSpaces() throws Exception {
+ GSERParser parser = new GSERParser("42");
+ parser.skipMSP();
+ }
+
+ /**
+ * Create data for the <CODE>testSequence</CODE> test case.
+ */
+ @DataProvider(name = "sequenceValues")
+ public Object[][] createSequenceValues() {
+ return new Object[][]{
+ {"{123,122}", true},
+ {"{ 123,1}", true},
+ {"{ 123 , 1 }", true},
+ {"{0123,}", false},
+ {"{0123 42 }", false},
+ {"{123 , 11 ", false},
+ {" {123 , 11 ", false},
+ {" 123 , 11}", false}
+ };
+ }
+
+ /**
+ * Test sequence parsing.
+ */
+ @Test(dataProvider = "sequenceValues")
+ public void testSequence(String value, boolean expectedResult) throws Exception {
+ GSERParser parser = new GSERParser(value);
+ boolean result = true;
+ try {
+ parser.readStartSequence();
+ parser.nextInteger();
+ parser.skipSP().skipSeparator();
+ parser.nextInteger();
+ parser.readEndSequence();
+ if (parser.hasNext()) {
+ result = false;
+ }
+ } catch (DecodeException e) {
+ result = false;
+ }
+ assertEquals(expectedResult, result);
+ }
+
+ /**
+ * Create data for the <CODE>testString</CODE> test case.
+ */
+ @DataProvider(name = "stringValues")
+ public Object[][] createStringValues() {
+ return new Object[][]{
+ {"\"\"", true},
+ {"\"escaped\"\"dquotes\"", true},
+ {"\"valid Unicode \u00D6\u00C4\"", true},
+ {"\"only one \" \"", false},
+ {"invalid without dquotes", false},
+ {"\"missing end", false},
+ {"\"valid string\" with extra trailing characters", false}
+ };
+ }
+
+ /**
+ * Test the parsing of String values.
+ */
+ @Test(dataProvider = "stringValues")
+ public void testString(String value, boolean expectedResult) throws Exception {
+ GSERParser parser = new GSERParser(value);
+ boolean result = true;
+ try {
+ assertNotNull(parser.nextString());
+ if (parser.hasNext()) {
+ result = false;
+ }
+ } catch (DecodeException e) {
+ result = false;
+ }
+ assertEquals(expectedResult, result);
+ }
+
+ /**
+ * Create data for the <CODE>testInteger</CODE> test case.
+ */
+ @DataProvider(name = "integerValues")
+ public Object[][] createIntegerValues() {
+ return new Object[][]{
+ {"0123456", true},
+ {"42", true},
+ {"0", true},
+ {"", false},
+ {"0xFF", false},
+ {"NULL", false},
+ {"Not a Number", false}
+ };
+ }
+
+ /**
+ * Create data for the <CODE>testBigInteger</CODE> test case.
+ */
+ @DataProvider(name = "bigIntegerValues")
+ public Object[][] createBigIntegerValues() {
+ return new Object[][]{
+ {"0123456", true},
+ {"42", true},
+ {"0", true},
+ {"", false},
+ {"0xFF", false},
+ {"NULL", false},
+ {"Not a Number", false},
+ {"2147483648", true}
+ };
+ }
+
+ /**
+ * Test the parsing of Integer values.
+ */
+ @Test(dataProvider = "integerValues")
+ public void testInteger(String value, boolean expectedResult) throws Exception {
+ GSERParser parser = new GSERParser(value);
+ boolean result = true;
+ try {
+ parser.nextInteger();
+ if (parser.hasNext()) {
+ result = false;
+ }
+ } catch (DecodeException e) {
+ result = false;
+ }
+ assertEquals(expectedResult, result);
+ }
+
+ /**
+ * Test the parsing of BigInteger values.
+ */
+ @Test(dataProvider = "bigIntegerValues")
+ public void testBigInteger(String value, boolean expectedResult) throws Exception {
+ GSERParser parser = new GSERParser(value);
+ boolean result = true;
+ try {
+ parser.nextBigInteger();
+ if (parser.hasNext()) {
+ result = false;
+ }
+ } catch (DecodeException e) {
+ result = false;
+ }
+ assertEquals(expectedResult, result);
+ }
+
+ /**
+ * Create data for the <CODE>testNamedValueIdentifier</CODE> test case.
+ */
+ @DataProvider(name = "namedValueIdentifierValues")
+ public Object[][] createNamedValueIdentifierValues() {
+ return new Object[][]{
+ {"serialNumber ", true},
+ {"issuer ", true},
+ {"Serialnumber ", false},
+ {"0serialnumber ", false},
+ {"serial Number ", false},
+ {"missingSpace", false}
+ };
+ }
+
+ /**
+ * Test the parsing of NamedValue identifiers.
+ */
+ @Test(dataProvider = "namedValueIdentifierValues")
+ public void testNamedValueIdentifier(String value, boolean expectedResult) throws Exception {
+ GSERParser parser = new GSERParser(value);
+ boolean result = true;
+ try {
+ assertNotNull(parser.nextNamedValueIdentifier());
+ if (parser.hasNext()) {
+ result = false;
+ }
+ } catch (DecodeException e) {
+ result = false;
+ }
+ assertEquals(expectedResult, result);
+ }
+
+ /**
+ * Create data for the <CODE>testIdentifiedChoiceIdentifier</CODE> test
+ * case.
+ */
+ @DataProvider(name = "identifiedChoicdeIdentifierValues")
+ public Object[][] createIdentifiedChoicdeIdentifierValues() {
+ return new Object[][]{
+ {"serialNumber:", true},
+ {"issuer1:", true},
+ {"Serialnumber:", false},
+ {"0serialnumber:", false},
+ {"serial Number:", false},
+ {"missingColon", false}
+ };
+ }
+
+ /**
+ * Test the parsing of IdentifiedChoice identifiers.
+ */
+ @Test(dataProvider = "identifiedChoicdeIdentifierValues")
+ public void testIdentifiedChoicdeIdentifier(String value, boolean expectedResult) throws Exception {
+ GSERParser parser = new GSERParser(value);
+ boolean result = true;
+ try {
+ assertNotNull(parser.nextChoiceValueIdentifier());
+ if (parser.hasNext()) {
+ result = false;
+ }
+ } catch (DecodeException e) {
+ result = false;
+ }
+ assertEquals(expectedResult, result);
+ }
+}
diff --git a/opendj-core/src/test/java/org/forgerock/opendj/ldap/schema/CertificateExactMatchingRuleImplTest.java b/opendj-core/src/test/java/org/forgerock/opendj/ldap/schema/CertificateExactMatchingRuleImplTest.java
new file mode 100644
index 0000000..e1ca1fd
--- /dev/null
+++ b/opendj-core/src/test/java/org/forgerock/opendj/ldap/schema/CertificateExactMatchingRuleImplTest.java
@@ -0,0 +1,212 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License"). You may not use this file except in compliance
+ * with the License.
+ *
+ * You can obtain a copy of the license at legal-notices/CDDLv1_0.txt
+ * or http://forgerock.org/license/CDDLv1.0.html.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at legal-notices/CDDLv1_0.txt.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information:
+ * Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ *
+ *
+ * Copyright 2006-2008 Sun Microsystems, Inc.
+ * Portions Copyright 2013-2014 Manuel Gaupp
+ */
+package org.forgerock.opendj.ldap.schema;
+
+import org.forgerock.opendj.ldap.Assertion;
+import org.forgerock.opendj.ldap.ByteString;
+import org.forgerock.opendj.ldap.ConditionResult;
+import org.forgerock.opendj.ldap.DecodeException;
+
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
+
+import static org.testng.Assert.*;
+
+/**
+ * This class tests the certificateExactMatch matching rule.
+ */
+public class CertificateExactMatchingRuleImplTest extends SchemaTestCase {
+
+ /**
+ * Generate data for the certificateExactMatch matching rule test.
+ */
+ @DataProvider(name = "certificateExactMatchingRules")
+ public Object[][] createCertificateExactMatchingRuleTest() {
+ String validcert1
+ = "MIICpTCCAg6gAwIBAgIJALeoA6I3ZC/cMA0GCSqGSIb3DQEBBQUAMFYxCzAJBgNV"
+ + "BAYTAlVTMRMwEQYDVQQHEwpDdXBlcnRpb25lMRwwGgYDVQQLExNQcm9kdWN0IERl"
+ + "dmVsb3BtZW50MRQwEgYDVQQDEwtCYWJzIEplbnNlbjAeFw0xMjA1MDIxNjM0MzVa"
+ + "Fw0xMjEyMjExNjM0MzVaMFYxCzAJBgNVBAYTAlVTMRMwEQYDVQQHEwpDdXBlcnRp"
+ + "b25lMRwwGgYDVQQLExNQcm9kdWN0IERldmVsb3BtZW50MRQwEgYDVQQDEwtCYWJz"
+ + "IEplbnNlbjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEApysa0c9qc8FB8gIJ"
+ + "8zAb1pbJ4HzC7iRlVGhRJjFORkGhyvU4P5o2wL0iz/uko6rL9/pFhIlIMbwbV8sm"
+ + "mKeNUPitwiKOjoFDmtimcZ4bx5UTAYLbbHMpEdwSpMC5iF2UioM7qdiwpAfZBd6Z"
+ + "69vqNxuUJ6tP+hxtr/aSgMH2i8ECAwEAAaN7MHkwCQYDVR0TBAIwADAsBglghkgB"
+ + "hvhCAQ0EHxYdT3BlblNTTCBHZW5lcmF0ZWQgQ2VydGlmaWNhdGUwHQYDVR0OBBYE"
+ + "FLlZD3aKDa8jdhzoByOFMAJDs2osMB8GA1UdIwQYMBaAFLlZD3aKDa8jdhzoByOF"
+ + "MAJDs2osMA0GCSqGSIb3DQEBBQUAA4GBAE5vccY8Ydd7by2bbwiDKgQqVyoKrkUg"
+ + "6CD0WRmc2pBeYX2z94/PWO5L3Fx+eIZh2wTxScF+FdRWJzLbUaBuClrxuy0Y5ifj"
+ + "axuJ8LFNbZtsp1ldW3i84+F5+SYT+xI67ZcoAtwx/VFVI9s5I/Gkmu9f9nxjPpK7"
+ + "1AIUXiE3Qcck";
+
+ String incompleteCert = "MIICpTCCAg6gAwIBAgIJALeoA6I3ZC/cMA0GCSqGSIb3DQEBBQUAMFYxCzAJBgNV";
+
+ String assertion = "{ serialNumber 13233831500277100508, issuer rdnSequence:\""
+ + "CN=Babs Jensen,OU=Product Development,L=Cupertione,C=US\" }";
+ String assertionWithSpaces = "{ serialNumber 13233831500277100508, issuer rdnSequence:\""
+ + "CN=Babs Jensen,OU=Product Development, L=Cupertione,C=US\" }";
+ String assertionDNencoded = "{ serialNumber 13233831500277100508, issuer rdnSequence:\""
+ + "cn=BABS Jensen,ou=Product Development,L=Cupertione,c=#5553\" }";
+ String assertionWrong = "{ serialNumber 13233831511277100508, issuer rdnSequence:\""
+ + "CN=Babs Jensen,OU=Product Development,L=Cupertione,C=US\" }";
+
+ return new Object[][]{
+ {ByteString.valueOfBase64(validcert1), ByteString.valueOf(assertion), ConditionResult.TRUE},
+ {ByteString.valueOfBase64(validcert1), ByteString.valueOf(assertionWithSpaces), ConditionResult.TRUE},
+ {ByteString.valueOfBase64(validcert1), ByteString.valueOf(assertionDNencoded), ConditionResult.TRUE},
+ {ByteString.valueOfBase64(validcert1), ByteString.valueOf(assertionWrong), ConditionResult.FALSE},
+ {ByteString.valueOfBase64(incompleteCert), ByteString.valueOfBase64(incompleteCert), ConditionResult.TRUE},
+ {ByteString.valueOfBase64(validcert1), ByteString.valueOfBase64(validcert1), ConditionResult.TRUE}
+ };
+ }
+
+ /**
+ * Generate valid assertion values for the certificateExactMatch matching
+ * rule test.
+ */
+ @DataProvider(name = "certificateExactMatchValidAssertionValues")
+ public Object[][] createCertificateExactMatchingRuleValidAssertionValues() {
+ return new Object[][]{
+ {"{serialNumber 123,issuer rdnSequence:\"c=DE\"}"},
+ {"{serialNumber 123,issuer rdnSequence:\"\"}"},
+ {"{serialNumber 0123,issuer rdnSequence:\"cn=issuer\"}"},
+ {"{ serialNumber 123, issuer rdnSequence:\"c=DE\" }"},
+ {"{serialNumber 123,issuer rdnSequence:\"cn=escaped\"\"dquotes\"}"},
+ {"{serialNumber 123,issuer rdnSequence:\"cn=\u00D6\u00C4\"}"}
+ };
+ }
+
+ /**
+ * Generate invalid assertion values for the certificateExactMatch matching
+ * rule test.
+ */
+ @DataProvider(name = "certificateExactMatchInvalidAssertionValues")
+ public Object[][] createCertificateExactMatchingRuleInvalidAssertionValues() {
+ return new Object[][]{
+ {"{serialnumber 123,issuer rdnSequence:\"c=DE\"}"},
+ {"{serialNumber 123,issuer rdnSequence:\"invalid\"}"},
+ {"{serialNumber 0123,issuer rdnSequence: \"cn=issuer\"}"},
+ {"{ serialNumber 123 , issuer rdnSequence:\"c=DE\" } trailing"}
+ };
+ }
+
+ /**
+ * Generate invalid atribute values for the certificateExactMatch matching
+ * rule test.
+ */
+ @DataProvider(name = "certificateExactMatchInvalidAttributeValues")
+ public Object[][] createCertificateExactMatchingRuleInvalidAttributeValues()
+ throws Exception {
+ String invalidcert1
+ = "MIICpTCCAg6gAwIBBQIJALeoA6I3ZC/cMA0GCSqGSIb3DQEBBQUAMFYxCzAJBgNV"
+ + "BAYTAlVTMRMwEQYDVQQHEwpDdXBlcnRpb25lMRwwGgYDVQQLExNQcm9kdWN0IERl"
+ + "dmVsb3BtZW50MRQwEgYDVQQDEwtCYWJzIEplbnNlbjAeFw0xMjA1MDIxNjM0MzVa"
+ + "Fw0xMjEyMjExNjM0MzVaMFYxCzAJBgNVBAYTAlVTMRMwEQYDVQQHEwpDdXBlcnRp"
+ + "b25lMRwwGgYDVQQLExNQcm9kdWN0IERldmVsb3BtZW50MRQwEgYDVQQDEwtCYWJz"
+ + "IEplbnNlbjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEApysa0c9qc8FB8gIJ"
+ + "8zAb1pbJ4HzC7iRlVGhRJjFORkGhyvU4P5o2wL0iz/uko6rL9/pFhIlIMbwbV8sm"
+ + "mKeNUPitwiKOjoFDmtimcZ4bx5UTAYLbbHMpEdwSpMC5iF2UioM7qdiwpAfZBd6Z"
+ + "69vqNxuUJ6tP+hxtr/aSgMH2i8ECAwEAAaN7MHkwCQYDVR0TBAIwADAsBglghkgB"
+ + "hvhCAQ0EHxYdT3BlblNTTCBHZW5lcmF0ZWQgQ2VydGlmaWNhdGUwHQYDVR0OBBYE"
+ + "FLlZD3aKDa8jdhzoByOFMAJDs2osMB8GA1UdIwQYMBaAFLlZD3aKDa8jdhzoByOF"
+ + "MAJDs2osMA0GCSqGSIb3DQEBBQUAA4GBAE5vccY8Ydd7by2bbwiDKgQqVyoKrkUg"
+ + "6CD0WRmc2pBeYX2z94/PWO5L3Fx+eIZh2wTxScF+FdRWJzLbUaBuClrxuy0Y5ifj"
+ + "axuJ8LFNbZtsp1ldW3i84+F5+SYT+xI67ZcoAtwx/VFVI9s5I/Gkmu9f9nxjPpK7"
+ + "1AIUXiE3Qcck";
+
+ String brokencert1
+ = "MIICpTCCAg6gAwIBAgIJALeoA6I3ZC/cMA0GCSqGSIb3DQEBBQUAMFYxCzAJBgNV";
+
+ return new Object[][]{
+ {ByteString.valueOfBase64(invalidcert1)},
+ {ByteString.valueOfBase64(brokencert1)}
+ };
+ }
+
+ /**
+ * Get an instance of the matching rule.
+ *
+ * @return An instance of the matching rule to test.
+ */
+ protected MatchingRule getRule() {
+ return CoreSchema.getCertificateExactMatchingRule();
+ }
+
+ /**
+ * Test the normalization and the comparison of valid values.
+ */
+ @Test(dataProvider = "certificateExactMatchingRules")
+ public void certificateExactMatchingRules(ByteString attributeValue,
+ ByteString assertionValue, ConditionResult result) throws DecodeException {
+ MatchingRule rule = getRule();
+
+ // normalize the 2 provided values and check that they are equal
+ assertEquals(rule.getAssertion(assertionValue).matches(rule.normalizeAttributeValue(attributeValue)), result);
+ }
+
+ /**
+ * Test that valid assertion values are accepted.
+ */
+ @Test(dataProvider = "certificateExactMatchValidAssertionValues")
+ public void certificateExactMatchingRuleValidAssertionValues(String value)
+ throws DecodeException {
+ // Get the instance of the rule to be tested.
+ MatchingRule rule = getRule();
+
+ // normalize the provided assertion values
+ rule.getAssertion(ByteString.valueOf(value));
+ }
+
+ /**
+ * Test that invalid assertion values are rejected.
+ */
+ @Test(dataProvider = "certificateExactMatchInvalidAssertionValues",
+ expectedExceptions = { DecodeException.class })
+ public void certificateExactMatchingRuleInvalidAssertionValues(String value)
+ throws DecodeException {
+ // Get the instance of the rule to be tested.
+ MatchingRule rule = getRule();
+
+ // normalize the provided assertion value
+ rule.getAssertion(ByteString.valueOf(value));
+ }
+
+ /**
+ * Test that invalid attribute values are returned with the original
+ * ByteString.
+ */
+ @Test(dataProvider = "certificateExactMatchInvalidAttributeValues")
+ public void certificateExactMatchingRuleInvalidAttributeValues(ByteString value)
+ throws DecodeException {
+ // Get the instance of the rule to be tested.
+ MatchingRule rule = getRule();
+
+ // normalize the provided assertion value
+ Assertion normalizedAssertionValue = rule.getAssertion(value);
+ assertEquals(normalizedAssertionValue.matches(value), ConditionResult.TRUE);
+ }
+}
diff --git a/opendj-core/src/test/java/org/forgerock/opendj/ldap/schema/CertificateSyntaxTest.java b/opendj-core/src/test/java/org/forgerock/opendj/ldap/schema/CertificateSyntaxTest.java
new file mode 100644
index 0000000..e89028c
--- /dev/null
+++ b/opendj-core/src/test/java/org/forgerock/opendj/ldap/schema/CertificateSyntaxTest.java
@@ -0,0 +1,166 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License"). You may not use this file except in compliance
+ * with the License.
+ *
+ * You can obtain a copy of the license at legal-notices/CDDLv1_0.txt
+ * or http://forgerock.org/license/CDDLv1.0.html.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at legal-notices/CDDLv1_0.txt.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information:
+ * Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ *
+ *
+ * Copyright 2009 Sun Microsystems, Inc.
+ * Portions copyright 2014 ForgeRock AS.
+ * Portions Copyright 2014 Manuel Gaupp
+ */
+package org.forgerock.opendj.ldap.schema;
+
+import org.forgerock.i18n.LocalizableMessageBuilder;
+import org.forgerock.opendj.ldap.ByteString;
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
+
+import static org.forgerock.opendj.ldap.schema.SchemaConstants.SYNTAX_CERTIFICATE_OID;
+import static org.testng.Assert.fail;
+
+/**
+ * Certificate syntax tests.
+ */
+public class CertificateSyntaxTest extends SchemaTestCase {
+
+ /**
+ * Create data for the testAcceptableValues test. This should be a table of
+ * tables with 2 elements. The first one should be the value to test, the
+ * second the expected result of the test.
+ *
+ * @return a table containing data for the testAcceptableValues Test.
+ */
+ @DataProvider(name = "acceptableValues")
+ public Object[][] createAcceptableValues() {
+ String validcert1
+ = "MIICpTCCAg6gAwIBAgIJALeoA6I3ZC/cMA0GCSqGSIb3DQEBBQUAMFYxCzAJBgNV"
+ + "BAYTAlVTMRMwEQYDVQQHEwpDdXBlcnRpb25lMRwwGgYDVQQLExNQcm9kdWN0IERl"
+ + "dmVsb3BtZW50MRQwEgYDVQQDEwtCYWJzIEplbnNlbjAeFw0xMjA1MDIxNjM0MzVa"
+ + "Fw0xMjEyMjExNjM0MzVaMFYxCzAJBgNVBAYTAlVTMRMwEQYDVQQHEwpDdXBlcnRp"
+ + "b25lMRwwGgYDVQQLExNQcm9kdWN0IERldmVsb3BtZW50MRQwEgYDVQQDEwtCYWJz"
+ + "IEplbnNlbjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEApysa0c9qc8FB8gIJ"
+ + "8zAb1pbJ4HzC7iRlVGhRJjFORkGhyvU4P5o2wL0iz/uko6rL9/pFhIlIMbwbV8sm"
+ + "mKeNUPitwiKOjoFDmtimcZ4bx5UTAYLbbHMpEdwSpMC5iF2UioM7qdiwpAfZBd6Z"
+ + "69vqNxuUJ6tP+hxtr/aSgMH2i8ECAwEAAaN7MHkwCQYDVR0TBAIwADAsBglghkgB"
+ + "hvhCAQ0EHxYdT3BlblNTTCBHZW5lcmF0ZWQgQ2VydGlmaWNhdGUwHQYDVR0OBBYE"
+ + "FLlZD3aKDa8jdhzoByOFMAJDs2osMB8GA1UdIwQYMBaAFLlZD3aKDa8jdhzoByOF"
+ + "MAJDs2osMA0GCSqGSIb3DQEBBQUAA4GBAE5vccY8Ydd7by2bbwiDKgQqVyoKrkUg"
+ + "6CD0WRmc2pBeYX2z94/PWO5L3Fx+eIZh2wTxScF+FdRWJzLbUaBuClrxuy0Y5ifj"
+ + "axuJ8LFNbZtsp1ldW3i84+F5+SYT+xI67ZcoAtwx/VFVI9s5I/Gkmu9f9nxjPpK7"
+ + "1AIUXiE3Qcck";
+
+ String invalidcert1
+ = "MIICpTCCAg6gAwIBBQIJALeoA6I3ZC/cMA0GCSqGSIb3DQEBBQUAMFYxCzAJBgNV"
+ + "BAYTAlVTMRMwEQYDVQQHEwpDdXBlcnRpb25lMRwwGgYDVQQLExNQcm9kdWN0IERl"
+ + "dmVsb3BtZW50MRQwEgYDVQQDEwtCYWJzIEplbnNlbjAeFw0xMjA1MDIxNjM0MzVa"
+ + "Fw0xMjEyMjExNjM0MzVaMFYxCzAJBgNVBAYTAlVTMRMwEQYDVQQHEwpDdXBlcnRp"
+ + "b25lMRwwGgYDVQQLExNQcm9kdWN0IERldmVsb3BtZW50MRQwEgYDVQQDEwtCYWJz"
+ + "IEplbnNlbjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEApysa0c9qc8FB8gIJ"
+ + "8zAb1pbJ4HzC7iRlVGhRJjFORkGhyvU4P5o2wL0iz/uko6rL9/pFhIlIMbwbV8sm"
+ + "mKeNUPitwiKOjoFDmtimcZ4bx5UTAYLbbHMpEdwSpMC5iF2UioM7qdiwpAfZBd6Z"
+ + "69vqNxuUJ6tP+hxtr/aSgMH2i8ECAwEAAaN7MHkwCQYDVR0TBAIwADAsBglghkgB"
+ + "hvhCAQ0EHxYdT3BlblNTTCBHZW5lcmF0ZWQgQ2VydGlmaWNhdGUwHQYDVR0OBBYE"
+ + "FLlZD3aKDa8jdhzoByOFMAJDs2osMB8GA1UdIwQYMBaAFLlZD3aKDa8jdhzoByOF"
+ + "MAJDs2osMA0GCSqGSIb3DQEBBQUAA4GBAE5vccY8Ydd7by2bbwiDKgQqVyoKrkUg"
+ + "6CD0WRmc2pBeYX2z94/PWO5L3Fx+eIZh2wTxScF+FdRWJzLbUaBuClrxuy0Y5ifj"
+ + "axuJ8LFNbZtsp1ldW3i84+F5+SYT+xI67ZcoAtwx/VFVI9s5I/Gkmu9f9nxjPpK7"
+ + "1AIUXiE3Qcck";
+
+ String brokencert1
+ = "MIICpTCCAg6gAwIBAgIJALeoA6I3ZC/cMA0GCSqGSIb3DQEBBQUAMFYxCzAJBgNV";
+
+ return new Object[][]{
+ {ByteString.valueOfBase64(validcert1), true},
+ {ByteString.valueOf(validcert1), false},
+ {ByteString.valueOfBase64(invalidcert1), false},
+ {ByteString.valueOfBase64(brokencert1), false},
+ {ByteString.valueOf("invalid"), false}
+ };
+ }
+
+ /**
+ * Test acceptable values for this syntax.
+ *
+ * @param value
+ * The ByteString containing the value that will be tested
+ * @param result
+ * The expected result of the test
+ */
+ @Test(dataProvider = "acceptableValues")
+ public void testAcceptableValues(ByteString value, Boolean result) {
+ // Make sure that the specified class can be instantiated as a task.
+ final Syntax syntax = getRule();
+
+ final LocalizableMessageBuilder reason = new LocalizableMessageBuilder();
+
+ // test the valueIsAcceptable method
+ final Boolean liveResult = syntax.valueIsAcceptable(value, reason);
+
+ if (liveResult != result) {
+ fail(syntax + ".valueIsAcceptable gave bad result for " + value.toString() + "reason : " + reason);
+ }
+
+ // call the getters
+ syntax.getApproximateMatchingRule();
+ syntax.getDescription();
+ syntax.getEqualityMatchingRule();
+ syntax.getOID();
+ syntax.getOrderingMatchingRule();
+ syntax.getSubstringMatchingRule();
+ syntax.hashCode();
+ syntax.isHumanReadable();
+ syntax.toString();
+ }
+
+ /**
+ * Test acceptable values for this syntax allowing malformed certificates.
+ *
+ * @param value
+ * The ByteString containing the value that will be tested
+ * @param result
+ * Expected result is ignored.
+ */
+ @Test(dataProvider = "acceptableValues")
+ public void testAllowMalformedCertificates(ByteString value, Boolean result) {
+ // Make sure that the specified class can be instantiated as a task.
+ SchemaBuilder builder = new SchemaBuilder(Schema.getCoreSchema()).allowMalformedCertificates(true);
+ final Syntax syntax = builder.toSchema().getSyntax(SYNTAX_CERTIFICATE_OID);
+
+ final LocalizableMessageBuilder reason = new LocalizableMessageBuilder();
+
+ // test the valueIsAcceptable method
+ final Boolean liveResult = syntax.valueIsAcceptable(value, reason);
+
+ if (!liveResult) {
+ fail(syntax + ".valueIsAcceptable gave bad result for " + value.toString() + "reason : " + reason);
+ }
+ }
+
+
+ /**
+ * Get an instance of the attribute syntax that must be tested.
+ *
+ * @return An instance of the attribute syntax that must be tested.
+ */
+ protected Syntax getRule() {
+ SchemaBuilder builder = new SchemaBuilder(Schema.getCoreSchema()).allowMalformedCertificates(false);
+ return builder.toSchema().getSyntax(SYNTAX_CERTIFICATE_OID);
+ }
+}
diff --git a/opendj-core/src/test/java/org/forgerock/opendj/ldap/schema/SyntaxTestCase.java b/opendj-core/src/test/java/org/forgerock/opendj/ldap/schema/SyntaxTestCase.java
index f8fcfdc..97e26a1 100644
--- a/opendj-core/src/test/java/org/forgerock/opendj/ldap/schema/SyntaxTestCase.java
+++ b/opendj-core/src/test/java/org/forgerock/opendj/ldap/schema/SyntaxTestCase.java
@@ -22,6 +22,7 @@
*
*
* Copyright 2014 ForgeRock AS.
+ * Portions Copyright 2014 Manuel Gaupp
*/
package org.forgerock.opendj.ldap.schema;
@@ -399,7 +400,7 @@
assertThat(syntax.getDescription()).isEqualTo("X.509 Certificate");
assertThat(syntax.getExtraProperties().isEmpty()).isTrue();
assertThat(syntax.getApproximateMatchingRule()).isNull();
- assertThat(syntax.getEqualityMatchingRule().getNameOrOID()).isEqualTo("octetStringMatch");
+ assertThat(syntax.getEqualityMatchingRule().getNameOrOID()).isEqualTo("certificateExactMatch");
assertThat(syntax.getOrderingMatchingRule().getNameOrOID()).isEqualTo("octetStringOrderingMatch");
assertThat(syntax.getSubstringMatchingRule()).isNull();
assertThat(syntax.isBEREncodingRequired()).isTrue();
diff --git a/opendj-core/src/test/java/org/forgerock/opendj/ldif/LDIFChangeRecordReaderTestCase.java b/opendj-core/src/test/java/org/forgerock/opendj/ldif/LDIFChangeRecordReaderTestCase.java
index 3c9fe98..ae8338e 100644
--- a/opendj-core/src/test/java/org/forgerock/opendj/ldif/LDIFChangeRecordReaderTestCase.java
+++ b/opendj-core/src/test/java/org/forgerock/opendj/ldif/LDIFChangeRecordReaderTestCase.java
@@ -23,6 +23,7 @@
*
* Copyright 2011 ForgeRock AS
* Portions copyright 2012 ForgeRock AS.
+ * Portions Copyright 2014 Manuel Gaupp
*/
package org.forgerock.opendj.ldif;
@@ -60,7 +61,6 @@
import org.forgerock.opendj.ldap.requests.ModifyDNRequest;
import org.forgerock.opendj.ldap.requests.ModifyRequest;
import org.forgerock.opendj.ldap.schema.Schema;
-import org.forgerock.opendj.ldap.schema.SchemaBuilder;
import org.forgerock.opendj.ldap.schema.SchemaValidationPolicy;
import org.forgerock.opendj.ldap.schema.SchemaValidationPolicy.Action;
import org.testng.annotations.Test;
@@ -1755,16 +1755,7 @@
// @formatter:on
final LDIFChangeRecordReader reader = new LDIFChangeRecordReader(strChangeRecord);
-
- final SchemaBuilder scBuild = new SchemaBuilder();
- // Adding the new schema containing the userCertificate
- scBuild.addObjectClass("( 2.5.6.15 NAME 'strongAuthenticationUser"
- + "' SUP top AUXILIARY MUST userCertificate )", false);
- scBuild.addAttributeType(
- "( 2.5.4.36 NAME 'userCertificate' SYNTAX 1.3.6.1.4.1.1466.115.121.1.8 )", false);
- // Adding to default core schema
- scBuild.addSchema(Schema.getCoreSchema(), false);
- Schema schema = scBuild.toSchema();
+ Schema schema = Schema.getCoreSchema();
reader.setSchema(schema);
reader.setSchemaValidationPolicy(SchemaValidationPolicy.defaultPolicy());
--
Gitblit v1.10.0