1561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes/*
2561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  Licensed to the Apache Software Foundation (ASF) under one or more
3561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  contributor license agreements.  See the NOTICE file distributed with
4561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  this work for additional information regarding copyright ownership.
5561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  The ASF licenses this file to You under the Apache License, Version 2.0
6561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  (the "License"); you may not use this file except in compliance with
7561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  the License.  You may obtain a copy of the License at
8561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *
9561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *     http://www.apache.org/licenses/LICENSE-2.0
10561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *
11561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  Unless required by applicable law or agreed to in writing, software
12561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  distributed under the License is distributed on an "AS IS" BASIS,
13561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  See the License for the specific language governing permissions and
15561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  limitations under the License.
16561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */
17561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
18561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespackage org.apache.harmony.auth.tests.jgss.kerberos;
19561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
20561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.Arrays;
21561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
22561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport org.apache.harmony.auth.jgss.kerberos.KerberosName;
23561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport org.ietf.jgss.GSSName;
24561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport org.ietf.jgss.Oid;
25561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
26561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport junit.framework.TestCase;
27561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
28561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespublic class KerberosNameTest extends TestCase {
29561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
30561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
31561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void testExport() throws Exception {
32561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		KerberosName kerberosName = new KerberosName("service@localhost", GSSName.NT_HOSTBASED_SERVICE);
33561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		byte[] exported = kerberosName.export();
34561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		byte[] expected = new byte[] { 4,1,0,11,6,9,42,-122,72,-122,-9,18,1,2,2,0,0,0,17,115,101,114,118,105,99,101,47,108,111,99,97,108,104,111,115,116 };
35561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue(Arrays.equals(expected, exported));
36561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
37561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
38561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void testEquals() throws Exception{
39561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		KerberosName one = new KerberosName("service@localhost", GSSName.NT_HOSTBASED_SERVICE);
40561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		KerberosName another = new KerberosName("service@localhost", GSSName.NT_HOSTBASED_SERVICE);
41561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(one, another);
42561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
43561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		one = new KerberosName("service@localhost", GSSName.NT_HOSTBASED_SERVICE);
44561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		another = new KerberosName("service/localhost", GSSName.NT_HOSTBASED_SERVICE);
45561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(one, another);
46561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
47561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		one = new KerberosName("service@localhost", GSSName.NT_USER_NAME);
48561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		another = new KerberosName("service@localhost", GSSName.NT_USER_NAME);
49561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(one, another);
50561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
51561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		one = new KerberosName("service@localhost", GSSName.NT_USER_NAME);
52561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		another = new KerberosName("service/localhost", GSSName.NT_USER_NAME);
53561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertFalse(one.equals(another));
54561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
55561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		final Oid KRB5_PRINCIPAL_NAMETYPE = new Oid("1.2.840.113554.1.2.2.1");
56561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		one = new KerberosName("service@localhost", KRB5_PRINCIPAL_NAMETYPE);
57561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		another = new KerberosName("service@localhost", KRB5_PRINCIPAL_NAMETYPE);
58561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(one, another);
59561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
60561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		one = new KerberosName("service@localhost", KRB5_PRINCIPAL_NAMETYPE);
61561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		another = new KerberosName("service/localhost",KRB5_PRINCIPAL_NAMETYPE);
62561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertFalse(one.equals(another));
63561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
64561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		one = new KerberosName("service@localhost", KRB5_PRINCIPAL_NAMETYPE);
65561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		another = new KerberosName("service@localhost", GSSName.NT_USER_NAME);
66561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(one,another);
67561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
68561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		one = new KerberosName("service@localhost", KRB5_PRINCIPAL_NAMETYPE);
69561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		another = new KerberosName("service@localhost", GSSName.NT_HOSTBASED_SERVICE);
70561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertFalse(one.equals(another));
71561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
72561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		one = new KerberosName("service/localhost", KRB5_PRINCIPAL_NAMETYPE);
73561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		another = new KerberosName("service@localhost", GSSName.NT_HOSTBASED_SERVICE);
74561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(one,another);
75561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
76561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		one = new KerberosName("service@localhost", GSSName.NT_USER_NAME);
77561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		another = new KerberosName("service@localhost", GSSName.NT_HOSTBASED_SERVICE);
78561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertFalse(one.equals(another));
79561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
80561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		one = new KerberosName("service/localhost", GSSName.NT_USER_NAME);
81561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		another = new KerberosName("service@localhost", GSSName.NT_HOSTBASED_SERVICE);
82561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertFalse(one.equals(another));
83561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
84561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes}
85