<!-- ##### SECTION Title ##### -->
gck-session

<!-- ##### SECTION Short_Description ##### -->


<!-- ##### SECTION Long_Description ##### -->
<para>

</para>


<!-- ##### SECTION See_Also ##### -->
<para>

</para>


<!-- ##### SECTION Stability_Level ##### -->


<!-- ##### SECTION Image ##### -->


<!-- ##### STRUCT GckSession ##### -->
<para>

</para>


<!-- ##### SIGNAL GckSession::discard-handle ##### -->
<para>

</para>

@gcksession: the object which received the signal.
@arg1: 
@Returns: 

<!-- ##### ARG GckSession:app-data ##### -->
<para>

</para>

<!-- ##### ARG GckSession:handle ##### -->
<para>

</para>

<!-- ##### ARG GckSession:interaction ##### -->
<para>

</para>

<!-- ##### ARG GckSession:module ##### -->
<para>

</para>

<!-- ##### ARG GckSession:opening-flags ##### -->
<para>

</para>

<!-- ##### ARG GckSession:options ##### -->
<para>

</para>

<!-- ##### ARG GckSession:slot ##### -->
<para>

</para>

<!-- ##### FUNCTION gck_session_from_handle ##### -->
<para>

</para>

@slot: 
@session_handle: 
@options: 
@Returns: 


<!-- ##### FUNCTION gck_session_open ##### -->
<para>

</para>

@slot: 
@options: 
@interaction: 
@cancellable: 
@error: 
@Returns: 


<!-- ##### FUNCTION gck_session_open_async ##### -->
<para>

</para>

@slot: 
@options: 
@interaction: 
@cancellable: 
@callback: 
@user_data: 


<!-- ##### FUNCTION gck_session_open_finish ##### -->
<para>

</para>

@result: 
@error: 
@Returns: 


<!-- ##### FUNCTION gck_session_get_module ##### -->
<para>

</para>

@self: 
@Returns: 


<!-- ##### FUNCTION gck_session_get_slot ##### -->
<para>

</para>

@self: 
@Returns: 


<!-- ##### FUNCTION gck_session_get_handle ##### -->
<para>

</para>

@self: 
@Returns: 


<!-- ##### FUNCTION gck_session_get_info ##### -->
<para>

</para>

@self: 
@Returns: 


<!-- ##### FUNCTION gck_session_get_interaction ##### -->
<para>

</para>

@self: 
@Returns: 


<!-- ##### FUNCTION gck_session_login ##### -->
<para>

</para>

@self: 
@user_type: 
@pin: 
@n_pin: 
@cancellable: 
@error: 
@Returns: 


<!-- ##### FUNCTION gck_session_login_async ##### -->
<para>

</para>

@self: 
@user_type: 
@pin: 
@n_pin: 
@cancellable: 
@callback: 
@user_data: 


<!-- ##### FUNCTION gck_session_login_finish ##### -->
<para>

</para>

@self: 
@result: 
@error: 
@Returns: 


<!-- ##### FUNCTION gck_session_logout ##### -->
<para>

</para>

@self: 
@cancellable: 
@error: 
@Returns: 


<!-- ##### FUNCTION gck_session_logout_async ##### -->
<para>

</para>

@self: 
@cancellable: 
@callback: 
@user_data: 


<!-- ##### FUNCTION gck_session_logout_finish ##### -->
<para>

</para>

@self: 
@result: 
@error: 
@Returns: 


<!-- ##### FUNCTION gck_session_create_object ##### -->
<para>

</para>

@self: 
@attrs: 
@cancellable: 
@error: 
@Returns: 


<!-- ##### FUNCTION gck_session_create_object_async ##### -->
<para>

</para>

@self: 
@attrs: 
@cancellable: 
@callback: 
@user_data: 


<!-- ##### FUNCTION gck_session_create_object_finish ##### -->
<para>

</para>

@self: 
@result: 
@error: 
@Returns: 


<!-- ##### FUNCTION gck_session_enumerate_objects ##### -->
<para>

</para>

@self: 
@match: 
@Returns: 


<!-- ##### FUNCTION gck_session_find_handles ##### -->
<para>

</para>

@self: 
@match: 
@cancellable: 
@n_handles: 
@error: 
@Returns: 


<!-- ##### FUNCTION gck_session_find_handles_async ##### -->
<para>

</para>

@self: 
@match: 
@cancellable: 
@callback: 
@user_data: 


<!-- ##### FUNCTION gck_session_find_handles_finish ##### -->
<para>

</para>

@self: 
@result: 
@n_handles: 
@error: 
@Returns: 


<!-- ##### FUNCTION gck_session_find_objects ##### -->
<para>

</para>

@self: 
@match: 
@cancellable: 
@error: 
@Returns: 


<!-- ##### FUNCTION gck_session_find_objects_async ##### -->
<para>

</para>

@self: 
@match: 
@cancellable: 
@callback: 
@user_data: 


<!-- ##### FUNCTION gck_session_find_objects_finish ##### -->
<para>

</para>

@self: 
@result: 
@error: 
@Returns: 


<!-- ##### FUNCTION gck_session_encrypt ##### -->
<para>

</para>

@self: 
@key: 
@mech_type: 
@input: 
@n_input: 
@n_result: 
@cancellable: 
@error: 
@Returns: 


<!-- ##### FUNCTION gck_session_encrypt_full ##### -->
<para>

</para>

@self: 
@key: 
@mechanism: 
@input: 
@n_input: 
@n_result: 
@cancellable: 
@error: 
@Returns: 


<!-- ##### FUNCTION gck_session_encrypt_async ##### -->
<para>

</para>

@self: 
@key: 
@mechanism: 
@input: 
@n_input: 
@cancellable: 
@callback: 
@user_data: 


<!-- ##### FUNCTION gck_session_encrypt_finish ##### -->
<para>

</para>

@self: 
@result: 
@n_result: 
@error: 
@Returns: 


<!-- ##### FUNCTION gck_session_decrypt ##### -->
<para>

</para>

@self: 
@key: 
@mech_type: 
@input: 
@n_input: 
@n_result: 
@cancellable: 
@error: 
@Returns: 


<!-- ##### FUNCTION gck_session_decrypt_full ##### -->
<para>

</para>

@self: 
@key: 
@mechanism: 
@input: 
@n_input: 
@n_result: 
@cancellable: 
@error: 
@Returns: 


<!-- ##### FUNCTION gck_session_decrypt_async ##### -->
<para>

</para>

@self: 
@key: 
@mechanism: 
@input: 
@n_input: 
@cancellable: 
@callback: 
@user_data: 


<!-- ##### FUNCTION gck_session_decrypt_finish ##### -->
<para>

</para>

@self: 
@result: 
@n_result: 
@error: 
@Returns: 


<!-- ##### FUNCTION gck_session_login_interactive ##### -->
<para>

</para>

@self: 
@user_type: 
@interaction: 
@cancellable: 
@error: 
@Returns: 


<!-- ##### FUNCTION gck_session_login_interactive_async ##### -->
<para>

</para>

@self: 
@user_type: 
@interaction: 
@cancellable: 
@callback: 
@user_data: 


<!-- ##### FUNCTION gck_session_login_interactive_finish ##### -->
<para>

</para>

@self: 
@result: 
@error: 
@Returns: 


<!-- ##### FUNCTION gck_session_set_interaction ##### -->
<para>

</para>

@self: 
@interaction: 


<!-- ##### FUNCTION gck_session_sign ##### -->
<para>

</para>

@self: 
@key: 
@mech_type: 
@input: 
@n_input: 
@n_result: 
@cancellable: 
@error: 
@Returns: 


<!-- ##### FUNCTION gck_session_sign_full ##### -->
<para>

</para>

@self: 
@key: 
@mechanism: 
@input: 
@n_input: 
@n_result: 
@cancellable: 
@error: 
@Returns: 


<!-- ##### FUNCTION gck_session_sign_async ##### -->
<para>

</para>

@self: 
@key: 
@mechanism: 
@input: 
@n_input: 
@cancellable: 
@callback: 
@user_data: 


<!-- ##### FUNCTION gck_session_sign_finish ##### -->
<para>

</para>

@self: 
@result: 
@n_result: 
@error: 
@Returns: 


<!-- ##### FUNCTION gck_session_verify ##### -->
<para>

</para>

@self: 
@key: 
@mech_type: 
@input: 
@n_input: 
@signature: 
@n_signature: 
@cancellable: 
@error: 
@Returns: 


<!-- ##### FUNCTION gck_session_verify_full ##### -->
<para>

</para>

@self: 
@key: 
@mechanism: 
@input: 
@n_input: 
@signature: 
@n_signature: 
@cancellable: 
@error: 
@Returns: 


<!-- ##### FUNCTION gck_session_verify_async ##### -->
<para>

</para>

@self: 
@key: 
@mechanism: 
@input: 
@n_input: 
@signature: 
@n_signature: 
@cancellable: 
@callback: 
@user_data: 


<!-- ##### FUNCTION gck_session_verify_finish ##### -->
<para>

</para>

@self: 
@result: 
@error: 
@Returns: 


<!-- ##### FUNCTION gck_session_derive_key ##### -->
<para>

</para>

@self: 
@base: 
@mech_type: 
@attrs: 
@cancellable: 
@error: 
@Returns: 


<!-- ##### FUNCTION gck_session_derive_key_async ##### -->
<para>

</para>

@self: 
@base: 
@mechanism: 
@attrs: 
@cancellable: 
@callback: 
@user_data: 


<!-- ##### FUNCTION gck_session_derive_key_finish ##### -->
<para>

</para>

@self: 
@result: 
@error: 
@Returns: 


<!-- ##### FUNCTION gck_session_derive_key_full ##### -->
<para>

</para>

@self: 
@base: 
@mechanism: 
@attrs: 
@cancellable: 
@error: 
@Returns: 


<!-- ##### FUNCTION gck_session_generate_key_pair ##### -->
<para>

</para>

@self: 
@mech_type: 
@public_attrs: 
@private_attrs: 
@public_key: 
@private_key: 
@cancellable: 
@error: 
@Returns: 


<!-- ##### FUNCTION gck_session_generate_key_pair_async ##### -->
<para>

</para>

@self: 
@mechanism: 
@public_attrs: 
@private_attrs: 
@cancellable: 
@callback: 
@user_data: 


<!-- ##### FUNCTION gck_session_generate_key_pair_finish ##### -->
<para>

</para>

@self: 
@result: 
@public_key: 
@private_key: 
@error: 
@Returns: 


<!-- ##### FUNCTION gck_session_generate_key_pair_full ##### -->
<para>

</para>

@self: 
@mechanism: 
@public_attrs: 
@private_attrs: 
@public_key: 
@private_key: 
@cancellable: 
@error: 
@Returns: 


<!-- ##### FUNCTION gck_session_get_options ##### -->
<para>

</para>

@self: 
@Returns: 


<!-- ##### FUNCTION gck_session_get_state ##### -->
<para>

</para>

@self: 
@Returns: 


<!-- ##### FUNCTION gck_session_init_pin ##### -->
<para>

</para>

@self: 
@pin: 
@n_pin: 
@cancellable: 
@error: 
@Returns: 


<!-- ##### FUNCTION gck_session_init_pin_async ##### -->
<para>

</para>

@self: 
@pin: 
@n_pin: 
@cancellable: 
@callback: 
@user_data: 


<!-- ##### FUNCTION gck_session_init_pin_finish ##### -->
<para>

</para>

@self: 
@result: 
@error: 
@Returns: 


<!-- ##### FUNCTION gck_session_set_pin ##### -->
<para>

</para>

@self: 
@old_pin: 
@n_old_pin: 
@new_pin: 
@n_new_pin: 
@cancellable: 
@error: 
@Returns: 


<!-- ##### FUNCTION gck_session_set_pin_async ##### -->
<para>

</para>

@self: 
@old_pin: 
@n_old_pin: 
@new_pin: 
@n_new_pin: 
@cancellable: 
@callback: 
@user_data: 


<!-- ##### FUNCTION gck_session_set_pin_finish ##### -->
<para>

</para>

@self: 
@result: 
@error: 
@Returns: 


<!-- ##### FUNCTION gck_session_unwrap_key ##### -->
<para>

</para>

@self: 
@wrapper: 
@mech_type: 
@input: 
@n_input: 
@attrs: 
@cancellable: 
@error: 
@Returns: 


<!-- ##### FUNCTION gck_session_unwrap_key_async ##### -->
<para>

</para>

@self: 
@wrapper: 
@mechanism: 
@input: 
@n_input: 
@attrs: 
@cancellable: 
@callback: 
@user_data: 


<!-- ##### FUNCTION gck_session_unwrap_key_finish ##### -->
<para>

</para>

@self: 
@result: 
@error: 
@Returns: 


<!-- ##### FUNCTION gck_session_unwrap_key_full ##### -->
<para>

</para>

@self: 
@wrapper: 
@mechanism: 
@input: 
@n_input: 
@attrs: 
@cancellable: 
@error: 
@Returns: 


<!-- ##### FUNCTION gck_session_wrap_key ##### -->
<para>

</para>

@self: 
@wrapper: 
@mech_type: 
@wrapped: 
@n_result: 
@cancellable: 
@error: 
@Returns: 


<!-- ##### FUNCTION gck_session_wrap_key_async ##### -->
<para>

</para>

@self: 
@wrapper: 
@mechanism: 
@wrapped: 
@cancellable: 
@callback: 
@user_data: 


<!-- ##### FUNCTION gck_session_wrap_key_finish ##### -->
<para>

</para>

@self: 
@result: 
@n_result: 
@error: 
@Returns: 


<!-- ##### FUNCTION gck_session_wrap_key_full ##### -->
<para>

</para>

@self: 
@wrapper: 
@mechanism: 
@wrapped: 
@n_result: 
@cancellable: 
@error: 
@Returns: 


<!-- ##### STRUCT GckSessionInfo ##### -->
<para>

</para>


<!-- ##### FUNCTION gck_session_info_copy ##### -->
<para>

</para>

@session_info: 
@Returns: 


<!-- ##### FUNCTION gck_session_info_free ##### -->
<para>

</para>

@session_info: 


<!-- ##### STRUCT GckMechanism ##### -->
<para>

</para>

@type: 
@parameter: 
@n_parameter: 

