- myDump("libkrb5 return value: " + libkrb5);
- myDump("libgss_utils return value: " + libgss_utils);
-
- myDump("ctypes.open");
-
- /**************************************************************
- ** Function definitions
- **************************************************************/
- const gss_str_to_oid = libkrb5.declare("gss_str_to_oid",
- ctypes.default_abi,
- ctypes.uint32_t, /* Return value */
- ctypes.uint32_t.ptr, /* arg: minor_status */
- gss_buffer_t, /* arg: oid_str */
- gss_OID.ptr); /* arg: oid */
- myDump("gss_str_to_oid function is " + gss_str_to_oid);
-
- const gss_display_name = libkrb5.declare("gss_display_name",
- ctypes.default_abi,
- ctypes.uint32_t, /* Return value */
- ctypes.uint32_t.ptr, /* arg: minor_status */
- gss_name_t.ptr, /* arg: input_name */
- gss_buffer_t, /* arg: output_name_buffer */
- gss_OID.ptr); /* arg: ouptut_name_type */
- myDump("gss_str_to_oid function is " + gss_str_to_oid);
-
- const gss_import_name = libkrb5.declare("gss_import_name",
- ctypes.default_abi,
- ctypes.uint32_t, /* Return value */
- ctypes.uint32_t.ptr, /* arg: minor status */
- gss_buffer_t, /* arg: input_name_buffer */
- gss_OID, /* arg: input_name_type */
- ctypes.PointerType(gss_name_t).ptr ); /* arg: output_name */
- myDump("gss_import_name is function is " + gss_import_name);
-
- const gss_init_sec_context = libkrb5.declare("gss_init_sec_context",
- ctypes.default_abi,
- ctypes.uint32_t, /* Return value */
- ctypes.uint32_t.ptr, /* arg: minor status */
- gss_cred_id_t, /* arg: claimant_cred_handle */
- gss_ctx_id_t.ptr, /* arg: context_handle */
- gss_name_t.ptr, /* arg: target_name */
- gss_OID, /* arg: mech_type */
- ctypes.uint32_t, /* arg: req_flags */
- ctypes.uint32_t, /* arg: time_req */
- gss_channel_bindings_t, /* arg: channel_bindings, reserved for future use */
- gss_buffer_t, /* arg: input_token */
- gss_OID.ptr, /* arg: actual_mech_type */
- gss_buffer_t, /* arg: output_token */
- ctypes.uint32_t.ptr, /* arg: ret_flags */
- ctypes.uint32_t.ptr /* arg: time_rec */
- );
- myDump("gss_init_sec_context function is " + gss_init_sec_context);
-
- const gss_construct_sec_context = libgss_utils.declare(
- "gss_construct_sec_context",
- ctypes.default_abi,
- ctypes.uint32_t, /* Return value - boolean */
- gss_status_t, /* arg: Status struct pointer */
- gss_cred_id_t, /* arg: claimant_cred_handle - reserved for future */
- gss_ctx_id_t.ptr, /* arg: context_handle, the output of the function */
- gss_name_t.ptr, /* arg: target_name - the other endpoint */
- gss_OID, /* arg: mech_type - the desired mechanism type */
- ctypes.uint32_t, /* arg: req_flags */
- ctypes.uint32_t, /* arg: time_req */
- gss_channel_bindings_t /* arg: input_chan_bindings - reserved for future use */
- );
-
-
-
- var majStatus, minStatus, output_name_ptr;
- minStatus = new ctypes.uint32_t(0);
-
- output_name_ptr = import_name('http@www.project-moonshot.org/PROJECT-MOONSHOT.ORG');
-
- var cred_handle = gss_cred_id_struct.ptr(ctypes.UInt64("0x0"));
- var context_handle = gss_ctx_id_struct.ptr(ctypes.UInt64("0x0"));
- var GSS_C_NO_OID = gss_OID_struct().address();
- var null_mechanism = gss_OID_struct.ptr(ctypes.UInt64("0x0"));
- var channel_bindings = new gss_channel_bindings_struct();
- var input_token = new gss_buffer_t_struct();
- var actual_mech_type = gss_OID();
- var output_token = new gss_buffer_t_struct();
- var ret_flags = new ctypes.uint32_t(0);
- var time_rec = new ctypes.uint32_t(0);
- var status = new gss_status_struct();
-
- var success = gss_construct_sec_context(
- status.address(),
- cred_handle,
- context_handle.address(),
- output_name_ptr,
- null_mechanism,
- ctypes.uint32_t(0), /* req_flags */
- ctypes.uint32_t(0), /* time_req */
- channel_bindings.address()
- );
-
- myDump("gss_construct_sec_context call: " + success +
- " [0x" + status.major.toString(16) + "/" + status.minor + "]");
-/*
- do
- {
-
- majStatus = gss_init_sec_context(
- minStatus.address(),
- cred_handle,
- context_handle.address(),
- output_name_ptr,
- GSS_C_NO_OID, /* Default OID * /
- ctypes.uint32_t(0), /* req_flags * /
- ctypes.uint32_t(0), /* time_req * /
- channel_bindings.address(),
- input_token.address(),
- actual_mech_type.address(),
- output_token.address(),
- ret_flags.address(),
- time_rec.address()
- );
- myDump("Finished the init_sec_context: " + majStatus + "/" + minStatus);
- myDump(": " + output_name_ptr);