index
:
eclipse.platform.swt.git
392774
394422
GdkRegionDrop
_gtk_widget_has_default
add_css
bug_408505
button_init_style
cairo_region_64
cairo_region_create_64
cairo_sash
cairo_tracker_widget
canvas_cairo
canvas_cairo_64
cleanup_210
cleanup_FrontDialog_210
cleanup_button_210
cleanup_colordialog_210
cleanup_control_210
cleanup_directorydialog_210
cleanup_display_210
cleanup_expandbar_210
cleanup_fileDialog_210
cleanup_menu_210
cleanup_shell_210
cleanup_slider_210
color_warnings_remove
combo_cleanup_210
coolbar_clipping
datetime_on_spinbutton
datetime_on_spinner_v2
datetime_spin
g_object_ref_sink
g_seal
gdk_cursor_unref
gdk_cursor_unref_64
gdk_draw_pixbuff
gdk_drawable_get_size
gdk_gc_set_fill
gdk_gc_set_stipple
gdk_gc_set_values
gdk_get_size
gdk_get_size_func
gdk_pixbuf_render
gdk_region
gsignal
gsignal_
gtk3_box_new
gtk3_cairo_region_create
gtk3_cell_renderer
gtk3_colormap_64
gtk3_device_at_pointer
gtk3_device_at_pointer_64
gtk3_drawable_get_image
gtk3_font_chooser_new
gtk3_font_selection_dialog_get_font_name
gtk3_fontchooser
gtk3_paint_arrow
gtk3_paint_shadow
gtk3_pixbuf_dynamic
gtk3_pixbuf_ftom_drawable
gtk3_pointer_grab
gtk3_progressbar_orientation_64
gtk3_redner_option
gtk3_redner_option_64
gtk3_region_64
gtk3_region_destroy
gtk3_region_empty
gtk3_region_intersect
gtk3_region_offset
gtk3_region_substract
gtk3_region_union
gtk3_render_box
gtk3_render_box_64
gtk3_render_check
gtk3_render_exapnder
gtk3_render_extension_64
gtk3_render_flat_box
gtk3_render_flat_box_64
gtk3_render_focus_64
gtk3_render_frame_gap
gtk3_render_frame_gap_64
gtk3_render_handle
gtk3_render_handle_64
gtk3_render_layout
gtk3_render_layout_64
gtk3_render_line
gtk3_render_line_64
gtk3_scale_new
gtk3_scrollbar_new
gtk3_separator_new
gtk3_set_font
gtk3_textbox_clipped
gtk3_ungrab_pointer
gtk3_widget_size_request
gtk3_window_get_device_position
gtk3_window_get_device_position_64
gtk3_window_get_visible_region
gtk_accel_string
gtk_color_chooser
gtk_gc_clip_region
gtk_has_stepper
gtk_im_context_filter_keypress
gtk_object_sink
gtk_slider
gtk_tooltip
gtk_tooltips
gtk_tooltips_
gtk_tooltips_get_window
gtk_utf8_compound
gtk_widget_flags
gtk_widget_flags_
gtk_widget_get_allocation__
gtk_widget_get_mapped
gtk_widget_get_sensitive
gtk_widget_get_state
gtk_widget_get_visible
gtk_widget_get_window_
gtk_widget_has_focus
gtk_widget_has_focus_
gtk_widget_sensitive
gtk_widget_set_flags
gtk_widget_set_has_window
gtk_widget_set_xy
gtk_widget_set_xy_
gtk_widget_unset_flags
label_cleanup_210
make_dynamic
make_dynamic_flags
master
messagebox_cleanup_210
# Unix SMB/CIFS implementation.
# Copyright (C) Jelmer Vernooij <jelmer@samba.org> 2009
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
"""Tests for GENSEC.
Note that this just tests the bindings work. It does not intend to test
the functionality, that's already done in other tests.
"""
from
samba
.
credentials
import
Credentials
from
samba
import
gensec
,
auth
import
samba
.
tests
class
GensecTests
(
samba
.
tests
.
TestCase
):
def
setUp
(
self
):
super
(
GensecTests
,
self
).
setUp
()
self
.
settings
= {}
self
.
settings
[
"lp_ctx"
] =
self
.
lp_ctx
=
samba
.
tests
.
env_loadparm
()
self
.
settings
[
"target_hostname"
] =
self
.
lp_ctx
.
get
(
"netbios name"
)
"""This is just for the API tests"""
self
.
gensec
=
gensec
.
Security
.
start_client
(
self
.
settings
)
def
test_start_mech_by_unknown_name
(
self
):
self
.
assertRaises
(
RuntimeError
,
self
.
gensec
.
start_mech_by_name
,
"foo"
)
def
test_start_mech_by_name
(
self
):
self
.
gensec
.
start_mech_by_name
(
"spnego"
)
def
test_info_uninitialized
(
self
):
self
.
assertRaises
(
RuntimeError
,
self
.
gensec
.
session_info
)
def
test_update
(
self
):
"""Test GENSEC by doing an exchange with ourselves using GSSAPI against a KDC"""
"""Start up a client and server GENSEC instance to test things with"""
self
.
gensec_client
=
gensec
.
Security
.
start_client
(
self
.
settings
)
self
.
gensec_client
.
set_credentials
(
self
.
get_credentials
())
self
.
gensec_client
.
want_feature
(
gensec
.
FEATURE_SEAL
)
self
.
gensec_client
.
start_mech_by_sasl_name
(
"GSSAPI"
)
self
.
gensec_server
=
gensec
.
Security
.
start_server
(
settings
=
self
.
settings
,
auth_context
=
auth
.
AuthContext
(
lp_ctx
=
self
.
lp_ctx
))
creds
=
Credentials
()
creds
.
guess
(
self
.
lp_ctx
)
creds
.
set_machine_account
(
self
.
lp_ctx
)
self
.
gensec_server
.
set_credentials
(
creds
)
self
.
gensec_server
.
want_feature
(
gensec
.
FEATURE_SEAL
)
self
.
gensec_server
.
start_mech_by_sasl_name
(
"GSSAPI"
)
client_finished
=
False
server_finished
=
False
server_to_client
=
""
"""Run the actual call loop"""
while
client_finished
==
False and
server_finished
==
False
:
if not
client_finished
:
print
"running client gensec_update"
(
client_finished
,
client_to_server
) =
self
.
gensec_client
.
update
(
server_to_client
)
if not
server_finished
:
print
"running server gensec_update"
(
server_finished
,
server_to_client
) =
self
.
gensec_server
.
update
(
client_to_server
)
session_info
=
self
.
gensec_server
.
session_info
()
test_string
=
"Hello Server"
test_wrapped
=
self
.
gensec_client
.
wrap
(
test_string
)
test_unwrapped
=
self
.
gensec_server
.
unwrap
(
test_wrapped
)
self
.
assertEqual
(
test_string
,
test_unwrapped
)
test_string
=
"Hello Client"
test_wrapped
=
self
.
gensec_server
.
wrap
(
test_string
)
test_unwrapped
=
self
.
gensec_client
.
unwrap
(
test_wrapped
)
self
.
assertEqual
(
test_string
,
test_unwrapped
)
client_session_key
=
self
.
gensec_client
.
session_key
()
server_session_key
=
self
.
gensec_server
.
session_key
()
self
.
assertEqual
(
client_session_key
,
server_session_key
)
def
test_max_update_size
(
self
):
"""Test GENSEC by doing an exchange with ourselves using GSSAPI against a KDC"""
"""Start up a client and server GENSEC instance to test things with"""
self
.
gensec_client
=
gensec
.
Security
.
start_client
(
self
.
settings
)
self
.
gensec_client
.
set_credentials
(
self
.
get_credentials
())
self
.
gensec_client
.
want_feature
(
gensec
.
FEATURE_SIGN
)
self
.
gensec_client
.
set_max_update_size
(
5
)
self
.
gensec_client
.
start_mech_by_name
(
"spnego"
)
self
.
gensec_server
=
gensec
.
Security
.
start_server
(
settings
=
self
.
settings
,
auth_context
=
auth
.
AuthContext
(
lp_ctx
=
self
.
lp_ctx
))
creds
=
Credentials
()
creds
.
guess
(
self
.
lp_ctx
)
creds
.
set_machine_account
(
self
.
lp_ctx
)
self
.
gensec_server
.
set_credentials
(
creds
)
self
.
gensec_server
.
want_feature
(
gensec
.
FEATURE_SIGN
)
self
.
gensec_server
.
set_max_update_size
(
5
)
self
.
gensec_server
.
start_mech_by_name
(
"spnego"
)
client_finished
=
False
server_finished
=
False
server_to_client
=
""
"""Run the actual call loop"""
i
=
0
while
client_finished
==
False or
server_finished
==
False
:
i
+=
1
if not
client_finished
:
print
"running client gensec_update:
%d
:
%r
"
% (
len
(
server_to_client
),
server_to_client
)
(
client_finished
,
client_to_server
) =
self
.
gensec_client
.
update
(
server_to_client
)
if not
server_finished
:
print
"running server gensec_update:
%d
:
%r
"
% (
len
(
client_to_server
),
client_to_server
)
(
server_finished
,
server_to_client
) =
self
.
gensec_server
.
update
(
client_to_server
)
"""Here we expect a lot more than the typical 1 or 2 roundtrips"""
self
.
assertTrue
(
i
>
10
)
session_info
=
self
.
gensec_server
.
session_info
()
test_string
=
"Hello Server"
test_wrapped
=
self
.
gensec_client
.
wrap
(
test_string
)
test_unwrapped
=
self
.
gensec_server
.
unwrap
(
test_wrapped
)
self
.
assertEqual
(
test_string
,
test_unwrapped
)
test_string
=
"Hello Client"
test_wrapped
=
self
.
gensec_server
.
wrap
(
test_string
)
test_unwrapped
=
self
.
gensec_client
.
unwrap
(
test_wrapped
)
self
.
assertEqual
(
test_string
,
test_unwrapped
)
client_session_key
=
self
.
gensec_client
.
session_key
()
server_session_key
=
self
.
gensec_server
.
session_key
()
self
.
assertEqual
(
client_session_key
,
server_session_key
)