gssapi 1.1.0 → 1.1.1

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.1.0
1
+ 1.1.1
@@ -11,6 +11,14 @@ module GSSAPI
11
11
  def message; to_s + ": " + @s; end
12
12
 
13
13
  def initialize(maj_stat = nil, min_stat = nil)
14
+
15
+ # If raised as class (raise GssApiError, "msg) the error message is given
16
+ # as the first parameter.
17
+ if maj_stat.class == String
18
+ @s = maj_stat
19
+ return super maj_stat
20
+ end
21
+
14
22
  if(maj_stat.nil? && min_stat.nil?)
15
23
  @s = '(no error info)'
16
24
  else
@@ -257,6 +257,9 @@ module GSSAPI
257
257
  # gss_buffer_t output_token, OM_uint32 *ret_flags, OM_uint32 *time_rec, gss_cred_id_t *delegated_cred_handle);
258
258
  attach_function :gss_accept_sec_context, [:pointer, :pointer, :pointer, :pointer, :pointer, :pointer, :pointer, :pointer, :pointer, :pointer, :pointer], :OM_uint32
259
259
 
260
+ # OM_uint32 gss_display_name(OM_uint32 * minor_status, gss_name_t input_name, gss_buffer_t output_name_buffer, gss_OID * output_name_type);
261
+ attach_function :gss_display_name, [:pointer, :pointer, :pointer, :pointer], :OM_uint32
262
+
260
263
  # OM_uint32 gss_acquire_cred(OM_uint32 *minor_status, const gss_name_t desired_name, OM_uint32 time_req, const gss_OID_set desired_mechs,
261
264
  # gss_cred_usage_t cred_usage, gss_cred_id_t *output_cred_handle, gss_OID_set *actual_mechs, OM_uint32 *time_rec);
262
265
  attach_function :gss_acquire_cred, [:pointer, :pointer, :OM_uint32, :pointer, :OM_uint32, :pointer, :pointer, :pointer], :OM_uint32
@@ -107,7 +107,7 @@ module GSSAPI
107
107
  min_stat = FFI::MemoryPointer.new :OM_uint32
108
108
  ctx = (@context.nil? ? LibGSSAPI::GssCtxIdT.gss_c_no_context.address_of : @context.address_of)
109
109
  no_chn_bind = LibGSSAPI::GSS_C_NO_CHANNEL_BINDINGS
110
- client = FFI::MemoryPointer.new :pointer # Will hold the initiating client name after the call
110
+ @client = FFI::MemoryPointer.new :pointer # Will hold the initiating client name after the call
111
111
  mech = FFI::MemoryPointer.new :pointer # Will hold the mech being used after the call
112
112
  in_tok = GSSAPI::LibGSSAPI::UnManagedGssBufferDesc.new
113
113
  in_tok.value = in_token
@@ -119,7 +119,7 @@ module GSSAPI
119
119
  @scred,
120
120
  in_tok.pointer,
121
121
  no_chn_bind,
122
- client,
122
+ @client,
123
123
  mech,
124
124
  out_tok.pointer,
125
125
  ret_flags,
@@ -131,6 +131,26 @@ module GSSAPI
131
131
  out_tok.length > 0 ? out_tok.value : true
132
132
  end
133
133
 
134
+ # Get textual representation of internal GSS name
135
+ # @return [String] textual representation of internal GSS name
136
+ def display_name
137
+ raise GssApiError.new(), "No context accepted yet. Call #{self.class.name}#accept_context(in_token) first" if @client.nil?
138
+
139
+ output_name = GSSAPI::LibGSSAPI::ManagedGssBufferDesc.new
140
+
141
+ min_stat = FFI::MemoryPointer.new :OM_uint32
142
+ maj_stat = LibGSSAPI.gss_display_name(min_stat,
143
+ @client.get_pointer(0),
144
+ output_name.pointer,
145
+ nil)
146
+
147
+ if maj_stat != GSSAPI::LibGSSAPI::GSS_S_COMPLETE
148
+ raise GssApiError.new(maj_stat, min_stat),
149
+ "gss_display_name did not return GSS_S_COMPLETE but #{ maj_stat }"
150
+ end
151
+
152
+ output_name.value
153
+ end
134
154
 
135
155
  # Acquire security credentials. This does not log you in. It grabs the credentials from a cred cache or keytab.
136
156
  # @param [Hash] opts options to pass to the gss_acquire_cred function.
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gssapi
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.1.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-02-10 00:00:00.000000000 Z
12
+ date: 2012-05-09 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: ffi
16
- requirement: &17171140 !ruby/object:Gem::Requirement
16
+ requirement: &6301300 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,7 +21,7 @@ dependencies:
21
21
  version: 1.0.1
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *17171140
24
+ version_requirements: *6301300
25
25
  description: ! " A FFI wrapper around the system GSSAPI library. Please make sure
26
26
  and read the\n Yard docs or standard GSSAPI documentation if you have any questions.\n
27
27
  \ \n There is also a class called GSSAPI::Simple that wraps many of the common
@@ -76,7 +76,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
76
76
  version: '0'
77
77
  requirements: []
78
78
  rubyforge_project:
79
- rubygems_version: 1.8.10
79
+ rubygems_version: 1.8.17
80
80
  signing_key:
81
81
  specification_version: 3
82
82
  summary: A FFI wrapper around the system GSSAPI library.