rkerberos 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGES +5 -0
- data/{README → README.md} +24 -12
- data/Rakefile +1 -0
- data/ext/rkerberos/keytab.c +3 -6
- data/ext/rkerberos/rkerberos.c +40 -11
- data/lib/rkerberos.so +0 -0
- data/rkerberos.gemspec +5 -7
- data/test/test_krb5.rb +12 -0
- data/test/test_krb5_keytab.rb +3 -3
- metadata +92 -102
data/CHANGES
CHANGED
@@ -1,3 +1,8 @@
|
|
1
|
+
= 0.1.1 - 08-May-2013
|
2
|
+
* Add credential cache argument to get_init_creds_keytab
|
3
|
+
* Fixed invalid VALUE declarations affecting non-gcc compilers
|
4
|
+
* Add OS X install instructions
|
5
|
+
|
1
6
|
= 0.1.0 - 28-Apr-2011
|
2
7
|
* Initial release. This is effectively a re-release of my own custom branch
|
3
8
|
of the krb5-auth library, with some minor changes.
|
data/{README → README.md}
RENAMED
@@ -1,10 +1,24 @@
|
|
1
|
-
|
1
|
+
# Description
|
2
2
|
The rkerberos library provides a Ruby interface for Kerberos.
|
3
3
|
|
4
|
-
|
4
|
+
# Requirements
|
5
5
|
Kerberos 1.7.0 or later, including admin header and library files.
|
6
6
|
|
7
|
-
|
7
|
+
# OSX
|
8
|
+
krb5 must be installed from source before installing the rkerberos gem:
|
9
|
+
```
|
10
|
+
wget http://web.mit.edu/kerberos/dist/krb5/1.10/krb5-1.10.2-signed.tar
|
11
|
+
tar -xf krb5-1.10.2-signed.tar
|
12
|
+
tar -xf krb5-1.10.2-signed.tar.gz
|
13
|
+
cd krb5-1.10.2
|
14
|
+
./configure
|
15
|
+
make
|
16
|
+
make install
|
17
|
+
```
|
18
|
+
latest release is here: http://web.mit.edu/kerberos/dist/index.html
|
19
|
+
|
20
|
+
# Synopsis
|
21
|
+
```ruby
|
8
22
|
require 'rkerberos'
|
9
23
|
|
10
24
|
# Get the default realm name
|
@@ -27,25 +41,23 @@
|
|
27
41
|
p kadm5.get_principal('someuser')
|
28
42
|
kadm5.set_password('someuser', 'abc123')
|
29
43
|
end
|
44
|
+
```
|
30
45
|
|
31
|
-
|
46
|
+
# Notes
|
32
47
|
The rkerberos library is a repackaging of my custom branch of the krb5_auth
|
33
48
|
library. Eventually the gem djberg96-krb5_auth will be removed from the gem
|
34
49
|
index.
|
35
50
|
|
36
|
-
|
51
|
+
# MIT vs Heimdal
|
37
52
|
This code was written for the MIT Kerberos library. It has not been tested
|
38
53
|
with the Heimdal Kerberos library.
|
39
54
|
|
40
|
-
|
55
|
+
# TODO
|
41
56
|
Create a separate class for the replay cache.
|
42
57
|
Better credentials cache support.
|
43
58
|
Ability to add and delete keytab entries.
|
44
59
|
|
45
|
-
|
46
|
-
OS X users will probably need to install Kerberos manually and specify
|
47
|
-
the dir-config option because it ships with old Kerberos header files,
|
48
|
-
and none of the admin headers or libraries by default.
|
49
|
-
|
50
|
-
= Author
|
60
|
+
# Authors
|
51
61
|
Daniel Berger
|
62
|
+
Dominic Cleal (maintainer)
|
63
|
+
|
data/Rakefile
CHANGED
data/ext/rkerberos/keytab.c
CHANGED
@@ -35,7 +35,6 @@ static VALUE rkrb5_keytab_allocate(VALUE klass){
|
|
35
35
|
static VALUE rkrb5_keytab_each(VALUE self){
|
36
36
|
RUBY_KRB5_KEYTAB* ptr;
|
37
37
|
VALUE v_kt_entry;
|
38
|
-
VALUE v_args[0];
|
39
38
|
krb5_error_code kerror;
|
40
39
|
krb5_kt_cursor cursor;
|
41
40
|
krb5_keytab_entry entry;
|
@@ -55,7 +54,7 @@ static VALUE rkrb5_keytab_each(VALUE self){
|
|
55
54
|
while((kerror = krb5_kt_next_entry(ptr->ctx, ptr->keytab, &entry, &cursor)) == 0){
|
56
55
|
krb5_unparse_name(ptr->ctx, entry.principal, &principal);
|
57
56
|
|
58
|
-
v_kt_entry = rb_class_new_instance(0,
|
57
|
+
v_kt_entry = rb_class_new_instance(0, NULL, cKrb5KtEntry);
|
59
58
|
|
60
59
|
rb_iv_set(v_kt_entry, "@principal", rb_str_new2(principal));
|
61
60
|
rb_iv_set(v_kt_entry, "@timestamp", rb_time_new(entry.timestamp, 0));
|
@@ -247,7 +246,6 @@ static VALUE rkrb5_keytab_get_entry(int argc, VALUE* argv, VALUE self){
|
|
247
246
|
krb5_keytab_entry entry;
|
248
247
|
char* name;
|
249
248
|
VALUE v_principal, v_vno, v_enctype, v_entry;
|
250
|
-
VALUE v_args[0];
|
251
249
|
|
252
250
|
Data_Get_Struct(self, RUBY_KRB5_KEYTAB, ptr);
|
253
251
|
|
@@ -276,7 +274,7 @@ static VALUE rkrb5_keytab_get_entry(int argc, VALUE* argv, VALUE self){
|
|
276
274
|
if(kerror)
|
277
275
|
rb_raise(cKrb5Exception, "krb5_kt_get_entry: %s", error_message(kerror));
|
278
276
|
|
279
|
-
v_entry = rb_class_new_instance(0,
|
277
|
+
v_entry = rb_class_new_instance(0, NULL, cKrb5KtEntry);
|
280
278
|
|
281
279
|
rb_iv_set(v_entry, "@principal", rb_str_new2(name));
|
282
280
|
rb_iv_set(v_entry, "@timestamp", rb_time_new(entry.timestamp, 0));
|
@@ -365,7 +363,6 @@ static VALUE rkrb5_keytab_initialize(int argc, VALUE* argv, VALUE self){
|
|
365
363
|
static VALUE rkrb5_s_keytab_foreach(int argc, VALUE* argv, VALUE klass){
|
366
364
|
VALUE v_kt_entry;
|
367
365
|
VALUE v_keytab_name;
|
368
|
-
VALUE v_args[0];
|
369
366
|
krb5_error_code kerror;
|
370
367
|
krb5_kt_cursor cursor;
|
371
368
|
krb5_keytab keytab;
|
@@ -429,7 +426,7 @@ static VALUE rkrb5_s_keytab_foreach(int argc, VALUE* argv, VALUE klass){
|
|
429
426
|
while((kerror = krb5_kt_next_entry(context, keytab, &entry, &cursor)) == 0){
|
430
427
|
krb5_unparse_name(context, entry.principal, &principal);
|
431
428
|
|
432
|
-
v_kt_entry = rb_class_new_instance(0,
|
429
|
+
v_kt_entry = rb_class_new_instance(0, NULL, cKrb5KtEntry);
|
433
430
|
|
434
431
|
rb_iv_set(v_kt_entry, "@principal", rb_str_new2(principal));
|
435
432
|
rb_iv_set(v_kt_entry, "@timestamp", rb_time_new(entry.timestamp, 0));
|
data/ext/rkerberos/rkerberos.c
CHANGED
@@ -127,7 +127,7 @@ static VALUE rkrb5_set_default_realm(int argc, VALUE* argv, VALUE self){
|
|
127
127
|
}
|
128
128
|
|
129
129
|
/* call-seq:
|
130
|
-
* krb5.get_init_creds_keytab(principal = nil, keytab = nil, service = nil)
|
130
|
+
* krb5.get_init_creds_keytab(principal = nil, keytab = nil, service = nil, ccache = nil)
|
131
131
|
*
|
132
132
|
* Acquire credentials for +principal+ from +keytab+ using +service+. If
|
133
133
|
* no principal is specified, then a principal is derived from the service
|
@@ -135,16 +135,19 @@ static VALUE rkrb5_set_default_realm(int argc, VALUE* argv, VALUE self){
|
|
135
135
|
*
|
136
136
|
* If no keytab file is provided, the default keytab file is used. This is
|
137
137
|
* typically /etc/krb5.keytab.
|
138
|
+
*
|
139
|
+
* If +ccache+ is supplied and is a Kerberos::Krb5::CredentialsCache, the
|
140
|
+
* resulting credentials will be stored in the credential cache.
|
138
141
|
*/
|
139
142
|
static VALUE rkrb5_get_init_creds_keytab(int argc, VALUE* argv, VALUE self){
|
140
143
|
RUBY_KRB5* ptr;
|
141
|
-
VALUE v_user, v_keytab_name, v_service;
|
144
|
+
VALUE v_user, v_keytab_name, v_service, v_ccache;
|
142
145
|
char* user;
|
143
146
|
char* service;
|
144
147
|
char keytab_name[MAX_KEYTAB_NAME_LEN];
|
145
148
|
|
146
149
|
krb5_error_code kerror;
|
147
|
-
krb5_get_init_creds_opt opt;
|
150
|
+
krb5_get_init_creds_opt* opt;
|
148
151
|
krb5_creds cred;
|
149
152
|
|
150
153
|
Data_Get_Struct(self, RUBY_KRB5, ptr);
|
@@ -152,7 +155,11 @@ static VALUE rkrb5_get_init_creds_keytab(int argc, VALUE* argv, VALUE self){
|
|
152
155
|
if(!ptr->ctx)
|
153
156
|
rb_raise(cKrb5Exception, "no context has been established");
|
154
157
|
|
155
|
-
|
158
|
+
kerror = krb5_get_init_creds_opt_alloc(ptr->ctx, &opt);
|
159
|
+
if(kerror)
|
160
|
+
rb_raise(cKrb5Exception, "krb5_get_init_creds_opt_alloc: %s", error_message(kerror));
|
161
|
+
|
162
|
+
rb_scan_args(argc, argv, "04", &v_user, &v_keytab_name, &v_service, &v_ccache);
|
156
163
|
|
157
164
|
// We need the service information for later.
|
158
165
|
if(NIL_P(v_service)){
|
@@ -173,8 +180,10 @@ static VALUE rkrb5_get_init_creds_keytab(int argc, VALUE* argv, VALUE self){
|
|
173
180
|
&ptr->princ
|
174
181
|
);
|
175
182
|
|
176
|
-
if(kerror)
|
183
|
+
if(kerror) {
|
184
|
+
krb5_get_init_creds_opt_free(ptr->ctx, opt);
|
177
185
|
rb_raise(cKrb5Exception, "krb5_sname_to_principal: %s", error_message(kerror));
|
186
|
+
}
|
178
187
|
}
|
179
188
|
else{
|
180
189
|
Check_Type(v_user, T_STRING);
|
@@ -182,16 +191,20 @@ static VALUE rkrb5_get_init_creds_keytab(int argc, VALUE* argv, VALUE self){
|
|
182
191
|
|
183
192
|
kerror = krb5_parse_name(ptr->ctx, user, &ptr->princ);
|
184
193
|
|
185
|
-
if(kerror)
|
194
|
+
if(kerror) {
|
195
|
+
krb5_get_init_creds_opt_free(ptr->ctx, opt);
|
186
196
|
rb_raise(cKrb5Exception, "krb5_parse_name: %s", error_message(kerror));
|
197
|
+
}
|
187
198
|
}
|
188
199
|
|
189
200
|
// Use the default keytab if none is specified.
|
190
201
|
if(NIL_P(v_keytab_name)){
|
191
202
|
kerror = krb5_kt_default_name(ptr->ctx, keytab_name, MAX_KEYTAB_NAME_LEN);
|
192
203
|
|
193
|
-
if(kerror)
|
204
|
+
if(kerror) {
|
205
|
+
krb5_get_init_creds_opt_free(ptr->ctx, opt);
|
194
206
|
rb_raise(cKrb5Exception, "krb5_kt_default_name: %s", error_message(kerror));
|
207
|
+
}
|
195
208
|
}
|
196
209
|
else{
|
197
210
|
Check_Type(v_keytab_name, T_STRING);
|
@@ -204,10 +217,22 @@ static VALUE rkrb5_get_init_creds_keytab(int argc, VALUE* argv, VALUE self){
|
|
204
217
|
&ptr->keytab
|
205
218
|
);
|
206
219
|
|
207
|
-
if(kerror)
|
220
|
+
if(kerror) {
|
221
|
+
krb5_get_init_creds_opt_free(ptr->ctx, opt);
|
208
222
|
rb_raise(cKrb5Exception, "krb5_kt_resolve: %s", error_message(kerror));
|
223
|
+
}
|
224
|
+
|
225
|
+
// Set the credential cache from the supplied Kerberos::Krb5::CredentialsCache
|
226
|
+
if(!NIL_P(v_ccache)){
|
227
|
+
RUBY_KRB5_CCACHE* ccptr;
|
228
|
+
Data_Get_Struct(v_ccache, RUBY_KRB5_CCACHE, ccptr);
|
209
229
|
|
210
|
-
|
230
|
+
kerror = krb5_get_init_creds_opt_set_out_ccache(ptr->ctx, opt, ccptr->ccache);
|
231
|
+
if(kerror) {
|
232
|
+
krb5_get_init_creds_opt_free(ptr->ctx, opt);
|
233
|
+
rb_raise(cKrb5Exception, "krb5_get_init_creds_opt_set_out_ccache: %s", error_message(kerror));
|
234
|
+
}
|
235
|
+
}
|
211
236
|
|
212
237
|
kerror = krb5_get_init_creds_keytab(
|
213
238
|
ptr->ctx,
|
@@ -216,11 +241,15 @@ static VALUE rkrb5_get_init_creds_keytab(int argc, VALUE* argv, VALUE self){
|
|
216
241
|
ptr->keytab,
|
217
242
|
0,
|
218
243
|
service,
|
219
|
-
|
244
|
+
opt
|
220
245
|
);
|
221
246
|
|
222
|
-
if(kerror)
|
247
|
+
if(kerror) {
|
248
|
+
krb5_get_init_creds_opt_free(ptr->ctx, opt);
|
223
249
|
rb_raise(cKrb5Exception, "krb5_get_init_creds_keytab: %s", error_message(kerror));
|
250
|
+
}
|
251
|
+
|
252
|
+
krb5_get_init_creds_opt_free(ptr->ctx, opt);
|
224
253
|
|
225
254
|
return self;
|
226
255
|
}
|
data/lib/rkerberos.so
ADDED
Binary file
|
data/rkerberos.gemspec
CHANGED
@@ -2,19 +2,17 @@ require 'rubygems'
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |spec|
|
4
4
|
spec.name = 'rkerberos'
|
5
|
-
spec.version = '0.1.
|
6
|
-
spec.
|
5
|
+
spec.version = '0.1.1'
|
6
|
+
spec.authors = ['Daniel Berger', 'Dominic Cleal']
|
7
7
|
spec.license = 'Artistic 2.0'
|
8
|
-
spec.email = 'djberg96@gmail.com'
|
9
|
-
spec.homepage = 'http://github.com/
|
10
|
-
spec.platform = Gem::Platform::RUBY
|
8
|
+
spec.email = ['djberg96@gmail.com', 'dcleal@redhat.com']
|
9
|
+
spec.homepage = 'http://github.com/domcleal/rkerberos'
|
11
10
|
spec.summary = 'A Ruby interface for the the Kerberos library'
|
12
11
|
spec.test_files = Dir['test/test*']
|
13
12
|
spec.extensions = ['ext/rkerberos/extconf.rb']
|
14
13
|
spec.files = Dir['**/*'].reject{ |f| f.include?('git') || f.include?('tmp') }
|
15
14
|
|
16
|
-
spec.
|
17
|
-
spec.extra_rdoc_files = ['README', 'CHANGES', 'MANIFEST'] + Dir['ext/rkerberos/*.c']
|
15
|
+
spec.extra_rdoc_files = ['README.md', 'CHANGES', 'MANIFEST'] + Dir['ext/rkerberos/*.c']
|
18
16
|
|
19
17
|
spec.add_dependency('rake-compiler')
|
20
18
|
|
data/test/test_krb5.rb
CHANGED
@@ -129,6 +129,18 @@ class TC_Krb5 < Test::Unit::TestCase
|
|
129
129
|
assert_nothing_raised{ @krb5.get_init_creds_keytab(@user, @keytab, @service) }
|
130
130
|
end
|
131
131
|
|
132
|
+
test "get_init_creds_keytab accepts a credential cache" do
|
133
|
+
omit_unless(File.exists?(@keytab), "keytab file not found, skipping")
|
134
|
+
assert_nothing_raised{ @krb5.get_init_creds_keytab(@user, @keytab, @service, @ccache) }
|
135
|
+
end
|
136
|
+
|
137
|
+
test "get_init_creds_keytab stores credentials in the credential cache" do
|
138
|
+
omit_unless(File.exists?(@keytab), "keytab file not found, skipping")
|
139
|
+
ccache = Kerberos::Krb5::CredentialsCache.new
|
140
|
+
assert_nothing_raised{ @krb5.get_init_creds_keytab(@user, @keytab, @service, @ccache) }
|
141
|
+
assert_equal @user, ccache.primary_principal
|
142
|
+
end
|
143
|
+
|
132
144
|
test "get_init_creds_keytab requires string arguments" do
|
133
145
|
assert_raise(TypeError){ @krb5.get_init_creds_keytab(1) }
|
134
146
|
assert_raise(TypeError){ @krb5.get_init_creds_keytab(@user, 1) }
|
data/test/test_krb5_keytab.rb
CHANGED
@@ -21,6 +21,9 @@ class TC_Krb5_Keytab < Test::Unit::TestCase
|
|
21
21
|
def self.startup
|
22
22
|
file = Dir.tmpdir + "/test.keytab"
|
23
23
|
|
24
|
+
@@key_file = "FILE:" + file
|
25
|
+
@@home_dir = ENV['HOME'] || ENV['USER_PROFILE']
|
26
|
+
|
24
27
|
PTY.spawn('kadmin.local') do |reader, writer, pid|
|
25
28
|
reader.gets
|
26
29
|
reader.expect(/local:\s+/)
|
@@ -31,9 +34,6 @@ class TC_Krb5_Keytab < Test::Unit::TestCase
|
|
31
34
|
writer.puts("ktadd -k #{file} testuser2")
|
32
35
|
reader.expect(/local:\s+/)
|
33
36
|
end
|
34
|
-
|
35
|
-
@@key_file = "FILE:" + file
|
36
|
-
@@home_dir = ENV['HOME'] || ENV['USER_PROFILE']
|
37
37
|
end
|
38
38
|
|
39
39
|
def setup
|
metadata
CHANGED
@@ -1,155 +1,145 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: rkerberos
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.1
|
5
5
|
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 1
|
9
|
-
- 0
|
10
|
-
version: 0.1.0
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Daniel Berger
|
9
|
+
- Dominic Cleal
|
14
10
|
autorequire:
|
15
11
|
bindir: bin
|
16
12
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
dependencies:
|
21
|
-
- !ruby/object:Gem::Dependency
|
13
|
+
date: 2013-05-08 00:00:00.000000000 Z
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
22
16
|
name: rake-compiler
|
23
|
-
|
24
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
17
|
+
requirement: !ruby/object:Gem::Requirement
|
25
18
|
none: false
|
26
|
-
requirements:
|
27
|
-
- -
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
|
30
|
-
segments:
|
31
|
-
- 0
|
32
|
-
version: "0"
|
19
|
+
requirements:
|
20
|
+
- - ! '>='
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: '0'
|
33
23
|
type: :runtime
|
34
|
-
version_requirements: *id001
|
35
|
-
- !ruby/object:Gem::Dependency
|
36
|
-
name: test-unit
|
37
24
|
prerelease: false
|
38
|
-
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
none: false
|
27
|
+
requirements:
|
28
|
+
- - ! '>='
|
29
|
+
- !ruby/object:Gem::Version
|
30
|
+
version: '0'
|
31
|
+
- !ruby/object:Gem::Dependency
|
32
|
+
name: test-unit
|
33
|
+
requirement: !ruby/object:Gem::Requirement
|
39
34
|
none: false
|
40
|
-
requirements:
|
41
|
-
- -
|
42
|
-
- !ruby/object:Gem::Version
|
43
|
-
hash: 11
|
44
|
-
segments:
|
45
|
-
- 2
|
46
|
-
- 1
|
47
|
-
- 0
|
35
|
+
requirements:
|
36
|
+
- - ! '>='
|
37
|
+
- !ruby/object:Gem::Version
|
48
38
|
version: 2.1.0
|
49
39
|
type: :development
|
50
|
-
version_requirements: *id002
|
51
|
-
- !ruby/object:Gem::Dependency
|
52
|
-
name: dbi-dbrc
|
53
40
|
prerelease: false
|
54
|
-
|
41
|
+
version_requirements: !ruby/object:Gem::Requirement
|
42
|
+
none: false
|
43
|
+
requirements:
|
44
|
+
- - ! '>='
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: 2.1.0
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: dbi-dbrc
|
49
|
+
requirement: !ruby/object:Gem::Requirement
|
55
50
|
none: false
|
56
|
-
requirements:
|
57
|
-
- -
|
58
|
-
- !ruby/object:Gem::Version
|
59
|
-
hash: 31
|
60
|
-
segments:
|
61
|
-
- 1
|
62
|
-
- 1
|
63
|
-
- 6
|
51
|
+
requirements:
|
52
|
+
- - ! '>='
|
53
|
+
- !ruby/object:Gem::Version
|
64
54
|
version: 1.1.6
|
65
55
|
type: :development
|
66
|
-
|
67
|
-
|
68
|
-
|
56
|
+
prerelease: false
|
57
|
+
version_requirements: !ruby/object:Gem::Requirement
|
58
|
+
none: false
|
59
|
+
requirements:
|
60
|
+
- - ! '>='
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: 1.1.6
|
63
|
+
description: ! " The rkerberos library is an interface for the Kerberos 5 network\n
|
64
|
+
\ authentication protocol. It wraps the Kerberos C API.\n"
|
65
|
+
email:
|
66
|
+
- djberg96@gmail.com
|
67
|
+
- dcleal@redhat.com
|
69
68
|
executables: []
|
70
|
-
|
71
|
-
extensions:
|
69
|
+
extensions:
|
72
70
|
- ext/rkerberos/extconf.rb
|
73
|
-
extra_rdoc_files:
|
74
|
-
- README
|
71
|
+
extra_rdoc_files:
|
72
|
+
- README.md
|
75
73
|
- CHANGES
|
76
74
|
- MANIFEST
|
75
|
+
- ext/rkerberos/context.c
|
76
|
+
- ext/rkerberos/keytab.c
|
77
77
|
- ext/rkerberos/principal.c
|
78
|
-
- ext/rkerberos/rkerberos.c
|
79
78
|
- ext/rkerberos/kadm5.c
|
80
79
|
- ext/rkerberos/keytab_entry.c
|
81
|
-
- ext/rkerberos/
|
82
|
-
- ext/rkerberos/
|
80
|
+
- ext/rkerberos/config.c
|
81
|
+
- ext/rkerberos/rkerberos.c
|
83
82
|
- ext/rkerberos/ccache.c
|
84
83
|
- ext/rkerberos/policy.c
|
85
|
-
|
86
|
-
|
87
|
-
-
|
88
|
-
-
|
89
|
-
-
|
90
|
-
-
|
84
|
+
files:
|
85
|
+
- MANIFEST
|
86
|
+
- README.md
|
87
|
+
- test/test_config.rb
|
88
|
+
- test/test_krb5_keytab.rb
|
89
|
+
- test/test_keytab_entry.rb
|
90
|
+
- test/test_context.rb
|
91
91
|
- test/test_principal.rb
|
92
92
|
- test/test_credentials_cache.rb
|
93
|
-
- test/test_config.rb
|
94
93
|
- test/test_krb5.rb
|
95
|
-
- test/test_context.rb
|
96
|
-
- test/test_krb5_keytab.rb
|
97
94
|
- test/test_kadm5.rb
|
98
|
-
- test/test_keytab_entry.rb
|
99
95
|
- test/test_policy.rb
|
100
|
-
-
|
96
|
+
- Rakefile
|
97
|
+
- lib/rkerberos.so
|
101
98
|
- ext/rkerberos/extconf.rb
|
99
|
+
- ext/rkerberos/rkerberos.h
|
100
|
+
- ext/rkerberos/context.c
|
101
|
+
- ext/rkerberos/keytab.c
|
102
102
|
- ext/rkerberos/principal.c
|
103
|
-
- ext/rkerberos/rkerberos.c
|
104
103
|
- ext/rkerberos/kadm5.c
|
105
104
|
- ext/rkerberos/keytab_entry.c
|
106
|
-
- ext/rkerberos/
|
107
|
-
- ext/rkerberos/
|
105
|
+
- ext/rkerberos/config.c
|
106
|
+
- ext/rkerberos/rkerberos.c
|
108
107
|
- ext/rkerberos/ccache.c
|
109
108
|
- ext/rkerberos/policy.c
|
110
|
-
-
|
111
|
-
-
|
112
|
-
|
113
|
-
|
114
|
-
licenses:
|
109
|
+
- rkerberos.gemspec
|
110
|
+
- CHANGES
|
111
|
+
homepage: http://github.com/domcleal/rkerberos
|
112
|
+
licenses:
|
115
113
|
- Artistic 2.0
|
116
114
|
post_install_message:
|
117
115
|
rdoc_options: []
|
118
|
-
|
119
|
-
require_paths:
|
116
|
+
require_paths:
|
120
117
|
- lib
|
121
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
118
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
122
119
|
none: false
|
123
|
-
requirements:
|
124
|
-
- -
|
125
|
-
- !ruby/object:Gem::Version
|
126
|
-
|
127
|
-
|
128
|
-
- 0
|
129
|
-
version: "0"
|
130
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
120
|
+
requirements:
|
121
|
+
- - ! '>='
|
122
|
+
- !ruby/object:Gem::Version
|
123
|
+
version: '0'
|
124
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
131
125
|
none: false
|
132
|
-
requirements:
|
133
|
-
- -
|
134
|
-
- !ruby/object:Gem::Version
|
135
|
-
|
136
|
-
segments:
|
137
|
-
- 0
|
138
|
-
version: "0"
|
126
|
+
requirements:
|
127
|
+
- - ! '>='
|
128
|
+
- !ruby/object:Gem::Version
|
129
|
+
version: '0'
|
139
130
|
requirements: []
|
140
|
-
|
141
|
-
|
142
|
-
rubygems_version: 1.6.2
|
131
|
+
rubyforge_project:
|
132
|
+
rubygems_version: 1.8.25
|
143
133
|
signing_key:
|
144
134
|
specification_version: 3
|
145
135
|
summary: A Ruby interface for the the Kerberos library
|
146
|
-
test_files:
|
136
|
+
test_files:
|
137
|
+
- test/test_config.rb
|
138
|
+
- test/test_krb5_keytab.rb
|
139
|
+
- test/test_keytab_entry.rb
|
140
|
+
- test/test_context.rb
|
147
141
|
- test/test_principal.rb
|
148
142
|
- test/test_credentials_cache.rb
|
149
|
-
- test/test_config.rb
|
150
143
|
- test/test_krb5.rb
|
151
|
-
- test/test_context.rb
|
152
|
-
- test/test_krb5_keytab.rb
|
153
144
|
- test/test_kadm5.rb
|
154
|
-
- test/test_keytab_entry.rb
|
155
145
|
- test/test_policy.rb
|