package org.apache.kerberos.kerb.codec.kerberos;
import org.apache.kerberos.kerb.keytab.Keytab;
import org.apache.kerberos.kerb.keytab.KeytabEntry;
import org.apache.kerberos.kerb.spec.common.EncryptionKey;
import org.apache.kerberos.kerb.spec.common.EncryptionType;
import org.apache.kerberos.kerb.spec.common.PrincipalName;
import java.io.IOException;
import java.io.InputStream;
public class KerberosCredentials {
private static Keytab keytab;
private static void init() throws IOException {
InputStream kis = KerberosCredentials.class.getResourceAsStream("/server.keytab");
keytab = new Keytab();
keytab.load(kis);
}
public static EncryptionKey getServerKey(EncryptionType etype) throws IOException {
if (keytab == null) {
init();
}
for (PrincipalName principal : keytab.getPrincipals()) {
for (KeytabEntry entry : keytab.getKeytabEntries(principal)) {
if (entry.getKey().getKeyType() == etype) {
return entry.getKey();
}
}
}
return null;
}
}