4648N/A * or visit www.oracle.com if you need additional information or have any
4648N/A * See http://www.opensource.apple.com/darwinsource/10.3.3/Kerberos-47/KerberosClients/klist/Sources/klist.c
4648N/Astatic jobject BuildClientPrincipal(JNIEnv *env, krb5_context kcontext, krb5_principal principalName);
4648N/A return returnValue;
4648N/A if (derValueConstructor == 0) {
4648N/A ticketConstructor = (*env)->GetMethodID(env, ticketClass, "<init>", "(Lsun/security/util/DerValue;)V");
4648N/A if (derValueConstructor == 0) {
4648N/A principalNameConstructor = (*env)->GetMethodID(env, principalNameClass, "<init>", "(Ljava/lang/String;I)V");
4648N/A if (principalNameConstructor == 0) {
4648N/A encryptionKeyConstructor = (*env)->GetMethodID(env, encryptionKeyClass, "<init>", "(I[B)V");
4648N/A if (encryptionKeyConstructor == 0) {
4648N/A if (ticketFlagsConstructor == 0) {
4648N/A if (kerberosTimeConstructor == 0) {
4648N/A if (integerConstructor == 0) {
4648N/A if (hostAddressConstructor == 0) {
4648N/A hostAddressesConstructor = (*env)->GetMethodID(env, hostAddressesClass, "<init>", "([Lsun/security/krb5/internal/HostAddress;)V");
4648N/A if (hostAddressesConstructor == 0) {
4648N/A return JNI_VERSION_1_2;
4648N/A if (krbcredsConstructor == 0) {
4648N/A "(Lsun/security/krb5/internal/Ticket;Lsun/security/krb5/PrincipalName;Lsun/security/krb5/PrincipalName;Lsun/security/krb5/EncryptionKey;Lsun/security/krb5/internal/TicketFlags;Lsun/security/krb5/internal/KerberosTime;Lsun/security/krb5/internal/KerberosTime;Lsun/security/krb5/internal/KerberosTime;Lsun/security/krb5/internal/KerberosTime;Lsun/security/krb5/internal/HostAddresses;)V");
4648N/A if (krbcredsConstructor == 0) {
4648N/A (*env)->SetByteArrayRegion(env, ary, (jsize) 0, encodedTicket->length, (jbyte *)encodedTicket->data);
4648N/Ajobject BuildClientPrincipal(JNIEnv *env, krb5_context kcontext, krb5_principal principalName) {
4648N/A // Make a PrincipalName from the full string and the type. Let the PrincipalName class parse it out.
4648N/A principal = (*env)->NewObject(env, principalNameClass, principalNameConstructor, principalStringObj, principalName->type);
4648N/A (*env)->SetByteArrayRegion(env, ary, (jsize) 0, cryptoKey->length, (jbyte *)cryptoKey->contents);
4648N/A encryptionKey = (*env)->NewObject(env, encryptionKeyClass, encryptionKeyConstructor, cryptoKey->enctype, ary);
4648N/A return encryptionKey;
4648N/A ticketFlags = (*env)->NewObject(env, ticketFlagsClass, ticketFlagsConstructor, sizeof(flags)*8, ary);
4648N/A return ticketFlags;
4648N/A // Kerberos time is in seconds, but the KerberosTime class assumes milliseconds, so multiply by 1000.
4648N/A (*env)->SetByteArrayRegion(env, ary, (jsize) 0, currAddress->length, (jbyte *)currAddress->contents);
4648N/A jobject address = (*env)->NewObject(env, hostAddressClass, hostAddressConstructor, currAddress->length, ary);
4648N/A return address_list;