Java Code Examples for sun.security.x509.GeneralNameInterface#NAME_WIDENS

The following examples show how to use sun.security.x509.GeneralNameInterface#NAME_WIDENS . You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: Builder.java    From TencentKona-8 with GNU General Public License v2.0 5 votes vote down vote up
/**
 * get distance of one GeneralName from another
 *
 * @param base GeneralName at base of subtree
 * @param test GeneralName to be tested against base
 * @param incomparable the value to return if the names are
 *  incomparable
 * @return distance of test name from base, where 0
 *         means exact match, 1 means test is an immediate
 *         child of base, 2 means test is a grandchild, etc.
 *         -1 means test is a parent of base, -2 means test
 *         is a grandparent, etc.
 */
static int distance(GeneralNameInterface base,
                    GeneralNameInterface test, int incomparable)
{
    switch (base.constrains(test)) {
    case GeneralNameInterface.NAME_DIFF_TYPE:
        if (debug != null) {
            debug.println("Builder.distance(): Names are different types");
        }
        return incomparable;
    case GeneralNameInterface.NAME_SAME_TYPE:
        if (debug != null) {
            debug.println("Builder.distance(): Names are same type but " +
                "in different subtrees");
        }
        return incomparable;
    case GeneralNameInterface.NAME_MATCH:
        return 0;
    case GeneralNameInterface.NAME_WIDENS:
        break;
    case GeneralNameInterface.NAME_NARROWS:
        break;
    default: // should never occur
        return incomparable;
    }

    /* names are in same subtree */
    return test.subtreeDepth() - base.subtreeDepth();
}
 
Example 2
Source File: Builder.java    From jdk8u60 with GNU General Public License v2.0 5 votes vote down vote up
/**
 * get distance of one GeneralName from another
 *
 * @param base GeneralName at base of subtree
 * @param test GeneralName to be tested against base
 * @param incomparable the value to return if the names are
 *  incomparable
 * @return distance of test name from base, where 0
 *         means exact match, 1 means test is an immediate
 *         child of base, 2 means test is a grandchild, etc.
 *         -1 means test is a parent of base, -2 means test
 *         is a grandparent, etc.
 */
static int distance(GeneralNameInterface base,
                    GeneralNameInterface test, int incomparable)
{
    switch (base.constrains(test)) {
    case GeneralNameInterface.NAME_DIFF_TYPE:
        if (debug != null) {
            debug.println("Builder.distance(): Names are different types");
        }
        return incomparable;
    case GeneralNameInterface.NAME_SAME_TYPE:
        if (debug != null) {
            debug.println("Builder.distance(): Names are same type but " +
                "in different subtrees");
        }
        return incomparable;
    case GeneralNameInterface.NAME_MATCH:
        return 0;
    case GeneralNameInterface.NAME_WIDENS:
        break;
    case GeneralNameInterface.NAME_NARROWS:
        break;
    default: // should never occur
        return incomparable;
    }

    /* names are in same subtree */
    return test.subtreeDepth() - base.subtreeDepth();
}
 
Example 3
Source File: Builder.java    From openjdk-jdk8u with GNU General Public License v2.0 5 votes vote down vote up
/**
 * get distance of one GeneralName from another
 *
 * @param base GeneralName at base of subtree
 * @param test GeneralName to be tested against base
 * @param incomparable the value to return if the names are
 *  incomparable
 * @return distance of test name from base, where 0
 *         means exact match, 1 means test is an immediate
 *         child of base, 2 means test is a grandchild, etc.
 *         -1 means test is a parent of base, -2 means test
 *         is a grandparent, etc.
 */
static int distance(GeneralNameInterface base,
                    GeneralNameInterface test, int incomparable)
{
    switch (base.constrains(test)) {
    case GeneralNameInterface.NAME_DIFF_TYPE:
        if (debug != null) {
            debug.println("Builder.distance(): Names are different types");
        }
        return incomparable;
    case GeneralNameInterface.NAME_SAME_TYPE:
        if (debug != null) {
            debug.println("Builder.distance(): Names are same type but " +
                "in different subtrees");
        }
        return incomparable;
    case GeneralNameInterface.NAME_MATCH:
        return 0;
    case GeneralNameInterface.NAME_WIDENS:
        break;
    case GeneralNameInterface.NAME_NARROWS:
        break;
    default: // should never occur
        return incomparable;
    }

    /* names are in same subtree */
    return test.subtreeDepth() - base.subtreeDepth();
}
 
Example 4
Source File: Builder.java    From openjdk-jdk8u-backup with GNU General Public License v2.0 5 votes vote down vote up
/**
 * get distance of one GeneralName from another
 *
 * @param base GeneralName at base of subtree
 * @param test GeneralName to be tested against base
 * @param incomparable the value to return if the names are
 *  incomparable
 * @return distance of test name from base, where 0
 *         means exact match, 1 means test is an immediate
 *         child of base, 2 means test is a grandchild, etc.
 *         -1 means test is a parent of base, -2 means test
 *         is a grandparent, etc.
 */
static int distance(GeneralNameInterface base,
                    GeneralNameInterface test, int incomparable)
{
    switch (base.constrains(test)) {
    case GeneralNameInterface.NAME_DIFF_TYPE:
        if (debug != null) {
            debug.println("Builder.distance(): Names are different types");
        }
        return incomparable;
    case GeneralNameInterface.NAME_SAME_TYPE:
        if (debug != null) {
            debug.println("Builder.distance(): Names are same type but " +
                "in different subtrees");
        }
        return incomparable;
    case GeneralNameInterface.NAME_MATCH:
        return 0;
    case GeneralNameInterface.NAME_WIDENS:
        break;
    case GeneralNameInterface.NAME_NARROWS:
        break;
    default: // should never occur
        return incomparable;
    }

    /* names are in same subtree */
    return test.subtreeDepth() - base.subtreeDepth();
}
 
Example 5
Source File: Builder.java    From openjdk-8 with GNU General Public License v2.0 5 votes vote down vote up
/**
 * get distance of one GeneralName from another
 *
 * @param base GeneralName at base of subtree
 * @param test GeneralName to be tested against base
 * @param incomparable the value to return if the names are
 *  incomparable
 * @return distance of test name from base, where 0
 *         means exact match, 1 means test is an immediate
 *         child of base, 2 means test is a grandchild, etc.
 *         -1 means test is a parent of base, -2 means test
 *         is a grandparent, etc.
 */
static int distance(GeneralNameInterface base,
                    GeneralNameInterface test, int incomparable)
{
    switch (base.constrains(test)) {
    case GeneralNameInterface.NAME_DIFF_TYPE:
        if (debug != null) {
            debug.println("Builder.distance(): Names are different types");
        }
        return incomparable;
    case GeneralNameInterface.NAME_SAME_TYPE:
        if (debug != null) {
            debug.println("Builder.distance(): Names are same type but " +
                "in different subtrees");
        }
        return incomparable;
    case GeneralNameInterface.NAME_MATCH:
        return 0;
    case GeneralNameInterface.NAME_WIDENS:
        break;
    case GeneralNameInterface.NAME_NARROWS:
        break;
    default: // should never occur
        return incomparable;
    }

    /* names are in same subtree */
    return test.subtreeDepth() - base.subtreeDepth();
}
 
Example 6
Source File: Builder.java    From dragonwell8_jdk with GNU General Public License v2.0 5 votes vote down vote up
/**
 * get distance of one GeneralName from another
 *
 * @param base GeneralName at base of subtree
 * @param test GeneralName to be tested against base
 * @param incomparable the value to return if the names are
 *  incomparable
 * @return distance of test name from base, where 0
 *         means exact match, 1 means test is an immediate
 *         child of base, 2 means test is a grandchild, etc.
 *         -1 means test is a parent of base, -2 means test
 *         is a grandparent, etc.
 */
static int distance(GeneralNameInterface base,
                    GeneralNameInterface test, int incomparable)
{
    switch (base.constrains(test)) {
    case GeneralNameInterface.NAME_DIFF_TYPE:
        if (debug != null) {
            debug.println("Builder.distance(): Names are different types");
        }
        return incomparable;
    case GeneralNameInterface.NAME_SAME_TYPE:
        if (debug != null) {
            debug.println("Builder.distance(): Names are same type but " +
                "in different subtrees");
        }
        return incomparable;
    case GeneralNameInterface.NAME_MATCH:
        return 0;
    case GeneralNameInterface.NAME_WIDENS:
        break;
    case GeneralNameInterface.NAME_NARROWS:
        break;
    default: // should never occur
        return incomparable;
    }

    /* names are in same subtree */
    return test.subtreeDepth() - base.subtreeDepth();
}
 
Example 7
Source File: Builder.java    From j2objc with Apache License 2.0 5 votes vote down vote up
/**
 * get distance of one GeneralName from another
 *
 * @param base GeneralName at base of subtree
 * @param test GeneralName to be tested against base
 * @param incomparable the value to return if the names are
 *  incomparable
 * @return distance of test name from base, where 0
 *         means exact match, 1 means test is an immediate
 *         child of base, 2 means test is a grandchild, etc.
 *         -1 means test is a parent of base, -2 means test
 *         is a grandparent, etc.
 */
static int distance(GeneralNameInterface base,
                    GeneralNameInterface test, int incomparable)
{
    switch (base.constrains(test)) {
    case GeneralNameInterface.NAME_DIFF_TYPE:
        if (debug != null) {
            debug.println("Builder.distance(): Names are different types");
        }
        return incomparable;
    case GeneralNameInterface.NAME_SAME_TYPE:
        if (debug != null) {
            debug.println("Builder.distance(): Names are same type but " +
                "in different subtrees");
        }
        return incomparable;
    case GeneralNameInterface.NAME_MATCH:
        return 0;
    case GeneralNameInterface.NAME_WIDENS:
        break;
    case GeneralNameInterface.NAME_NARROWS:
        break;
    default: // should never occur
        return incomparable;
    }

    /* names are in same subtree */
    return test.subtreeDepth() - base.subtreeDepth();
}
 
Example 8
Source File: Builder.java    From openjdk-jdk9 with GNU General Public License v2.0 5 votes vote down vote up
/**
 * get distance of one GeneralName from another
 *
 * @param base GeneralName at base of subtree
 * @param test GeneralName to be tested against base
 * @param incomparable the value to return if the names are
 *  incomparable
 * @return distance of test name from base, where 0
 *         means exact match, 1 means test is an immediate
 *         child of base, 2 means test is a grandchild, etc.
 *         -1 means test is a parent of base, -2 means test
 *         is a grandparent, etc.
 */
static int distance(GeneralNameInterface base,
                    GeneralNameInterface test, int incomparable)
{
    switch (base.constrains(test)) {
    case GeneralNameInterface.NAME_DIFF_TYPE:
        if (debug != null) {
            debug.println("Builder.distance(): Names are different types");
        }
        return incomparable;
    case GeneralNameInterface.NAME_SAME_TYPE:
        if (debug != null) {
            debug.println("Builder.distance(): Names are same type but " +
                "in different subtrees");
        }
        return incomparable;
    case GeneralNameInterface.NAME_MATCH:
        return 0;
    case GeneralNameInterface.NAME_WIDENS:
        break;
    case GeneralNameInterface.NAME_NARROWS:
        break;
    default: // should never occur
        return incomparable;
    }

    /* names are in same subtree */
    return test.subtreeDepth() - base.subtreeDepth();
}
 
Example 9
Source File: Builder.java    From jdk8u-dev-jdk with GNU General Public License v2.0 5 votes vote down vote up
/**
 * get distance of one GeneralName from another
 *
 * @param base GeneralName at base of subtree
 * @param test GeneralName to be tested against base
 * @param incomparable the value to return if the names are
 *  incomparable
 * @return distance of test name from base, where 0
 *         means exact match, 1 means test is an immediate
 *         child of base, 2 means test is a grandchild, etc.
 *         -1 means test is a parent of base, -2 means test
 *         is a grandparent, etc.
 */
static int distance(GeneralNameInterface base,
                    GeneralNameInterface test, int incomparable)
{
    switch (base.constrains(test)) {
    case GeneralNameInterface.NAME_DIFF_TYPE:
        if (debug != null) {
            debug.println("Builder.distance(): Names are different types");
        }
        return incomparable;
    case GeneralNameInterface.NAME_SAME_TYPE:
        if (debug != null) {
            debug.println("Builder.distance(): Names are same type but " +
                "in different subtrees");
        }
        return incomparable;
    case GeneralNameInterface.NAME_MATCH:
        return 0;
    case GeneralNameInterface.NAME_WIDENS:
        break;
    case GeneralNameInterface.NAME_NARROWS:
        break;
    default: // should never occur
        return incomparable;
    }

    /* names are in same subtree */
    return test.subtreeDepth() - base.subtreeDepth();
}
 
Example 10
Source File: Builder.java    From jdk8u_jdk with GNU General Public License v2.0 4 votes vote down vote up
/**
 * get hop distance of one GeneralName from another in links where
 * the names need not have an ancestor/descendant relationship.
 * For example, the hop distance from ou=D,ou=C,o=B,c=US to
 * ou=F,ou=E,ou=C,o=B,c=US is 3: D->C, C->E, E->F.  The hop distance
 * from ou=C,o=B,c=US to ou=D,ou=C,o=B,c=US is -1: C->D
 *
 * @param base GeneralName
 * @param test GeneralName to be tested against base
 * @param incomparable the value to return if the names are
 *  incomparable
 * @return distance of test name from base measured in hops in the
 *         namespace hierarchy, where 0 means exact match.  Result
 *         is positive if path is some number of up hops followed by
 *         some number of down hops; result is negative if path is
 *         some number of down hops.
 */
static int hops(GeneralNameInterface base, GeneralNameInterface test,
                int incomparable)
{
    int baseRtest = base.constrains(test);
    switch (baseRtest) {
    case GeneralNameInterface.NAME_DIFF_TYPE:
        if (debug != null) {
            debug.println("Builder.hops(): Names are different types");
        }
        return incomparable;
    case GeneralNameInterface.NAME_SAME_TYPE:
        /* base and test are in different subtrees */
        break;
    case GeneralNameInterface.NAME_MATCH:
        /* base matches test */
        return 0;
    case GeneralNameInterface.NAME_WIDENS:
        /* base is ancestor of test */
        return (test.subtreeDepth()-base.subtreeDepth());
    case GeneralNameInterface.NAME_NARROWS:
        /* base is descendant of test */
        return (test.subtreeDepth()-base.subtreeDepth());
    default: // should never occur
        return incomparable;
    }

    /* names are in different subtrees */
    if (base.getType() != GeneralNameInterface.NAME_DIRECTORY) {
        if (debug != null) {
            debug.println("Builder.hops(): hopDistance not implemented " +
                "for this name type");
        }
        return incomparable;
    }
    X500Name baseName = (X500Name)base;
    X500Name testName = (X500Name)test;
    X500Name commonName = baseName.commonAncestor(testName);
    if (commonName == null) {
        if (debug != null) {
            debug.println("Builder.hops(): Names are in different " +
                "namespaces");
        }
        return incomparable;
    } else {
        int commonDistance = commonName.subtreeDepth();
        int baseDistance = baseName.subtreeDepth();
        int testDistance = testName.subtreeDepth();
        return (baseDistance + testDistance - (2 * commonDistance));
    }
}
 
Example 11
Source File: Builder.java    From openjdk-8-source with GNU General Public License v2.0 4 votes vote down vote up
/**
 * get hop distance of one GeneralName from another in links where
 * the names need not have an ancestor/descendant relationship.
 * For example, the hop distance from ou=D,ou=C,o=B,c=US to
 * ou=F,ou=E,ou=C,o=B,c=US is 3: D->C, C->E, E->F.  The hop distance
 * from ou=C,o=B,c=US to ou=D,ou=C,o=B,c=US is -1: C->D
 *
 * @param base GeneralName
 * @param test GeneralName to be tested against base
 * @param incomparable the value to return if the names are
 *  incomparable
 * @return distance of test name from base measured in hops in the
 *         namespace hierarchy, where 0 means exact match.  Result
 *         is positive if path is some number of up hops followed by
 *         some number of down hops; result is negative if path is
 *         some number of down hops.
 */
static int hops(GeneralNameInterface base, GeneralNameInterface test,
                int incomparable)
{
    int baseRtest = base.constrains(test);
    switch (baseRtest) {
    case GeneralNameInterface.NAME_DIFF_TYPE:
        if (debug != null) {
            debug.println("Builder.hops(): Names are different types");
        }
        return incomparable;
    case GeneralNameInterface.NAME_SAME_TYPE:
        /* base and test are in different subtrees */
        break;
    case GeneralNameInterface.NAME_MATCH:
        /* base matches test */
        return 0;
    case GeneralNameInterface.NAME_WIDENS:
        /* base is ancestor of test */
        return (test.subtreeDepth()-base.subtreeDepth());
    case GeneralNameInterface.NAME_NARROWS:
        /* base is descendant of test */
        return (test.subtreeDepth()-base.subtreeDepth());
    default: // should never occur
        return incomparable;
    }

    /* names are in different subtrees */
    if (base.getType() != GeneralNameInterface.NAME_DIRECTORY) {
        if (debug != null) {
            debug.println("Builder.hops(): hopDistance not implemented " +
                "for this name type");
        }
        return incomparable;
    }
    X500Name baseName = (X500Name)base;
    X500Name testName = (X500Name)test;
    X500Name commonName = baseName.commonAncestor(testName);
    if (commonName == null) {
        if (debug != null) {
            debug.println("Builder.hops(): Names are in different " +
                "namespaces");
        }
        return incomparable;
    } else {
        int commonDistance = commonName.subtreeDepth();
        int baseDistance = baseName.subtreeDepth();
        int testDistance = testName.subtreeDepth();
        return (baseDistance + testDistance - (2 * commonDistance));
    }
}
 
Example 12
Source File: Builder.java    From openjdk-8 with GNU General Public License v2.0 4 votes vote down vote up
/**
 * get hop distance of one GeneralName from another in links where
 * the names need not have an ancestor/descendant relationship.
 * For example, the hop distance from ou=D,ou=C,o=B,c=US to
 * ou=F,ou=E,ou=C,o=B,c=US is 3: D->C, C->E, E->F.  The hop distance
 * from ou=C,o=B,c=US to ou=D,ou=C,o=B,c=US is -1: C->D
 *
 * @param base GeneralName
 * @param test GeneralName to be tested against base
 * @param incomparable the value to return if the names are
 *  incomparable
 * @return distance of test name from base measured in hops in the
 *         namespace hierarchy, where 0 means exact match.  Result
 *         is positive if path is some number of up hops followed by
 *         some number of down hops; result is negative if path is
 *         some number of down hops.
 */
static int hops(GeneralNameInterface base, GeneralNameInterface test,
                int incomparable)
{
    int baseRtest = base.constrains(test);
    switch (baseRtest) {
    case GeneralNameInterface.NAME_DIFF_TYPE:
        if (debug != null) {
            debug.println("Builder.hops(): Names are different types");
        }
        return incomparable;
    case GeneralNameInterface.NAME_SAME_TYPE:
        /* base and test are in different subtrees */
        break;
    case GeneralNameInterface.NAME_MATCH:
        /* base matches test */
        return 0;
    case GeneralNameInterface.NAME_WIDENS:
        /* base is ancestor of test */
        return (test.subtreeDepth()-base.subtreeDepth());
    case GeneralNameInterface.NAME_NARROWS:
        /* base is descendant of test */
        return (test.subtreeDepth()-base.subtreeDepth());
    default: // should never occur
        return incomparable;
    }

    /* names are in different subtrees */
    if (base.getType() != GeneralNameInterface.NAME_DIRECTORY) {
        if (debug != null) {
            debug.println("Builder.hops(): hopDistance not implemented " +
                "for this name type");
        }
        return incomparable;
    }
    X500Name baseName = (X500Name)base;
    X500Name testName = (X500Name)test;
    X500Name commonName = baseName.commonAncestor(testName);
    if (commonName == null) {
        if (debug != null) {
            debug.println("Builder.hops(): Names are in different " +
                "namespaces");
        }
        return incomparable;
    } else {
        int commonDistance = commonName.subtreeDepth();
        int baseDistance = baseName.subtreeDepth();
        int testDistance = testName.subtreeDepth();
        return (baseDistance + testDistance - (2 * commonDistance));
    }
}
 
Example 13
Source File: Builder.java    From hottub with GNU General Public License v2.0 4 votes vote down vote up
/**
 * get hop distance of one GeneralName from another in links where
 * the names need not have an ancestor/descendant relationship.
 * For example, the hop distance from ou=D,ou=C,o=B,c=US to
 * ou=F,ou=E,ou=C,o=B,c=US is 3: D->C, C->E, E->F.  The hop distance
 * from ou=C,o=B,c=US to ou=D,ou=C,o=B,c=US is -1: C->D
 *
 * @param base GeneralName
 * @param test GeneralName to be tested against base
 * @param incomparable the value to return if the names are
 *  incomparable
 * @return distance of test name from base measured in hops in the
 *         namespace hierarchy, where 0 means exact match.  Result
 *         is positive if path is some number of up hops followed by
 *         some number of down hops; result is negative if path is
 *         some number of down hops.
 */
static int hops(GeneralNameInterface base, GeneralNameInterface test,
                int incomparable)
{
    int baseRtest = base.constrains(test);
    switch (baseRtest) {
    case GeneralNameInterface.NAME_DIFF_TYPE:
        if (debug != null) {
            debug.println("Builder.hops(): Names are different types");
        }
        return incomparable;
    case GeneralNameInterface.NAME_SAME_TYPE:
        /* base and test are in different subtrees */
        break;
    case GeneralNameInterface.NAME_MATCH:
        /* base matches test */
        return 0;
    case GeneralNameInterface.NAME_WIDENS:
        /* base is ancestor of test */
        return (test.subtreeDepth()-base.subtreeDepth());
    case GeneralNameInterface.NAME_NARROWS:
        /* base is descendant of test */
        return (test.subtreeDepth()-base.subtreeDepth());
    default: // should never occur
        return incomparable;
    }

    /* names are in different subtrees */
    if (base.getType() != GeneralNameInterface.NAME_DIRECTORY) {
        if (debug != null) {
            debug.println("Builder.hops(): hopDistance not implemented " +
                "for this name type");
        }
        return incomparable;
    }
    X500Name baseName = (X500Name)base;
    X500Name testName = (X500Name)test;
    X500Name commonName = baseName.commonAncestor(testName);
    if (commonName == null) {
        if (debug != null) {
            debug.println("Builder.hops(): Names are in different " +
                "namespaces");
        }
        return incomparable;
    } else {
        int commonDistance = commonName.subtreeDepth();
        int baseDistance = baseName.subtreeDepth();
        int testDistance = testName.subtreeDepth();
        return (baseDistance + testDistance - (2 * commonDistance));
    }
}
 
Example 14
Source File: Builder.java    From j2objc with Apache License 2.0 4 votes vote down vote up
/**
 * get hop distance of one GeneralName from another in links where
 * the names need not have an ancestor/descendant relationship.
 * For example, the hop distance from ou=D,ou=C,o=B,c=US to
 * ou=F,ou=E,ou=C,o=B,c=US is 3: D->C, C->E, E->F.  The hop distance
 * from ou=C,o=B,c=US to ou=D,ou=C,o=B,c=US is -1: C->D
 *
 * @param base GeneralName
 * @param test GeneralName to be tested against base
 * @param incomparable the value to return if the names are
 *  incomparable
 * @return distance of test name from base measured in hops in the
 *         namespace hierarchy, where 0 means exact match.  Result
 *         is positive if path is some number of up hops followed by
 *         some number of down hops; result is negative if path is
 *         some number of down hops.
 */
static int hops(GeneralNameInterface base, GeneralNameInterface test,
                int incomparable)
{
    int baseRtest = base.constrains(test);
    switch (baseRtest) {
    case GeneralNameInterface.NAME_DIFF_TYPE:
        if (debug != null) {
            debug.println("Builder.hops(): Names are different types");
        }
        return incomparable;
    case GeneralNameInterface.NAME_SAME_TYPE:
        /* base and test are in different subtrees */
        break;
    case GeneralNameInterface.NAME_MATCH:
        /* base matches test */
        return 0;
    case GeneralNameInterface.NAME_WIDENS:
        /* base is ancestor of test */
        return (test.subtreeDepth()-base.subtreeDepth());
    case GeneralNameInterface.NAME_NARROWS:
        /* base is descendant of test */
        return (test.subtreeDepth()-base.subtreeDepth());
    default: // should never occur
        return incomparable;
    }

    /* names are in different subtrees */
    if (base.getType() != GeneralNameInterface.NAME_DIRECTORY) {
        if (debug != null) {
            debug.println("Builder.hops(): hopDistance not implemented " +
                "for this name type");
        }
        return incomparable;
    }
    X500Name baseName = (X500Name)base;
    X500Name testName = (X500Name)test;
    X500Name commonName = baseName.commonAncestor(testName);
    if (commonName == null) {
        if (debug != null) {
            debug.println("Builder.hops(): Names are in different " +
                "namespaces");
        }
        return incomparable;
    } else {
        int commonDistance = commonName.subtreeDepth();
        int baseDistance = baseName.subtreeDepth();
        int testDistance = testName.subtreeDepth();
        return (baseDistance + testDistance - (2 * commonDistance));
    }
}
 
Example 15
Source File: Builder.java    From openjdk-jdk9 with GNU General Public License v2.0 4 votes vote down vote up
/**
 * get hop distance of one GeneralName from another in links where
 * the names need not have an ancestor/descendant relationship.
 * For example, the hop distance from ou=D,ou=C,o=B,c=US to
 * ou=F,ou=E,ou=C,o=B,c=US is 3: D->C, C->E, E->F.  The hop distance
 * from ou=C,o=B,c=US to ou=D,ou=C,o=B,c=US is -1: C->D
 *
 * @param base GeneralName
 * @param test GeneralName to be tested against base
 * @param incomparable the value to return if the names are
 *  incomparable
 * @return distance of test name from base measured in hops in the
 *         namespace hierarchy, where 0 means exact match.  Result
 *         is positive if path is some number of up hops followed by
 *         some number of down hops; result is negative if path is
 *         some number of down hops.
 */
static int hops(GeneralNameInterface base, GeneralNameInterface test,
                int incomparable)
{
    int baseRtest = base.constrains(test);
    switch (baseRtest) {
    case GeneralNameInterface.NAME_DIFF_TYPE:
        if (debug != null) {
            debug.println("Builder.hops(): Names are different types");
        }
        return incomparable;
    case GeneralNameInterface.NAME_SAME_TYPE:
        /* base and test are in different subtrees */
        break;
    case GeneralNameInterface.NAME_MATCH:
        /* base matches test */
        return 0;
    case GeneralNameInterface.NAME_WIDENS:
        /* base is ancestor of test */
        return (test.subtreeDepth()-base.subtreeDepth());
    case GeneralNameInterface.NAME_NARROWS:
        /* base is descendant of test */
        return (test.subtreeDepth()-base.subtreeDepth());
    default: // should never occur
        return incomparable;
    }

    /* names are in different subtrees */
    if (base.getType() != GeneralNameInterface.NAME_DIRECTORY) {
        if (debug != null) {
            debug.println("Builder.hops(): hopDistance not implemented " +
                "for this name type");
        }
        return incomparable;
    }
    X500Name baseName = (X500Name)base;
    X500Name testName = (X500Name)test;
    X500Name commonName = baseName.commonAncestor(testName);
    if (commonName == null) {
        if (debug != null) {
            debug.println("Builder.hops(): Names are in different " +
                "namespaces");
        }
        return incomparable;
    } else {
        int commonDistance = commonName.subtreeDepth();
        int baseDistance = baseName.subtreeDepth();
        int testDistance = testName.subtreeDepth();
        return (baseDistance + testDistance - (2 * commonDistance));
    }
}
 
Example 16
Source File: Builder.java    From jdk8u-dev-jdk with GNU General Public License v2.0 4 votes vote down vote up
/**
 * get hop distance of one GeneralName from another in links where
 * the names need not have an ancestor/descendant relationship.
 * For example, the hop distance from ou=D,ou=C,o=B,c=US to
 * ou=F,ou=E,ou=C,o=B,c=US is 3: D->C, C->E, E->F.  The hop distance
 * from ou=C,o=B,c=US to ou=D,ou=C,o=B,c=US is -1: C->D
 *
 * @param base GeneralName
 * @param test GeneralName to be tested against base
 * @param incomparable the value to return if the names are
 *  incomparable
 * @return distance of test name from base measured in hops in the
 *         namespace hierarchy, where 0 means exact match.  Result
 *         is positive if path is some number of up hops followed by
 *         some number of down hops; result is negative if path is
 *         some number of down hops.
 */
static int hops(GeneralNameInterface base, GeneralNameInterface test,
                int incomparable)
{
    int baseRtest = base.constrains(test);
    switch (baseRtest) {
    case GeneralNameInterface.NAME_DIFF_TYPE:
        if (debug != null) {
            debug.println("Builder.hops(): Names are different types");
        }
        return incomparable;
    case GeneralNameInterface.NAME_SAME_TYPE:
        /* base and test are in different subtrees */
        break;
    case GeneralNameInterface.NAME_MATCH:
        /* base matches test */
        return 0;
    case GeneralNameInterface.NAME_WIDENS:
        /* base is ancestor of test */
        return (test.subtreeDepth()-base.subtreeDepth());
    case GeneralNameInterface.NAME_NARROWS:
        /* base is descendant of test */
        return (test.subtreeDepth()-base.subtreeDepth());
    default: // should never occur
        return incomparable;
    }

    /* names are in different subtrees */
    if (base.getType() != GeneralNameInterface.NAME_DIRECTORY) {
        if (debug != null) {
            debug.println("Builder.hops(): hopDistance not implemented " +
                "for this name type");
        }
        return incomparable;
    }
    X500Name baseName = (X500Name)base;
    X500Name testName = (X500Name)test;
    X500Name commonName = baseName.commonAncestor(testName);
    if (commonName == null) {
        if (debug != null) {
            debug.println("Builder.hops(): Names are in different " +
                "namespaces");
        }
        return incomparable;
    } else {
        int commonDistance = commonName.subtreeDepth();
        int baseDistance = baseName.subtreeDepth();
        int testDistance = testName.subtreeDepth();
        return (baseDistance + testDistance - (2 * commonDistance));
    }
}
 
Example 17
Source File: Builder.java    From openjdk-jdk8u with GNU General Public License v2.0 4 votes vote down vote up
/**
 * get hop distance of one GeneralName from another in links where
 * the names need not have an ancestor/descendant relationship.
 * For example, the hop distance from ou=D,ou=C,o=B,c=US to
 * ou=F,ou=E,ou=C,o=B,c=US is 3: D->C, C->E, E->F.  The hop distance
 * from ou=C,o=B,c=US to ou=D,ou=C,o=B,c=US is -1: C->D
 *
 * @param base GeneralName
 * @param test GeneralName to be tested against base
 * @param incomparable the value to return if the names are
 *  incomparable
 * @return distance of test name from base measured in hops in the
 *         namespace hierarchy, where 0 means exact match.  Result
 *         is positive if path is some number of up hops followed by
 *         some number of down hops; result is negative if path is
 *         some number of down hops.
 */
static int hops(GeneralNameInterface base, GeneralNameInterface test,
                int incomparable)
{
    int baseRtest = base.constrains(test);
    switch (baseRtest) {
    case GeneralNameInterface.NAME_DIFF_TYPE:
        if (debug != null) {
            debug.println("Builder.hops(): Names are different types");
        }
        return incomparable;
    case GeneralNameInterface.NAME_SAME_TYPE:
        /* base and test are in different subtrees */
        break;
    case GeneralNameInterface.NAME_MATCH:
        /* base matches test */
        return 0;
    case GeneralNameInterface.NAME_WIDENS:
        /* base is ancestor of test */
        return (test.subtreeDepth()-base.subtreeDepth());
    case GeneralNameInterface.NAME_NARROWS:
        /* base is descendant of test */
        return (test.subtreeDepth()-base.subtreeDepth());
    default: // should never occur
        return incomparable;
    }

    /* names are in different subtrees */
    if (base.getType() != GeneralNameInterface.NAME_DIRECTORY) {
        if (debug != null) {
            debug.println("Builder.hops(): hopDistance not implemented " +
                "for this name type");
        }
        return incomparable;
    }
    X500Name baseName = (X500Name)base;
    X500Name testName = (X500Name)test;
    X500Name commonName = baseName.commonAncestor(testName);
    if (commonName == null) {
        if (debug != null) {
            debug.println("Builder.hops(): Names are in different " +
                "namespaces");
        }
        return incomparable;
    } else {
        int commonDistance = commonName.subtreeDepth();
        int baseDistance = baseName.subtreeDepth();
        int testDistance = testName.subtreeDepth();
        return (baseDistance + testDistance - (2 * commonDistance));
    }
}
 
Example 18
Source File: Builder.java    From jdk8u60 with GNU General Public License v2.0 4 votes vote down vote up
/**
 * get hop distance of one GeneralName from another in links where
 * the names need not have an ancestor/descendant relationship.
 * For example, the hop distance from ou=D,ou=C,o=B,c=US to
 * ou=F,ou=E,ou=C,o=B,c=US is 3: D->C, C->E, E->F.  The hop distance
 * from ou=C,o=B,c=US to ou=D,ou=C,o=B,c=US is -1: C->D
 *
 * @param base GeneralName
 * @param test GeneralName to be tested against base
 * @param incomparable the value to return if the names are
 *  incomparable
 * @return distance of test name from base measured in hops in the
 *         namespace hierarchy, where 0 means exact match.  Result
 *         is positive if path is some number of up hops followed by
 *         some number of down hops; result is negative if path is
 *         some number of down hops.
 */
static int hops(GeneralNameInterface base, GeneralNameInterface test,
                int incomparable)
{
    int baseRtest = base.constrains(test);
    switch (baseRtest) {
    case GeneralNameInterface.NAME_DIFF_TYPE:
        if (debug != null) {
            debug.println("Builder.hops(): Names are different types");
        }
        return incomparable;
    case GeneralNameInterface.NAME_SAME_TYPE:
        /* base and test are in different subtrees */
        break;
    case GeneralNameInterface.NAME_MATCH:
        /* base matches test */
        return 0;
    case GeneralNameInterface.NAME_WIDENS:
        /* base is ancestor of test */
        return (test.subtreeDepth()-base.subtreeDepth());
    case GeneralNameInterface.NAME_NARROWS:
        /* base is descendant of test */
        return (test.subtreeDepth()-base.subtreeDepth());
    default: // should never occur
        return incomparable;
    }

    /* names are in different subtrees */
    if (base.getType() != GeneralNameInterface.NAME_DIRECTORY) {
        if (debug != null) {
            debug.println("Builder.hops(): hopDistance not implemented " +
                "for this name type");
        }
        return incomparable;
    }
    X500Name baseName = (X500Name)base;
    X500Name testName = (X500Name)test;
    X500Name commonName = baseName.commonAncestor(testName);
    if (commonName == null) {
        if (debug != null) {
            debug.println("Builder.hops(): Names are in different " +
                "namespaces");
        }
        return incomparable;
    } else {
        int commonDistance = commonName.subtreeDepth();
        int baseDistance = baseName.subtreeDepth();
        int testDistance = testName.subtreeDepth();
        return (baseDistance + testDistance - (2 * commonDistance));
    }
}
 
Example 19
Source File: Builder.java    From TencentKona-8 with GNU General Public License v2.0 4 votes vote down vote up
/**
 * get hop distance of one GeneralName from another in links where
 * the names need not have an ancestor/descendant relationship.
 * For example, the hop distance from ou=D,ou=C,o=B,c=US to
 * ou=F,ou=E,ou=C,o=B,c=US is 3: D->C, C->E, E->F.  The hop distance
 * from ou=C,o=B,c=US to ou=D,ou=C,o=B,c=US is -1: C->D
 *
 * @param base GeneralName
 * @param test GeneralName to be tested against base
 * @param incomparable the value to return if the names are
 *  incomparable
 * @return distance of test name from base measured in hops in the
 *         namespace hierarchy, where 0 means exact match.  Result
 *         is positive if path is some number of up hops followed by
 *         some number of down hops; result is negative if path is
 *         some number of down hops.
 */
static int hops(GeneralNameInterface base, GeneralNameInterface test,
                int incomparable)
{
    int baseRtest = base.constrains(test);
    switch (baseRtest) {
    case GeneralNameInterface.NAME_DIFF_TYPE:
        if (debug != null) {
            debug.println("Builder.hops(): Names are different types");
        }
        return incomparable;
    case GeneralNameInterface.NAME_SAME_TYPE:
        /* base and test are in different subtrees */
        break;
    case GeneralNameInterface.NAME_MATCH:
        /* base matches test */
        return 0;
    case GeneralNameInterface.NAME_WIDENS:
        /* base is ancestor of test */
        return (test.subtreeDepth()-base.subtreeDepth());
    case GeneralNameInterface.NAME_NARROWS:
        /* base is descendant of test */
        return (test.subtreeDepth()-base.subtreeDepth());
    default: // should never occur
        return incomparable;
    }

    /* names are in different subtrees */
    if (base.getType() != GeneralNameInterface.NAME_DIRECTORY) {
        if (debug != null) {
            debug.println("Builder.hops(): hopDistance not implemented " +
                "for this name type");
        }
        return incomparable;
    }
    X500Name baseName = (X500Name)base;
    X500Name testName = (X500Name)test;
    X500Name commonName = baseName.commonAncestor(testName);
    if (commonName == null) {
        if (debug != null) {
            debug.println("Builder.hops(): Names are in different " +
                "namespaces");
        }
        return incomparable;
    } else {
        int commonDistance = commonName.subtreeDepth();
        int baseDistance = baseName.subtreeDepth();
        int testDistance = testName.subtreeDepth();
        return (baseDistance + testDistance - (2 * commonDistance));
    }
}
 
Example 20
Source File: Builder.java    From jdk8u-jdk with GNU General Public License v2.0 4 votes vote down vote up
/**
 * get hop distance of one GeneralName from another in links where
 * the names need not have an ancestor/descendant relationship.
 * For example, the hop distance from ou=D,ou=C,o=B,c=US to
 * ou=F,ou=E,ou=C,o=B,c=US is 3: D->C, C->E, E->F.  The hop distance
 * from ou=C,o=B,c=US to ou=D,ou=C,o=B,c=US is -1: C->D
 *
 * @param base GeneralName
 * @param test GeneralName to be tested against base
 * @param incomparable the value to return if the names are
 *  incomparable
 * @return distance of test name from base measured in hops in the
 *         namespace hierarchy, where 0 means exact match.  Result
 *         is positive if path is some number of up hops followed by
 *         some number of down hops; result is negative if path is
 *         some number of down hops.
 */
static int hops(GeneralNameInterface base, GeneralNameInterface test,
                int incomparable)
{
    int baseRtest = base.constrains(test);
    switch (baseRtest) {
    case GeneralNameInterface.NAME_DIFF_TYPE:
        if (debug != null) {
            debug.println("Builder.hops(): Names are different types");
        }
        return incomparable;
    case GeneralNameInterface.NAME_SAME_TYPE:
        /* base and test are in different subtrees */
        break;
    case GeneralNameInterface.NAME_MATCH:
        /* base matches test */
        return 0;
    case GeneralNameInterface.NAME_WIDENS:
        /* base is ancestor of test */
        return (test.subtreeDepth()-base.subtreeDepth());
    case GeneralNameInterface.NAME_NARROWS:
        /* base is descendant of test */
        return (test.subtreeDepth()-base.subtreeDepth());
    default: // should never occur
        return incomparable;
    }

    /* names are in different subtrees */
    if (base.getType() != GeneralNameInterface.NAME_DIRECTORY) {
        if (debug != null) {
            debug.println("Builder.hops(): hopDistance not implemented " +
                "for this name type");
        }
        return incomparable;
    }
    X500Name baseName = (X500Name)base;
    X500Name testName = (X500Name)test;
    X500Name commonName = baseName.commonAncestor(testName);
    if (commonName == null) {
        if (debug != null) {
            debug.println("Builder.hops(): Names are in different " +
                "namespaces");
        }
        return incomparable;
    } else {
        int commonDistance = commonName.subtreeDepth();
        int baseDistance = baseName.subtreeDepth();
        int testDistance = testName.subtreeDepth();
        return (baseDistance + testDistance - (2 * commonDistance));
    }
}